bitcoin hd wallet technologies part 2

16

Upload: blocktrail

Post on 12-Aug-2015

225 views

Category:

Technology


0 download

TRANSCRIPT

Wallet Technologies- a semi-technical look at -

Private Keys, HD Wallets & MultiSig

Ruben de Vries - CTO, BlockTrail@rubensayshi

2015 – the real year of MultiSig and HD wallets

- A really big number - between 1 and 2^256

115792089237316195423570985008687907852837564279074904382605163141518161494400

^---- ~ 11 with 77 0's 1000000000000

1000000000 One million -> 1000000

What is a Private Key?

- Hierarchical Deterministic Wallet - BIP32

HD Wallet

- Problem: all transactions are public - Problem: reuse addresses = bad for privacy - Solution: MANY private keys

HD Wallet

- Problem: we need to backup every new private keys - Solution: generate 100 private keys in advance

- Problem: safe backups are a lot of work - Problem: we're lazy

HD Wallet

- More Problems (that HD wallets solve): - we want to have fine grained control over who has access to wallets - we want to let a 3rd party generate addresses for us

HD Wallet

- Private Key is a number

- So if we +1 that number, we have a new Private Key - with a new address

- Start from a 'Master Key' - easy to reproduce all keys from there - to get key 14474 you just 'Master Key' + 14474

- In reality it's more like multiplying than adding

HD Wallet to the rescue

Between 1 and 115792089237316195423570985008687907852837564279074904382605163141518161494400

- Give your mining pool M/500 and they can generate new addresses to do payouts; - M/500/1, M/500/2, M/500/3

This works for public keys too!!

Hierarchical Deterministic Keys

- BIP39 – mnemonics “region clock summer pig account pistol under maple trash organ idea laugh”

words bits 12 128 16 192 24 256

HD Wallet; the Master Seed

Mnemonic:“region clock summer pig account pistol under maple trash organ idea laugh”

Hex:bba8844939bb875c81d956ddb723180fee1217596c5bb8be2826c743e3922fb9bdfad8b6d8afb09b23ac4fe1e209c4c5c93539165804309c388f9c381903ebfd

Int:9828461018926832005424782954683011900039932150440657214006151158976303042378438730816707253402065944830578115238278691148000917091398156914557840747916285

Bin:10111011101010001000010001001001001110011011101110000111010111001000000111011001010101101101110110110111001000110001100000001111111011100001001000010111010110010110110001011011101110001011111000101000001001101100011101000011111000111001001000101111101110011011110111111010110110001011011011011000101011111011000010011011001000111010110001001111111000011110001000001001110001001100010111001001001101010011100100010110010110000000010000110000100111000011100010001111100111000011100000011001000000111110101111111101

Mnemonic = human readable representation