Steven Zeiler of Anypay.Global led an awesome group activity last night at the Satoshi Nakamoto Lecture Hall. The topic was multi-signature wallets: how to create them and how to spend from them. The lecture was 60 minutes long and was followed by another 60 minutes of hands-on application. Everyone left with the ability to lock up funds in a unique new type of digital vault: one where the contents can be known at all times, but whose contents can’t be spent without permission from a number of agreeing parties.
“Multi-sig” wallets are also called “M-of-N” wallets. That’s because the creator can specify each of the variables for M (number of keys required to unlock the vault) and N (total number of keys to the vault). A 5-of-7 wallet, for example, would be a wallet that contains 7 keys, of which 5 are required to spend funds.
Where is this applicable?
Say you have a charity organization of 7 people. You raise donations in Bitcoin. If you use a traditional wallet (with 1 private key), you have a problem. Anyone who wants to spend the organization’s money needs the private key. If you’re all sharing the same key, there’s no way to prevent one person from running away with all the money — and there would be no way to tell who did it.
This is a perfect scenario for a multi-sig wallet. Your organization could raise funds in a wallet that requires several of you to sign off on a transaction before funds are sent. Maybe you want to allow majority rule and make it a 4-of-7 wallet, so that even if others disagree on an expenditure, they can be outvoted. Or perhaps you want total consent before any funds are spent. In that case you could create a 7-of-7 wallet. Or maybe you just want anyone in the group to have the ability to spend the money, and you just want to all share access to the same wallet. In that case you can create a 1-of-7 wallet.
Multi-sig wallet addresses are an example of something called “pay-to-script hashes”. These are essentially little bits of code that the bitcoin network has special instructions on how to read. The code is then processed through an algorithm (hashed), and the output is a unique style of public address. You can recognize pay-to-script hashes by the first digit. BTC pay-to-script hashes begin with a 3 (standard BTC addresses begin with a 1). DASH pay-to-script hashes begin with a 7 (standard DASH addresses begin with an X). Look for this next time you make a payment — you’ll see it everywhere. Every time you use Shapeshift, you’re using a pay-to-script hash.
We learned several ways to sign the transactions securely with various degrees of privacy. To try it for yourself, attend the next lecture on this subject by joining the Portsmouth Bitcoin Network on Meetup.com.
Here are some pictures from the lecture: