[Bitcoin-development] Request For Discussion / BIP number - Multi-Currency Hierarchy For Use In Multisignature Deterministic Wallets

William Swanson swansontec at gmail.com
Thu Apr 9 22:24:11 UTC 2015

On Thu, Apr 9, 2015 at 1:16 PM, Kefkius <kefkius at maza.club> wrote:
> I've amended the proposal's "Motivation" section slightly for
> clarification. I'm not sure how a "cosigner_index" branch would benefit
> this proposal. Granted, I don't fully understand the benefits of the
> "cosigner_index" branch in BIP-0045. From what I understand, the
> "wallet" branch of my proposal seems to accomplish a similar goal.

Suppose Alice and Bob share a multi-sig wallet. Alice would like to
accept payment from Mallory, and Bob would like to accept payment from
Maude. So, they would each like to create a separate payment address.
If Alice and Bob both generate the same address, the incoming funds
would be mixed together (bad), and Mallory and Maude might learn about
the relationship between Alice and Bob (also bad).

Unfortunately, Alice and Bob are in a place where they can't
communicate (maybe Bob has no cell service). There is no way for Bob
to send a message like "I'm making a request on address_index N,
Alice, please use a different index for your request."

The cosigner_index solves this. When they set up the wallet, Alice and
Bob agree to always use a different value for the cosigner_index. That
way, addresses from Alice will never overlap with addresses from Bob,
since they are on different branches. Doing it this way adds privacy
and doesn't cost anything.

With this added in, your path would be:

m / purpose' / wallet' / coin_type / cosigner_index / change / address_index

XPUB's generated from your wallet would then be compatible with XPUB's
generated by other multi-sig wallets like CoPay, since the
(cosigner_index / change / address_index) structure stays the same.

-William Swanson

More information about the bitcoin-dev mailing list