Hey! Sie scheinen aus United States zu kommen, möchten Sie auf die Englisch Webseite wechseln?
Switch to Englisch site
Skip to main content

Einführung Blockchain – Teil 3

BlockChainPart3-Smaller_aa3cfa62860f3575b0be1db7efcf6af8aba79a49.jpg

In Teil 2 unserer Einführung haben wir die Idee besprochen, dass ein dezentrales Peer-to-Peer-System wie eine öffentliche Blockchain Konsens über die Kettenhistorie und darüber, welche neuen Daten hinzugefügt werden dürfen, erreichen muss, um effektiv zu sein. Das ist natürlich einfacher gesagt als getan, vor allem, wenn Tausende von Knoten im Spiel sind.

Der bahnbrechende Artikel zur Untersuchung dieses Problems ist ein Gedankenexperiment, das 1982 von Leslie Lamport, Robert Shostak und Marshall Pease unter dem Namen Das Problem der byzantinischen Generäle veröffentlicht wurde. Die akademischen Dokumente sind eine einfache Lektüre, die Ihre Zeit wert ist.

2zcek9_69fe9bd7f5861bbcd1d8628d5f3edc7e3c0c854e.jpg

Das Problem der byzantinischen Generäle

Als Beispiel für eine Situation, in der mehrere Parteien einen Konsens bezüglich ihrer künftigen Aktionen erreichen müssen, obwohl es möglicherweise betrügerische oder verräterische Elemente gibt, beschreibt der Artikel ein Szenario, in dem mehrere Generäle des alten oströmischen Reiches um eine rebellische Stadt herum Position bezogen haben. Jeder General und seine Armee befinden sich in einem separaten Lager und die Kommunikation zwischen den Lagern ist nur durch Boten über offenes (möglicherweise feindseliges) Gelände möglich.

Das Problem für die Generäle ist die Stärke der Stadt, die sie belagern. Die Stadt kann leicht eine einzelne Armee vernichten und einem unkoordinierten Angriff mehrerer Armeen standhalten. Damit die Generäle erfolgreich sind, müssen sie gemeinsam angreifen. Die andere Option, die es ihnen ermöglicht, die Kraft für den Kampf an einem anderen Tag zu erhalten, besteht darin, sich gemeinsam zurückzuziehen.

In Bezug auf die Nachricht, die jeder General übermitteln muss, um dieses Ergebnis zu erzielen, zeigt das Dokument, dass das Problem für jeden einzelnen General (in seiner einfachsten Form) wie ein Problem aussieht, das in Form von einem befehlshabenden General und zwei Leutnants beschrieben werden kann. Die in dem Artikel beschriebenen Bedingungen sind:

Das Problem der byzantinischen Generäle. Ein befehlshabender General muss einen Befehl an seine n-1 Leutnant-Generäle senden, damit Folgendes zutrifft:

IC1: Alle loyalen Leutnants befolgen den gleichen Befehl.
IC2: Wenn der befehlshabende General loyal ist, dann befolgt jeder loyale Leutnant den von ihm gegebenen Befehl.

Scheint einfach, aber wenn unsere Generäle offene (oder mündliche) Nachrichten verwenden, gibt es keine Lösung, es sei denn, mehr als 2/3 der Generäle sind loyal. Anders ausgedrückt: Für unsere 3 Generäle funktioniert keine Lösung, wenn ein Verräter anwesend ist. Dies kann in den folgenden beiden Abbildungen dargestellt werden:

generals_8624b21fd1a2242b96b3ee58f856edfddb73a5d2.png

In Abb. 1 befiehlt der Befehlshaber beiden Leutnants anzugreifen. Leutnant 2 ist ein Verräter und sendet Leutnant 1 die Nachricht, dass er einen Rückzugsbefehl erhalten hat. Um die Bedingung IC2 zu erfüllen, befolgt Leutnant 1 den Befehl zum Angriff.

