Der byzantinische Fehler und die Lösung Blockchain

Eine der größten Herausforderungen für die meisten verteilten Systeme besteht darin einen Konsens zu schaffen. Dieses Problem wird gewöhnlich als "Problem des byzantinischen Generals" bezeichnet (byzantinischer Fehler).

Was ist denn das Problem des byzantinischen Generals oder der byzantinsche Fehler?


Stell dir vor es gibt eine Gruppe byzantinischer Generäle, die eine Stadt angreifen wollen. Sie stehen nun vor zwei sehr unterschiedlichen Problemen:

  1. Die Generäle und ihre Armeen sind sehr weit voneinander entfernt, so dass eine zentralisierte Autorität unmöglich ist, was einen koordinierten Angriff sehr schwierig macht.
  2. Die Stadt hat eine riesige Armee und die einzige Möglichkeit zu gewinnen ist, wenn alle Armeen gleichzeitig angreifen.

Um eine erfolgreiche Koordination zu gewährleisten, senden die Armeen links von der Burg einen Boten zu den Armeen auf der rechten Seite mit der Nachricht "ANGRIFF AM MITTWOCH".

Angenommen, die Armeen auf der rechten Seite sind noch nicht auf den Angriff vorbereitet und sagen: "NEIN. ANGRIFF AM FREITAG ". Nun senden sie den Boten durch die Stadt zurück zu den Armeen auf der linken Seite. Hier stehen wir vor einem Problem.

Dem Boten kann auf dem Weg zur linken Seite eine Menge passieren. Er konnte gefangen genommen werden, bestochen, getötet und durch einen anderen Boten der Stadt ersetzt werden. Dies würde dazu führen, dass die Armeen auf der linken Seite manipulierte Informationen erhält, was wiederum zu einem unkoordinierten Angriff und zu einer Niederlage führen könnte.

Dem selben Problem muss sich auch die Blockchain stellen. Die Block-Kette ist ein riesiges Netzwerk: Wie kannst du Ihr vertrauen? Wenn Sie jemanden 4 Ether aus ihrem Wallet schicken, wie können Sie sich sicher sein, dass niemand im Netzwerk die Transaktion manipuliert und aus 4 Ether 40 Ether macht?

Satoshi Nakamoto, der Erfinder von Bitcoin, konnte das Problem des byzantinischen Generals umgehen, indem er das "Proof of Work" Protokoll erfand.

Byzantinischer fehler kryptow  hrung

Blockchain die Lösung zum byzantinischen Fehler

Und sofunktioniert es: Die Armee auf der linken Seite möchte der Armee auf der rechten Seite eine Nachricht mit dem Inhalt "ANGRIFF AM MONATG" senden, dabei müssen sie bestimmte Schritte befolgen.

Zuerst werden sie einen "Nonce" an den Originaltext anhängen. Die Nonce kann ein beliebiger hexadezimaler Wert sein.

Danach hashen sie den angehängten Text mit einem Nonce. Angenommen, die Armeen haben beschlossen nur Nachrichten zu senden, welche beim Hashing ein Ergebnis liefern, welches mit 5 Nullen beginnt.

Wenn die Hash-Bedingungen erfüllt sind, senden sie den Boten mit dem Hash der Nachricht. Wenn nicht, dann werden sie den Wert der Nonce nach dem Zufallsprinzip ändern, bis sie das gewünschte Ergebnis erhalten. Diese Aktion ist extrem langwierig und zeitaufwendig und erfordert viel Rechenleistung.

Wenn der Bote von der Stadt abgefangen wird und die Nachricht manipuliert wird, wird der Hash-Wert entsprechend den Eigenschaften der Hash-Funktion drastisch geändert. Wenn die Generäle auf der rechten Seite erkennen, dass die gehashte Nachricht nicht mit der erforderlichen Menge an Nullen beginnt, wissen sie das die Nachricht gefälscht wurde.

Dies ist das Proof-of-Work-Protokoll, welches von Bitcoin und Ethereum (zum Zeitpunkt wo ich diesen Artikel schreibe) verwendet wird. Das Problem dabei ist, dass das Proof-of-Work Verfahren äußerst verschwenderisch und ineffizient ist. Es gibt natürlich mehr Konsensmechanismen. Ethereum plant durch die Implementierung von Casper zu Proof of Stake zu wechseln.

Neo hat sich entschieden ein interessantes System von Konsensmechanismen zu verwenden. Sie glauben, dass es ihnen helfen wird die Blockchain besser zu skalieren. Der Mechanismus heißt delegierte byzantinische Fehlertoleranz kurz dBFT.


Noch keine Kommentare vorhanden

Was denkst du?

Powered by Chimpify