Vorwort (1/3)

Diesen Vortrag habe ich im Sommer 2019 vor Vertretern der Automobilindustrie und ihrer Zulieferer gehalten.

Inhaltliche Anforderung war, die Luft aus dem Blockchain-Hype zu lassen.

Und, wenn es geht, Grundlagen vermitteln, was Blockchain eigentlich ist.

(Die verwendeten Schriftarten sind Alegreya und Special Elite)

Navigation über die Pfeiltasten auf der Tastatur.

Vorwort (2/3)

Mein Slot war der letzte am Tag. Das Publikum ist da im Allgemeinen nicht mehr aufnahmefähig. Daher ist dieser Vortrag ein Spagat.

Er beinhaltet technische Details, aber die merkt sich um die Uhrzeit keiner mehr.

Mein Ziel war daher eher, dem Publikum zu vermitteln, dass man fundierte fundamentale Kritik an Blockchain haben kann, die über „was Neues, da hab ich keine Lust drauf“ hinausgeht.

Vorwort (3/3)

Ich hatte insgesamt 40 Minuten.

Ich habe mich entschieden, lieber mehr Grundlagen reinzunehmen, als im Detail Tiefenbohrungen vorzunehmen.

Damit gebe ich mir die Blöße, dass einige Aussagen aus Sicht eines Experten unzulässig verkürzt sind. Z.B. ist ein Block in der Blockchain nicht bloß eine Liste sondern ein Merkle-Tree aus Transaktionen. Das ist aber für das Verständnis der Fundamentalkritik unerheblich.

Herzlich Willkommen

Herzlich Willkommen

Zum Jahrestreffen der anonymen Kryptoanarchisten

(kleiner Scherz)

(Kryptoanarchisten sind immer anonym)

TOP 1 - Protokollführer

Protokollführer

Wir nehmen einfach Sie hier vorne,

in der ersten Reihe!

Protokollführer - Problem

Wir kennen uns alle gar nicht!

Daher vertraut hier niemand Irgendjemandem

Was wenn die Regierung Sie geschickt hat?!

OK OK OK

Ich habe eine Idee!

Schnell! Was ist 17 x 5?

85! Super!

Wer hat es zuerst gerufen?

Sie sind Protokollführer!

Aber nur für 1o Minuten

Wir vertrauen Ihnen
immer noch nicht wirklich

Das war alles

Das war die Innovation von Blockchain

Auswahl des Protokollführers
nach nachgewiesen aufgewendeter
Rechenleistung

Warum würde das jemand tun wollen?

Da muss ich ein bisschen ausholen…

Libertarians

Sehr verbreitete politische Einstellung in den USA

„Der Staat soll sich aus meinem Kram raushalten“

Crypto Anarchists

