Upload
others
View
1
Download
0
Embed Size (px)
Citation preview
Gunter Rote, Freie Universitat Berlin EinS@FU: Informatik — Bitcoin, Krypto-Wahrungen, Blockkette 17. 11. 2017
EinS@FUEinfuhrungs- und Orientierungsstudium
Informatik, Teil 2
Gunter RoteFreie Universitat Berlin
Digitales Geld:
Bitcoin und Blockketten
Gunter Rote, Freie Universitat Berlin EinS@FU: Informatik — Bitcoin, Krypto-Wahrungen, Blockkette 17. 11. 2017
Uberblick
• Geld ohne zentrale Kontrolle• Hashfunktionen
– zum Speichern und Wiederfinden von Daten(Hash-Tabellen)
– kryptographische Hashfunktionenzur falschungssicheren Kennzeichnung
• Die Blockkette als Kassenbuch• Verteilte Kontrolle der Blockkette, Schurfen von Bitcoins• Besitz von Bitcoins, asymmetrische Verschlusselung
Ich stelle viele Details vereinfacht dar!
Gunter Rote, Freie Universitat Berlin EinS@FU: Informatik — Bitcoin, Krypto-Wahrungen, Blockkette 17. 11. 2017
Geld
ermoglicht Ubergang von Tauschwirtschaft zu Geldwirtschaft
• Edelmetall → Munzen (Gold, Silber, Kupfer)
• Papiergeld: ursprunglich als Ersatz fur Gold
• heute: Geld gilt kraft Gesetzes.
Gunter Rote, Freie Universitat Berlin EinS@FU: Informatik — Bitcoin, Krypto-Wahrungen, Blockkette 17. 11. 2017
Digitales Geld
Hauptproblem: Daten konnen ohne großen Aufwand beliebigoft kopiert werden.
Zentrale Einlasskontrolle verhindert mehrfache Nutzung.
Eintrittskarte zum Selbstausdrucken
Gunter Rote, Freie Universitat Berlin EinS@FU: Informatik — Bitcoin, Krypto-Wahrungen, Blockkette 17. 11. 2017
Digitales Geld
gibt es schon lange, zum Beispiel
• Kreditkarten, Uberweisung(nicht anonym, unter Kontrolle der Bank)
• GeldKarte(anonym, unter Kontrolle der Bank)
abgeleitet von staatlichem Geld
Gunter Rote, Freie Universitat Berlin EinS@FU: Informatik — Bitcoin, Krypto-Wahrungen, Blockkette 17. 11. 2017
Bitcoin: Das Kassenbuch
A zahlt an B: 5B.
C zahlt an D: 9B.
E zahlt an F : 2B.
G zahlt an D: 3B.
D zahlt an H: 10B.
...
...
...
Transaktionen
Gunter Rote, Freie Universitat Berlin EinS@FU: Informatik — Bitcoin, Krypto-Wahrungen, Blockkette 17. 11. 2017
Bitcoin: Das Kassenbuch
A zahlt an B: 5B.
C zahlt an D: 9B.
E zahlt an F : 2B.
G zahlt an D: 3B.
D zahlt an H: 10B.
...
...
...
Wer verwaltet das Kassenbuch?
Wer stellt sicher, dass dasKassenbuch nicht im Nachhineinmanipuliert wird?
→ Blockkette, Hashfunktionen
Transaktionen
Wie ist sichergestellt, dass nur D uber das Geld verfugen kann,das D gehort? → kryptographische Unterschriften
Gunter Rote, Freie Universitat Berlin EinS@FU: Informatik — Bitcoin, Krypto-Wahrungen, Blockkette 17. 11. 2017
Hashfunktionen (1)
Gestreute Speicherung von Daten
Petra Meier: . . .Anne Muller: . . .Josef Schulze: . . .Maria Schulze: . . .Maria Schulz: . . .. . .
0123456
...
40
H("Maria Schulze") = 39
Maria Schulze: . . .
Petra Meier: . . .
Maria Schulz: . . .
Anne Muller: . . .
Josef Schulze: . . .
H("Maria Schulz") = 4
3536373839
997998999
Die Hashfunktion H soll jedenZusammenhang zwischen denDaten verwischen.
Tabelle mit 1000 Eintragen
...
...
...
Gunter Rote, Freie Universitat Berlin EinS@FU: Informatik — Bitcoin, Krypto-Wahrungen, Blockkette 17. 11. 2017
Binare und dexadezimale Darstellung
"Maria Schulze"
= (01001101011000010111001001101001011000010010000001010011011000110110100001110101011011000111101001100101)2︸ ︷︷ ︸01100001 = "a"
︸ ︷︷ ︸01100001 = "a"
︸ ︷︷ ︸01101000 = "h"
(ASCII-Code)
= (6130726874734604725290256857701)10dezimal hex. binar
0 0 00001 1 00012 2 00103 3 00114 4 01005 5 01016 6 01107 7 01118 8 10009 9 100110 a 101011 b 101112 c 110013 d 110114 e 111015 f 1111
= (4d6172696120536368756c7a65)16 (hexadezimal)
jeweils 8 Bit
→ (4d6172696120536368756c7a65000000)16
32-Bit-Blocke
Gunter Rote, Freie Universitat Berlin EinS@FU: Informatik — Bitcoin, Krypto-Wahrungen, Blockkette 17. 11. 2017
Hashfunktionen (1)
fur 32-Bit-Zahlen x
h(x) = (a · x+ b) mod 232, fur geeignete Konstanten a, b.
Langere Daten ("Maria Schulze") werden alsFolgen x1, x2, . . . , xn von 32-bit-Werten dargestellt.
x1 x2 x3 xn. . .
y1+x2 y2+x3 yn−1+xn
h(x1)=y1 h(y1+x2)=y2 h(y2+x3)=y3 h(yn−1+xn)=yn
Hashwert mod 232
hh h
endgultiger Hashwert = yn mod 1000Tabellengroße
. . .
Gunter Rote, Freie Universitat Berlin EinS@FU: Informatik — Bitcoin, Krypto-Wahrungen, Blockkette 17. 11. 2017
Hashfunktionen (1)
Gestreute Speicherung von Daten
Petra Meier: . . .Anne Muller: . . .Josef Schulze: . . .Maria Schulze: . . .Maria Schulz: . . .. . .
0123456
...
40
h("Maria Schulze") = 39
Maria Schulze: . . .
Petra Meier: . . .
Maria Schulz: . . .
Anne Muller: . . .
Josef Schulze: . . .
h("Maria Schulz") = 4
3536373839
997998999
Tabelle mit 1000 Eintragen
...
...
...
h("Otto Samsa") = 39Otto Samsa: . . .
h("Otto Samsa") = 39
Kollision!
Gunter Rote, Freie Universitat Berlin EinS@FU: Informatik — Bitcoin, Krypto-Wahrungen, Blockkette 17. 11. 2017
Kryptographische Hashfunktionen (2)
• y = h(x)EINFACH zu berechnen.
• Ein beliebiges y ist gegeben. Finde ein x mit h(x) = y.SCHWIERIG.Nur durch Probieren aller moglichen x-Werte zu losen.
”Sichere Hashalgorithmen“ (SHA),
zum Beispiel SHA-224, SHA-256, SHA-384 und SHA-512.Bitcoin verwendet unter anderem SHA-256.
”Einbahn-Funktionen“:
y = (a · x+ b) mod 232 ist LEICHT nach x auflosbar.
Gunter Rote, Freie Universitat Berlin EinS@FU: Informatik — Bitcoin, Krypto-Wahrungen, Blockkette 17. 11. 2017
Die Blockkette als Kassenbuch
B1
h(B1)
B2 B3 B4 B5
h(B2) h(B3) h(B4)
Anderung in Block B500 macht alle Blocke B501, B502, B503 . . . ungultig.
Daten Daten Daten Daten Daten
h(Bi−1)
A bekommt 12.5B
Daten(Transaktionen)
Bi Schurfen = Erstellen eines neuen Blocks ist schwer.
willkurliche Daten (“nonce”)
festgelegte Pramie pro Block
******
Damit Bi gultig ist, muss h(Bi) < Schranke sein.Der Wert der Schranke wird periodisch angepasst,sodass im Mittel alle 10min ein Block erzeugt wird.
Derzeit (Nov. 2017): Chance ≈ 1 : 1021
Gunter Rote, Freie Universitat Berlin EinS@FU: Informatik — Bitcoin, Krypto-Wahrungen, Blockkette 17. 11. 2017
Speicherung der Blockkette
Die Blockkette und die neuen Transaktionen werden in einemPeer-to-Peer-Netzwerk gepruft, gespeichert, und weitergeleitet.
Alle”Knoten“ (= Rechner) sind gleichberechtigt.
Neue Transaktionen werden bestatigt, indem sie in dieBlockkette geschrieben werden.
Gunter Rote, Freie Universitat Berlin EinS@FU: Informatik — Bitcoin, Krypto-Wahrungen, Blockkette 17. 11. 2017
Konsensmechanismus
Jeder Schurfer stellt einen Block von ca. 5000 unbestatigtengultigen Transaktionen zusammen und versucht ihn zu schurfen.Viele Schurfer arbeiten parallel um die Wette.Wer als erstes einen gultigen Block findet, hangt ihn an dieBlockkette an.Alle Schurfer schwenken dann auf die verlangerte Blockkette um.
Gunter Rote, Freie Universitat Berlin EinS@FU: Informatik — Bitcoin, Krypto-Wahrungen, Blockkette 17. 11. 2017
Konsensmechanismus
Jeder Schurfer stellt einen Block von ca. 5000 unbestatigtengultigen Transaktionen zusammen und versucht ihn zu schurfen.Viele Schurfer arbeiten parallel um die Wette.Wer als erstes einen gultigen Block findet, hangt ihn an dieBlockkette an.Alle Schurfer schwenken dann auf die verlangerte Blockkette um.
Gunter Rote, Freie Universitat Berlin EinS@FU: Informatik — Bitcoin, Krypto-Wahrungen, Blockkette 17. 11. 2017
Konsensmechanismus
Jeder Schurfer stellt einen Block von ca. 5000 unbestatigtengultigen Transaktionen zusammen und versucht ihn zu schurfen.Viele Schurfer arbeiten parallel um die Wette.Wer als erstes einen gultigen Block findet, hangt ihn an dieBlockkette an.Alle Schurfer schwenken dann auf die verlangerte Blockkette um.
Ein neuer Block verbreitet sich im Netz nicht auf der Stelle!
Gunter Rote, Freie Universitat Berlin EinS@FU: Informatik — Bitcoin, Krypto-Wahrungen, Blockkette 17. 11. 2017
Konsensmechanismus
Jeder Schurfer stellt einen Block von ca. 5000 unbestatigtengultigen Transaktionen zusammen und versucht ihn zu schurfen.Viele Schurfer arbeiten parallel um die Wette.Wer als erstes einen gultigen Block findet, hangt ihn an dieBlockkette an.Alle Schurfer schwenken dann auf die verlangerte Blockkette um.
Ein neuer Block verbreitet sich im Netz nicht auf der Stelle!
Bei Verzweigung: Schurfer arbeiten an der langsten Kette.
Mechanismus:Schurfer haben ein Interesse an der Integritat der Blockkette.
Gunter Rote, Freie Universitat Berlin EinS@FU: Informatik — Bitcoin, Krypto-Wahrungen, Blockkette 17. 11. 2017
Hardware zum Schurfen
Nov. 2017: 1B ≈ 6000 Euro, 1 Block ≈ 75000 Euro
• Ursprunglich: Auf einen gewohnlichen Rechner, mitgeeigneter Software
• Viele gleiche Rechenoperationen parallel → Grafikkarten
• FPGA’s: field-programmable gate arraysVorgefertigte Hardware-Schaltkreise, die sich fur spezielleZwecke verdrahten (
”programmieren“) lassen.
• Seit 2013: Anwendungsspezifische integrierte Schaltkreise(ASICs)Schaltkreise, die einzig fur den Zweck des Schurfensentworfen sind und nichts anderes konnen.
Der”Genesis-Block“ B1 wurde am 3. Januar 2009 geschurft.
Gunter Rote, Freie Universitat Berlin EinS@FU: Informatik — Bitcoin, Krypto-Wahrungen, Blockkette 17. 11. 2017
Eigentum
Unterschrift mittels asymmetrischen Verschlusselungsverfahren.
• Ein neues Schlusselpaar (priv,pub) kann leicht erzeugtwerden.
• Notation:y = xpub: Verschlusselung mit dem offentlichen Schlussel pubx = ypriv: Entschlusselung mit dem privaten Schlussel priv
(xpub)priv = x, (ypriv)pub = y
• Aus dem offentlichen Schlussel pub kann der privateSchlussel priv nicht rekonstruiert werden.
Eigenschaften:
Gunter Rote, Freie Universitat Berlin EinS@FU: Informatik — Bitcoin, Krypto-Wahrungen, Blockkette 17. 11. 2017
RSA (Rivest, Shamir, Adleman, 1976)
Bestimme zwei große (100-stellige) Primzahlen p = 99257, q = 99611.Berechne den Modul N = p · q = 9887089027.Berechne die Ordnung n = kgV(p− 1, q − 1) = 4943445080.Wahle eine zufallige Zahl 1 ≤ pub < n, zum Beispiel pub = 123456789.Bestimme dazu die Zahl priv = 3576837909 mit priv · pub ≡ 1 (mod n).
Der offentliche Schlussel besteht dann aus (pub, N).Der private Schlussel ist priv.
(Bitcoin verwendet als Verschlusselungsverfahren nicht RSA, sondernelliptische Kurven.)
Gunter Rote, Freie Universitat Berlin EinS@FU: Informatik — Bitcoin, Krypto-Wahrungen, Blockkette 17. 11. 2017
RSA (Rivest, Shamir, Adleman, 1976)
Bestimme zwei große (100-stellige) Primzahlen p = 99257, q = 99611.Berechne den Modul N = p · q = 9887089027.Berechne die Ordnung n = kgV(p− 1, q − 1) = 4943445080.Wahle eine zufallige Zahl 1 ≤ pub < n, zum Beispiel pub = 123456789.Bestimme dazu die Zahl priv = 3576837909 mit priv · pub ≡ 1 (mod n).
Der offentliche Schlussel besteht dann aus (pub, N).Der private Schlussel ist priv.
(Bitcoin verwendet als Verschlusselungsverfahren nicht RSA, sondernelliptische Kurven.)
Verschlusselung der Nachricht x:
y = xpub mod N
Entschlusselung:x = ypriv mod N
Gunter Rote, Freie Universitat Berlin EinS@FU: Informatik — Bitcoin, Krypto-Wahrungen, Blockkette 17. 11. 2017
Transaktionen
5.5B,pubB
6.5B,pubA
7.5B,pubC
371/2, sig, 17B
306/3, sig′, 3B
T500
Gunter Rote, Freie Universitat Berlin EinS@FU: Informatik — Bitcoin, Krypto-Wahrungen, Blockkette 17. 11. 2017
Transaktionen
5.5B,pubB
6.5B,pubA
7.5B,pubC
371/2, sig, 17B
306/3, sig′, 3B
T500
0.5B Transaktionsgebuhr,geht an den Schurfer
Gunter Rote, Freie Universitat Berlin EinS@FU: Informatik — Bitcoin, Krypto-Wahrungen, Blockkette 17. 11. 2017
Transaktionen
5.5B,pubB
6.5B,pubA
7.5B,pubC
371/2, sig, 17B
306/3, sig′, 3B
T500 T678
500/2, sig′′, 5.5B
”Die Besitzerin des privaten Schlussels zum offentlichen SchlusselpubB des 2. Ausgangs von Transaktion T500 bestatigt durchUnterschrift, dass dieser Betrag verwendet werden kann.“
B unterschreibt mit sig′′ := (h(T500))privB
Uberprufung: (sig′′)pubB?= h(T500)
(Nur) wer den privatenSchlussel kennt, kanndie 5.5B ausgeben.
Das konnen alle uberprufen.
. . .
0.5B Transaktionsgebuhr,geht an den Schurfer
Gunter Rote, Freie Universitat Berlin EinS@FU: Informatik — Bitcoin, Krypto-Wahrungen, Blockkette 17. 11. 2017
Große Zahlen
N = 10100, 100-stellige Dezimalzahlen x, y
• Rechnen mit solchen Zahlen:SCHNELL.Aufwand hangt von der Anzahl der Ziffern (≈ logN) ab.
• N Operationen durchfuhren, N Moglichkeiten ausprobieren:
UNMOGLICH!
Beispiel:1 GHz Taktfrequenz = 109 Schritte pro Sekunde.Ein Jahr lang rechnen ≈ 3× 107 sec → 3× 1016 Schritte.1 Million Prozessoren → 3× 1022 Schritte.