In Abb. 2, in der der Befehlshaber der Verräter ist, sendet er einen Angriffsbefehl an Leutnant 1 und einen Rückzugsbefehl an Leutnant 2. Leutnant 1 weiß nicht, wer der Verräter ist oder welche Nachricht an Leutnant 2 gesendet wurde, und erhält genau die gleiche Information wie in Abb. 1. Solange der Verräter bei seinen Lügen konsequent bleibt, muss Leutnant 1 immer angreifen.

Der Artikel zeigt mathematisch, dass keine Lösung mit weniger als 3m + 1 Generälen mit einer Anzahl von m Verrätern zurechtkommen kann: Das heißt, weniger als 1/3 der Generäle kann ein Verräter sein, damit es immer noch eine praktikable Lösung geben kann.

Gefälschte Nachrichten unterbinden

Wie wir in Abb. 1 und Abb. 2 gesehen haben, ist die Fähigkeit der/des Verräter(s) zu lügen, das, was das Problem der byzantinischen Generäle derart verschärft. Wir können die Lösung einfacher machen, wenn wir die Fähigkeit zu lügen einschränken können. Dies kann durch Senden von Nachrichten mit Unterschriften erfolgen, die nicht gefälscht werden können. In diesem Fall werden folgende Annahmen getroffen:

A1: Jede gesendete Nachricht wird korrekt übermittelt.
A2: Der Empfänger der Nachricht weiß, wer sie gesendet hat.
A3: Das Fehlen einer Nachricht kann erkannt werden.

Diese Annahmen gelten auch für die vorherigen Beispiele für mündliche Mitteilungen, was wir aber hier hinzufügen, ist:

A4: (a) Die Unterschrift eines loyalen Generals kann nicht gefälscht werden und Änderungen am Inhalt seiner unterschriebenen Nachrichten können festgestellt werden.
       (b) Jeder kann die Echtheit der Unterschrift eines Generals überprüfen.

In diesem Szenario sendet der Befehlshaber jedem seiner Leutnants einen unterzeichneten Befehl. Jeder Leutnant fügt dann seine eigene Unterschrift zum Befehl hinzu, bevor er sie an den/die anderen Leutnant(s) sendet usw. Wenn wir diesen Algorithmus auf das vorherige Szenario anwenden, erhalten wir Folgendes:

generals2_7f3c39063960e91901f1db2c46a472854b8662a1.png

Der Befehlshaber unterschreibt seine Befehle mit „0“. Jeder Leutnant unterzeichnet den erhaltenen Befehl und sendet ihn an den anderen. In diesem Fall wissen die Leutnants, dass ihr Befehlshaber ein Verräter ist, da seine Unterschrift auf zwei gegensätzlichen Befehlen steht und A4 angibt, dass nur er die Unterschrift hat erzeugen können.

Im weiteren liefert dieser Artikel mathematische Beweise dafür, dass dieser Algorithmus nun mit m Verrätern für eine beliebige Anzahl von Generälen zurechtkommt und wie er in anderen Szenarien funktioniert, z. B. bei fehlenden Kommunikationspfaden. Das würde wahrscheinlich den Rahmen eines Einführungsartikels sprengen. Wenn Sie die vorherigen Teile dieses Artikels gelesen haben, werden Sie bereits sehen, wie diese Ideen eingesetzt werden (mithilfe von Kryptografie zur Erstellung von Signaturen), um die Basis dafür zu schaffen, wie Blockchains Konsens erreichen und Angriffen widerstehen.

Waisen, Onkel und Veralterung

Erinnern Sie sich daran, dass jeder Miner in einem Blockchain-Netzwerk versucht, das kryptografische Rätsel für den aktuellen Block zu lösen? Sobald es gelöst ist, sendet der Miner die Lösung zur Überprüfung an das Netzwerk. Wenn alles in Ordnung ist, beginnen die Miner mit dem nächsten Block.

