119 / 736PROP

Block Propagation

Wie neue Blöcke durchs Netz wandern

Findet ein Miner einen Block, müssen die anderen davon erfahren. Wie sich diese Nachricht verbreitet, warum bekannte Daten nicht erneut übertragen werden müssen und weshalb schnelle Zustellung keine Prüfung ersetzt.

Block Propagation bezeichnet die Verbreitung eines neuen Blocks zwischen den Computern im Bitcoin-Netz. Die Übertragung liefert Daten; der empfangende Knoten muss selbst prüfen, ob der Block gültig ist und zu seiner akzeptierten Historie gehört.

Stellen wir uns vor, Anna betreibt Mining und findet gerade einen Block mit Transaktionen. Ein Block bündelt Transaktionen, die in die gemeinsame Historie aufgenommen werden. Bitcoin hat keine Zentrale, die ihn gleichzeitig an alle verschickt. Annas Knoten informiert seine Nachbarn, also die Computer, mit denen er verbunden ist. Die Nachricht wandert weiter und erreicht die Beteiligten zu unterschiedlichen Zeiten. Diesen Weg nennt man Block Propagation. Seine Geschwindigkeit bestimmt mit, wie lange andere noch auf Grundlage der bisherigen Historie arbeiten. [1] [6]

Peter betreibt zu Hause einen Full Node: Software, die Bitcoin-Blöcke und Transaktionen anhand der Regeln prüft. Die Ankündigung eines Blocks reicht dafür nicht. Er braucht dessen vollständigen Inhalt. Diesen kann er ganz herunterladen oder aus der Nachricht und bereits vorhandenen Transaktionen zusammensetzen. Das ähnelt einer Liste von Buchseiten, die man aus der eigenen Bibliothek ergänzt: Übertragen wird weniger, aber das fertige Buch muss dasselbe sein. [1] [7]

Ein Block besitzt einen kompakten Datenabschnitt, den Block Header. Darin steht unter anderem der Verweis auf den vorherigen Block; außerdem lässt sich damit Proof of Work prüfen, der Nachweis der für das Mining erforderlichen Rechenarbeit. Miner suchen diesen Nachweis durch wiederholte Berechnungen; andere können das gefundene Ergebnis schnell prüfen. Das ist eine erste Prüfung, kein Beleg für jede einzelne Zahlung. Aus dem Header allein erkennt Peter weder gültige Signaturen noch, ob tatsächlich verfügbare, noch nicht ausgegebene Mittel verwendet werden. Eine digitale Signatur weist die Berechtigung zur Zahlung nach. Sie wird mit einem privaten Schlüssel erzeugt, also einem geheimen Zahlenwert, der dabei nicht offengelegt wird. Ein UTXO ist ein noch nicht ausgegebener Transaktionsausgang: ein Datensatz mit einem Betrag und den Bedingungen, unter denen er ausgegeben werden darf. [6] [8]

Viele Transaktionen hat Peter bereits vor dem Block erhalten. Sie liegen in seinem Mempool, dem lokalen Bestand unbestätigter Transaktionen. Compact Blocks nach BIP 152 nutzen das: Statt jede Transaktion erneut zu senden, enthält die Nachricht überwiegend kurze Kennungen und einige vollständige Transaktionen. Peter ordnet die bekannten Teile richtig an. Kleiner wird die Nachricht im Netz, nicht der zu prüfende Block. Seine Gültigkeitsregeln bleiben unverändert. [2] [7]

Es gibt keinen weltweiten gemeinsamen Mempool. Jeder Knoten kann etwas andere Transaktionen kennen. Fehlen Peter welche, fordert er die Daten nach; nötigenfalls wird der ganze Block übertragen. Die zusätzliche Anfrage und Antwort kosten Zeit. Das ist kein Anlass, Inhalte zu erraten oder Prüfungen auszulassen. Wie viel sich tatsächlich sparen lässt, hängt deshalb auch davon ab, wie viele Transaktionen beim Empfänger schon vorhanden sind. [2] [7]