(„Crypto-Libertäre klingt irgendwie doof…")

Cipherpunks-Mailingliste, explorativer Umgang mit Technik

1. Durchbruch: Onion Routing, Mitte der 90er, von der US Navy.

Freie Implementation „TOR“ von Roger Dingledine, 2002.

Zwischenspiel:
Wie funktioniert Onion Routing?

Alt: Symmetrische Verschlüsselung

Traditionelle Krypto hat einen Schlüssel, den beide Seiten kennen.

Den muss ich sicher austauschen, um verschlüsselt reden zu können.

Wenn ich einen sicheren Kanal für den Schlüssel habe, wieso kommuniziere ich nicht einfach über den?

Public Key Kryptographie

Public Key Krypto hat ein Schlüsselpaar.

Einen privaten, den ich niemandem gebe.

Und einen öffentlichen, den ich allen gebe.

Nachricht * mein öffentlicher Schlüssel = an mich verschlüsselt.

Nachricht * mein privater Schlüssel = von mir signiert.

Public Key Kryptographie

Nachricht * mein öffentlicher Schlüssel = an mich verschlüsselt.

Nachricht * mein privater Schlüssel = von mir signiert.

An mich verschlüsselt / mein privater Schlüssel = Entschlüsselt.

Von dir signiert / dein öffentlicher Schlüssel = Validiert.

Und jetzt: Onion Routing

A hat eine Nachricht an B.

A verschlüsselt die Nachricht an B, schreibt „das ist für B“ dran, verschlüsselt das Ergebnis an Mittelsmann 3.

Dann schreibt er „das ist für Mittelsmann 3“ dran, verschlüsselt das Ergebnis an Mittelsmann 2.

Dann schreibt er „das ist für Mittelsmann 2“ dran, verschlüsselt das Ergebnis an Mittelsmann 1. Und gibt es Mittelsmann 1.

Onion Routing

Ergebnis:

  1. Keiner der Mittelsmänner kann die Nachricht lesen
  2. Keiner der Mittelsmänner kennt Empfänger und Absender
  3. Wenn die Mittelsmänner in verschiedenen Jurisdiktionen stehen, hat „der Staat“ schlechte Karten bei der Rückzuordnung.

Krypto-Anarchismus

2. Durchbruch: Hashcash, 1997, Adam Back.

Spam ist ein Geschäftsmodell, weil Zustellung nichts kostet.

Idee: Proof of Work als Porto.

Mails werden nur angenommen, wenn Einsender ein Puzzle löst.

Zwischenspiel:
Was ist ein Hash?

Hashing

Ein Hash berechnet aus beliebig viel Daten eine kurze Prüfsumme.

1 Bit anders im Input: ~50% der Bits anders in der Prüfsumme.

 

Anforderungen:

  1. Daten zu Hashwert finden geht nicht.
  2. Zwei Daten mit gleichem Hashwert finden geht nicht.

Hashing: Proof of Work

Die Arbeit besteht darin, zu gegebenen Daten Zufallsdaten zu finden.

Die hängt man an die Daten an und bildet einen Hash über das Ganze.

In der Prüfsumme (160 Binärstellen bei Blockchain und Hashcash) sollen dann die ersten n Ziffern Null sein.

Weil Rückrechnen nicht geht, muss man Zufallsdaten durchprobieren. Das ist die Arbeit.

Hashing: Proof of Work

Annahme: Einsen und Nullen sind gleich verteilt.

Um 20 Stellen im Hash zu fixieren, muss man grob 220 Eingaben ausprobieren.

Das wäre in diesem Beispiel ungefähr eine Million.

Hashcash

Eine Mail an adam@cypherspace.org braucht diesen Header:

X-Hashcash:
1:20:1303030600:adam@cypherspace.org::McMybZIhxKXu57jd:ckvi

Datum - Zufallswert - Zähler

1 = Version, 20 = Anzahl Nullen im Ergebnishash.

Hat sich für die Spamabwehr nie durchgesetzt. Aber die Idee wurde in der Blockchain wieder aufgegriffen.

Hashing: Überraschend mächtig

Offensichtliche Anwendung: Haben sich die Daten verändert?

 

Weniger offensichtlich: Daten + Hash(Geheimnis + Daten) = Session Cookie.

Wenn ich das Geheimnis niemandem sage, kann ich wiedererkennen, dass der Hash von mir gekommen sein muss.

Jüdisches Poker

Nach einer Idee von Ephraim Kishon.

Wir denken uns beide eine Zahl aus.

Der mit der höheren gewinnt.

Problem: Der eine sagt seine Zahl zuerst, der andere kann lügen.

 

Daher: Beide Seiten publizieren erst den Hash ihrer Zahl.

Hashing: Bit Commitment

Nehmen wir an, ich weiß etwas brisantes.

Z.B. eine Technologie, die ich zum Patent anmelde.

Ich will später beweisen können, dass ich es heute schon wusste.

Aber ich kann es heute niemandem zeigen.

 

Lösung: Hash des Dokuments publizieren.

Hashing: TAN-Generierung

TAN0 = Zufallswert, TAN1 = Hash(TAN0)

TAN2 = Hash(TAN1), ... TAN100 = Hash(TAN99)

 

Server kennt Zufallswert, kann alle TANs berechnen.

Achtung: TANs rückwärts verwenden!

Wenn TAN n verwendet wird, sind alle TANs ab n verbrannt!

Hashing: Hash Chain

Jede Transaktion kriegt einen Hash über ihren Inhalt.

 

Spätere Transaktionen hashen ihren Inhalt und den Hash des Vorgängers.

 

Ergebnis: Man kann alte Transaktionen nicht manipulieren, ohne die Prüfsummen aller folgenden Transaktionen kaputtzumachen!

Na, aufgepasst?

Das ist, was viele für die Innovation von Blockchain halten.

 

Ist es nicht.

Lektion 1
Manipulationsevidente Buchhaltung geht ohne Blockchain, und zwar besser

Ewiges Logfile

Idee: Ich publiziere Hashes meiner Daten woanders.

Z.B. drucke ich sie aus oder poste sie auf Twitter / Facebook.

 

Achtung: Verhindert Manipulation nicht. Man erkennt sie bloß.

 

Es wäre ohne Ausdrucken irgendwie cooler.

Instead of posting customer hashes to a public digital ledger, Surety creates a unique hash value of all the new seals added to the database each week and publishes this hash value in the New York Times. The hash is placed in a small ad in the Times classified section under the heading “Notices & Lost and Found” and has appeared once a week since 1995.

Kleiner Twist der Idee von mir

  1. Initiales X = Zufallswert
  2. Speichere Daten + Hash(X + Daten)
  3. Neues X = der Hashwert, den wir gerade ausgerechnet haben
  4. Altes X wegschmeißen!

Das initiale X public-key-verschlüsseln wir an uns selbst. Auf dem Rechner liegt nur der public key, nicht der private key.

Vorsicht!

Jetzt merken wir, wenn jemand das Log ändert.

Aber wir würden nicht merken, wenn jemand unser Log wegschmeißt und ein komplett neues Log hinlegt.

Wir brauchen also auch noch einen Anker für den Anfang. Z.B. der Server signiert unseren Zufallswert, signierte Zeitstempel / UUIDs.

Wir könnten die Logzeilen jeweils mit X verschlüsseln.

Lektion: Krypto ist schwieriger als es aussieht!

Das war ja einfach!

Wieso fummeln die Leute dann alle mit Mining-Hardware herum?

Ich löse mal auf…

Weil die alle schlecht informiert sind.

Kurze Einnordung: Krypto-Währung

1. Anlauf

Ich gebe der Bank 10€.

Die Bank gibt mir eine Tüte Bits.

Die Bits gebe ich dem Ticketautomaten, kriege ein Bahn-Ticket.

Der Ticketautomat gibt die Bits der Bank, kriegt 10€.

Problem: Falschgeld

Woher weiß der Automat, dass meine Bits gültig sind?

2. Anlauf

Die Bits sind von der Bank digital signiert.

 

Nächstes Problem: Ich kaufe mit denselben Bits zwei Tickets.

An verschiedenen Automaten.

„Double Spending“

Das zentrale Problem im digitalen Zahlungsverkehr.

 

Lösung: Automat gibt Bits direkt der Bank.

Bank guckt auf Seriennummer der Bits, weist double spending zurück.

 

Offline-Bezahlungen gehen halt nicht.

Na? Aufgepasst?

Das ist dann kein Geld mehr.

 

Geld kann ich zuhause unter der Matratze lagern.

Bits nicht. Die muss ich sofort der Bank geben.

 

Und die Bank weiß, wer die Bits abgehoben hat. Privacy!!

„Digitales Geld“ existiert nicht

Wer Ihnen digitales Geld verkaufen will, der lügt.

 

Was es gibt ist eher sowas wie digitale Schecks.

Lektion 2
Digitales Bargeld gibt es prinzipiell nicht

Was tut denn die Blockchain jetzt genau

Blockchain - Basics

Jeder Teilnehmer hat einen private key und einen public key.

Keine Namen, keine vorladbaren Anschriften. Keine Bank.

Die Blockchain ist eine Art ewiges Logfile aller Transaktionen.

Blockchain

Aus Effizienzgründen operiert die Blockchain nicht auf einzelnen Transaktionen sondern auf Blöcken.

 

Sowas wie: Unterschrift einmal pro Seite, nicht pro Zeile.

Blockchain - Transaktionen

Eine Transaktion hat die Form:

„Ich zahle 1 BTC an Key 12345. Seriennummer ist 23.“

Dann signiert von dem, dessen Geld überwiesen wird.

Die Daten kann niemand außer dem Absender ändern, weil niemand sonst den private key kennt.

Wichtige Erkenntnis!

Blockchain geht davon aus, dass der Sender der Transaktion a) will, dass sie durchgeführt wird, und b) will, dass da die richtigen Daten drinstehen.

