Digitaal Vertrouwen - de werking van Bitcoin en de Blockchain uitgelegd door Arnoud Warmerdam -...

74
Digitaal vertrouwen Arnoud W ar merdam [email protected]

Transcript of Digitaal Vertrouwen - de werking van Bitcoin en de Blockchain uitgelegd door Arnoud Warmerdam -...

Page 1: Digitaal Vertrouwen - de werking van Bitcoin en de Blockchain uitgelegd door Arnoud Warmerdam - Warpnet

Digitaal vertrouwenArnoud Warmerdam

[email protected]

Page 2: Digitaal Vertrouwen - de werking van Bitcoin en de Blockchain uitgelegd door Arnoud Warmerdam - Warpnet

Teamleden

Page 3: Digitaal Vertrouwen - de werking van Bitcoin en de Blockchain uitgelegd door Arnoud Warmerdam - Warpnet
Page 4: Digitaal Vertrouwen - de werking van Bitcoin en de Blockchain uitgelegd door Arnoud Warmerdam - Warpnet

Alternatieve serie

Page 5: Digitaal Vertrouwen - de werking van Bitcoin en de Blockchain uitgelegd door Arnoud Warmerdam - Warpnet

Alternatieve cryptocurrency

Page 6: Digitaal Vertrouwen - de werking van Bitcoin en de Blockchain uitgelegd door Arnoud Warmerdam - Warpnet

begin jaren ‘80

Lupo & Cannell

script/formule

Bedenkers

2008

“Satoshi Nakamoto”

whitepaper, protocol en

software

Page 7: Digitaal Vertrouwen - de werking van Bitcoin en de Blockchain uitgelegd door Arnoud Warmerdam - Warpnet

“Mexican Slayride” (part 1)

23 januari 1983

Pilot episode

Page 8: Digitaal Vertrouwen - de werking van Bitcoin en de Blockchain uitgelegd door Arnoud Warmerdam - Warpnet

3 januari 2009:

block 0

9 januari 2009:

Bitcoin software versie 0.1 en

block 1

Genesis block

Page 9: Digitaal Vertrouwen - de werking van Bitcoin en de Blockchain uitgelegd door Arnoud Warmerdam - Warpnet

1/week 1/10 min

Keten

#1

#2

#3

#4

#5

0

1

2

3

4

Page 10: Digitaal Vertrouwen - de werking van Bitcoin en de Blockchain uitgelegd door Arnoud Warmerdam - Warpnet

Lengte serie

1983-1987

98 episodes

2009-????

351.020 blocks

31,5 GigaByte

14.028.150 Bitcoins

Page 11: Digitaal Vertrouwen - de werking van Bitcoin en de Blockchain uitgelegd door Arnoud Warmerdam - Warpnet

Structuur episode

THE END

INTRO

Page 12: Digitaal Vertrouwen - de werking van Bitcoin en de Blockchain uitgelegd door Arnoud Warmerdam - Warpnet

Structuur block

Merkle root

time

nonceversion

previous block di culty target

transactie

coinbase

SHA-256

SHA-256

transactie

transactie

SHA-256

transactie

transactie

SHA-256

SHA-256

transactie

transactie

SHA-256

Page 13: Digitaal Vertrouwen - de werking van Bitcoin en de Blockchain uitgelegd door Arnoud Warmerdam - Warpnet

Creatie eerste Bitcoins

transactie

Coinbase: 50 Face: 50

50 btc

uituitin

Block 0

Page 14: Digitaal Vertrouwen - de werking van Bitcoin en de Blockchain uitgelegd door Arnoud Warmerdam - Warpnet

Eerste transactie tussen gebruikers

transactie

inFace: 50 Hannibal: 10

10 btc

uituit

uit Face: 40

Block 1

Page 15: Digitaal Vertrouwen - de werking van Bitcoin en de Blockchain uitgelegd door Arnoud Warmerdam - Warpnet

Netwerk

Page 16: Digitaal Vertrouwen - de werking van Bitcoin en de Blockchain uitgelegd door Arnoud Warmerdam - Warpnet

Node types

Wallet node

Network node

Full Blockchain node

Mining node