Der schnellere Modus von BIP 152 erlaubt die Weiterleitung, bevor sämtliche Transaktionsprüfungen abgeschlossen sind. Blind wird dabei nichts versendet: Der Sender muss unter anderem den Anschluss an die geprüfte Kette, Proof of Work und die Bindung des Headers an die übertragenen Transaktionen prüfen. Übertragung und weitere Prüfung können dann gleichzeitig laufen. Ein Full Node übernimmt den Block trotzdem erst nach vollständiger Prüfung in seine aktive Historie. [2] [4] [7]

Bevor Annas Block alle erreicht, kann ein anderer Miner einen Block mit demselben Vorgänger finden. Ein Teil des Netzes sieht kurzzeitig die eine gültige Verzweigung, ein anderer die zweite. Welche gültige Kette sich durchsetzt, entscheidet die anschließend angesammelte Arbeit, keine Abstimmung der Computer. Ein zurückbleibender gültiger Block heißt Stale Block. Schnellere Verbreitung verkürzt das Zeitfenster für solche Konkurrenz, beseitigt es aber nicht. [6] [8]

Verbreitet sich Annas Block langsam, steigt das Risiko, dass andere inzwischen auf einem konkurrierenden Block aufbauen. Ihrer bleibt dann außerhalb der akzeptierten Kette und bringt in dieser Historie keine Belohnung. Eine gute Verbindung ist deshalb mehr als Komfort. Ihr Vorteil kann die Konzentration des Minings bei besser vernetzten Betreibern begünstigen. Eine langsame Leitung allein misst jedoch weder Zentralisierung noch beweist sie einen Angriff. [7] [8]

FIBRE ist ein Beispiel für ein spezialisiertes System zur schnellen Blockübertragung. Es soll Verzögerungen im Netz verringern, auch solche durch verlorene Datenpakete, also kleine Teile der übertragenen Nachricht. Ein solcher Weg kann den Block früher liefern. Sein Betreiber darf aber nicht für Peter über dessen Gültigkeit entscheiden. Peters Full Node muss dieselben Regeln prüfen, unabhängig davon, woher die Daten kommen. [3] [9]

Zum Netzbetrieb gehören auch Datenverbrauch, Privatsphäre und belastbare Verbindungen. Die Abhängigkeit von einem einzigen Weg bleibt eine Schwäche, selbst wenn er schnell ist. Ebenso erfüllen Verbesserungen unterschiedliche Aufgaben: BIP 330, ein Baustein von Erlay, hilft benachbarten Knoten, Unterschiede zwischen Mengen von Transaktionsankündigungen zu ermitteln. Es ersetzt nicht die Blockübertragung nach BIP 152. Ziel ist effizientere Kommunikation bei weiterhin eigenständiger Prüfung durch jeden Knoten. [1] [5]

Für ein möglichst vollständiges Bild lies diesen Eintrag zusammen mit Compact Blocks, Selfish Mining, Eclipse Attack, Initial Block Download, Bitcoin, Full Node. Auf diesen Eintrag verweisen außerdem Sybil Attack, Eclipse Attack, Selfish Mining, Compact Blocks.

DOC · 001Bitcoin Developer Guide — P2P NetworkDokumentation DOC · 002BIP 152 — Compact Block RelaySpezifikation DOC · 003Bitcoin FIBREDokumentation DOC · 004Bitcoin Core v29.0 — net processingDokumentation DOC · 005BIP 330 — ErlaySpezifikation DOC · 006Satoshi Nakamoto — Bitcoin whitepaperPrimärquelle DOC · 007Bitcoin Core — Compact Blocks FAQDokumentation DOC · 008Bitcoin Developer Guide — Block ChainDokumentation DOC · 009FIBRE — project overviewPrimärquelle
Überarbeitet: Quellenbasiert · Keine Anlageberatung