Estimated reading time: 9 minutes
In this article, I’ll discuss Multi-signature wallet. A multi-signature wallet is also known as a Multisig wallet. You will find this explanation from a very basic level. I will discuss the need for a Multi-Signature wallet, it’s working, the public address generation concept, and the transaction signing flow. And in the end, you will find little discussion on different Multi-Signature wallets like Armory, BitGo, CoPay, Coinbase, and Electrum.
Table of contents
Why Multi-Signature wallet?
A transaction is a transfer of funds between Bitcoin wallets. Bitcoin wallets keep a secret string of letters and numbers called a private key or seed. It is used to sign transactions, providing a mathematical proof that they have come from the wallet owner. The signature secures the transaction from being altered by someone once it has been issued.
Consider, I have 100 bitcoins. All bitcoins are in my Bitcoin wallet. Now, the bitcoin wallet will have one associated private key. If I want to make any transaction or send 50 bitcoins to my friend, I should have that private key. This means, if I have a private key, then only I can make a transaction.
But what if I lost or someone gets access to my wallet’s private key? I lost all the cryptocurrencies which I owned in my wallet.
Multi-Signature technology can help to handle this situation and can improve security for digital currencies.
What is a Multi-Signature wallet?
In a Multi-Signature wallet, instead of 1 private key, there are three keys associated with my wallet. And I can set a rule that says, “You need at least two of three(2-of-3) keys to move funds from this wallet” Hence, I required two keys to make any transaction. Likewise, I can also set rule 3-of-3(three keys needed to complete a transaction).
User can set a rule as per requirements:
Two friends trust each other and want to have a shared account. They both having access to the same funds using a different key(wallet). Anyone can make transactions independently. (Similar to a Joint Account)
You can keep one key on a mobile and another one on a laptop. Both keys are required to transfer funds.
This is similar to Bitrated. Bitrated is a platform that introduces buyers and sellers to arbitrators. It creates a multi-signature wallet shared between all three parties. It needed only two signatures to release the funds. Consider, If both the seller and buyer agree that the transaction is complete, the arbitrator is not required. If the seller or the buyer asks for a dispute resolution, then it’s an arbitrator’s job to decide where to send the funds.
It can be any like 5-of-8, 3-of-6, etc. 1-of-1 defines a single-signature wallet.
From the above explanation, We can overcome two incidents:
- If Eric got access to my one key, he could not access my wallet funds or make any transaction because I set a rule “2-of-3”. According to the rule, Eric requires one more key to access my wallet.
- If I lose my one key and the rule is 2-of-3, I can access my wallet funds and make transactions using the other two keys.
But here, the question is how we will manage or store keys in a secure way?
Here, we are assuming to have three different keys.
I am storing two keys on my mobile, and one is on my laptop. And I have set the rule “2-of-3”. What if Eric will find my mobile?
- Eric will able to access my multi-signature wallet using two keys stored on my mobile.
- I will not be able to access my multi-signature wallet until I found my mobile phone.
Hence, the proper management of keys is a must.
To avoid a single point of failure, We store three different keys on three different devices. For instance,
Key 1 is stored on my mobile.
Key 2 is stored on my laptop.
Key 3 is stored in an offline vault.
Also consider, the 2-of-3 rule for the below scenarios:
- Now, Eric hacks my laptop to get access to Key 2, then also he will not be able to access my multi-signature wallet because he is not having access to Key 1 or Key 3.
- If I lose my mobile, then also I can access my multi-signature wallet using Key 2 and Key 3.
The only thing we should take care of is keeping all the keys on different devices.
Multi-Signature wallet Address Concept
We have seen the primary working mechanism of the Multi-Signature wallet. But still, there are many questions related to addresses, Where to send funds for multi-signature wallets, or How a signature can be done.
First, discuss three terms:
Public Key: A public key is a cryptographic code that allows users to receive crypto-currencies into their accounts.
Private Key: As discussed earlier, a private key is used to send funds and verify transactions. Users have to keep it safe.
Public Address: It is a hashed version of a public key. When a user wants to receive funds, He reveals his public addresses to the other party.
So consider, We want to create a Multi-Signature wallet having three addresses. All three addresses have their public key, private key, and public address.
Address — 1
Public Key 1, Private Key 1, Public Address 1
Address — 2
Public Key 2, Private Key 2, Public Address 2
Address — 3
Public Key 3, Private Key 3, Public Address 3
To generate a multi-signature wallet’s public address, we have to supply the Public key of all three addresses (Public Key 1, Public Key 2, Public Key 3) as an input. Also, define the number of signatures required to make a transaction. For example, here, two signatures are required.
Then, it will generate one public address of a multi-signature wallet, which can be shared with the sender party. All the funds will be received at this address only. With a public address, It also generates a Redeem Script. Redeem script should be saved and shared with all the participants before a payment is made to validate the address’s authenticity.
Now technically, we know how multi-signature wallet addresses are generated.
Multi-Signature wallet Transaction Signing
We are continuing with the above scenario, Address-1 initiating one transaction using a multi-signature wallet(send 10 BTC to any address). Hence, Address-1 will first signed the transaction using its private key(Private Key 1). But to complete a transaction, we require one more signature. So Address-1 shares signed transaction with Address-2 and Address-3. Any one of them will sign the transaction. Hence, we have two signatures as per requirement. This is how the transaction is processed.
Best Multi-Signature wallets
We’ll discuss various multi-signature wallets which are available.
- Armory is an open-source desktop bitcoin wallet.
- Armory is the most secure and allows users to generate and store Bitcoin private keys.
- It supports cold storage in which all private key data is available only on the offline computer. This reduces the attacks.
- It also supports multi-signature. It allows users to create Multi-signature addresses using Lockboxes in an entirely distributed way.
- BitGo wallet is available as a desktop, Web, and Mobile wallet.
- It is the most powerful bitcoin wallet and also supports multi-signature technology.
- It protects your wallet from any single point of failure with BitGo’s multi-signature security and 3-key management.
- Key-1: It is also known as the Client key. The client or user stores it. It is used to initiate and sign a transaction from the client-side.
- Key-2: It is also known as the BitGo key. BitGo holds it. And, BitGo checks if the transaction is satisfying all the policies or not. And sign the transactions initiated by the client.
- Key-3: It is also known as the Backup key. It is stored by the client offline. It is used for disaster recovery purposes or when a user lost his client-key.
- Coinbase is available as a web wallet.
- It is a hosted bitcoin wallet. Here, term hosted — Users don’t need to control private keys; Coinbase will manage all.
- It also provides non-hosted multi-signature wallets where users can control their private keys.
- CoPay is available as a mobile and desktop wallet.
- It is an open-source HD bitcoin wallet. Here HD — Hierarchical Deterministic. HD allows user to back up your wallet via seed phrase, which protects your funds from loss of access.
- It also supports multi-signature. But the user is responsible for storing private keys.
- Electrum is available as a mobile and desktop wallet.
- It is an open-source HD bitcoin wallet.
- It also supports multi-signature and cold storage.
We covered the different Multi-Signature wallet concepts, their working, and various available wallets for use. Here, we can conclude a few things about the Multi-Signature wallet.
- A multi-Signature wallet requires more than one private key to complete transactions. The user can set the number of keys or signatures needed to complete transactions.
- All the keys should be stored on different devices to avoid a single point of failure. For example, the user lost his mobile but can use his wallet via other keys stored on other devices.
- It is also rich in terms of security. For example, if the hacker got the user’s one key, the hacker will not be able to access the wallet because the user has set up the rule like “require two keys” to access or move funds from the wallet.
I hope you will find this article useful.