Digitaal Vertrouwen - de werking van Bitcoin en de Blockchain uitgelegd door Arnoud Warmerdam -...
-
Upload
dutchchain -
Category
Internet
-
view
391 -
download
0
Transcript of Digitaal Vertrouwen - de werking van Bitcoin en de Blockchain uitgelegd door Arnoud Warmerdam -...
Digitaal vertrouwenArnoud Warmerdam
Teamleden
Alternatieve serie
Alternatieve cryptocurrency
begin jaren ‘80
Lupo & Cannell
script/formule
Bedenkers
2008
“Satoshi Nakamoto”
whitepaper, protocol en
software
“Mexican Slayride” (part 1)
23 januari 1983
Pilot episode
3 januari 2009:
block 0
9 januari 2009:
Bitcoin software versie 0.1 en
block 1
Genesis block
1/week 1/10 min
Keten
#1
#2
#3
#4
#5
0
1
2
3
4
Lengte serie
1983-1987
98 episodes
2009-????
351.020 blocks
31,5 GigaByte
14.028.150 Bitcoins
Structuur episode
THE END
INTRO
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
Creatie eerste Bitcoins
transactie
Coinbase: 50 Face: 50
50 btc
uituitin
Block 0
Eerste transactie tussen gebruikers
transactie
inFace: 50 Hannibal: 10
10 btc
uituit
uit Face: 40
Block 1
Netwerk
Node types
Wallet node
Network node
Full Blockchain node
Mining node
Simpel netwerk
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
Nodes
Mining fee
transactie
inHannibal: 10
Hannibal: 5,9999
4 btc
uituit
uit
Murdock: 4
fee: 0,0001 (coinbase)uit
Block 2
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
Hashing
Hashing
origineel hash
- makkelijk te berekenen/valideren
Eigenschappen hash
- makkelijk te berekenen/valideren
- onmogelijk terug te rekenen
Eigenschappen hash
- makkelijk te berekenen/valideren
- onmogelijk terug te rekenen
- zelfde input, zelfde output
Eigenschappen hash
- makkelijk te berekenen/valideren
- onmogelijk terug te rekenen
- zelfde input, zelfde output
- output altijd even lang
Eigenschappen hash
- makkelijk te berekenen/valideren
- onmogelijk terug te rekenen
- zelfde input, zelfde output
- output altijd even lang
- effectief uniek
Eigenschappen hash
- makkelijk te berekenen/valideren
- onmogelijk terug te rekenen
- zelfde input, zelfde output
- output altijd even lang
- effectief uniek
- output volledig onvoorspelbaar
Eigenschappen hash
Hashing (SHA256)
text hash
“NBA test” fd23c3a4b41c13f2 55c780c12bc6e5dd 3a240bc141809f71 113b50fb806faa32
“NBA Test” 55cae5b33afc239f 4df9c70a821ec097 fa2868ddd428538e 267fef02610f2dcb
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
Nonces
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
Difficulty target
Zon: 2197 counts/jaar
Thermodynamica
Uitbetaling mining fee
transactie
inCoinbase: 50,0001 Face: 50,0001
50,0001 btc
uituit
Block 2
- start: 50 BTC / block
Mining opbrengsten
- start: 50 BTC / block
- halveert elke 210.000 blocks
Mining opbrengsten
- start: 50 BTC / block
- halveert elke 210.000 blocks
- huidig: 25 BTC / block
Mining opbrengsten
- start: 50 BTC / block
- halveert elke 210.000 blocks
- huidig: 25 BTC / block
- huidige koers: € 234,-
Mining opbrengsten
Opbrengsten per block
25 x € 234,-
€ 5.850,-
COMES TOGETHER
I LOVE IT WHENa Block
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
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
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
Wallet
wallet
Deterministische wallet
deterministische wallet
Private keys:
Absolute geheimhouding
Private keys:
1. Een private key is een geheim dat nooit dient te worden prijsgegeven aan derden.
Absolute geheimhouding
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
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
Private key
Private key
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
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
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
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
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
Trapdoor
Trapdoor algoritmes
origineel
afgeleide
origineel
afgeleide
Elliptic Curve Digital Signature Algorithm
y2 mod p = (x3+7) mod p
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
Public address (‘bankrekeningnummer’)
publickey
privatekey
publicaddress…
publickey
privatekey
publicaddress…
ECDSA SHA256 RIPEMD160
Berichten (transacties) signeren
messageprivatekey
privatekey
signatureNB:Versimpeldeomschrijving,technisch nietcorrect!
+
message publickey
publickey
signature +
messagesignature ++
Is Bitcoin veilig?
Digitaal vertrouwen
Is Bitcoin veilig?
- met ‘brute kracht’ private key raden is ondoenlijk
Digitaal vertrouwen
Is Bitcoin veilig?
- met ‘brute kracht’ private key raden is ondoenlijk
- quantum computers zouden ECDSA kunnen breken
Digitaal vertrouwen
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
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
Digitaal vertrouwen
Conclusie:
- op dit moment veilig
- Bitcoin kan zich in de toekomst relatief makkelijk aanpassen
- reputatie
- historie
- contracten
- wetten en regels
- arbitrage
- sancties
Klassiek vertrouwen
Bitcoin: digitaal vertrouwen
- regels zijn gevat in algoritmes
- geen arbitrage
- volledige transparantie
- absolute geheimhouding
- combinatie geheimhouding en transparantie
- decentraal netwerk
- consensus dmv cryptografisch bewijs
Marktkapitalisatie Bitcoin:
€ 3.259.666.455,-(op 6 april 2015)
Digitaal vertrouwen
Digitaal vertrouwen!