Proposal: "No-Collision" mode for Multisig BIP32 Wallets

Proposal: "No-Collision" mode for Multisig BIP32 Wallets
2014-09-23 16:37 ` Justus Ranvier
  
From: Alan Reiner @ 2014-09-23 16:16 UTC (permalink / raw)
  To: Bitcoin Dev

This topic has been touched on briefly here before, but I wanted to
solidify it and propose it as a BIP if there is wider support for it. 
Also, the topic is difficult to discuss without lots of pictures -- so
that's what I've done (mainly to describe it to my team, but also as
general documentation).  It's in presentation form:

https://s3.amazonaws.com/bitcoinarmory-media/MultisigWalletNoCollide.pdf

The proposal is that for an M-of-N multisig wallet based on BIP32, there
should be N internal chains and N external chains.  Each party is
assigned a chain based on the lexicographic ordering of their wallet's
root public key in the multisig.   This guarantees that no parties are
generating and distributing the same addresses, and also provides a
certain level of built-in book-keeping.  Coins being received on chain
2*x were created by participant x (receiving), and coins received on
2*x+1 are change outputs created by participant x (outgoing).  Thus,
it's easy from simply looking at the wallet structure who was
responsible for which transactions.

Alternatively, we could change it to suggest that each "device" is
assigned a pair of chains.  For a 2-of-3 there may 3 participants plus a
CFO with a "watch-only" version of the multisig wallet.  Then you might
use four pairs of chains.  I'm just not sure how they would be assigned.

If this has been proposed before, then consider this my contribution to
documentation. 
-Alan

P.S. -- "No-Collision Mode" is not a great name.  Happy to take
suggestions for changing it.




 permalink raw reply	[|nested]
2014-09-23 16:16 [Bitcoin-development] Proposal: "No-Collision" mode for Multisig BIP32 Wallets Alan Reiner

  2014-09-23 16:48   ` Alan Reiner
  
From: Justus Ranvier @ 2014-09-23 16:37 UTC (permalink / raw)
  To: bitcoin-development