Für unwillige Teilnehmer eignet sich Blockchain also nicht.

Beispiel: Umweltschutzvorgaben protokollieren. Teilnehmer hat ein Interesse daran, falsche Daten zu loggen, oder technische Probleme vorzutäuschen!

Blockchain - Restrisiko

Verbleibendes Manipulationsrisiko:

Meine Transaktion wird gar nicht aufgenommen.

 

Lösung:

Die Entscheidung, welche Transaktionen in den nächsten Block kommen, wird nicht vorhersagbar von jemandem dezentral getroffen.

Blockchain - Proof of Work

Die Auswahl des Protokollführers erfolgt per Proof of Work (wie bei Hashcash).

 

Die Schwierigkeit des Puzzles wird algorithmisch an die Rechenpower der Teilnehmer angepasst. Ca. alle 10 Minuten ein neuer Block.

Blockchain - Mining-Konflikte

Was ist denn, wenn zwei gleichzeitig eine Lösung finden?

Oder wenn anderweitig nicht zu klären ist, wer schneller war?

 

Antwort: ¯\_(ツ)_/¯

Dann gewinnt die längere Chain. Die, bei der mehr mitmachen.

Na, aufgepasst?

Wann weiß ich denn, ob meine Transaktion durchgegangen ist?

Jedenfalls nicht schon nach 10 Minuten!

