What is Multisignature?

multi signature.PNG

We all want to keep our crypto currencies safe and mutisignature (sometimes called multisig) is a way to do just that.

Multisig makes is a requirement for a transaction to have 2 or more signatures before it is executed (the default is one person), it is therefore much more secure than a single signature transaction.

These multisig transactions are often referred to as M-of-N transcations, where M is the number of signatures required and N is the total number of signatures involved in the transaction.

Here are some real life examples of M-of-N multisignatures:

  • 1-of-2: Husband and wife have a joint cash account — the signature of either spouse is sufficient to spend the funds.

  • 2-of-2: Husband and wife have a savings account — both signatures are required to spend the funds, preventing one spouse from spending the money without the approval of the other.

  • 2-of-3: Parents’ savings account for child — the kid can spend the money with the approval of either parent, and money cannot be taken away from the child unless both parents agree.

  • 2-of-2: Two-factor authentication wallet — one private key is on your primary computer, the other on your smartphone — the funds cannot be spent without a signature from both devices. Thus, an attacker must gain access to both devices in order to steal your funds (much more difficult than one device).

  • 3-of-5: Low-trust donation address — five trusted people from a project each hold a private key. Three people are required to actually spend the money but anybody can donate to the project's address. Reduces the risk of embezzlement, hacking/malware, or loss due to a single person losing interest in the project.

Storing multiple keys to an m-of-n wallet in different locations can serve as a backup. For example, in a 2-of-3 multisig wallet, the loss of one of the keys does not result in loss of the entire wallet, since the other two keys can be used to recover the wallet. The redundancy of the backup is the difference n minus m, so for example a 3-of-5 multisig wallet has a redundancy of 2, meaning that the loss of any 2 keys can still be recovered from.

Many well known wallets have implented multisig e.g. Bitcoic Core, Armory, CarbonWallet, Copay, Bitgo, Blocktrail, GreenAddress, Casa, Electrum , etc.

The Hong Kong based exchange Bitfinex used to have a cold storage wallet with a 3-of-6 multisig address 3D2oetdNuZUqQHPJmcMDDHYoqkyNVsFk9r - which held over 141,000 bitcoin in December 2017.

There are a number of downsides associated with multi-sigs. Firstly, it requires a certain amount of technical skills to set one up, as well as keeping the associated private keys secure. Additionally, it has not yet legally established in most places who is the legal custodian of funds placed in a multi-sig. If you ended up getting into disagreements with any of the other holder of the signatures involved you may have trouble getting the other keys back!

As an example of the technical skills required to setup multi-sig - here are the instructions to setup a 2-of-3 multisig address with Bitcoin-Qt:

  1. Create 3 bitcoin addresses (public keys), on whichever devices will be participating, using ‘getnewaddress’ or ‘getaccountaddress’ RPC commands .

  2. Get their public keys using the validateaddress RPC command 3 times.

  3. Then create a 2-of-3 multisig address using addmultisigaddress; e.g.:

    bitcoind addmultisigaddress 2 '["044322868cb17d64dcc22185ae2d4493111d73244c3668f8ac79ecc79c0ba8d30a6756d0fa20157 709af3281cc721c7f53321a8cabda29b77900b7e4fe0174b114","..second pubkey..","..third pubkey.."]'

    ‘addmultisigaddress’ returns the multi-signature address. Remember all the public keys are hexadecimal and will not contain checksums like bitcoin addresses do. You can then send funds into that 2-of-3 transaction using the normal sendtoaddress/sendmany RPC commands.

Previous
Previous

Please don’t buy fake wallet.dat files !

Next
Next

What is a metal seed plate used for?