Am Golde hängt's,
zum Golde drängt's doch alle
V 1.2 20211111 Bonn
Jochim Selzer
js@[Link]
[Link]
6AA4 89F9 9E1F DCBA FF00 F291 8A97 4A5C 0970 E0CF
Agenda
Was ist Geld?
Wie drucke ich eigenes Geld?
Wie vermeide ich Double-Spending?
Wie funktionieren Blockchain und Bitcoin?
Was soll Geld leisten?
limitiert, schwer zu vervielfältigen, kann nur
einmal ausgegeben werden (double-spend)
transportabel
aufteilbar
dauerhaft haltbar
vertrauenswürdig
Was hätten wir gern?
Anonymität
Die Steinwährung Rai auf Yap
Wichtiges Konzept
Schlüsselpaar
Öffentliche und private Schlüssel
Mit Ihrem öffentlichen Schlüssel kann man Ihnen
verschlüsselt schreiben, und nur Sie können mit
ihrem privaten Schlüssel die Nachricht lesen
Privater Schlüssel kann signieren
Öffentlicher Schlüssel kann Signatur des
privaten Schlüssels prüfen
Geldscheine selber drucken
(Blinding, E-Cash von Digicash)
●
David Chaum
●
RSA: Verschlüsseln(Signieren(x)) =
Signieren(Verschlüsseln(x))
●
Klassisches Verfahren: Bank signiert elektronischen
Geldschein, Empfänger fragt bei Bank nach, ob
der Schein schon ausgegeben wurde.
●
Idee: Ich überweise der Bank Geld, denke mir selbst
eine Seriennummer aus, verschlüssle sie und
lasse sie von der Bank (blind) unterschreiben.
Geldscheine selber drucken
(Blinding, E-Cash von Digicash)
1) überweise der Bank Geld
2) denke eine Seriennummer (nonce) aus
3) erzeuge (z.B.) 100 Geldscheine über den überwiesenen Betrag
mit dieser Seriennummer
4) verschlüssle jeden Schein mit einem individuellen Schlüsselpaar
und sende alle Scheine der Bank
5) Die Bank lässt sich zufällig 99 Schlüssel geben, prüft den Inhalt,
unterschreibt den 100. Schein ungeprüft und sendet mir den
unterschriebenen Schein.
6) entschlüssle den Schein und habe einen anonymen, von der Bank
signierten Schein
Geldscheine selber drucken
(Blinding, E-Cash von Digicash)
Bank
My My My My
2$ 2$ 2$ 2$
#23 My #42 #23 #42
2$
#37
My My My
2$ 2$ 2$
#13 #37 #13
Secret Splitting
Alice spaltet ihren Namen hundert mal auf zwei
Umschläge auf.
Bob entscheidet bei den hundert Paaren, welchen
Umschlag (links oder rechts) er haben will
Das Gleiche passiert mit Claude
Wenn Bob oder Claude einen Betrug feststellen,
schließen sich zusammen und finden Alices
Identität heraus.
Was ist Bitcoin?
Digitale Währung
Dezentral, Peer-to-Peer
Für alle transparent, Community-kontrolliert
Was ist Bitcoin nicht?
anonym
durch Goldreserven o.ä. gedeckt
Bits, die zwischen Konten verschoben werden
Bits, die man durch „Mining“ ausgräbt
Was ist Bitcoin denn nun?
ein Logbuch (distributed ledger)
von allen geführt (zumindest theoretisch)
von allen überprüfbar
enthält alle Transaktionen seit Beginn des
Bitcoin-Projekts
Was zeichnet Bitcoin aus?
Entzieht sich staatlichem Zugriff
Eine Bank kann nicht plötzlich beschließen,
mein Konto einzufrieren (wie Paypal bei
Wikileaks).
Aber wir haben doch schon Paypal
Paypal ist ein Buchungsverfahren, kein
elektronisches Geld.
Peer-to-Peer-Geld
Wir schreiben Ewiges Ewiges
das alles mit. Logfile Logfile
Bob Wir sehen
nach, ob das
Ewiges überhaupt geht
Logfile
Ich überweise
Ich überweise Deborah 3 Bitcoin
Bob 2 Bitcoin.
Alice
Ewiges Ich überweise Ewiges
Logfile Clara 1 Bitcoin. Logfile
Ewiges Ewiges Ewiges
Logfile Logfile Logfile
Was zeichnet einen Hash aus?
Prüfsumme
Nicht umkehrbar
Sehr ähnliche Eingaben erzeugen möglichst
unterschiedliche Ausgaben.
aufwändig zu berechnen.
kollisionsarm
Block
[Link]
Was ist eine Blockchain?
Das ist der erste Block
Prüfsumme:
6cfa3f9c9e1225338b9d428da0c38f365c791f75f3ff512503f4e2c79167a461
Das ist der zweite Block.
Die Prüfsumme des ersten lautet
6cfa3f9c9e1225338b9d428da0c38f365c791f75f3ff512503f4e2c79167a461
Prüfsumme:
529553d44dca2370f2846779f35525e1a4f69c110c3efb2c794d83de5bee8871
Das ist der dritte Block.
Die Prüfsumme des zweiten lautet
529553d44dca2370f2846779f35525e1a4f69c110c3efb2c794d83de5bee8871
Prüfsumme:
ff916d02ac2d24fcc5c1946149deeffa3f2d630e772e7cd1528e8e871fed9545
Einfach verkettete Liste
Anwendungsfall Bitcoin
●
Das Berechnen der Prüfsummen wird künstlich
erschwert und mit Bitcoins belohnt (Proof of
Work)
●
Alle können die Gültigkeit von Transaktionen
prüfen und mit absoluter Mehrheit entscheiden,
ob sie die anerkennen
Wann ist eine Blockhain sinnvoll?
●
Wenn ohne zentrale Kontrollinstanz etwas
öffentlich dokumentiert werden soll (Beispiel
Bitcoin, Ethereum)
Wann ist eine Blockhain Quatsch?
●
Impfausweise
●
Führerscheine
●
Staatlich kontrollierte Währungen
●
Facebooks Libra
Bitcoin-Blockchain
Block 5 Block 6
Block 7
Vorheriger Block: 6
Zeitstempel
Hash (Prüfsumme)
Nonce (Stellschraube)
Gutschrift
Transaktionen
Nonce
(numbers used only once)
1$ from Alice to Bob
2$ from Mike to Clara
1.5$ from Dorothy to Peter
0.75$ from Shaun to Martin
0
1
2
9
SHA
256
74e84500c2589b393fea828edd65021ce8faf452bf6161a4ba35cc06e0b33604
8584a13542dfcac24d1696f66a6ab6be50e26c568dc6e58ad04624fdc95db1d9
b95809ff9ef1dead9d5952a4a7fbe4aeb4615948f74af0a91fb918ffc9200e44
3: beb319f9688c9c087e6a3d57186cc2a31cc5a9208263a705f524da408ef87b8c
4: 526d86b5bdc2e698559fa5afefc7a44ffe3d45fcec04bf02225fb0622c463ff6
5: f69229736d7ffe25927047c5e5e6369a8fc56872fc40ffbdc4c1ed046a348d72
6: 476e3f4444ff900975d2ce5f2d6797e7b36918a7d259d2e1f4f7475f92545739
7: faa77ce2b17e5b585bba0bbf3687a2e7cdf543233a11fcb4b55573b11607c130
8: 24e796a0143ffa05b9f6e9f9ebe5dceb94940f378a13e4922f9e35efa57fc0da
1ad1e9cce38d5ea81528a074f493d85518e56acacc0343a3d0398a4cb5817308
Zum Ausprobieren
#!/usr/bin/python
import hashlib
import re
text = "Text und Nonce "
hash = " "
nonce = 0
while (not bool([Link]("^0000", hash))):
test = text + hex(nonce)
hash = hashlib.sha256(test).hexdigest()
print(test + " " + hash)
nonce += 1
Erwartungswerte
Anzahl führende Nullen Versuche
1 16 / 2 = 8
2 16^2 / 2 = 128
3 16^3 / 2 = 2.048
4 16^4 / 2 = 32.768
5 524.288
6 8.388.608
7 134.217.728
8 [Link]
9 [Link]
10 [Link]
Berechnungen
Alle 10 Minuten wird ein Block fertig (Stichwort
Lottospiel)
Wenn nicht, wird am Schwierigkeitsgrad gedreht.
[Link]
Wechselkurs BTC/EUR
[Link]
Wechselkurs BTC/USD
[Link]
Transaktionsgebühren
[Link]
Geschätzte Zahl der Bitcoin-Miner
[Link]
estimates/
Proof of Work vs
Proof of Stake
Hashberechnungen sind sehr hardware- und
energieaufwendig
Proof of Stake:
Miners → Validators
Aus den Geldbesitzern wird zufällig ein Validator
ausgesucht. Je mehr Geld, desto wahrscheinlicher.
Das Geld muss im Netzwerk als Pfand hinterlegt
und geht verloren, wenn man falsche Transaktionen
bestätigt.
Was passiert, wenn...
jemand einen umgearbeiteten Client einsetzt, der z.B. mehr Bitcoins insgesamt
zulässt?
Es bildet sich ein neuer Bitcoin-Zweig, von dem man nur unter Totalverlust auf den alten Zweig
zurückkommt.
jemand Geld zweimal ausgibt?
Es bilden sich zwei Zweige der Blockchain, aber nur einer wird von der Mehrheit weiterentwickelt.
jemand mehr als 50 % der Rechenkapazität hat?
Ist schon passiert und ging gut. Der Pool spaltete sich freiwillig auf.
plötzlich eine neue längste Blockchain auftaucht?
Dann gilt die. Ist aber unwahrscheinlich.
alle Bitcoins geschürft sind?
Dann werden Transaktionsgebühren interessant.
Die EU-DSGVO umgesetzt wird?
Recht auf Vergessenwerden
Weitere Fragen
Kann eine Regierung Bitcoin verbieten?
Nein, aber sie kann Exchanges und Mining-Pools schließen.
Was ist mit Petro?
Staatlich kontrolliert, an den Ölpreis gekoppelt
Was ist mit Ethereum?
Vor allem Smart Contracts und kann deswegen auch Geld
Was ist mit Cardano?
Skaliert besser, weniger Energieverschwendung
Was ist mit Zcash?
Anonym
Was ist mit Taler?
[Link]
Weitere Fragen
●
Was ist mit XRP (Ripple)?
●
Ledger
●
Schneller und weniger energieaufwendig als Bitcoin
●
Basiert auf Konsens
●
Es gibt kein Mining. Statt dessen gibt es eine
vorbereitete Menge Währungseinheiten, die von
Ripple kontrolliert in den Markt gelassen werden.
Weitere Anwendungen
Dokumentation eines erzeugten Dokuments
Smart Contracts (Ethereum)
Links
[Link]
Vortrag auf der FrOSCon
Joerg Platzer: Bitcoin kurz & gut, O'Reilly
33C3: Einführung zu Blockchains
C4 Open Chaos: Blockchain - Reasonable Hype
CRE 182
Perspektiven auf die Blockchain: „Vom demokratischen Ansatz bei
Bitcoin ist nicht mehr viel übrig“
Forscherin: Energieverbrauch des Bitcoin ist kein Grund zur Sorge
c‘t uplink vom 23.6. über Öko-Bitcoins