Aber was passiert, wenn zwei Miner gleichzeitig denselben Block lösen? Alle verteilten Netzwerke weisen eine Latenz auf, da die Daten auf alle Knoten übertragen werden müssen. Dies kann von einigen Millisekunden bis zu einigen Sekunden reichen, was bedeutet, dass es durchaus möglich ist, dass die Blöcke zwei separater Miner überprüft und durch eine große Anzahl von Knoten zur Kette hinzugefügt werden.

Wir haben jetzt eine Gabelung in unserer Blockchain, die zwei separate Ketten wachsen lassen wird, da beide gültig sind und das Mining nicht gestoppt werden kann, während dies geklärt wird. Dies ist ein Problem für eine Blockchain, da es wie in Highlander nur eine geben kann.

Verschiedene Blockchains haben ihre eigenen Ansätze, um dieses Dilemma zu lösen. Daher werden wir uns ansehen, wie das bei den gängigsten, Bitcoin und Ethereum, angegangen wird.

Bitcoin

Betrachten wir eine Situation, in der Miner X und Miner Y gerade Block Nummer 1001 gelöst haben. Da er in einem Bereich mit geringeren Netzwerklatenzen ist, hat Miner X seinen neuen Block an 60 % des Bitcoin-Netzwerks übertragen. Miner Y hat seinen Block an die anderen 40 % weitergegeben. Zu diesem Zeitpunkt gelten beide Blöcke als gültig und das Mining wird fortgesetzt.

Die Mining-Knoten, die den Block von Miner X akzeptiert haben, führen das Mining fort, um den nächsten Block nach dem Block von Miner X hinzuzufügen, während die Knoten, die den Block von Miner Y akzeptiert haben, das Mining an der Kette von Y fortführen.

orphan01_1e0ffc3465b73dac334344d6da92837511ecb5bd.png

Die Miner, die die Kette von X fortführen, fügen einen weiteren Block hinzu, aber die Miner, die die Kette von Y fortsetzen, haben zwei Blöcke hinzugefügt. In einer Blockchain ist die Kettenlänge entscheidend. Trotz der höheren Anzahl von Knoten, die das Mining für die X-Kette durchführen, erhält die längere Y-Kette den Vorrang und wird als echte Kette akzeptiert.

orphan02_c4291633e08e4a07520244efe163b91e85c3ae24.png

Der X-Block Nummer 1001 wird von der Kette abgeschnitten und verbleibt ohne übergeordneten Block. Er wird jetzt als verwaister Block bezeichnet. Die Miner von X erhalten keine Belohnung für den zusätzlichen Block, den sie gefunden haben, der jetzt ein unbrauchbarer veralteter Block ist.

Bei einer echten Implementierung wartet das Blockchain-Netzwerk nicht so lange, um eine Entscheidung zu fällen. Sobald das Mining für Block Nummer 1002 durchgeführt wurde, wechselt das Netzwerk zu dieser Kette und verwaist die andere.

Falls Sie sich fragen, was mit den Transaktionen passiert, die den verwaisten (und veralteten) Block bilden: Diese gehen automatisch zurück in die Warteschlange, um zum nächsten Block hinzugefügt zu werden.

Ethereum

Ethereum verfolgt einen etwas anderen Ansatz für diese Frage in Form des GHOST-Protokolls (Greedy Heaviest Observed Subtree), das Miner belohnt, die das finden, was in Bitcoin verwaiste oder veraltete Blöcke wären. In Ethereum werden sie als Onkel-Blöcke bezeichnet und obwohl sie immer noch nicht zur Haupt-Blockchain hinzugefügt werden, erhält ein Miner eine Belohnung, wenn auch niedriger als bei einem Standardblock, der der Kette hinzugefügt wird.

Ethereum erlaubt 7 Stufen von Onkel-Blöcken – dies entspricht einem verwaisten und sechs veralteten Blöcken in Bitcoin – und belohnt sie nach einer Formel:

([Onkel-Block-Nummer] + 8 - [Block-Nummer]) x ([Ethereum-Belohnung] /8)

Wenn also die Belohnung für einen Standardblock 3 ETH wäre, wäre der erste Onkel-Block 2,625 ETH wert, der nächste 2,25 ETH, gefolgt von 1,87 ETH usw. In einer echten Implementierung würde ein Miner-Knoten aber die Onkel-Kette nach einem (oder höchstens zwei) Blöcken verlassen.

Die Zukunft

Blockchain ist eine sich entwickelnde Technologie und ich denke, dass die vorteilhaftesten Nutzungsmöglichkeiten der Technologie sich erst einige Zeit nach dem Ende des Mainstream-Hypes offenbaren werden. Sie werden wahrscheinlich auch einige grundlegende Fortschritte in der zugrunde liegenden Technologie erfordern, um sie wirklich nützlich zu machen.

Hier ein Beispiel dafür, was ich meine: Martin Cooper war 1973 bei Motorola beschäftigt, als er ein Patent für ein „Funktelefonsystem“ anmeldete. Noch im gleichen Jahr tätigte er den ersten Anruf mit einem Mobiltelefon. Doch erst die Einführung der digitalen GSM-Netzwerke Mitte der 1990er Jahre (was wiederum zu kostengünstigeren Handgeräten mit geringerem Stromverbrauch und einer breiterer Mobilfunkabdeckung durch eine effizientere Nutzung der Übertragungsbandbreite führte, als es mit Analogtechnologie möglich war) ermöglichte es, die Technologie allgegenwärtig zu machen und um zuvor ungeahnte Funktionen zu ergänzen.

In ähnlicher Weise hat Blockchain einige Einschränkungen, die es zu überwinden gilt. Die Bitcoin-Blockchain kann beispielsweise nur 7 Transaktionen pro Sekunde verarbeiten und das Mining eines Blocks dauert durchschnittlich 10 Minuten. Dies begrenzt ihre Zweckmäßigkeit für Finanzinstitute, die täglich Millionen von Transaktionen verarbeiten. Und dabei wurde noch nicht berücksichtigt, dass jede einzelne Transaktion, die einem Block hinzugefügt wird, effektiv dieselbe Energie erfordert wie 1,6 durchschnittliche US-Haushalte in 24 Stunden. Hinzu kommt noch die Größe der Kette von mehr als 25 GB (und weiterwachsend), weshalb es immer schwieriger wird, sie auf Privatgeräten unterzubringen.

Auf der anderen Seite wird viel Geld in Recherchen investiert, mit Gruppen wie dem Global Blockchain Business Council (GBBC), der aktiv nach neuen Verwendungsmöglichkeiten für Blockchain sucht, und dem Hyperledger Project, um offene Standards zu entwickeln, die eine branchenübergreifende Interoperabilität ermöglichen. IBM arbeitet zusammen mit Samsung an  ADEPT (Autonomous Dezentralized Peer-to-Peer Telemetry), die Blockchain-Technologie zum Schutz verteilter Netzwerke autonomer Geräte in einem dezentralen IoT-Ökosystem nutzt.

Derzeit kann Blockchain für die Art von Daten eingesetzt werden, die normalerweise in einem Buch geführt würden, z. B. Finanztransaktionen (einschließlich Mikrotransaktionen), Datensätze lokaler Regierungen (Abstimmungen, Land- und Fahrzeugregistrierung usw.), medizinische Daten, Verfolgungsdaten usw. Ich sehe jedoch Verbesserungen der zugrunde liegenden Technologie kommen, mit denen viele andere Arten von sicheren Datenspeicheranwendungen realisierbar werden können.

Mark completed his Electronic Engineering degree in 1991 and worked in real-time digital signal processing applications engineering for a number of years, before moving into technical marketing.
DesignSpark Electrical Logolinkedin