Page 17: Digitaal Vertrouwen - de werking van Bitcoin en de Blockchain uitgelegd door Arnoud Warmerdam - Warpnet

Simpel netwerk

Page 18: Digitaal Vertrouwen - de werking van Bitcoin en de Blockchain uitgelegd door Arnoud Warmerdam - Warpnet

Gespecialiseerd netwerk

transactie

in uituit

Merkle root

time

nonceversion

previous block di�culty target

transactie

coinbase

SHA-256

SHA-256

transactie

transactie

SHA-256

transactie

transactie

SHA-256

SHA-256

transactie

transactie

SHA-256

X

Page 19: Digitaal Vertrouwen - de werking van Bitcoin en de Blockchain uitgelegd door Arnoud Warmerdam - Warpnet

Nodes

Page 20: Digitaal Vertrouwen - de werking van Bitcoin en de Blockchain uitgelegd door Arnoud Warmerdam - Warpnet

Mining fee

transactie

inHannibal: 10

Hannibal: 5,9999

4 btc

uituit

uit

Murdock: 4

fee: 0,0001 (coinbase)uit

Block 2

Page 21: Digitaal Vertrouwen - de werking van Bitcoin en de Blockchain uitgelegd door Arnoud Warmerdam - Warpnet

Mining

Merkle root

time

nonceversion

previous block di culty target

transactie

coinbase

SHA-256

SHA-256

transactie

transactie

SHA-256

transactie

transactie

SHA-256

SHA-256

transactie

transactie

SHA-256

Page 22: Digitaal Vertrouwen - de werking van Bitcoin en de Blockchain uitgelegd door Arnoud Warmerdam - Warpnet

Hashing

Page 23: Digitaal Vertrouwen - de werking van Bitcoin en de Blockchain uitgelegd door Arnoud Warmerdam - Warpnet

Hashing

origineel hash

Page 24: Digitaal Vertrouwen - de werking van Bitcoin en de Blockchain uitgelegd door Arnoud Warmerdam - Warpnet

- makkelijk te berekenen/valideren

Eigenschappen hash

Page 25: Digitaal Vertrouwen - de werking van Bitcoin en de Blockchain uitgelegd door Arnoud Warmerdam - Warpnet

- makkelijk te berekenen/valideren

- onmogelijk terug te rekenen

Eigenschappen hash

Page 26: Digitaal Vertrouwen - de werking van Bitcoin en de Blockchain uitgelegd door Arnoud Warmerdam - Warpnet

- makkelijk te berekenen/valideren

- onmogelijk terug te rekenen

- zelfde input, zelfde output

Eigenschappen hash

Page 27: Digitaal Vertrouwen - de werking van Bitcoin en de Blockchain uitgelegd door Arnoud Warmerdam - Warpnet

- makkelijk te berekenen/valideren

- onmogelijk terug te rekenen

- zelfde input, zelfde output

- output altijd even lang

Eigenschappen hash

Page 28: Digitaal Vertrouwen - de werking van Bitcoin en de Blockchain uitgelegd door Arnoud Warmerdam - Warpnet

- makkelijk te berekenen/valideren

- onmogelijk terug te rekenen

- zelfde input, zelfde output

- output altijd even lang

- effectief uniek

Eigenschappen hash

Page 29: Digitaal Vertrouwen - de werking van Bitcoin en de Blockchain uitgelegd door Arnoud Warmerdam - Warpnet

- makkelijk te berekenen/valideren

- onmogelijk terug te rekenen

- zelfde input, zelfde output

- output altijd even lang

- effectief uniek

- output volledig onvoorspelbaar

Eigenschappen hash

Page 30: Digitaal Vertrouwen - de werking van Bitcoin en de Blockchain uitgelegd door Arnoud Warmerdam - Warpnet

Hashing (SHA256)

text hash

“NBA test” fd23c3a4b41c13f2 55c780c12bc6e5dd 3a240bc141809f71 113b50fb806faa32

“NBA Test” 55cae5b33afc239f 4df9c70a821ec097 fa2868ddd428538e 267fef02610f2dcb

Page 31: Digitaal Vertrouwen - de werking van Bitcoin en de Blockchain uitgelegd door Arnoud Warmerdam - Warpnet

