Lektion 16: Überlegungen zu “Don’t Trust, Verify!”

“Nun laßt uns zu den Beweisen kommen”, sagte der König, “und dann zum Urteil.”

Bitcoin zielt darauf ab, konventionelle Währungen zu ersetzen oder zumindest eine Alternative zu diesen zu bieten. Eine konventionelle Währung ist an eine zentralisierte Behörde gebunden, egal ob es sich um gesetzliche Zahlungsmittel wie den US-Dollar oder modernes Monopolygeld wie WoW-Gold oder V-Bucks von Fortnite handelt. In beiden Beispielen bist du gezwungen der zentralen Behörde zu vertrauen: Bei der Geldausgabe, der Verwaltung und dabei das Geld in Umlauf zu bringen. Bitcoin löst diese Bindung, denn das Hauptproblem, das durch Bitcoin gelöst wird, ist das Problem des Vertrauens.

Das Hauptproblem, das Bitcoin löst, ist das Thema Vertrauen.

“Das Grundproblem von konventionellen Währungen ist all das Vertrauen, das nötig ist damit sie funktionieren. Was wir brauchen ist ein elektronisches Zahlungssystem, das auf kryptographischen Nachweisen statt auf Vertrauen basiert.”

 Satoshi Nakamoto

Bitcoin löst das Problem des Vertrauens, indem es völlig dezentralisiert ist, ohne zentralen Server oder zu Parteien, denen man vertrauen müsste. Wenn es keine zentrale Behörde gibt, gibt es einfach niemanden, dem man vertrauen muss. Volle Dezentralisierung ist die Innovation. Es ist die Wurzel der Widerstandsfähigkeit von Bitcoin, der Grund, warum es noch am Leben ist. Dezentralisierung ist auch der Grund warum wir Mining, Nodes, (Hardware-)Wallets und die Blockchain haben. Das einzige worin man “vertrauen” muss ist, dass unser Verständnis von Mathematik und Physik nicht völlig fehl am Platz ist und dass die Mehrheit der Miner ehrlich agiert (wofür sie auch Anreize haben).

Während die reguläre Welt unter der Annahme “trust, but verify” (vertraue, aber verifiziere) arbeitet, arbeitet Bitcoin unter der Annahme von “don’t trust, verify” (vertraue nicht, verifiziere!). Satoshi betonte die Wichtigkeit des Entzuges des Vertrauens an zweierlei Stellen im Whitepaper. In der Einleitung, wie auch im Fazit des Bitcoin-Whitepapers.

“Fazit: Wir haben ein System für elektronische Transaktionen vorgeschlagen, ohne auf Vertrauen angewiesen zu sein.”

 Satoshi Nakamoto

Beachte, dass “ohne auf Vertrauen angewiesen zu sein” hier in einem sehr speziellen Kontext verwendet wird. Wir sprechen von vertrauenswürdigen Dritten, d.h. von anderen Unternehmen/Staaten denen man vertrauen muss, dass sie dein Geld produzieren, halten und verarbeiten. Es ist jedoch anzunehmen, dass man zum Beispiel seinem Computer vertrauen kann.

Wie Ken Thompson in seinem Turing Award Vortrag zeigte, ist Vertrauen eine extrem schwierige Sache in der Computerwelt. Wenn du ein Programm ausführst, musst du allen Arten von Software (und Hardware) vertrauen, die theoretisch das Programm, das du ausführst, in bösartiger Weise verändern könnten. Wie Thompson in seinen “Überlegungen dem Vertrauen zu vertrauen” zusammenfasst: “Die Herangehensweise ist offensichtlich. Du kannst einem Code, den du nicht vollständig selbst erstellt hast, nicht vertrauen.”

Thompson zeigte, dass selbst wenn man Zugriff auf den Quellcode hat, der Compiler – oder jedes andere Programm, das Programme oder Hardware verarbeitet – kompromittiert werden könnte und diese Hintertür zu erkennen wäre sehr schwierig. In der Praxis gibt es also kein wirklich vertrauenswürdiges System. Man muss die gesamte Software und die gesamte Hardware (Assembler, Compiler, Linker usw.) von Grund auf neu erstellen, ohne die Hilfe von externer Software oder softwaregestützten Maschinen.

“Wenn du einen Apfelkuchen von Anfang an selbst machen möchtest, musst du zuerst das Universum erfinden.”

 Carl Sagan

Der Ken Thompson Hack ist eine besonders geniale und schwer zu erkennende Hintertür, also werfen wir einen kurzen Blick auf eine schwer erkennbare Hintertür, die ohne Änderung der Software funktioniert. Forscher fanden einen Weg sicherheitskritische Hardware zu kompromittieren, indem sie die Polarität der Siliziumverunreinigungen änderten. Allein durch die Änderung der physikalischen Eigenschaften des Materials aus dem die Computerchips bestehen konnten sie einen kryptographisch sicheren Zufallszahlengenerator kompromittieren. Da diese Änderung nicht sichtbar ist kann die Hintertür nicht durch optische Inspektion erkannt werden, was normalerweise einer der wichtigsten Mechanismen zur Manipulationserkennung für solche Chips ist.

