G unter Rote und Blockketten Digitales Geld: EinS@FU · festgelegte Pr amie pro Block ***** Damit B...

27
unter Rote, Freie Universit¨ at Berlin EinS@FU: Informatik — Bitcoin, Krypto-W¨ ahrungen, Blockkette 17. 11. 2017 EinS@FU Einf ¨ uhrungs- und Orientierungsstudium Informatik, Teil 2 G ¨ unter Rote Freie Universit ¨ at Berlin Digitales Geld: Bitcoin und Blockketten

Transcript of G unter Rote und Blockketten Digitales Geld: EinS@FU · festgelegte Pr amie pro Block ***** Damit B...

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.

Gunter Rote, Freie Universitat Berlin EinS@FU: Informatik — Bitcoin, Krypto-Wahrungen, Blockkette 17. 11. 2017

Moglichkeiten und Grenzen

Kryptogeld• Weltweiter Geldtransfer ohne Kontrolle• smart contracts• Bitcoin: max. 7 Transaktionen pro Sekunde

Blockkette• Grundbuch, Standesamt, . . .