Mining

Merkle root

time

nonceversion

previous block di culty target

transactie

coinbase

SHA-256

SHA-256

transactie

transactie

SHA-256

transactie

transactie

SHA-256

SHA-256

transactie

transactie

SHA-256

Page 32: Digitaal Vertrouwen - de werking van Bitcoin en de Blockchain uitgelegd door Arnoud Warmerdam - Warpnet

Nonces

Page 33: Digitaal Vertrouwen - de werking van Bitcoin en de Blockchain uitgelegd door Arnoud Warmerdam - Warpnet

text hash kans 1 op

NBA 12 --> 00b53718e3c95111 256 e4c28093ee890068 665a634967e77a35 2cfbac7891c45c17

NBA 2.960 --> 0006ea7626740791 4.096

NBA 390.904 --> 00003c6d59f12e85 65.536

NBA 1.331.724 --> 0000043fd0302f60 1.048.576

NBA 1.474.606 --> 000000a43c64cc41 16.777.216

Proof of work

Page 34: Digitaal Vertrouwen - de werking van Bitcoin en de Blockchain uitgelegd door Arnoud Warmerdam - Warpnet

Difficulty target

Page 35: Digitaal Vertrouwen - de werking van Bitcoin en de Blockchain uitgelegd door Arnoud Warmerdam - Warpnet

Zon: 2197 counts/jaar

Thermodynamica

Page 36: Digitaal Vertrouwen - de werking van Bitcoin en de Blockchain uitgelegd door Arnoud Warmerdam - Warpnet

Uitbetaling mining fee

transactie

inCoinbase: 50,0001 Face: 50,0001

50,0001 btc

uituit

Block 2

Page 37: Digitaal Vertrouwen - de werking van Bitcoin en de Blockchain uitgelegd door Arnoud Warmerdam - Warpnet

- start: 50 BTC / block

Mining opbrengsten

Page 38: Digitaal Vertrouwen - de werking van Bitcoin en de Blockchain uitgelegd door Arnoud Warmerdam - Warpnet

- start: 50 BTC / block

- halveert elke 210.000 blocks

Mining opbrengsten

Page 39: Digitaal Vertrouwen - de werking van Bitcoin en de Blockchain uitgelegd door Arnoud Warmerdam - Warpnet

- start: 50 BTC / block

- halveert elke 210.000 blocks

- huidig: 25 BTC / block

Mining opbrengsten

Page 40: Digitaal Vertrouwen - de werking van Bitcoin en de Blockchain uitgelegd door Arnoud Warmerdam - Warpnet

- start: 50 BTC / block

- halveert elke 210.000 blocks

- huidig: 25 BTC / block

- huidige koers: € 234,-

Mining opbrengsten

Page 41: Digitaal Vertrouwen - de werking van Bitcoin en de Blockchain uitgelegd door Arnoud Warmerdam - Warpnet

Opbrengsten per block

25 x € 234,-

€ 5.850,-

Page 42: Digitaal Vertrouwen - de werking van Bitcoin en de Blockchain uitgelegd door Arnoud Warmerdam - Warpnet

COMES TOGETHER

I LOVE IT WHENa Block

Page 43: Digitaal Vertrouwen - de werking van Bitcoin en de Blockchain uitgelegd door Arnoud Warmerdam - Warpnet

Combineren inputs

transactie

in

in

Face: 40 B.A.: 75

75 btc

uituit

uitFace: 50,0001 Face: 15

Block 3

fee: 0,0001 (coinbase)uit

Page 44: Digitaal Vertrouwen - de werking van Bitcoin en de Blockchain uitgelegd door Arnoud Warmerdam - Warpnet

Block explorer

50 40

75

15

10

coinbase

0,0001 coinbase

50,0001

(90,0001)

+0,0001

block 0coinbase

coinbase

block 1 block 2

block 3

5,99994

Page 45: Digitaal Vertrouwen - de werking van Bitcoin en de Blockchain uitgelegd door Arnoud Warmerdam - Warpnet

Combineren inputs

transactie

in

in

Face: 40 B.A.: 75

75 btc

uituit

uitFace: 50,0001 Face: 15

