Innerhalb der Bitcoin-Community heißt es stets „Don't trust, verify“ – vertraue niemandem und überprüfe (selbst). Bitcoin funktioniert als Netzwerk komplett unabhängig von zentralen Entscheidungsträgern oder Vertrauensparteien. Alles, was man zur Verifizierung der gesamten Transaktionshistorie benötigt, ist eine Verbindung zum Bitcoin-Netzwerk und natürlich Kenntnis über die Regeln, nach denen man überhaupt Transaktionen und Blöcke überprüfen möchte. Beides wird mit Bitcoin Core, dem de facto Protokollstandard von Bitcoin, ermöglicht: Jeder, der möchte, kann sich diese Software installieren, und selbst zu einem vollwertigen Teilnehmer im Bitcoin-Netzwerk werden.

Doch wie kann es überhaupt möglich sein, dass eine Bitcoin-Node, ohne sämtliche Vorkenntnisse komplett eigenständig verifizieren kann, dass selbst in der Vergangenheit alles stets mit rechten Dingen zugegangen ist? Und funktioniert das alles wirklich vollständig ohne Vertrauen in andere Teilnehmer?

Eine der Stärken von Bitcoin – meiner Meinung nach sogar die wichtigste – ist das geringe Maß an Vertrauen, das man in andere haben muss. Wenn du eine Full-Node für deine eingehenden Transaktionen verwendest, weißt du, dass in der Geschichte deiner Coins niemals betrogen wurde.

Peter Wuille – Bitcoin Entwickler

Proof of Work lügt nicht

Eine frisch geborene Node benötigt, wie eingangs erwähnt, erstmal eine Verbindung zum Bitcoin-Netzwerk. Aber was bedeutet das eigentlich? Da es keinen zentralen Server gibt und man solche ohnehin vermeiden möchte, sucht man stattdessen nach anderen Nodes im Peer-to-Peer-Netzwerk. Höchstwahrscheinlich sind diese Teilnehmer bereits vollständig mit dem restlichen Netzwerk synchronisiert, kennen also die gesamte Transaktionshistorie („die Blockchain“) und haben diese lokal gespeichert. Doch das muss nicht zwingend der Fall sein!

Jeder Bitcoin-Block aus der Vergangenheit ist mit einem Proof of Work, also einem Arbeitsnachweis, verknüpft. Dieser kann nicht einfach so gefälscht werden, zumindest nicht ohne viel Energie und Zeit aufzuwenden, und ist eindeutig mit dem jeweiligen Inhalt eines Blockes verknüpft. Die konkreten Regeln, wie viel Arbeit in einem bestimmten Block stecken muss, damit dieser gültig ist, sind jeder Bitcoin-Node bekannt. Erhält unsere gerade erst gestartete Bitcoin-Node also Blöcke von anderen Teilnehmern, können zum einen sämtliche darin enthaltene Transaktionen auf Gültigkeit geprüft werden. Zum anderen kann die Gültigkeit des Blockes selbst, also ob ein gültiger Arbeitsnachweis vorhanden ist oder nicht, verifiziert werden.

Lese-Tipp: Was ist Mining?

Einen Haken gibt es allerdings: Eine unehrliche Node, die von einem Angreifer oder jemandem, der sich einen Spaß erlauben will, betrieben wird, kann uns Bitcoin-Blöcke schicken, die zwar formal gültig sind, mit der echten Bitcoin-Blockchain von heute aber gar nichts zu tun haben. Der Vorteil der eindeutigen, nicht manipulierbaren Reihenfolge einer Blockchain ist schließlich ganz am Anfang, wenn unsere Node diese noch gar nicht kennt, nicht vorhanden.

Doch selbst wenn wir unrealistischerweise davon ausgehen, dass unsere frisch gestartete Bitcoin-Node mit tausend unehrlichen Nodes eines Angreifers verbunden ist, reicht auch nur eine einzige ehrliche Node aus, um den Schwindel aufzudecken. Dafür sorgt eine enorm wichtige Grundregel von Bitcoin: Die Kette mit dem größten Arbeitsnachweis ist die gültige – nicht die längste, wie häufig irrtümlicherweise angenommen wird.
In die Bitcoin-Blockchain, wie wir sie heute kennen, ist zusammengerechnet so gigantisch viel Arbeit geflossen, dass nachträgliche Manipulationen oder gar die Simulation einer neuen Blockchain, mit einem größeren Arbeitsaufwand, an die Unmöglichkeit grenzen.

Eine einzige Verbindung zu einer ehrlichen Bitcoin-Node reicht aus, um unehrliche Teilnehmer zu entlarven.

Daher können auch neue Teilnehmer im Netzwerk, welche bisher nichts über die Vergangenheit gewusst haben, stets davon ausgehen, den „echten“ Zustand des Bitcoin-Netzwerks zu kennen. Jeder Block kann unabhängig und eigenständig verifiziert werden und "spricht für sich" - ohne externe Informationen.

Eclipse-Attacken

