Multi Sig Sub Keys

3

3

When talking about HD (BIP-32?) wallets, I hear talk of Multi Sig and Key Derivation / Chains. Is it possible to mix these two concepts?

e.g. I want to store the majority of my coins with a 2 of 3 multi sig wallet, but would like to store a small subset of coins in a child key derived from the 2 of 3 wallet such that if I the child key was compromised, I could use the parent 2 of 3 wallet to spend those funds.

Is this possible or am I speaking gibberish?

zanegray

Posted 2015-06-04T03:10:37.230

Reputation: 133

I think Copay does this.Natanael 2015-06-04T08:59:40.360

I donwloaded Copay on my Android device because I heard rumors as well, but could not figure out how.zanegray 2015-06-04T22:21:08.920

configure it in multisig mode with several linked walletsNatanael 2015-06-05T01:46:42.957

Answers

6

Yes, it's called HDM (Hierarchical-Deterministic-Multisig).

There's no standard, per se, and the main proponent (to the best of my knowledge) is/has been Vitalik Buterin, of Ethereum/Bitcoin Magazine fame.

There's code in the Python pybitcointools library which allows one to implement this on a low level. The functions are called:

  1. bip32_hdm_script and
  2. bip32_hdm_addr

The format is: bip32_hdm_script([xprv1, xprv2, xprv3...], (0, 1..)), where the xprvs are as a list, and the integers proceeding it represent path derivation (NOTE: the ints must be a tuple). So, 0,1 means k/0/1. Use 1+2**31 for 1H. This function returns the multi-sig redeem script, so you'll pipe it into bip32_hdm_addr (which simply returns the p2sh addresses)

Of course you'll also use the script to sign transactions. There's a useful fork of pybitcointools available with added functionality and regular updates, which could be more useful in this endeavor (vs the sporadically updated source library).


A similar question - Clarification of BIP32 hierarchical deterministic multisig scripts - was recently asked and answered by me too

Wizard Of Ozzie

Posted 2015-06-04T03:10:37.230

Reputation: 4 535

Thank you for the detailed answer... It looks like I have some reading to do. Do you know if there is a wallet that implements this functionality?zanegray 2015-06-04T22:20:17.680

Possibly Electrum 2.0Wizard Of Ozzie 2015-06-04T22:21:10.533

@zanegray In addition to Electrum 2.x (which I can confirm supports HDM), there's also mSIGNA and Armory (although Armory is not hierarchical/BIP-32 yet). The latter two both require a Bitcoin Core node, for better or worse. There are plenty of online multisig wallets which use BIP-32/39 concepts to achieve 2fa, but it doesn't sound like that's what you're looking for....Christopher Gurnee 2015-06-05T00:17:29.607

@zanegray Check out the edit referencing a similar questionWizard Of Ozzie 2015-06-05T21:45:12.910