Block 3

fee: 0,0001 (coinbase)uit

Page 46: Digitaal Vertrouwen - de werking van Bitcoin en de Blockchain uitgelegd door Arnoud Warmerdam - Warpnet

Wallet

wallet

Page 47: Digitaal Vertrouwen - de werking van Bitcoin en de Blockchain uitgelegd door Arnoud Warmerdam - Warpnet

Deterministische wallet

deterministische wallet

Page 48: Digitaal Vertrouwen - de werking van Bitcoin en de Blockchain uitgelegd door Arnoud Warmerdam - Warpnet

Private keys:

Absolute geheimhouding

Page 49: Digitaal Vertrouwen - de werking van Bitcoin en de Blockchain uitgelegd door Arnoud Warmerdam - Warpnet

Private keys:

1. Een private key is een geheim dat nooit dient te worden prijsgegeven aan derden.

Absolute geheimhouding

Page 50: Digitaal Vertrouwen - de werking van Bitcoin en de Blockchain uitgelegd door Arnoud Warmerdam - Warpnet

Private keys:

1. Een private key is een geheim dat nooit dient te worden prijsgegeven aan derden.

2. Op basis van de private key wordt een ‘public address’ berekend.

Absolute geheimhouding

Page 51: Digitaal Vertrouwen - de werking van Bitcoin en de Blockchain uitgelegd door Arnoud Warmerdam - Warpnet

Private keys:

1. Een private key is een geheim dat nooit dient te worden prijsgegeven aan derden.

2. Op basis van de private key wordt een ‘public address’ berekend.

3. Uitsluitend de bezitter van de private key kan berichten (zoals Bitcoin transacties) signeren voor dat public address.

Absolute geheimhouding

Page 52: Digitaal Vertrouwen - de werking van Bitcoin en de Blockchain uitgelegd door Arnoud Warmerdam - Warpnet

Private key

Page 53: Digitaal Vertrouwen - de werking van Bitcoin en de Blockchain uitgelegd door Arnoud Warmerdam - Warpnet

Private key

Page 54: Digitaal Vertrouwen - de werking van Bitcoin en de Blockchain uitgelegd door Arnoud Warmerdam - Warpnet

Private key

1 1 1 1 1 0 1 00 0 1 0 0 1 0 11 1 0 0 1 1 0 01 1 1 1 0 1 0 00 0 0 1 1 0 0 11 0 1 0 0 1 1 01 1 1 0 1 0 1 00 1 1 1 1 0 1 1

1 0 0 1 1 1 1 11 1 0 1 0 1 1 01 0 0 0 1 0 1 00 0 0 0 1 0 0 01 1 0 1 1 0 0 01 0 1 0 0 1 0 11 1 0 1 0 0 0 10 0 1 1 0 1 1 0

0 1 1 0 0 0 1 11 0 1 0 1 0 1 10 1 1 1 1 1 0 00 0 1 1 0 0 1 00 1 1 0 1 0 1 00 1 0 0 0 1 0 00 1 0 1 0 0 1 00 1 0 0 1 0 0 0

0 0 1 1 0 1 1 10 1 0 0 0 1 1 11 1 1 1 0 1 1 11 1 0 1 0 0 0 01 1 1 1 0 1 0 10 0 1 1 1 1 0 10 1 0 0 1 1 0 01 0 1 0 0 1 0 1

Page 55: Digitaal Vertrouwen - de werking van Bitcoin en de Blockchain uitgelegd door Arnoud Warmerdam - Warpnet

Private key: binair formaat

1 1 1 1 1 0 1 00 0 1 0 0 1 0 11 1 0 0 1 1 0 01 1 1 1 0 1 0 00 0 0 1 1 0 0 11 0 1 0 0 1 1 01 1 1 0 1 0 1 00 1 1 1 1 0 1 1

1 0 0 1 1 1 1 11 1 0 1 0 1 1 01 0 0 0 1 0 1 00 0 0 0 1 0 0 01 1 0 1 1 0 0 01 0 1 0 0 1 0 11 1 0 1 0 0 0 10 0 1 1 0 1 1 0