Jemand anderes könnte die längere Chain haben!

 

Antwort: ¯\_(ツ)_/¯

Hängt von deiner Paranoia ab, wie lange du warten willst.

Lektion 3
Blockchain eignet sich nicht für zeitkritische Transaktionen (wie Einzelhandel)

Blockchain - Kartellbildung

Was ist denn, wenn sich die Miner alle gegen mich verschwören?

 

Antwort: ¯\_(ツ)_/¯

Das wird die unsichtbare Hand des Marktes schon verhindern!

Blockchain - Motivation für Mining

Warum würde jemand bei dem Proof of Work mitmachen?

Kostet nur Strom und bringt mir nichts?

 

Antwort: Wir bezahlen die dafür. Mit frischen Bitcoins.

Wer den Block macht, kriegt Bitcoins ausgezahlt.

So wird Geld geschöpft. (Gibt ja auch keine Notenbank)

Wie … keine Notenbank?

Warte mal, keine Notenbank…

Wer macht dann Geldpolitik? Verhindert Inflation und Deflation?

 

Antwort: Niemand.

Ausgezahltes Geld an Miner wird mit der Zeit immer weniger.

Eingebaute Deflation.

Eingebaute Deflation?!

Deflation ist doch schlecht, dachte ich?

Die EZB legt Billionenkredite auf, um Deflation zu verhindern!

 

Stimmt. Ökonomisch ist das schlecht.

Führt dazu, dass niemand seine Bitcoins ausgibt.

Nachfrage bleibt, Angebot stagniert — Preis steigt.

Eingebaute Deflation?!

Als Währung völlig ungeeignet.

 

Aber eignet sich super als Schneeballsystem!!

Blockchain

Warte mal.

 

Alle 10 Minuten ein Block?

So viele Transaktionen passen nicht in einen Block, oder?

 

Durchsatz des Systems: ca. 5 Transaktionen pro Sekunde.

