Nakamoto Consensus bezeichnet den Weg, auf dem Bitcoin ohne zentrale Schiedsstelle zu einer gemeinsamen gültigen Transaktionshistorie findet. Ein Full Node, also ein Computer mit Software zur eigenständigen Regelprüfung, verwirft zuerst ungültige Blöcke. Unter gültigen Zweigen wählt er dann den mit der meisten angesammelten Arbeit. Weitere Bestätigungen erhöhen unter bestimmten Sicherheitsannahmen das Vertrauen in eine Zahlung; sie machen sie nicht sofort unumkehrbar.
Anna zahlt an Peter. Sie könnte jedoch eine zweite Transaktion unterschreiben, die dieselben Mittel an Eva ausgibt. Unterschreiben bedeutet hier, mit einem privaten Schlüssel, einem geheimen Zahlenwert, einen überprüfbaren Nachweis für die Berechtigung zur Zahlung zu erzeugen. Andere können die Signatur prüfen, ohne diesen geheimen Wert zu kennen. Beide Signaturen könnten echt sein, trotzdem passen beide Zahlungen nicht in eine gültige Historie. Peter und Eva könnten die Nachrichten zudem in unterschiedlicher Reihenfolge erhalten. Bitcoin braucht deshalb mehr als die Prüfung von Signaturen: eine gemeinsame Reihenfolge, die doppelte Ausgaben verhindert. Nakamoto Consensus verbindet Regeln, Proof of Work, Zweigauswahl und Miner-Belohnungen. Satoshis Whitepaper, die ursprüngliche technische Beschreibung von Bitcoin, verwendet diese spätere Bezeichnung nicht. [1] [4]
Peters Full Node ist kein Stimmzettel. Ein Block bündelt Transaktionen, die in die gemeinsame Historie aufgenommen werden. Ein Transaktionsausgang hält einen Betrag und die Bedingungen fest, unter denen er später ausgegeben werden darf. Die Full-Node-Software prüft Transaktionen und Blöcke selbst: Sind die zur Ausgabe vorgesehenen Transaktionsausgänge noch ungenutzt? Sind ihre Ausgabebedingungen erfüllt? Entstehen nicht mehr neue Bitcoins als erlaubt? Ein Miner kann einen Block vorschlagen, diese Prüfungen aber nicht beliebig umgehen. Ein ungültiger Block bleibt auch mit sehr viel Arbeit ungültig. Erst unter gültigen Möglichkeiten werden Zweige verglichen. Eine gemeinsame Historie setzt voraus, dass die Beteiligten kompatible Regeln anwenden. [2] [3]
Hätte jeder angeschlossene Computer eine Stimme, könnte ein Angreifer viele scheinbar unabhängige Teilnehmer erzeugen. Das nennt sich Sybil Attack. Proof of Work zählt stattdessen nachweisbare Rechenarbeit für das Gewicht eines Zweigs. Miner berechnen immer wieder Hashes, digitale Fingerabdrücke von Daten, und suchen ein Ergebnis, das eine vorgegebene Bedingung erfüllt. Die Versuche kosten Energie und Ausrüstung; ein gefundenes Ergebnis lässt sich leicht prüfen. Viele Netzwerkidentitäten allein liefern keine zusätzliche Arbeit. Es geht weder um Ausweiskontrollen noch um eine Abstimmung aller Knoten. [1] [4]
Ein Miner stellt einen möglichen Block zusammen und verändert dessen Header, die kompakte Zusammenfassung des Blocks, bis sein Hash als Zahl kleiner oder gleich dem gültigen Zielwert ist. Er löst dabei keine nützliche Gleichung und knackt keine Verschlüsselung, sondern sucht ein seltenes Ergebnis. Zwei Miner können fast gleichzeitig Erfolg haben. Ein Teil des Netzes sieht zuerst den einen Block, ein anderer den zweiten; kurzzeitig entstehen zwei gültige Zweige. Das allein ist kein Ausfall. Bei normaler Blockverbreitung ermöglicht weitere Arbeit die Einigung auf den stärkeren Zweig. [1] [8]
Die Stärke eines Zweigs misst chainwork: die Summe der Arbeit, die seinen Blöcken anhand ihrer Zielwerte zugeordnet wird. Das ist weder ein Stromzähler noch ein Protokoll tatsächlich ausgeführter Versuche. Ein Miner kann sofort Glück haben, ein anderer lange warten; bei gleichem Ziel haben ihre gültigen Blöcke dasselbe Gewicht. Ein Full Node wählt den verfügbaren gültigen Zweig mit der größten Summe. „Längste Kette“ meint somit die meiste Arbeit, nicht zwingend die meisten Blöcke. Ein Zweigwechsel heißt Reorganisation; eine Zahlung aus einem verlassenen Block kann erneut aufgenommen werden, sofern sie gültig bleibt. [1] [2] [3] [7]
Sobald Annas Zahlung in einem angenommenen Block steht, hat sie eine Bestätigung. Jeder folgende Block fügt eine weitere hinzu. Um diese Historie zu ersetzen, müsste ein konkurrierender Zweig deren Arbeit einholen. Bei ehrlicher Mehrheit der Rechenleistung und ausreichend schneller Blockverbreitung sinkt das Risiko einer erfolgreichen Umschreibung üblicherweise mit der Tiefe. Das ist probabilistische Finalität: wachsende Sicherheit statt mathematischer Unveränderbarkeit. Wie viele Bestätigungen Peter abwartet, hängt auch von Wert und Risiko der Zahlung ab. Keine allgemeine Zahl garantiert unter allen Umständen Sicherheit. [1] [4]
Bliebe die Bedingung beim Hinzukommen schnellerer Geräte unverändert, würden Blöcke schneller entstehen. Difficulty Adjustment berechnet deshalb im Hauptnetz alle 2016 Blöcke den Zielwert anhand früherer Zeitstempel neu. Angestrebt werden durchschnittlich zehn Minuten pro Block, ungefähr zwei Wochen für diesen Abschnitt. Ein einzelner Block kann viel früher oder später kommen. Auslöser ist die Blockzahl, kein Kalenderdatum: Fällt plötzlich viel Rechenleistung aus, kann der nächste Anpassungspunkt später erreicht werden. Die Anpassung ist weder ein sofortiger Regler noch eine genaue Uhr. [2] [8]
Neu ausgegebene Bitcoins, die Blocksubvention, und Transaktionsgebühren belohnen Miner für Blöcke, die in der angenommenen Historie bleiben. Das schafft Anreize zu ihrer Erweiterung, ersetzt aber keine Sicherheitsannahmen. Eine Mehrheit der Rechenleistung kann gültige Zweige reorganisieren, Zahlungen auslassen und versuchen, eigene Ausgaben rückgängig zu machen. Sie kann einen Full Node nicht zur Annahme ungültiger Signaturen, überhöhter Ausgabe neuer Coins oder unberechtigter Ausgaben fremder Mittel zwingen. Auch 50% sind kein Sicherheitsschalter: Manche Angriffe haben darunter Erfolgschancen. Belohnungen allein erzeugen keine Ehrlichkeit. [1] [2] [3]
Zurück zu Peter. Kontrolliert ein Angreifer alle Verbindungen seines Knotens, kann er ihm ein unvollständiges Bild zeigen. Ein Angriff vom Typ Eclipse Attack ist eine solche Netzwerkisolation; Bestätigungen bedeuten dann möglicherweise etwas anderes als bei guter Verbindung zum übrigen Netz. Auch eine Aufteilung des Netzes in getrennte Teile erschwert die Einigung. Sicherheit hängt daher vom gegnerischen Leistungsanteil, der Nachrichtenverbreitung und ehrlicher Prüfung ab. Die Bitcoin-Backbone-Forschung modelliert diese Bedingungen ausdrücklich. Eine Prozentzahl zur Rechenleistung ohne Netzwerkannahmen erklärt die Sicherheit nicht vollständig. [4]
Klassische BFT (Byzantine Fault Tolerance)-Verfahren sollen Einigung trotz fehlerhafter oder böswilliger Teilnehmer ermöglichen und setzen oft eine vorher bekannte Gruppe voraus. Beispiele wie OM (Oral Messages) und PBFT (Practical Byzantine Fault Tolerance) haben eigene Voraussetzungen und Regeln für den Nachrichtenaustausch. Bitcoin begegnet offener Teilnahme mit Arbeit und einer probabilistischen Festigung der Historie; es benennt diese Verfahren nicht bloß um. Die Auswahl eines stärkeren gültigen Zweigs ändert auch nicht die Gültigkeitsregeln. Eine Regeländerung erfordert, dass Teilnehmer passende Software und kompatible Bedingungen übernehmen. Miner helfen zu bestimmen, welche gültige Historie fortgesetzt wird, nicht was alle für gültig halten müssen. [5] [6] [9]
Für ein möglichst vollständiges Bild lies diesen Eintrag zusammen mit Bitcoin, Proof of Work, Difficulty Adjustment, Konsensregeln, Mining, Full Node. Auf diesen Eintrag verweisen außerdem Bit Gold, Reusable Proofs of Work, Byzantine Generals Problem, Sybil Attack.