0 1 1 0 0 0 1 11 0 1 0 1 0 1 10 1 1 1 1 1 0 00 0 1 1 0 0 1 00 1 1 0 1 0 1 00 1 0 0 0 1 0 00 1 0 1 0 0 1 00 1 0 0 1 0 0 0

0 0 1 1 0 1 1 10 1 0 0 0 1 1 11 1 1 1 0 1 1 11 1 0 1 0 0 0 01 1 1 1 0 1 0 10 0 1 1 1 1 0 10 1 0 0 1 1 0 01 0 1 0 0 1 0 1

Page 56: Digitaal Vertrouwen - de werking van Bitcoin en de Blockchain uitgelegd door Arnoud Warmerdam - Warpnet

Private key: hexadecimaal

1 1 1 1 1 0 1 00 0 1 0 0 1 0 11 1 0 0 1 1 0 01 1 1 1 0 1 0 00 0 0 1 1 0 0 11 0 1 0 0 1 1 01 1 1 0 1 0 1 00 1 1 1 1 0 1 1

1 0 0 1 1 1 1 11 1 0 1 0 1 1 01 0 0 0 1 0 1 00 0 0 0 1 0 0 01 1 0 1 1 0 0 01 0 1 0 0 1 0 11 1 0 1 0 0 0 10 0 1 1 0 1 1 0

0 1 1 0 0 0 1 11 0 1 0 1 0 1 10 1 1 1 1 1 0 00 0 1 1 0 0 1 00 1 1 0 1 0 1 00 1 0 0 0 1 0 00 1 0 1 0 0 1 00 1 0 0 1 0 0 0

0 0 1 1 0 1 1 10 1 0 0 0 1 1 11 1 1 1 0 1 1 11 1 0 1 0 0 0 01 1 1 1 0 1 0 10 0 1 1 1 1 0 10 1 0 0 1 1 0 01 0 1 0 0 1 0 1

F A2 5C CF 41 9A 6E A7 B

9 FD 68 A0 8D 8A 5D 13 6

6 3A B7 C3 26 A4 45 24 8

3 74 7F 7D 0F 53 D4 CA 5

Page 57: Digitaal Vertrouwen - de werking van Bitcoin en de Blockchain uitgelegd door Arnoud Warmerdam - Warpnet

FA25CCF49FD68A08

19A6EA7BD8A5D136

3747F7D063AB7C32

F53D4CA56A445248

Private key: hexadecimaal

F A2 5C CF 41 9A 6E A7 B

9 FD 68 A0 8D 8A 5D 13 6

6 3A B7 C3 26 A4 45 24 8

3 74 7F 7D 0F 53 D4 CA 5

Page 58: Digitaal Vertrouwen - de werking van Bitcoin en de Blockchain uitgelegd door Arnoud Warmerdam - Warpnet

Decimaal:113.145.000.024.396.601.903.642.215.847.186.050.526.428.259.473.235.057.017.621.237.640.478.262.055.496

Compressed WIF formaat:5KiTGUqw6rkGhc3FsqZY7fJy1W6Mrtx3jciPZg1u99vZH8Avfno

Compressed WIF als QR-code:

Private key: decimaal en WIF, QR-code

Page 59: Digitaal Vertrouwen - de werking van Bitcoin en de Blockchain uitgelegd door Arnoud Warmerdam - Warpnet

Trapdoor

Page 60: Digitaal Vertrouwen - de werking van Bitcoin en de Blockchain uitgelegd door Arnoud Warmerdam - Warpnet

Trapdoor algoritmes

origineel

afgeleide

origineel

afgeleide

Page 61: Digitaal Vertrouwen - de werking van Bitcoin en de Blockchain uitgelegd door Arnoud Warmerdam - Warpnet

Elliptic Curve Digital Signature Algorithm

y2 mod p = (x3+7) mod p

Page 62: Digitaal Vertrouwen - de werking van Bitcoin en de Blockchain uitgelegd door Arnoud Warmerdam - Warpnet

Elliptic Curve Digital Signature Algorithm

