Multi-Signature Crypto-Wallets: Nakov at Blockchain Berlin 2018
Speaker: Dr. Svetlin Nakov (co-founder of SoftUni)
Multisig Wallets. Sign / Execute Transactions. Implementation in Bitcoin and Ethereum
Single-User-Managed Wallets: Problems
Multi-Signature Wallets: Concepts
Multi-Signature Wallets in Bitcoin
Multi-Signature Wallets in Ethereum
The Gnosis Multisig Wallet: Demo
Slides, demos and videos: https://nakov.com/blog/2018/09/26/speaker-at-the-blockchain-technology-conference-2018-berlin/
3. 3
Technical advisor @ LockChain / LockTrip: https://locktrip.com
Raised ~ 10.000 ETH in token sale (Sep-Nov 2017)
Currently LOC token holders book hotels @ 20-30% better price
Head of blockchain education (Jan-June 2018) @ Academy
School of Blockchain: https://academytoken.com
Raised ~ 48M USD in token sale (Jan-Apr 2018)
Tech advisor for blockchain crypto startups:
Tokenize Exchange, Bountie, Weidex, IRIS Payments Solutions,
Aeternity Ventures, FFQuest
Nakov – Blockchain & Crypto Projects
4. 4
Book "Practical Cryptography for Developers"
GitHub:
https://github.com
/nakov/practical-
cryptography-for-
developers-book
Official site:
https://cryptobook.
nakov.com
5. Table of Contents
5
1. Single-User-Managed Wallets: Problems
2. Multi-Signature Wallets: Concepts
3. Multi-Signature Wallets in Bitcoin
4. Multi-Signature Wallets in Ethereum
5. The Gnosis Multisig Wallet: Demo
6. 6
Scenario: managing a significant amount of crypto assets:
E.g. the funds collected during an ICO
Problems with single-user-managed wallets:
Lost key / lost password / lost PIN / lost mnemonic phrase
Stolen / compromised / hacked key
Illegal activities / intentional fraud
Accident with the wallet owner
Single-User-Managed Wallets: Problems
7. 7
A private key can be split into
shares
E.g. using the Shamir's Secret
Sharing Scheme / Lagrange
interpolation polynomial
Sample split scheme:
2-of-3 (any 2 shares out of 3)
3-of-5 (any 3 shares out of 5)
Demo: bitaddress.org
Split the Private Key
8. 8
A multi-signature wallet / multi-signature address
Holds assets, spendable by N-of-M signatures
E.g. 2-of-3 means "at least 2 signatures out of 3 owners"
Creating a multisig wallet
Specify the owners (public keys / addresses) and threshold
Submit new transaction for multi-signing
Sign (confirm) existing transaction (new or partially signed)
Execute transaction (when enough signatures are collected)
Multi-Signature Wallets: Concepts
9. 9
A Bitcoin multisig address is created by 3 public keys
Create tx sign signed tx sign … broadcast
Multi-Signature Addresses in Bitcoin
10. 10
In Ethereum a multi-signature wallet can be implemented as
Solidity smart contract
Example: the Gnosis multisig wallet contract
https://github.com/gnosis/MultiSigWallet/blob/master/contracts/
MultiSigWallet.sol
Used by Gnosis, Aragon, Bancor, Golem and many others
Golem: 0x7da82c7ab4771ff031b66538d2fb9b0b047f6cf9
Aragon: 0xcafe1a77e84698c83ca8931f54a755176ef75f2c
Multi-Signature Wallets in Ethereum
11. 11
Create new wallet
Submit a transaction to the wallet and sign it
Confirm (co-sign) existing transaction in the wallet
Execute existing transaction (after the signatures are collected)
The Gnosis Multisig Wallet Contract
function MultiSigWallet(address[] owners, uint threshold)
function submitTransaction(address dest, uint val, bytes data)
function confirmTransaction(uint transactionId)
function executeTransaction(uint transactionId)
14. License
This course (slides, examples, demos, videos, homework, etc.)
is licensed under the "Creative Commons Attribution-
NonCommercial-ShareAlike 4.0 International" license
14
15. Trainings @ Software University (SoftUni)
Software University – High-Quality Education,
Profession and Job for Software Developers
softuni.org
Software University Foundation
softuni.foundation
Software University @ Facebook
facebook.com/SoftwareUniversity
Software University Forums
forum.softuni.bg