Das Bitcoin-Netzwerk ist groß, dezentral und besteht aus Tausenden Teilnehmern. Sich mit jeder einzelnen Bitcoin-Node gleichzeitig verbinden zu wollen ist praktisch unmöglich und würde uns als Nutzer auch nicht viel bringen. Man ist daher aber auch stets nur mit einer Handvoll anderer Teilnehmer verbunden. Rein theoretisch könnte man das Angriffsszenario aus dem vorherigen Abschnitt also noch weiter auf die Spitze treiben: Was, wenn es sich bei allen Verbindungen um unehrliche Nodes handelt? Um auch dieses Risiko besser einordnen zu können, müssen wir uns anschauen, wie eine neue Bitcoin-Node überhaupt nach anderen Teilnehmern im Netzwerk sucht.

Eine vollständig vom restlichen Netzwerk abgekapselte Bitcoin-Node.

In Bitcoin Core verankert sind dafür sogenannte DNS Seeds, also vereinfacht gesagt Informationsschalter, an denen man sich IP-Adressen von zuverlässigen Bitcoin-Nodes abholen kann. Diese werden zwar aktuell von gerade mal neun Bitcoin Core Entwicklern zur Verfügung gestellt, doch wir erinnern uns: Bereits eine einzige ehrliche Bitcoin-Node reicht aus, um eine Eclipse-Attacke, also eine vollständige Abkapselung vom restlichen Netzwerk, auszuschließen. Selbst wenn sämtliche DNS Seeds nicht mehr abrufbar wären, gibt es darüber hinaus eine feste Liste mit regelmäßig aktualisierten Bitcoin-Nodes, auf die neue Teilnehmer automatisch zurückgreifen würden.

Ein potenzieller Angreifer müsste also sämtliche, im öffentlich einsehbaren Quellcode von Bitcoin verankerten, Bitcoin-Nodes kompromittieren, also in irgendeiner Form die Kontrolle übernehmen, ohne dass eine andere Person etwas davon mitbekommt. Erst dann wäre ein solcher Angriff überhaupt möglich. Klammert man solche vernachlässigbaren Risiken aus, kann man also tatsächlich davon sprechen, dass eine Bitcoin-Node keinerlei Vertrauen aufwenden muss, um die gesamte Transaktionshistorie nachträglich zu verifizieren.

Subjektive Wahrheit

Um besser wertschätzen zu können, wie wichtig Proof of Work als „thermodynamischer Anker“ für die Vertrauensannahmen eines Netzwerks sein können, lohnt es sich einen Blick auf den prominenten Gegenspieler, Proof of Stake, zu werfen. Hier nimmt man einen Kompromiss, was das oben beschrieben Szenario angeht, in Kauf. Während beim Proof-of-Work-Mechanismus geleistete Arbeit darüber entscheidet, wer Autor eines neuen Blockes sein darf, spielt bei Proof of Stake investiertes Kapital eine Rolle. Dieses verliert bei unserem theoretischen Angriff aber seine Authentizität, da schließlich die gesamte Historie, also auch vermeintlicher Reichtum, vorgetäuscht werden könnte. Eine erstmals gestartete Node in solch einem Netzwerk hat also keine Möglichkeit zu erkennen, ob es sich bei der einen oder der anderen Blockchain um den „echten“ Zustand handelt und muss sich eine geeignete externe Quelle für diese Entscheidung suchen. Streng genommen könnte man also argumentieren, dass ein Proof-of-Stake-Netzwerk per se nicht ohne Vertrauen funktionieren kann, alleine weil zwei konkurrierenden Chains zunächst nicht eindeutig auf deren „Echtheit“ beurteilt werden können. Befürworter von Proof of Stake sprechen daher auch von "schwacher Subjektivität", da ein Teil des Konsensmechanismus sozusagen auf eine soziale Ebene ausgelagert werden muss. Natürlich bedeutet dies nicht, dass Proof-of-Stake-Netzwerke alleine deshalb zum Scheitern verurteilt sind, aber es ist ein interessanter Diskussionspunkt, der zwar recht theoretisch, aber dennoch grundlegende Kompromisse gegenüber Bitcoins Konsensmechanismus aufzeigt.

Fazit

Natürlich handelt es sich bei den in diesem Beitrag dargestellten Überlegungen um sehr theoretische Szenarien, die mehr dem Verständnis des Sicherheitsmodells von Bitcoin dienen sollen, als über tatsächliche Angriffsrisiken aufzuklären. Die Sicherheit des Bitcoin-Netzwerks ist mittlerweile auf einem Niveau, bei dem etwaige Täuschungsversuche nicht mehr ohne weiteres möglich sind. Trotzdem ist es spannend, sich hin und wieder daran zu erinnern, warum Proof of Work als Konsensmechanismus so entscheidend, und der damit einhergehende Energieverbrauch nicht wegzudenken ist. Zwar kann Sicherheit nie perfekt sein, und Vertrauen nie zu 100% vermieden werden, doch das Bitcoin-Netzwerk kommt diesem Ideal sicherlich deutlich näher als so manche Alternative.