Es gibt mehrere Konsensmechanismen zur Validierung von Blockchain-Transaktionen. Der beliebteste ist Proof of Work (PoW), der für Bitcoin, Litecoin und die meisten anderen Blockchains verwendet wird. Der Konsensmechanismus bestätigt, dass alle Knoten im Netzwerk über dieselbe Version der Blockchain verfügen.
Eine Hash-Funktion ist das Schlüsselelement einer Blockchain. Es handelt sich um eine mathematische Funktion, die beliebige Daten in eine Zahl (Hash) umwandelt. Ein Hash kann nicht in die Originaldaten zurückverwandelt werden. Wenn Sie jedoch irgendwo in den Originaldaten ein Bit ändern, ändert sich der gesamte Hash-Wert.
Um es einfach auszudrücken: Neue Transaktionen werden einer Blockchain durch einen Konsensprozess hinzugefügt. Das bedeutet, dass die Mehrheit der Knoten zustimmen muss, dass die Transaktion gültig ist.
Wenn Sie eine Transaktion an eine Blockchain senden, wird sie an alle Mining-Knoten (oder Validierer) übermittelt und gelangt in deren Mempools (Wartebereich). Jeder Knoten fasst einen Stapel von Transaktionen in einem Entwurfsblock für die Blockchain zusammen und versucht, ihn zu minen:
- Alle Transaktionen im Block werden summiert. Diese Zahl wird zum gehashten Inhalt des vorherigen (letzten) Blocks addiert, der dann gehasht wird.
- Der Knoten vergleicht den resultierenden Hash mit der aktuellen Schwierigkeit. Die Schwierigkeit ist ein Maß, eine Zahl, mit der jeder berechnete Hash verglichen wird. Liegt der Hash unter einem bestimmten Zielwert, hat der Miner Glück gehabt, einen Block abgebaut zu haben. Übersteigt der Hashwert die Zahl, erhöht der Miner den Block um 1 und berechnet den Hash erneut. Und so weiter, Millionen Mal pro Sekunde.
- Sobald ein Knoten einen neuen Block geschürft hat, überträgt er ihn an alle anderen Knoten. Alle anderen Miner hören sofort auf, ihre Blöcke zu schürfen, nehmen den neuen Block in ihre Version der Blockchain auf und beginnen mit der Bildung des nächsten Entwurfsblocks. Sobald der neue Block in den Blockchains mehrerer Knoten erscheint, gelten alle Transaktionen als validiert.
Um es einfach auszudrücken: Um eine Liste neuer Transaktionen zu erstellen, löst ein Validierungsknoten ein komplexes mathematisches Problem mit roher Gewalt. Sobald die Brute-Force-Methode erfolgreich ist, werden die Transaktionen in eine Blockchain aufgenommen, während die anderen Knoten ihren Brute-Force-Prozess unterbrechen, die neuen Transaktionen in ihre Kopie der Blockchain aufnehmen und einen neuen Brute-Force-Prozess starten.
All diese ausgeklügelten Schritte verhindern einen Angriff auf die Blockchain. Angreifer könnten beispielsweise ihre Kryptowährungen ausgeben und die Transaktionen an das Netzwerk senden und dann neue Versionen einer Blockchain erstellen, um dieselbe Kryptowährung erneut auszugeben. Die Angreifer senden dann ihre Versionen des Blocks an alle anderen Knoten. Es ist, als würden zwei Versionen der Blockchain entstehen: In der ersten Version wird die Kryptowährung an eine Adresse gesendet, und in einer anderen Version wird dieselbe Kryptowährung an eine andere Adresse gesendet.
Um diesen Konflikt zu lösen, werden Konsensmechanismen entwickelt. Der Prozess ist einfach: Ein Knoten, der einen Blockchain-Zweig erkennt, verwirft den kürzeren Zweig, also den mit weniger Blöcken. Damit ein manipulierter Zweig legitim wird, muss ein Angreifer seine Blöcke schneller minen als der Rest des Netzwerks. Der Mining-Mechanismus macht dies in Bezug auf die Rechenleistung extrem teuer.
Wenn jedoch ein Angreifer ohne ausreichende Rechenleistung scheitert, besteht immer noch die Möglichkeit, dass einige Knoten den manipulierten Block, aber nicht den echten Block erhalten haben. Daher legt jeder Dienst eine bestimmte Anzahl von Bestätigungen fest, die erforderlich sind, damit eine Transaktion als abgeschlossen gilt. Bei kleinen Beträgen reichen normalerweise 1 bis 3 Bestätigungen aus, während ein Austauschdienst bei Transaktionen in Kryptowährungen im Wert von mehreren Millionen Dollar lieber auf mehrere Dutzend Bestätigungen wartet, bevor er die Transaktion zulässt.
Um es einfach auszudrücken: Neue Transaktionen müssen zunächst von anderen Servern verifiziert werden. Die Schwierigkeit des mathematischen Problems verhindert, dass schnell gefälschte Transaktionen durchgeführt werden.