Klingt beängstigend? Nun selbst wenn du in der Lage wärst alles von vorne zu bauen, müsstest du immer noch der zugrunde liegenden Mathematik vertrauen. Du musst darauf vertrauen, dass secp256k1 eine elliptische Kurve ohne Hintertüren ist. Ja, bösartige Hintertüren können in die mathematischen Grundlagen kryptographischer Funktionen eingefügt werden und das ist schon mindestens einmal geschehen. Es gibt gute Gründe paranoid zu sein und die Tatsache, dass alles von Hardware über Software bis hin zu den verwendeten elliptischen Kurven Hintertüren haben kann sind einige davon.

“Vertraue nicht. Verifizere.”

Die obigen Beispiele sollen verdeutlichen, dass Trustless Computing utopisch ist. Bitcoin ist wahrscheinlich am ehesten das eine System, welches dieser Utopie am nächsten kommt. Es ist vertrauensminimierend — mit dem Ziel das Vertrauen wo immer möglich zu beseitigen. Wahrscheinlich ist die Kette des Vertrauens endlos denn man muss auch darauf vertrauen, dass die Berechnung Energie erfordert, dass P nicht gleich NP ist und dass man sich tatsächlich in der Basisrealität befindet und nicht in einer Simulation durch böswillige Akteure gefangen genommen wurde.

Die Entwickler arbeiten an Tools und Verfahren, um das bestehende Vertrauen weiter minimeren zu können. Zum Beispiel haben die Bitcoin-Entwickler Gitian entwickelt, eine Methode zur Softwareverteilung durch Erstellung deterministischer Builds. Die Idee ist, dass wenn mehrere Entwickler in der Lage sind identische Binärdateien zu reproduzieren die Wahrscheinlichkeit bösartiger Manipulationen reduziert wird. Ausgefallene Hintertüren sind jedoch nicht der einzige Angriffsvektor. Auch einfache Bedrohung oder Erpressung sind echte Probleme. Wie auch im Hauptprotokoll wird die Dezentralisierung genutzt, um das Vertrauen zu minimieren.

Es werden verschiedene Anstrengungen unternommen, um das Chicken-and-Egg-Problem des Bootstrapping zu verbessern auf das Ken Thompsons Hack so brillant hingewiesen hat. Ein solcher Aufwand ist Guix (ausgesprochen Geeks). Es verwendet funktional deklariertes Paketmanagement das zu bit-by-bit reproduzierbaren Builds per Design führt. Das Ergebnis: Man muss keinem softwareliefernden Server vertrauen, da man überprüfen kann ob die servierte Binärdatei manipuliert wurde, indem man sie von Grund auf neu erstellt. Vor kurzem wurde ein Pull-Request gestartet, um Guix in den Bitcoin-Build-Prozess zu integrieren.

Glücklicherweise ist Bitcoin nicht auf einen einzelnen Algorithmus oder einzelne Hardware angewiesen. Ein Effekt der radikalen Dezentralisierung von Bitcoin ist ein verteiltes Sicherheitsmodell. Obwohl die oben beschriebenen Hintertüren nicht auf die leichte Schulter genommen werden sollten, ist es unwahrscheinlich, dass jede Software-Wallet, jede Hardware-Wallet, jede kryptographische Bibliothek, jede Nodeimplementierung und jeder Compiler jeder Sprache gefährdet ist. Möglich, aber höchst unwahrscheinlich.

Beachte, dass du einen privaten Schlüssel generieren kannst ohne dich auf Computerhardware oder -software verlassen zu müssen. Du kannst eine Münze ein paar Mal werfen, obwohl diese Zufallsquelle je nach deiner Münze und deinem Wurfstil möglicherweise nicht ausreichend zufällig ist. Es gibt einen Grund warum Aufbewahrungsprotokolle wie Glacier empfehlen, Würfel in Casinoqualität als eine von zwei Quellen der Entropie zu verwenden.

Bitcoin zwang mich darüber nachzudenken was es bedeutet niemandem zu vertrauen. Es schärfte mein Bewusstsein für das Bootstrapping-Problem und die implizite Vertrauenskette bei der Entwicklung und Ausführung von Software. Es hat auch mein Bewusstsein für die vielen Möglichkeiten geschärft wie Soft- und Hardware kompromittiert werden können.

Bitcoin lehrte mich nicht zu vertrauen, sondern zu überprüfen.

Lizenz

Wie auch das Original (https://21lessons.com/) steht dieser Artikel unter der CC BY-SA 4.0 Lizenz. Nähere Informationen dazu findest du hier: https://creativecommons.org/licenses/by-sa/4.0/deed.de