Understanding multi-sig wallets

Polkassembly
5 min readMay 8, 2022

--

In conventional business, “key person risk” refers to when a company’s success is overly reliant on a single individual. When it comes to handling funds, cryptocurrency businesses face a literal version of this danger. QuadrigaCX, whose customers have been waiting over three years to recuperate $115 million in deposits since the death of founder Gerald Cotten, the sole holder of the cryptographic keys to the exchange’s wallet, may be the most notable example.

Multisignature wallets, thankfully, have a built-in solution to control this type of risk. Abbreviated as multisig, these are cryptocurrency wallets that require the use of two or more private keys to sign and sign a transaction. To access the wallet, multiple cryptographic signatures (a private key’s unique fingerprint) are required.

How does a multisig wallet work?

In contrast to standard cryptocurrency wallets, multisig wallets allow multiple individuals to sign a single transaction. This setup is particularly useful in situations where a large amount of funds is stored or owned by a group or corporate entity.

For example, a crypto firm offering custodian services would use multisig wallets to prevent employees from going rogue or to simply add an additional layer of protection in case of a hack. Whether the action is malicious or not, multisig wallets make it harder for users to transfer funds as the wallet requires a signature from all or a majority of its owners — depending on the configuration.

A highly complex multisig configuration of the BitGO exchange

Advantages of Multisig wallets

Even if you are not an exchange owner, there are various benefits to using multisig wallets. You might be shocked to learn that even single travellers can benefit from multisigs, so let’s start with the advantages that are particularly appealing to retail customers.

Two Factor authentication

2FA is a method by which a user requires two keys to access funds. Most online platforms already utilize this model by requiring accounts to input a secret code sent to their smartphone after logging in.

When it comes to crypto, investors can use a similar method. For example, you can set a mobile and desktop wallet to sign transactions. Once the transaction is confirmed from both devices, the funds will move.

Security

Security is the biggest advantage of multisig wallets. Users can ensure the security of their assets at all times and evade thefts or hacks just by keeping their crypto on a multisig wallet.

A user who utilizes a 2-of-3 keys configuration and is infected with malware on one particular device cannot lose funds. The hacker cannot steal any assets without having access to at least one more device. Another benefit is that in the case that a user loses or breaks a device by accident, it will still be possible to transfer funds through the two other devices.

Consensus

Multisig wallets create room for consensus, which is especially important in group environments.

An investment group that has, for example, six board members can set up a 4-of-6 key configuration where each member possesses a single key. If the group wishes to make a decision like selling assets to another user, the decision will only be executed if the majority agrees.

Escrow transactions

The 2-of-3 key configuration is once again useful, but this time for escrow transactions. Here is a real-world example of how users can create escrow-like transactions over the blockchain:

If Alice and Bob wish to trade, they can invite a third party named Satoshi as a mutually trusted arbiter. If the deal is that Alice deposits funds into the wallet and Bob sends Alice a physical product in return, they will both provide their signatures once the transaction is complete. If a problem arises (like Bob not respecting the agreement by refusing to send the product), Satoshi can step in and provide his own signature so that Alice can retrieve her deposited money back.

Group participation in governance: A multi-sig account can do everything a regular account can. A multi-sig account could be a council member in Kusama’s governance, where a set of community members could vote as one entity.

Multi-signature accounts cannot be modified after being created. Changing the set of members or altering the threshold is not possible and instead requires the dissolution of the current multi-sig and creation of a new one. As such, multi-sig account addresses are deterministic, i.e. you can always calculate the address of a multi-sig just by knowing the members and the threshold, without the account existing yet. This means one can send tokens to an address that does not exist yet, and if the entities designated as the recipients come together in a new multi-sig under a matching threshold, they will immediately have access to these tokens.

Learn more at https://wiki.polkadot.network/docs/en/learn-accounts#multi-signature-accounts

Generate a Multisig Account

Substrate provides a multisig dispatch function in its Utility pallet. This example generates the address that would correspond to a set of addresses and threshold.

Threshold — The threshold defines the number of signers needed for the approval of any transaction

  • 2 of 3 threshold account
  • 4 of 5 threshold account

How to create a multisig in polkadot.js?

  1. Head to polkadot.js.org/apps/#/accounts
  2. Click the ‘Create multisig’ button available on top right.
  3. In the pop-up, you will find a list of all available signatories.
  4. User can click on any of these accounts that they would like to be a part of the multisig. The selected accounts move to the selected signatories section in the pop-up.
  5. User can then input the threshold they would like to set for the multisig wallet. The threshold is a number less than or equal to the number of accounts selected as signatories for the multisig. These signatories need to approve the extrinsic before it can be executed.
  6. User can also provide a name for the multisig wallet that they are trying to create.
  7. Then click the ‘Create’ button at the bottom right.
  8. The multisig wallet should now be visible in the Accounts tab.

But the multisig account is not yet created on-chain. Polkadot.js just generates the account as it is deterministically generated and it puts in the contacts/signatories we want to have.

So to create the account on-chain, we need to send it the [existential deposit](https://support.polkadot.network/support/solutions/articles/65000168651-what-is-the-existential-deposit-#:~:text=Print&text=On the Polkadot network%2C an,the Existential Deposit (ED).).

  • Choose another account that has enough funds and transfer some balance to the multi-sig account(Minimum of 1 DOT on Polkadot network and 0.0000333333 KSM if the multisig is on the Kusama network)

Here is a detailed video on How to create and use Multisigs.

Multisig wallets are a core part of the decentralized economy and it is important for everyone to understand what they are and how to use them.

If you found this helpful, please subscribe to our Blog and follow us on Twitter.

Adios amigos till next time!

--

--

Polkassembly

Polkassembly is a governance explorer and forum for @polkadotnetwork & @kusamanetwork . We enable open discussions for effective governance.