Grundlagen der Blockchain – Teil 3 Ohne Konsens keine Kryptowährung
Kryptografie und eine breite Nutzergemeinde sind der einzige Garant für eine funktionierende Blockchain. Sie schützen vor Betrug und gegen die Folgen technischer Probleme. Doch was tun, wenn es in dem verteilten System zu Unstimmigkeiten kommt? Mathematiker haben dazu Methoden entwickelt, die divergierenden Zweige einer Blockchain wieder zu konsolidieren. Wirklich durchgesetzt hat sich noch keine, denn alle haben ihre Schwächen.

Wer reale Werte in Geldscheine oder Münzen umtauscht, erwartet, dass sein Zahlungsmittel fälschungssicher und eindeutig ist. Sonst könnte jeder, der kurzfristig in den Besitz gelangt, beliebig viele Kopien anfertigen, und so der Wert der Währung schnell ruinieren. Bei staatlich emittierten Währungen garantieren Wasserzeichen, Sicherheitsstreifen und Hologramme die Fälschungssicherheit, die Notenbank überwacht die Menge des zirkulierenden Geldes. Bei Edelmetallen ist es die Chemie, die Klarheit schafft. Gold und Silber hat noch nie jemand „nachmachen“ können. Trotz der ungeheuren Menge an Geld und Edelmetallen und zahllosen Umläufen über die Jahrhunderte finden sich keine Hinweise auf prinzipiell nicht aufdeckbare Fälschungen. Es kommt nur auf den Aufwand und die Aufmerksamkeit an.
Bei virtuellem Geld ist es einzig und allein die Kryptografie und die Gemeinschaft der Buchführer, die darüber wacht, dass ein Bitcoin und ein Ethereum nicht zweimal ausgegeben werden („double spending“). Die Konstrukteure die Kryptowährungen gehen davon aus, dass es sehr wohl möglich ist, die Validität eines Bitcoins fälschlich zu bestätigen, weil sich eine Gruppe verschwört, niemals aber die Mehrheit der Teilnehmer. Geeignete Anreizsysteme sollen stets für eine ausreichend große Anzahl von Teilnehmern sorgen. Die Mehrheit der gesetzestreuen Gutmenschen hat also stets die Mehrheit. Dies ist allerdings auch zwingend nötig, denn sonst versagt der Sicherheitsmechanismus. Die Daten auf Blockchains müssen übereinstimmen, sowohl was den Inhalt, als auch was die Reihenfolge angeht. Treten Unstimmigkeiten auf, ist es Aufgabe eines Konsensmechanismus, die Ordnung wiederherzustellen. Der Konsensmechanismus kann aber nicht eigenständig zwischen wahren und falschen Einträgen in den Blockketten unterscheiden. Er verhilft nur der Mehrheitsmeinung zum Durchbruch, und die kann falsch sein.
Byzantinische Fehler oder Verrat der Offiziere
Im Jahr 1453 n.Chr. belagern osmanische Generale Konstantinopel, auch bekannt als Ostrom. Heute heißt die Stadt Istanbul. Im Mittelalter war sie das Zentrum des Byzantinischen Reiches. Rund tausend Jahre nach dem Fall von Westrom sank 1453 n.Chr. auch der Stern von Ostrom, doch die Befestigungsmauer schützt Konstantinopel zunächst und stellt die Angreifer vor ein Problem. Sie können nur durch Boten miteinander kommunizieren, weil die Mauer zu lang ist. Um Erfolg zu haben, müssen sie gleichzeitig aus verschiedenen Richtungen angreifen. Die Alternative wäre Abwarten. Einige der Generäle spielen aber ein falsches Spiel und geben die Entscheidungen des Oberkommandierenden „Angriff“ oder „Kein Angriff“ falsch wieder. Ihr Ziel war es, ihre Konkurrenten beim Sultan in Misskredit zu bringen – beispielsweise dadurch, dass sie die anderen durch geschickt gestreute Fehlinformationen zu einem verfrühten Angriff treiben wollten. Welche Möglichkeit haben die loyalen Generäle, sich auf eine gemeinsame Aktion zu einigen? Sie wissen nicht, wer loyal ist, und wer nicht.
Die Aufgabe ist nun, ein Verfahren zur Entscheidungsfindung zu entwerfen, das möglichst fehlertolerant ist. Die Generäle tauschen sich untereinander über Boten aus. Dann trifft jeder für sich eine Entscheidung. Dabei ist zu berücksichtigen, dass Botschaften verschwinden können und Absender auch gefälscht sein können. Das weltgeschichtlich bedeutende Ereignis des 14. Jahrhunderts hat die Mathematiker bis heute so beeindruckt, dass sie eine ganze Klasse von Problemen als „Byzantinische Fehler“ oder „Verrat der Offiziere“ benennen. (Lamport, L., Shostak, R. and Pease, M. (1982) The Byzantine Generals Problem). Die Informatiker halten Lösungen parat, die aber nur dann funktionieren, wenn die Verräter nicht zu zahlreich werden. Die Grenze liegt bei einem Drittel. Dies setzt aber voraus, dass die Botschaften authentisch sind, also durch ein Eindeutiges Siegel vor Fälschung geschützt sind. Heute übernehmen Public-Key Verschlüsselungssysteme diese Aufgabe. Ein General darf nicht ewig mit seiner Entscheidung warten. Per Time-out müssen fehlende Nachrichten als solche erkannt werden. Die Abstimmung funktioniert nach dem Mehrheitsprinzip. Das bedeutet, dass verspätet eintreffende Botschaften den Ausgang der Abstimmung kippen können, insbesondere kann die Mehrheitsmeinung auch zu einem falschen Ergebnis gelangen. Ein Umstand, der oft übersehen wird. In der Praxis können DDoS-Angriffe jene Aufgabe übernehmen, die in früheren Zeiten den Kriegsknechten oblag: Das Überbringen von Botschaften verhindern.
Viele Knoten viele Botschaften
Die IT verlangt zudem synchron gehende Uhren, um sich auf gemeinsame Aktionen einigen zu können. Ist eine externe Quelle nicht verfügbar, können fehlerhafte Uhren bei der Synchronisation ihrerseits einen Byzantinischen Fehler auslösen. Bedacht werden muss auch, dass schon bei nur 5 Verrätern die Anzahl der ausgetauschten Nachrichten auf über 3,6 Millionen anschwillt. So rechneten es Leslie Lamport und Danny Dolev 2005 während eines Seminars des Hasso-Plattner-Instituts vor. Bei der Wahl eines Konsensmechanismus ist darauf zu achten, dass keine zu starke Abhängigkeit von der Anzahl an Knoten vorliegt. Falls Konsensmechanismen schlecht auf eine größere Knotenzahl skalieren, so ist ihr Einsatz in genehmigungsfreien Blockchains nicht sinnvoll, warnen die Experten des BSI.
Konsensbildung
Die Analogie zwischen Byzantinischen Fehler bzw. Verrat der Offiziere und Betrug in der Blockchain ist offensichtlich. Jeder General muss sich letztlich entscheiden, ob nun Angriff oder Abwarten angesagt ist, einen Mittelweg gibt es nicht. Jeder versucht sich mit möglichst vielen Generälen abzustimmen, um Klarheit zu erlangen. Exakt so gehen auch die Konsensmechanismen vor. Mathematiker reden allerdings nicht von Generälen, sondern von Knoten in einem Netzwerk. Byzantinische Fehler können durch Fehlbedienungen, technische Probleme oder eben durch Verrat oder Betrugsabsichten herbeigeführt werden. In allen Fällen sind die Knoten nicht mehr konsistent. Es herrscht somit Unklarheit über den wahren Inhalt der Blockchain bzw. dem Stand des Kassenbuchs (des Journals).
Synchrone und asynchrone Netzwerke
In der Literatur wurden inzwischen etliche Verfahren vorgeschlagen. Nicht jedes ist für alle Anwendungsfälle geeignet. Das BSI weist darauf hin, dass sich die Anforderungen an die Konsensmechanismen für öffentliche und private Blockchains in vielen Punkten unterscheiden. Bei der Auswahl der Verfahren ist zudem zu klären, ob bei der Konsensbildung Sicherheit oder Lebendigkeit priorisiert wird. Wer einen Konsensmechanismus entwirft, muss sich entscheiden, welche der beiden Forderungen er für wichtiger hält. Lebendigkeit garantiert, dass jeder korrekte Knoten letztendlich eine Entscheidung trifft. Es darf also keine unendliche Verzögerung geben, auch wenn noch auf Botschaften gewartet wird. Das Verfahren ist also terminiert. In asynchronen Netzwerken kann es geschehen, das einer der Knoten (Generäle) bis zum Sankt Nimmerleinstag auf den letzten Boten wartet, der aber nie eintrifft. In synchrone Netzwerke existiert per Definition eine Zeitschranke. Zusätzlich wird von Konsensmechanismen Sicherheit (safety) verlangt. Dazu sind drei Bedingungen zu erfüllen: Die Gültigkeit (validity), sie besagt, dass sich ein Knoten nur für einen Wert entscheiden kann, der von einem anderen Knoten vorgeschlagen wurde, also nicht willkürlich selbst einen Wert (Botschaft) generiert. Zusätzlich wird Integrität (integrity) verlangt. Kein Knoten darf sich mehrfach entscheiden. Ebenso wird Übereinstimmung (agreement) gefordert. Zwei korrekte Knoten dürfen keine unterschiedlichen Entscheidungen treffen. Wie diese Forderungen zu erfüllen sind, darüber wird zunächst nichts ausgesagt.
Neben den Byzantinischen Fehlers existieren noch Crash-Fehler. In diesem Fall stürzen Knoten ab. Sie sind aber in der Regel nach einiger Zeit wieder funktionstüchtig. Die Kunst der Mathematiker besteht nun darin, Verfahren zu finden, die möglichst schnell eine große Anzahl von Betrugsversuchen oder Crash-Fehlern abfedern können. Zwei Arten werden unterschieden. CFT-Algorithmen (crash fault-tolerant) beseitigen Crash-Fehler, oder BFT-Algorithmen (Byzantine fault-tolerant) die den Verrat (Byzantinischen Fehler) ausmerzen sollen. In der Praxis werden in verteilten Systemen wegen ihres höheren Durchsatzes fast immer CFT-Algorithmen eingesetzt. Das bekannteste Beispiel für die Verwendung neuartiger Verfahren ist die Kryptowährung Bitcoin, die ebenso wie Ethereum Proof-of-Work (PoW) Algorithmen aus der Klasse der Proof-of-X (PoX) Verfahren verwendet. Sie wurden erst in neuerer Zeit speziell für Blockchain entwickelt. Die Herstellung eines Konsenses über neue Daten geschieht bei diesen Algorithmen mithilfe eines rechenintensiven mathematischen Rätsels (Auffinden eines Strings, dessen Hashwert unterhalb einer gegebenen Schranke liegt), das es pro neuen Block zu lösen gilt. Die Lösung dieses Rätsels ist der eigentliche „Proof-of-Work“ (Arbeitsnachweis). Wer als Erster eine gültige Lösung findet, dessen Block wird im Netzwerk verteilt und von den übrigen Knoten akzeptiert.
Gabelungen - Forks
Durch Latenzzeiten bei der Übertragung der Nachrichten im Netzwerk kann es vorkommen, dass verschiedene Knoten zunächst in ihrer lokalen Blockchain-Kopie an derselben Stelle unterschiedliche Blöcke speichern, wodurch unterschiedliche Zweige der Blockchain entstehen und es somit zu Inkonsistenzen kommt. Dies wird als Fork (Gabelung) bezeichnet. Solche Forks werden jedoch probabilistisch nach kurzer Zeit aufgelöst. Es wird also die wahrscheinlichste Lösung ermittelt. Es existiert also keine mathematische Garantie, dass stets der richtige Ast der Gabelung in die Blockchain eingebunden wird.
Abstrakt lässt sich PoW als Konsensmechanismus mit einem Anführer auffassen, dessen Vorschlag im Regelfall von allen korrekten Knoten übernommen wird. Die Diskussion über das beste Konsensverfahren ist noch nicht angeschlossen. So wurden in der Zwischenzeit energieschonendere Verfahren vorgestellt, die aber bis jetzt noch nicht praktisch umgesetzt wurden. Die Sicherheit von PoW ist nicht durchgängig garantiert, denn hier können hinzugefügte Blöcke nachträglich durch Auflösen von Forks ungültig werden. Das unterscheidet sie von klassischen CFT- und BFT-Verfahren, die immer die Sicherheit garantieren und deren Blöcke endgültig sind. Darauf weist das BSI hin. PoW-Verfahren sind äußerst rechenintensiv und erzeugen daher hohe Energiekosten. Um trotzdem genügend Teilnehmer zu garantieren, sind ökonomische Anreizsysteme zwingend notwendig. Meist wird dem erfolgreichen Knoten ein bestimmter Betrag in der fraglichen Kryptowährung gutgeschrieben. Der Teilnehmer hat digitale Münzen „geschürft“.
Dies bedeutet aber gleichzeitig, dass ein hoher Kurswert der Währung zwingend notwendig ist, um eine zu starke Zentralisierung des Miningprozesses zu verhindern. Letztlich ist die breite Nutzerbasis der einzige Garant gegen Betrug. Schon heute rechnet sich die Teilnahme bei bestimmten Blockchain-Währungen fast nur noch mit optimierter Hardware und an Standorten mit günstigen Stromtarifen. Etwa in Island. Kriminelle lösen das Problem, indem sie auf gekaperten Rechnern auf Kosten ihrer ahnungslosen Besitzer rechnen lassen.
2003 haben Schweizer Physiker ein Verfahren ersonnen, mithilfe der Quantenmechanik das Problem des Byzantinischen Fehlers eleganter und weit besser zu lösen. Sie nutzen dazu die physikalischen Eigenschaften verschränkter Quantenzustände. Diese Methoden sind allerdings weit davon entfernt, bei Bitcoin und verwandten Verfahren heute eingesetzt zu werden.
(ID:46092127)