y2 mod p = (x3+7) mod pECDSA:- gebaseerd op coördinaten en afstanden op een elliptische curve binnen een extreem groot vlak- de private key is een afstand- de public key is de coördinaat op die afstand (vanaf het beginpunt gedefiniëerd in ‘secp256k1’)- alleen optellen en vermenigvuldigen mogelijk- hierdoor kun je ‘vooruit’, maar niet ‘terug’- alleen mbv de private key kun je een coördinaat kiezen die een relatie legt tussen een message(hash) en de public key

Page 63: Digitaal Vertrouwen - de werking van Bitcoin en de Blockchain uitgelegd door Arnoud Warmerdam - Warpnet

Public address (‘bankrekeningnummer’)

publickey

privatekey

publicaddress…

publickey

privatekey

publicaddress…

ECDSA SHA256 RIPEMD160

Page 64: Digitaal Vertrouwen - de werking van Bitcoin en de Blockchain uitgelegd door Arnoud Warmerdam - Warpnet

Berichten (transacties) signeren

messageprivatekey

privatekey

signatureNB:Versimpeldeomschrijving,technisch nietcorrect!

+

message publickey

publickey

signature +

messagesignature ++

Page 65: Digitaal Vertrouwen - de werking van Bitcoin en de Blockchain uitgelegd door Arnoud Warmerdam - Warpnet

Is Bitcoin veilig?

Digitaal vertrouwen

Page 66: Digitaal Vertrouwen - de werking van Bitcoin en de Blockchain uitgelegd door Arnoud Warmerdam - Warpnet

Is Bitcoin veilig?

- met ‘brute kracht’ private key raden is ondoenlijk

Digitaal vertrouwen

Page 67: Digitaal Vertrouwen - de werking van Bitcoin en de Blockchain uitgelegd door Arnoud Warmerdam - Warpnet

Is Bitcoin veilig?

- met ‘brute kracht’ private key raden is ondoenlijk

- quantum computers zouden ECDSA kunnen breken

Digitaal vertrouwen

Page 68: Digitaal Vertrouwen - de werking van Bitcoin en de Blockchain uitgelegd door Arnoud Warmerdam - Warpnet

Is Bitcoin veilig?

- met ‘brute kracht’ private key raden is ondoenlijk

- quantum computers zouden ECDSA kunnen breken

- er zijn alternatieve algoritmes (bijv. Lamport)

Digitaal vertrouwen

Page 69: Digitaal Vertrouwen - de werking van Bitcoin en de Blockchain uitgelegd door Arnoud Warmerdam - Warpnet

Is Bitcoin veilig?

- met ‘brute kracht’ private key raden is ondoenlijk

- quantum computers zouden ECDSA kunnen breken

- er zijn alternatieve algoritmes (bijv. Lamport)

- Bitcoin protocol staat vervangen algoritmes toe

Digitaal vertrouwen

Page 70: Digitaal Vertrouwen - de werking van Bitcoin en de Blockchain uitgelegd door Arnoud Warmerdam - Warpnet

Digitaal vertrouwen

Conclusie:

- op dit moment veilig

- Bitcoin kan zich in de toekomst relatief makkelijk aanpassen

Page 71: Digitaal Vertrouwen - de werking van Bitcoin en de Blockchain uitgelegd door Arnoud Warmerdam - Warpnet

- reputatie

- historie

- contracten

- wetten en regels

- arbitrage

- sancties

Klassiek vertrouwen

Page 72: Digitaal Vertrouwen - de werking van Bitcoin en de Blockchain uitgelegd door Arnoud Warmerdam - Warpnet

Bitcoin: digitaal vertrouwen

- regels zijn gevat in algoritmes

- geen arbitrage

- volledige transparantie

- absolute geheimhouding

- combinatie geheimhouding en transparantie

- decentraal netwerk

- consensus dmv cryptografisch bewijs

Page 73: Digitaal Vertrouwen - de werking van Bitcoin en de Blockchain uitgelegd door Arnoud Warmerdam - Warpnet

Marktkapitalisatie Bitcoin:

€ 3.259.666.455,-(op 6 april 2015)

Digitaal vertrouwen

Page 74: Digitaal Vertrouwen - de werking van Bitcoin en de Blockchain uitgelegd door Arnoud Warmerdam - Warpnet

Digitaal vertrouwen!