[-- Attachment #1: Type: text/plain, Size: 1213 bytes --]

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

On 09/23/2014 04:16 PM, Alan Reiner wrote:
> P.S. -- "No-Collision Mode" is not a great name.  Happy to take 
> suggestions for changing it.

I'd call it a "voting pool wallet", since that was the original
application for this arrangement.

Would be nice if you'd at least mention our work, since we did share
it with you back in January and have been publicly documenting it ever
since.

Or does the fact that we're implementing it in btcwallet mean what
we're working on is unmentionable here?

- -- 
Justus Ranvier                   | Monetas <http://monetas.net/>
<mailto:justus@monetas•net>      | Public key ID : C3F7BB2638450DB5
                                 | BM-2cTepVtZ6AyJAs2Y8LpcvZB8KbdaWLwKqc
-----BEGIN PGP SIGNATURE-----

iQEcBAEBCAAGBQJUIaHAAAoJEMP3uyY4RQ21nwoH/3MYi9JibblZYmSOvCT1vJrN
Ih+Q2WNumIAI+Y9bh4bBgLuhnG5lXyHedhYEUW+mfuwGiX+92Uc47nwaWED2/Lte
4Zk/KZnwLifdWCgKLdGpW6mzksRiOaVyU4vV5JchVOrGZZ2zYNIq+NcChtCph7Y5
L202ReAG+1dfSpp4rFckuv7pTVjNcrq89UN1tJFDNQdxzIRd7bwoeCuvyFurZagB
88bNiOl0BI3e090WC+CWmbC6BfqJiicn/d0gp/agW01wy7CVbLypPPTKmYqt3+54
msLUgaRHcbjuyKqu8HMHpYtgYVSNFg2q+U4SgmEepzPAkQ97khbduqA6i1B0ULM=
=t/xp
-----END PGP SIGNATURE-----

[-- Attachment #2: 0x38450DB5.asc --]
[-- Type: application/pgp-keys, Size: 14046 bytes --]

 permalink raw reply	[|nested]
2014-09-23 16:37 ` Justus Ranvier

  2014-09-23 17:07     ` Justus Ranvier
  
From: Alan Reiner @ 2014-09-23 16:48 UTC (permalink / raw)
  To: bitcoin-development


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On 09/23/2014 12:37 PM, Justus Ranvier wrote:
> Would be nice if you'd at least mention our work, since we did share
> it with you back in January and have been publicly documenting it ever
> since.
>
> Or does the fact that we're implementing it in btcwallet mean what
> we're working on is unmentionable here?
>

Please don't assume poor intentions or sneaky motives.  I get a lot of
emails from a lot of people about a lot of things.  Nine months ago was
an eternity in this world, and it can't be ruled out that I simply forgot.

I have no problem giving credit where it is due, and I mentioned in my
first email that I wasn't sure if my stuff was original.  Please
recap/link it here so that it can be part of this discussion.

- -Alan
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1

iQIcBAEBAgAGBQJUIaRiAAoJEBHe6b77WWmFcBgP/2IiQWda5diBIrd8MjbtYz/X
pF+B1zOipClil151pKN5h9f4CI75qwSBSG6pUS+QH1lCz97nr5AoVYV5SAaRzv0z
L9Bz0PiHJFHd4IRbfuFqlPZB8mw2TMD7QWJx/1U+WmpnYYOGsUeJn25psIVZSRTU
FTCsmYrA4cGZ4bZoUKI/eiXrHao8rm/zQ7QHKOMSFWZT57sNea67vlxPXKu+AkmK
nEYa4hD0kD7/R/TrNcmRmOlmbqCnyjICd/yp8Lj26CdHPv3PAvaxUwSX3VhWPbdc
UOiGeo+lXqRnBVpwMd+k7oFddwrc2k9ISRdUVsU86z3JdAXKl/dLS5UoOtfC1JA9
m90TuRtq4QuuzjLF3brI9FthuHNowA//qaVfjo/AYgsKy15td9UBtFbt4E9w263M
NiFEmFkXfbE1JmIvmPG3AQEEdQ1/nmWiN5UcLrBfauEHMDQ1fGd89A8IBpus7bWM
kYXboW3E9RBN4lB6OdyYU4AuH0YQhZodmry4iElMPox/tclmNiaeqDR8UYhD5BMd
eQN9zAALyR1IY1167Ki/abVfWVf5jF7b0Eeu/wAfwcble3sCFrvWWAwzHjNi3GjY
gNfy1eDTbwLj2M63QbtB+YqzQBZx3+SY4euGKYQ1s1CVV9ibAFI52oxeMhwzVOWF
ofeDK5BPL8H+5L3tk+1o
=tX2n
-----END PGP SIGNATURE-----





 permalink raw reply	[|nested]
2014-09-23 16:48   ` Alan Reiner

  
From: Justus Ranvier @ 2014-09-23 17:07 UTC (permalink / raw)
  To: bitcoin-development

[-- Attachment #1: Type: text/plain, Size: 1540 bytes --]

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

On 09/23/2014 04:48 PM, Alan Reiner wrote:
> Please recap/link it here so that it can be part of this
> discussion.

http://sourceforge.net/p/bitcoin/mailman/message/32736455/

http://opentransactions.org/wiki/index.php/Deposit_Address_(voting_pools)

Currently being implemented here:

https://github.com/monetas/btcwallet/commits/vp

- --

Really what's so annoying is how the BIP numbering process is handled in
such a way that proposals can be silently pigeonholed.

Especially so in the case of an *informational* BIP which requires no
action on anyone's part (except for not using the same BIP43 purpose
code).

We resolved this by changing the naming scheme for our proposals, and
their associated purpose codes, to not rely on centrally-allocated
numbers.

https://github.com/Open-Transactions/rfc/tree/master/bips

- -- 
Justus Ranvier                   | Monetas <http://monetas.net/>
<mailto:justus@monetas•net>      | Public key ID : C3F7BB2638450DB5
                                 | BM-2cTepVtZ6AyJAs2Y8LpcvZB8KbdaWLwKqc
-----BEGIN PGP SIGNATURE-----

iQEcBAEBCAAGBQJUIajuAAoJEMP3uyY4RQ215dQH/1GNOmZd19/e2Ys7MNFx0gqz
rDmTFBylU3lhJrMY4CDd4Duq5+2U7HgaovqgX8UqxquHWLQUwEzZLqdEPCifLg0c
d/u90cRlClFAaOxPh4HV2/3aZoS2R27N+ZjOfziW7RZySBP/2fMt4/ra+SPbkcAQ
oeplYgqMRDqW52C/o2zm4y4yb0TJPS+lzSNM+JfxHSPRyY55l0KzLJfUNz1RSOze
A8UAwdsLiJROKPKiSrQcqFOejPV7uqSPh10ukm/AI0k8TbvX8ffGQ083394M9IuE
DB/1eyeLQVP5+lQMWNrTHk3BQ75XBEDJoSukaRENcqxtHV2m1JzTWoS2CQBXi2M=
=TwI3
-----END PGP SIGNATURE-----

[-- Attachment #2: 0x38450DB5.asc --]
[-- Type: application/pgp-keys, Size: 14046 bytes --]

 permalink raw reply	[|nested]