5 Transaktionen pro Sekunde

Das ist offensichtlich völlig ungeeignet für eine weltweite Währung.

 

Manche Aldi-Kasse macht schon mehr als 5 Transaktionen pro Sekunde!

 

Visa macht über 20.000 Transaktionen pro Sekunde.

Lektion 4
Blockchain eignet sich nicht für hohe Transaktionszahlen (Microtransactions)

Meine initiale These dazu

Das kann nicht als Währung gedacht gewesen sein.

 

Das hat sich ein Krypto-Anarchist für seine Kommune ausgedacht.

Oder als Notar-Werkzeug für digitale Verträge vielleicht?

Kann aber auch nicht sein!

Wir leben im Cloud-Zeitalter!

Für ein paar Dollars kann jeder die Amazon-Cloud mieten und mich und alle meine Kommunen-Mitglieder überstimmen!

 

Achtung: Das ist ein kritischer Punkt.

Das gilt nicht nur für meine Kommune, sondern auch für die private Blockchain, über die Sie gerade nachdenken!

Lektion 5
Blockchain eignet sich nicht für nicht weltweit verteilte (in-house) Projekte

Zwickmühle

Proof of Work verhindert Kartelle nur, wenn es weltweite Konkurrenz gibt.

 

Die gibt es nur bei einer Währung.

 

Mit der Transaktionszahl kann es keine weltweite Währung stemmen.

Mein Kumpel formulierte es so

„Es ist eine brillante Lösung für das Digitale-Währung-Problem.“

 

(Ich merkte an, dass es aber keine gute Lösung ist)

 

„Ich sagte, es ist eine brillante Lösung, nicht eine gute Lösung!“

Anmerkung

Der technische Teil der Folien ist hier zuende.

Weil man als letzter Vortrag die Leute beschwingt entlassen soll, kommen noch ein paar weniger ernste Folien mit weniger ernsten Argumenten.

Tut euch und mir einen Gefallen und kritisiert diesen Vortrag nicht anhand der folgenden Folien.

Hmm, warte mal

Wenn alle sich den Anreizen entsprechend verhalten, müsste die globale Hashrate ja annähernd konstant sein.

 

Jeder hasht so schneller er kann.

 

Wer schneller hasht, verdient schließlich Geld damit.

Hmm, warte mal

Wenn jemand Transaktionen fälschen will, müsste der aber seine Leistung zurückhalten. Und dann schlägt er zu und ist schneller.

 

Da müsste man dann heftige Ausreißer sehen!

Hier ist die Bitcoin-Hashrate als Chart

Ich bin nicht der Einzige, der sich wundert

Anders gesagt

Blockchain ist eine Lösung für ein Problem, das Ihre Firma nicht hat.

 

Privat ist es kein Investitionsobjekt sondern ein Schneeballsystem.

"We found a proliferation of press releases, white papers, and persuasively written articles," Burg et al wrote on Thursday. "However, we found no documentation or evidence of the results blockchain was purported to have achieved in these claims. We also did not find lessons learned or practical insights, as are available for other technologies in development."

Ist es denn wenigstens State of the Art?

David Chaum schlug 1989 digicash vor, mit tatsächlich neuer Krypto, „blind signatures“.

 

Bank signiert ein Token „im Umschlag“, ohne die Seriennummer gesehen zu haben. Kunde holt Token aus Umschlag, Signatur bleibt gültig.

Bank sieht beim Einzahlen nicht, wer die Münze abgehoben hat. Das ist State of the Art.

Wieso gibt es Bitcoin dann noch?

Weil es noch Leute gibt, die für echtes Geld Bitcoins kaufen.

 

Solange es die gibt, gibt es auch Scammer, die die Nachfrage bedienen.

 

Bitcoin und Krypto-Currencies sind genau da angekommen, wo sie hingehören.

Vielen Dank!

Fragen?

 

Wenn ich nicht gerade vor Blockchain warne, mache ich IT-Security, hauptsächlich Source Code Audits.