What is multisig?

Multisig is a technique that allows several public keys to sign for the release of bitcoins. For example, Alice, Bob and Charlie can secure 1 BTC so that the agreement of only two of them is needed to spend it.

When Bitcoin was created, bitcoins could only be secured by using one public key. Using only one public key means that whoever knows the private key associated with that public key can spend the bitcoins it secures.

The no-single-point-of-failure rule, essential to reliable and secure systems, is not respected: the loss or revelation of a private key means the loss of bitcoins for the rightful owner.

A first practical solution for this problem was to use a known cryptographic method called secret sharing. It consists of breaking down a private key into independent parts (called shares). A fixed number of shares (less than the number of existing ones) can be used to reconstruct the private key. That way, the loss or revelation of a single share does not compromise the bitcoins.

However, this does not plugs well with the existing Bitcoin software: you have to use external tools to create and combine shares. Furthermore, in order to spend bitcoins, you have to gather a critical number of shares in one place, meaning that the no-single-point-of-failure rule isn’t yet respected.

The solution was in the Bitcoin Core code all along. Included since its beginning but made non-standard were two script operators allowing the use of multisignature with normal Bitcoin public keys. As the private keys needed to validate a multisignature transactions do not have to be gathered in the same place, security is greatly improved compared to using a single private key or cryptographic shares.

A Bitcoin Improvement Proposal, BIP 11, made this type of transaction standard but limited the maximum number of keys to 3. In December 20th, 2011, BIP 11 support was added to the Bitcoin Core code and in late January 2012, the first BIP 11 type transactions appeared on the blockchain.