In Schritt 17 wurden Einzelcomputer in die Knoten eines rein verteilten Peer-to-Peer-Systems verwandelt, die bezüglich der Transaktionsdaten und neuen Blöcke, die in die Blockchain-Datenstruktur eingetragen werden, miteinander kommunizieren. Dieser Schritt beschäftigt sich damit, was geschieht, sobald ein Knoten Transaktionsdaten empfängt, und wie sichergestellt wird, dass nur gültige Transaktionsdaten und Blöcke in die Blockchain-Datenstruktur eingetragen werden.
Stellen wir uns ein Unternehmen vor, das eine einfache Dienstleistung erbringt: Es bewertet Multiple-Choice-Tests für Schulen und Universitäten. Letztere können die Multiple-Choice-Antwortbögen ihrer Schüler und Studenten zusammen mit den richtigen Lösungen an das Unternehmen senden, das diese dann auswertet und benotet. Leider sind die Mitarbeiter des Unternehmens nicht besonders motiviert und neigen zum Schludern, deshalb spricht das Unternehmen allen Mitarbeitern Änderungskündigungen aus: Fortan werden sie als freie Mitarbeiter weiterbeschäftigt, die eine leistungsabhängige Bezahlung erhalten. Diese Bezahlung ist von drei Regeln abhängig:
Alle zu bearbeitenden Antwortbögen, die Lösungen und alle bereits bearbeiteten Antwortbögen sind für die Gesamtheit der freien Mitarbeiter jederzeit über das Softwaresystem des Unternehmens zugänglich.
Nur der erste freie Mitarbeiter, der einen Antwortbogen korrekt bewertet hat, erhält dafür einen Euro als Bezahlung.
Wenn ein freier Mitarbeiter herausfindet, dass ein anderer freier Mitarbeiter einen Antwortbogen falsch bewertet hat, muss jener die Bezahlung zurückgeben. Das Geld geht dann stattdessen an den Mitarbeiter, der den Fehler entdeckt und korrigiert hat.
Die genannten Regeln haben mehrere Folgen:
Da die freien Mitarbeiter nur eine leistungsabhängige Bezahlung erhalten, sind sie aus wirtschaftlichen Gründen motiviert, sich an die Regeln zu halten.
Als Folge von Regel 1 haben alle Mitarbeiter dieselbe Möglichkeit, sich an der Arbeit zu beteiligen und Geld zu verdienen.
Als Folge von Regel 1 stehen allen Mitarbeitern die Informationen zur Verfügung, die zum Kontrollieren und Korrigieren der Arbeit ihrer Kollegen benötigt werden.
Als Folge von Regel 2 ist jeder Mitarbeiter motiviert, zügig zu arbeiten. Allerdings könnte die Qualität unter einem zu hohen Arbeitstempo leiden.
Als Folge von Regel 3 ist jeder Mitarbeiter motiviert, gewissenhaft zu arbeiten.
Als Folge von Regel 3 ist jeder Mitarbeiter motiviert, die Arbeit seiner Kollegen zu kontrollieren und zu korrigieren.
Dank dieser Regeln steigt die Effizienz des Unternehmens stark an, doch nach einigen Monaten häufen sich die Kundenbeschwerden: Die Qualität der Dienstleistung ist stark eingebrochen. Es sieht so aus, als wäre eine vollkommen zufällige Bearbeitung der Multiple-Choice-Tests durchgeführt worden. Das Unternehmen forscht nach und findet heraus, dass sich die freien Mitarbeiter untereinander abgesprochen haben: Niemand kontrolliert die Arbeit der Kollegen, sondern bearbeitet die Bögen einfach so schnell wie irgend möglich. Da eine zufallsgesteuerte Bearbeitung die schnellstmögliche Methode ist, wird sie letztendlich von allen Mitarbeitern angewendet.
Und die Moral der Geschichte? Eine Kombination aus Belohnung, Bestrafung, Gruppenzwang und Wettbewerb kann hilfreich sein, um eine Gruppe unabhängig agierender Individuen zu lenken, sofern die Gruppe nicht beschließt, diese Maßnahmen gemeinsam zu unterlaufen.
Dieser Schritt erklärt den Blockchain-Algorithmus, der eine clevere Umsetzung des Zuckerbrot-und-Peitsche-Konzepts mit dem Wettbewerbsgedanken und Gruppenzwang kombiniert, ähnlich wie bei dem Unternehmen in unserer Metapher. Das Problem dabei besteht darin, die richtige Mischung zu finden.
Das Ziel ist es, neue Transaktionsdaten in die Transaktionsdatenhistorie einzutragen, ohne deren Integrität zu kompromittieren.
Die Blockchain ist vollkommen offen. Jeder, selbst der Unehrlichste, kann Computer mit dem System verbinden und somit Transaktionen erzeugen und an alle anderen Knoten des Systems übermitteln. Es lässt sich daher nicht garantieren, dass die über das Netzwerk verbreiteten Transaktionen korrekt sind. Die Herausforderung besteht nun darin, das System einerseits für alle zugänglich zu halten und andererseits dafür zu sorgen, dass nur gültige Transaktionen eingetragen werden.
Damit nur gültige Transaktionen in das System eingetragen werden, dürfen sämtliche Knoten im System als Kontrolleure ihrer Peers arbeiten und diese für das Eintragen gültiger und autorisierter Transaktionen sowie das Aufdecken von Fehlern in der Arbeit anderer belohnen. Daher gibt es für sämtliche Knoten im System einen Anreiz, Transaktionen auf korrekte Weise zu verarbeiten sowie die Arbeit ihrer Peers auf Fehler zu kontrollieren und auf diese hinzuweisen.[1]
Der Blockchain-Algorithmus ist eine Folge von Anweisungen, die bestimmt, wie Knoten neue Transaktionsdaten und Blöcke verarbeiten. Die einzelnen Regeln und Verfahren lassen sich auf die folgenden Bausteine zurückführen:
Validierungsregeln
Belohnung
Bestrafung
Wettbewerb
Gegenseitige Kontrolle
Das ultimative Ziel des Blockchain-Algorithmus besteht darin, sicherzustellen, dass die Blockchain-Datenstruktur ausschließlich gültige Blöcke enthält, die ihrerseits aus gültigen Transaktionsdaten und gültigen Block-Headern bestehen. Die Gültigkeit dieser Daten wird anhand von zwei deutlichen Gruppen von Validierungsregeln bewertet:
Validierungsregeln für Transaktionsdaten
Validierungsregeln für Block-Header
Validierungsregeln für Transaktionsdaten definieren, welche Daten eine Transaktion hinreichend beschreiben. Diese Regeln umfassen die formale Korrektheit, die semantische Korrektheit und die Autorisierung. In Schritt 9 wurden die Validierungsregeln für Transaktionsdaten behandelt, die sich nach dem Anwendungsziel der Blockchain richten. Daher nutzt eine Blockchain zur Verwaltung von Eigentum an digitalen Bonuspunkten möglicherweise andere Validierungsregeln als eine Blockchain zur Verwaltung von Eigentum an Immobilien.
Die Validierungsregeln für Block-Header befassen sich mit der formalen und semantischen Korrektheit der Block-Header. Für diese Regeln ist der Inhalt der Transaktionsdaten unwichtig. Hierbei geht es vielmehr darum, wie Informationen in die Blockchain-Datenstruktur eingetragen werden. In Schritt 16 haben wir die obligatorischen Daten für Block-Header und die zugehörigen Validierungsregeln behandelt. Ein zentrales Element bei der Validierung von Block-Headern besteht in der Überprüfung des Arbeitsnachweises (Proof-of-Work) bzw. des Hashpuzzles. Nur Blöcke, deren Header eine korrekte Lösung für ihr jeweiliges Hashpuzzle enthalten, werden weiterverarbeitet. Jeder Block, dessen Header einer Überprüfung des Arbeitsnachweises nicht standhält, wird unverzüglich verworfen.
Das Erzeugen gültiger Blöcke kostet Energie, Zeit und Geld, denn dazu muss ein rechenintensives Hashpuzzle gelöst werden, das für jeden Block anders ausfällt. Das Hashpuzzle trägt wesentlich zur Unveränderlichkeit der Blockchain-Datenstruktur bei, deshalb ist das Lösen des Hashpuzzles absolut unverzichtbar – und somit auch die damit einhergehenden Kosten. Die einzige Möglichkeit, die Peers zu überzeugen, die Last für das Lösen des Hashpuzzles zu übernehmen, besteht darin, ihnen eine Belohnung für diese Arbeit anzubieten. Aus diesem Grund definiert der Blockchain-Algorithmus, wie Knoten, die gültige Blöcke einreichen, belohnt werden. Abstrakt betrachtet lässt sich sagen, dass die Belohnung die Gegenleistung für alle Lasten ist, die im Zusammenhang mit dem Erreichen und Erhalten der Integrität des Gesamtsystems auftreten.
Eine Belohnung ist nur eine Möglichkeit, Peers zum Überprüfen von Transaktionsdaten und zum Erzeugen gültiger Blöcke anzuhalten. Die Blockchain benötigt aber auch ein Mittel, um Peers bei Verstößen gegen die Systemintegrität zu bestrafen. Eine typische Strafmaßnahme ist das Zurückfordern der Belohnung für Blöcke, die bereits angenommen wurden, sich dann aber als ungültig oder nutzlos herausgestellt haben. Eine andere Form der Bestrafung ist das vollständige Entfallen einer Belohnung. Wenn ein Knoten den Arbeitsnachweis erbringt, dann aber nicht belohnt wird, weil dieser Block als Duplikat, zu alt oder nutzlos erkannt wird, stellt dies bereits eine Bestrafung dar – und zwar insofern, weil für das Erzeugen eines gültigen Blocks ein Hashpuzzle gelöst werden muss und dies Kosten verursacht. Wenn man jedoch keine Belohnung für die Erzeugung eines Blocks erhält, sind die Kosten dafür nicht gedeckt – ergo ist auch das Ausbleiben einer Belohnung eine Bestrafung.
Das Belohnen von Knoten für die Einreichung gültiger Blöcke ist ein Grundkonzept des Blockchain-Algorithmus, kostet aber auch Ressourcen. Daher ist es wichtig, Knoten, die nicht sonderlich zum Erhalt des Systems beitragen, keine Belohnungen zukommen zu lassen und so der Ressourcenverschwendung zu begegnen. Ein Wettlauf um die Belohnungen auf der Grundlage durchdachter Kriterien stellt eine optimale Möglichkeit dar, gleichzeitig für eine hohe Qualität der Arbeit und geringe Kosten zu sorgen. Der Blockchain-Algorithmus veranstaltet sozusagen einen fortlaufenden Wettbewerb um die Belohnungen, der auf zwei Kriterien beruht. Tatsächlich handelt es sich um einen Wettkampf in den folgenden Disziplinen:
Geschwindigkeitswettbewerb
Qualitätswettbewerb
Nur der Knoten, der beide Wettbewerbe gewinnt, erhält die Belohnung für das Einreichen eines neuen Blocks. Der Trick besteht darin, dass die Verlierer des Geschwindigkeitswettbewerbs als Schiedsrichter im Qualitätswettbewerb dienen und den Block bestätigen, der vom Gewinner des Geschwindigkeitswettbewerbs eingereicht worden ist. So ist eine gründliche Untersuchung des eingereichten Blocks sichergestellt.
Für den Geschwindigkeitswettbewerb unter den Knoten muss das Hashpuzzle gelöst werden. Das zentrale Element beim Erzeugen eines gültigen Blocks ist der Arbeitsnachweis, für den das eindeutige Hashpuzzle des neuen Blocks gelöst werden muss. Aufgrund der Natur der kryptographischen Hashfunktionen ist die für das Lösen des Hashpuzzles erforderliche Zeit unbekannt. Es gibt keine Möglichkeit, ein Hashpuzzle im Voraus zu lösen, denn es ist ja vom jeweiligen Inhalt des Blocks abhängig. Deshalb nehmen alle Knoten am Wettbewerb zur Lösung des Hashpuzzles für einen neuen Block unter gleichen Bedingungen teil. Sobald ein Knoten einen neuen Block einreicht, ist der Geschwindigkeitswettbewerb abgeschlossen. Der erste Knoten, der einen neuen Block mit einer gültigen Lösung für das zugehörige Hashpuzzle einreicht, wird zum Gewinner des Geschwindigkeitswettbewerbs erklärt und ist nun der einzige Teilnehmer im Qualitätswettbewerb.
Im Qualitätswettbewerb geht es um die Korrektheit des eingereichten Blocks. Sobald ein Knoten einen neuen Block einreicht, wird dieser an alle anderen Knoten im System übermittelt. Beim Erhalt eines neuen Blocks muss jeder Knoten als Schiedsrichter im Qualitätswettbewerb agieren und diesen neuen Block anhand der Validierungsregeln für Transaktionsdaten und Block-Header überprüfen. Ist der Block gültig, erhält der einreichende Knoten die Belohnung. Danach beginnt ein neuer Geschwindigkeitswettbewerb auf der Grundlage der noch vorhandenen oder in der Zwischenzeit eingetroffenen Transaktionsdaten. Ist der Block jedoch ungültig, wird er verworfen und der ursprünglich für beendet erklärte Geschwindigkeitswettbewerb wird mit sämtlichen darin enthaltenen Transaktionen weitergeführt.
Durch den Qualitätswettbewerb tritt ein interessanter Aspekt der gegenseitigen Kontrolle unter den Peers zutage: Sobald ein neuer Block eingeht, weiß jeder Knoten, dass er den Geschwindigkeitswettbewerb verloren hat und nunmehr als Schiedsrichter im Qualitätswettbewerb dienen muss. Es versteht sich von selbst, dass diese Schiedsrichter die größtmögliche Sorgfalt und Strenge an den Tag legen, denn als Verlierer des Geschwindigkeitswettbewerbs haben sie im wahrsten Sinne des Wortes nichts mehr zu verlieren. Stattdessen wissen sie, dass sie wieder im Rennen um die Belohnung sind, wenn sie nachweisen können, dass der eingereichte Block ungültig ist. In diesem Fall wird der Geschwindigkeitswettbewerb erneut ausgetragen und alle Knoten haben die Möglichkeit, ihren eigenen, unvollendeten Block fertigzustellen und die Disziplin doch noch als Erster abzuschließen. So ist sichergestellt, dass der Qualitätswettbewerb und die Untersuchung des eingereichten Blocks mit extrem hoher Genauigkeit durchgeführt werden.
Selbst die besten Regeln sind nutzlos, wenn niemand sie befolgt, ihre Einhaltung überwacht und ihre Befolgung durchsetzt. Leider gibt es in rein verteilten Peer-to-Peer-Systemen keine zentrale Koordinierungs- oder Kontrollinstanz (und sie würde auch nicht akzeptiert werden), die das Befolgen der Regeln überprüfen oder ihre Einhaltung erzwingen könnte, deshalb macht der Blockchain-Algorithmus sämtliche Knoten im System zu Kontrolleuren aller anderen Knoten. Sie sind Arbeiter und Kontrolleure zugleich, denn sie überprüfen Transaktionen und erzeugen neue Blöcke, während sie die von anderen Knoten erzeugten Blöcke empfangen, kontrollieren und validieren. Die Arbeit der einzelnen Knoten trägt zur Erzeugung neuer, gültiger Blöcke sowie zur Erkennung, Ablehnung oder Entfernung ungültiger Transaktionsdaten oder Blöcke bei.
Die Regeln des Wettbewerbs führen zu einem einfachen Zweiertakt, der die Arbeit aller Netzknoten bestimmt, denn sämtliche Knoten im System befinden sich zu jeglichem Zeitpunkt in einer der folgenden zwei Phasen:
Bewerten eines neuen Blocks, der von einem ihrer Peers erzeugt und eingereicht wurde
Hartes Ringen darum, als nächster Knoten einen neuen Block zu erzeugen, der dann von den anderen Knoten bewertet werden muss
Eins der wichtigsten Ergebnisse des Blockchain-Algorithmus besteht darin, dass er nicht nur die Validierung der Transaktionsdaten und Blöcke sicherstellt, sondern auch dafür sorgt, dass sämtliche Knoten im selben Arbeitstakt arbeiten. Dieser identische Arbeitstakt ist das Grundkonzept, das gewährleistet, dass alle Blöcke eine identische Transaktionsdatenhistorie führen. Allerdings gibt keine zentrale Stechuhr diesen Takt für die Knoten vor – denn das wäre ja ein Widerspruch zu der Natur eines rein verteilten Systems. Verantwortlich ist vielmehr das Eingehen der Nachrichten an den einzelnen Knoten, denn sobald ein Knoten eine Nachricht mit einem neuen Block erhält, wechselt er in die Bewertungsphase. Endet diese, wechselt der Knoten zurück zur Überprüfung neuer Transaktionsdaten und versucht selbst einen neuen Block zu erzeugen.
Für den Umgang mit neuen Transaktionsdaten und Blöcken, die an den Knoten eintreffen, gibt es die folgenden Regeln (die in Fettschrift gesetzten Regeln sind für den Zweiertakt verantwortlich):
Neue Transaktionsdaten und neue Blöcke werden im Tratschstil an alle Knoten verteilt.
Jeder Knoten sammelt neue Transaktionsdaten in einem Posteingang und wählt sie zur Verarbeitung aus.
Jeder Knoten verarbeitet neue Blöcke unverzüglich mit höchster Priorität.
Jeder Knoten verarbeitet neue Transaktionsdaten, indem er eine Validierung bezüglich der Autorisierung und der formalen sowie semantischen Korrektheit durchführt.
Jeder Knoten fasst nur gültige Transaktionsdaten in einem Hashbaum zusammen und beginnt durch Lösen des Hashpuzzles mit dem Erzeugen eines neuen Blocks.
Sobald ein Knoten das Hashpuzzle löst, sendet er den neu erzeugten Block an alle anderen Knoten.
Jeder Knoten verarbeitet neue Blöcke durch Überprüfen der Lösung des entsprechenden Hashpuzzles. Außerdem werden alle darin enthaltenen Transaktionsdaten auf formale Korrektheit, semantische Korrektheit und Autorisierung überprüft.
Jeder Knoten trägt gültige Blöcke in sein Exemplar der Blockchain-Datenstruktur ein.
Wird ein neu eingetroffener Block als ungültig identifiziert, wird er verworfen und der Knoten setzt die Verarbeitung von Transaktionsdaten fort oder arbeitet weiter am Hashpuzzle eines neuen Blocks.
Wird ein neu eingetroffener Block als gültig identifiziert, löscht der Knoten die in dem neuen Block enthaltenen Transaktionen aus seinem eigenen Posteingang und beginnt mit der Verarbeitung von Transaktionsdaten und der Erzeugung eines neuen Blocks.
Wird ein bereits in die Blockchain-Datenstruktur eingetragener Block nachträglich als ungültig oder nutzlos identifiziert, werden dieser Block und alle darauf folgenden Blöcke aus der Blockchain-Datenstruktur entfernt [2]. Die zugehörigen Transaktionen werden für die erneute Verarbeitung zurück in den Posteingang gelegt.
Der Knoten, dessen Block akzeptiert wurde, erhält die Gebühren für alle im Block enthaltenen Transaktionen als Belohnung.
Wird ein Block aus der Blockchain-Datenstruktur entfernt, wird die ursprüngliche Belohnung dem jeweiligen Knoten wieder entzogen.
Die vorgenannten Regeln funktionieren aus mehreren Gründen:
Als Folge von Regel 1 empfangen sämtliche Knoten alle zum Validieren und Eintragen von Transaktionsdaten erforderlichen Informationen.
Als Folge von Regel 2 verarbeiten Knoten die empfangenen Transaktionsdaten.
Als Folge von Regel 3 werden die von anderen Knoten erzeugten Blöcke unverzüglich nach ihrem Eintreffen im Posteingang eines Knotens verarbeitet.
Als Folge von Regel 4 werden nur gültige Transaktionsdaten in die Blockchain-Datenstruktur eingetragen.
Als Folge von Regel 5 nehmen alle Knoten an einem Wettlauf um die Lösung des Hashpuzzles teil. Aufgrund der Natur des Hashpuzzles lässt sich nicht vorhersagen, welcher Knoten das Rennen macht.
Als Folge von Regel 6 werden sämtliche Knoten informiert, sobald ein Knoten das Hashpuzzle für einen neuen Block löst.
Als Folge von Regel 6 und 3 empfangen alle Knoten den neu erzeugten Block und erkennen den Gewinner des Rennens um die Hashpuzzle-Lösung an.
Als Folge von Regel 7 überprüfen und verifizieren sämtliche Knoten im System neu erzeugte Blöcke und stellen so sicher, dass nur korrekte Blöcke eingetragen werden.
Als Folge von Regel 8 tragen alle Knoten neue Blöcke in ihr eigenes Exemplar der Blockchain-Datenstruktur ein, sodass die Transaktionshistorie anwächst.
Als Folge von Regel 9 bleibt die gemeinsam geführte Transaktionshistorie frei von ungültigen Transaktionen und behält somit ihre Integrität.
Als Folge von Regel 10 werden keine Transaktionsdaten doppelt eingetragen.
Als Folge von Regel 11 gehen keine gültigen Transaktionen verloren, falls bereits verarbeitete Blöcke neu verarbeitet werden.
Als Folge von Regel 11 kann das System nachträgliche Gültigkeitsprüfungen der Transaktionshistorie durchführen und die Historie gegebenenfalls korrigieren.
Als Folge von Regel 12 sind die Knoten motiviert, beim Verarbeiten von Transaktionen und beim Erzeugen neuer Blöcke schnell zu agieren.
Als Folge von Regel 12 haben alle Knoten einen Anreiz, alle anderen Knoten über einen neuen Block zu informieren, denn die Belohnung gibt es nur, wenn die Transaktionen von allen anderen Knoten überprüft und akzeptiert werden.
Als Folge von Regel 13 sind die Knoten motiviert, korrekt zu arbeiten, damit keine ungültigen Transaktionsdaten akzeptiert oder ungültige Blöcke erzeugt werden.
Als Folge von Regel 13 sind die Knoten motiviert, Blöcke und Transaktionen im Nachhinein zu überprüfen und erneut zu validieren.
Die Blockchain soll Integrität und Vertrauen in einem vollständig offenen Peer-to-Peer-System erreichen, das aus einer unbekannten Anzahl von Knoten mit unbekannter Zuverlässigkeit und Vertrauenswürdigkeit besteht. Dabei hat sie besonders mit den folgenden Beispielen für unehrliches Verhalten zu kämpfen, die in Peer-to-Peer-Systemen zur Verwaltung von Eigentum auftreten:
Einreichen von Transaktionen unter falscher Identität
Akzeptieren ungültiger Transaktionsdaten oder Blöcke
Überschwemmen eines Knotens mit vielen Transaktionsdaten, damit dieser abstürzt
Ablehnen der Verarbeitung bestimmter Transaktionsdaten
Ablehnen der Weitergabe von Informationen
Wir stellen fest, dass alle der genannten Fälle für unehrliches Verhalten bereits abgedeckt sind, und zwar durch folgende Elemente:
Sicherheitskonzept der Transaktionen (Identifizierung, Authentifizierung und Autorisierung mithilfe asymmetrischer Kryptographie und digitaler Signaturen) beschränken den Zugriff auf Konten auf die Eigentümer der jeweils zugehörigen privaten Schlüssel
Kommunikation im Tratschstil: Stellt sicher, dass alle Knoten letztendlich sämtliche Informationen erhalten
Systemarchitektur: Sorgt dafür, dass das Gesamtsystem auch dann noch funktioniert, wenn Knoten abstürzen oder keine Daten mehr verarbeiten
Blockchain-Algorithmus
Die wichtigsten Waffen der Blockchain gegen unehrliche Knoten sind die Macht der ehrlichen Mehrheit sowie die Effekte von Belohnung und Bestrafung. Sollten einige Knoten gefälschte Transaktionen senden oder ungültige Transaktionsdaten bzw. ungültige Blöcke akzeptieren, überwiegt doch die Mehrheit der ehrlichen Knoten und ihr Bemühen, die Belohnung für sich in Anspruch zu nehmen, die Versuche der unehrlichen Knoten, die Integrität des Systems ins Wanken zu bringen. Offensichtlich ist dieser Ansatz darauf angewiesen, dass die Mehrheit der Knoten wirklich ehrlich ist.
Dieser Schritt hat aufgezeigt, wie die Blockchain Transaktionsdaten verarbeitet und in die Blockchain-Datenstruktur einträgt, sodass sie zu einem Bestandteil der offiziellen Transaktionsdatenhistorie werden. Die hier behandelten Anweisungen sollen sicherstellen, dass sämtliche Knoten im System identische Exemplare der Blockchain-Datenstruktur führen und somit auch eine identische Transaktionsdatenhistorie. Allerdings kommt es vor, dass Knoten eine andere Historie führen und so der einen identischen Transaktionsdatenhistorie nicht zustimmen. Das Beheben solcher Konflikte ist eine weitere Aufgabe des Blockchain-Algorithmus, die im nächsten Schritt betrachtet wird.
Der Blockchain-Algorithmus besteht aus einer Reihe von Regeln bzw. Vorschriften und Anweisungen, die festlegen, wie Transaktionsdaten verarbeitet und zum System hinzugefügt werden.
Die durch den Blockchain-Algorithmus gelöste Herausforderung besteht darin, das System einerseits für alle zugänglich zu halten und andererseits dafür zu sorgen, dass nur gültige und autorisierte Transaktionen eingetragen werden.
Der Blockchain-Algorithmus nutzt eine Kombination aus Zuckerbrot und Peitsche, Wettbewerb und gegenseitiger Kontrolle.
Die Grundidee des Blockchain-Algorithmus erlaubt es allen Knoten im System, als Kontrolleure ihrer Peers zu arbeiten und diese für das Eintragen gültiger und autorisierter Transaktionen sowie das Aufdecken von Fehlern in der Arbeit anderer zu belohnen.
Aufgrund der Regeln des Blockchain-Algorithmus gibt es für sämtliche Knoten im System einen Anreiz, Transaktionen auf korrekte Weise zu verarbeiten und Fehler in der Arbeit ihrer Peers hervorzuheben.
Der Blockchain-Algorithmus basiert auf folgenden Konzepten:
Validierungsregeln für Transaktionsdaten und Block-Header
Belohnung für das Einreichen gültiger Blöcke
Bestrafung bei Verstößen gegen die Systemintegrität
Wettbewerb unter den Peers um die Belohnung anhand von Verarbeitungsgeschwindigkeit und -qualität
Gegenseitige Kontrolle
Die Regeln des Wettbewerbs führen zu einem Zweiertakt, der die Arbeit aller Netzknoten bestimmt, denn sämtliche Knoten im System befinden sich zu jeglichem Zeitpunkt in einer der folgenden zwei Phasen:
Bewerten eines neuen Blocks, der durch andere erzeugt wurde
Hartes Ringen darum, als nächster Knoten einen neuen Block zu erzeugen, der dann von allen anderen bewertet werden muss
Der Arbeitstakt wird durch den Eingang von Nachrichten an den einzelnen Knoten gesteuert.
Die Mehrheit der ehrlichen Knoten und ihr Bemühen, die Belohnung für sich in Anspruch zu nehmen, überwiegt die Versuche unehrlicher Knoten, die Integrität des Systems ins Wanken zu bringen.
[1] Nakamoto, Satoshi. Bitcoin: A peer-to-peer electronic cash system. 2008. https://bitcoin.org/bitcoin.pdf.
[2] Nachträglich als ungültig identifizierte Blöcke werden nicht physisch aus der Blockchain-Datenstruktur entfernt. Stattdessen werden sie als ungültig markiert und so behandelt, als wären sie entfernt worden. Auf diese Weise sind sämtliche Änderungen dokumentiert und bleiben nachvollziehbar.