A New Multisig Standard and Nunchuk 1.0

In February, we jointly disclosed a vulnerability affecting Bitcoin multisig wallets with Shift Crypto.

We explained how the vulnerability highlighted a fundamental problem with Bitcoin multisig: there was no standard on how to set up multisig wallets securely, particularly between different vendors.

The lack of standard meant that multisig wallets were vulnerable to privacy leaks, theft or ransom attacks. It also meant multisig solutions were often not interoperable, making migration from one setup to another highly difficult. Similarly, wallet recovery has been a major nightmare.

To address these concerns, we have spent the last several months working closely with various Bitcoin contributors and hardware vendors, such as Coinkite, Shift Crypto, Cobo Vault (now rebranded as Keystone Wallet), Trezor and Ledger. Creating an industry standard is not an easy task, particularly because there are many interested parties and conflicting opinions on what the best solutions are. Thankfully, we were able to overcome these challenges.

Today, we are excited to share that a new standard on multisig has recently been finalized: BIP 129 — Bitcoin Secure Multisig Setup (BSMS). In the future, multisig wallets set up using BSMS will be safer, more private, and interoperable. We look forward to seeing BSMS being implemented in the wild.

Nunchuk 1.0

  • Interoperable wallet backups using BSMS format
  • Enhanced signing option with Nunchuk companion signer
  • Improved fee rates with Mempool API

Interoperable wallet backups using BSMS format

BSMS defines a common, interoperable configuration file to register and back up multisig wallets. As of 1.0 and higher, Nunchuk will follow the BSMS format for wallet backups. We will roll out support for the remaining portions of the BSMS standard as soon as the vendors are ready.

Example: a BSMS backup file for a 1-of-3 Native Segwit multisig wallet

Nunchuk companion signer

Hardware signers provide the best security when it comes to Bitcoin wallets. We strongly, strongly encourage users to use hardware signers in their multisig setups. However, we realize that to many, this solution is sometimes not possible / cost-prohibitive.

To that end, we have added the Nunchuk companion signer. The Nunchuk companion signer is a software signer. Its seed is created using Bitcoin Core’s GetStrongRandBytes() function; its private keys are managed inside the client application itself. The signer can be recovered via a standard BIP39 mnemonic phrase.

The Nunchuk companion signer can function on its own in a singlesig wallet, or be combined with other hardware signers in a multisig wallet.

We don’t recommend using the Nunchuk companion signer as the primary signer (hence the label “companion”). Instead, we recommend setting up multisig wallets in such a way that give hardware signers majority or complete control of the wallet, and optionally use the Nunchuk software signer as a backup signer.

Improved fee rates with Mempool API

We are a big fan of the Mempool project. Nunchuk 1.0 uses the Mempool API to provide better fee estimates.

This is in addition to custom fee rate and replace-by-fee features that already exist from previous versions of Nunchuk.

Open-sourcing the Nunchuk client

Last but not least, we are happy to announce that we will soon make the rest of our application source code available. Last November, we already open-sourced libnunchuk, the core engine behind our app. With Nunchuk out of beta and the introduction of the companion signer, it is imperative that we open-source the rest of our client. The code will be made available on GitHub on June 3rd. Stay tuned!

*About Nunchuk: Launched on October 31, 2020, Nunchuk is a product of Enigmo, a privately-held company headquartered in Singapore. Our mission is to bring multisig technology to as many people as possible, and Nunchuk is the first step. Visit our website at https://nunchuk.io or follow us on Twitter @nunchuk_io.

Bitcoin multisig made easy @ nunchuk.io

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store