Compact Blocks sind nichts anderes als eine kleine Anpassung der Art und Weise, wie das Protokoll Blockinformationen zwischen den Knoten übertragen kann, aus denen das Netzwerk besteht.
UEine der Hauptaufgaben von Entwicklern Bitcoin besteht darin, das Netzwerk effizienter und skalierbarer zu machen. Deshalb erforschen und entwickeln sie verschiedene Techniken, um dies zu ermöglichen, ohne die Basis des Bitcoin-Protokolls zu zerstören, was sie zu unterschiedlichen Ideen geführt hat, darunter auch Compact Blocks.
Compact Blocks sind nichts anderes als eine kleine Anpassung der Art und Weise, wie das Protokoll Blockinformationen zwischen den Knoten übertragen kann, aus denen das Netzwerk besteht. Ziel dieser Modifikation ist es, die Datenübertragung effizienter zu gestalten und die für diese Aufgabe erforderliche Bandbreite zu reduzieren. Eine Situation, die zu einer Verringerung der Latenz und Netzwerkanforderungen führt, die erforderlich sind, um einen schnellen Konsens über das globale Netzwerk zu erzielen. Dank dieser Vorteile sind kompakte Blöcke seit der Veröffentlichung der Version 0.13.0 bei uns Bitcoin Core, sodass wir seine Vorteile genießen können.
Doch wie funktioniert diese Technologie? Was genau bietet es uns? Erfahren Sie mehr über diesen Vorschlag und alles, was er für Bitcoin bedeutet.
Kompakte Blöcke, die die Datenübertragung in Bitcoin effizienter machen
Bevor wir uns mit kompakten Blöcken befassen, ist es zunächst wichtig zu verstehen, warum eine effiziente Datenübertragung innerhalb eines Netzwerks wie Bitcoin erforderlich ist. Wie wir wissen, ist Bitcoin ein verteiltes Netzwerk aus Tausenden von Knotenpunkten, die über die ganze Welt verteilt sind. Tatsächlich sind etwa 10900 Bitcoin-Knoten öffentlich bekannt, eine Tatsache, die wir im Internet überprüfen können. Bitknoten.
Fragen wir uns nun einmal für einen Moment Wie viele Informationen werden in diesem riesigen Netzwerk verwaltet? Wenn wir die Anzahl der Knoten berücksichtigen, zusätzlich zu der Tatsache, dass das Netzwerk jede Sekunde Hunderte von Transaktionen empfängt und alle 10 Minuten ein Block mit durchschnittlich 1 MB an Informationen generiert wird, können wir daraus schließen, dass das Netzwerk hoch ist Informationsverkehr auf globaler Ebene. Aber wie viel genau?
Wenn wir die Berechnungen anhand dieser Daten durchführen, verarbeitet das Bitcoin-Netzwerk täglich weltweit durchschnittlich 1,58 TB Daten. Diese Daten zu erhalten ist einfach:
Zunächst müssen wir bedenken, dass durchschnittlich etwa 144 Blöcke pro Tag produziert werden, mit 1 MB pro Block. Das sind durchschnittlich 144 MB tägliche Daten. Diese müssen jedoch in den 11 Knoten repliziert werden, aus denen das Netzwerk besteht. Das heißt, dass alle Blöcke und ihre Daten durch das Netzwerk wandern, sodass jeder Knoten eine exakte Kopie davon haben kann, sodass uns Folgendes bleibt:
11000 (Knoten) * 144 (MB) = 1584000 MB (Daten über alle Knoten repliziert)
Wenn wir diese Daten auf TB übertragen, erhalten wir:
1584000 / 1000000 = 1,58 TB
Auf diese Weise können wir die ungefähre Datenmenge ermitteln, die im gesamten Bitcoin-Netzwerk mobilisiert wird. Das ist eine riesige Datenmenge, die viel Bandbreite verbraucht. Aber nicht nur das, dies führt zusätzlich zu zwei Problemen: Es verlangsamt die Netzwerkleistung und erschwert die Konsensbildung im gesamten Netzwerk und den Knoten, aus denen es besteht.
Wenn wir hinzufügen, dass die Probleme mit zunehmender Anzahl von Knoten und Personen, die das Netzwerk nutzen, nur zunehmen können, dann verstehen wir, warum es so dringend ist, dieses Problem zu lösen. Tatsächlich mögen Entwickler Greg Maxwell Sie äußerten sich diesbezüglich sehr nachdrücklich und sagten:
Die dezentrale Bitcoin-Blockchain ist ein weltweit gemeinsames Übertragungsmedium, wahrscheinlich die unglaublich ineffizienteste Kommunikationsart, die jemals von Menschen erfunden wurde.
Viele mögen glauben, dass Maxwells Worte die Dezentralisierung des Netzwerks angreifen. Aber in Wirklichkeit greifen sie ein Problem an, das jeder kennt: P2P-Netzwerke sind ein ziemlich ineffizientes Mittel zum Senden von Informationen in Netzwerken, die immer synchronisiert sein müssen. In dieser Situation ist es am besten, das Übertragungsmedium effizienter zu gestalten. Dafür gibt es mehrere Vorschläge wie Relay Network, Erlay und natürlich Compact Blocks.
Die drei Vorteile, die uns kompakte Blöcke bieten, sind:
- Das Bitcoin-Protokoll wird dadurch nicht verändert.
- Bricht nicht das Schema P2P des aktuellen Netzwerks und schützt dessen Dezentralisierung.
- Es reduziert den Bandbreitenbedarf und die im Netzwerk übertragene Datenmenge erheblich.
- Zweifellos handelt es sich hierbei nicht um leichte Argumente, und sie halten Bitcoin im Einklang mit seiner philosophischen Linie: dezentrales Geld, das allen zur Verfügung steht.
Wie funktionieren Compact Blocks?
Ziel von Compact Blocks ist es, die Informationen der im Netzwerk geschürften Blöcke in zwei Prozesse aufzuteilen, die wir im Folgenden erläutern:
Generieren eines gültigen Blocks im Netzwerk
Der erste Prozess ist die Blockgenerierung, bei der Miner einen gültigen Block innerhalb der Konsensregeln des Netzwerks erstellen. Zu diesem Zeitpunkt fügen die Miner alle Informationen hinzu, die dieser Block normalerweise haben würde. Das ist Dein Block-Hash oder Block-ID, Of Merkle-Wurzel, die vollständigen Informationen des Blockheaders und natürlich den gesamten Satz von Transaktionen, die dadurch validiert wurden. Zu diesem Zeitpunkt gibt es keinerlei Änderungen am Prozess, es bleibt derselbe Blockgenerierungsprozess ohne Änderungen.
Das bedeutet, dass die Miner ihre Arbeit erledigen, den Block generieren und ihn an das Netzwerk senden. An diesem Punkt überprüft der erste Knoten, der den Block empfängt, ihn und beginnt mit dem Senden der kompakten Blöcke gemäß der unten beschriebenen Lösung.
Senden von Informationen an den Rest des Netzwerks
Als nächstes beginnt der zweite Prozess, nämlich die Übertragung dieser Informationen. Seien Sie aufmerksam, denn darin liegt die Innovation kompakter Blöcke. Wie wir wissen, verfügt jeder Knoten in der Blockchain über einen sogenannten Space mempool, wo Transaktionen gespeichert werden, die auf die Verarbeitung warten. Dieser Mempool ist ausnahmslos auf allen Knoten vorhanden. Aus dieser Situation können wir Folgendes ableiten: Viele der Transaktionen des kürzlich generierten Blocks befinden sich im Mempool jedes einzelnen Knotens im Netzwerk.
Dieser Abzug ist sehr wichtig, da der aktuelle Blockübertragungsprozess Folgendes bewirkt: Senden Sie den Block mit diesem gesamten Transaktionssatz in zweifacher Ausfertigung. Gerade diese Duplizierung macht den Prozess der Datenübertragung im Netzwerk weniger effizient. Vor diesem Hintergrund stellt sich folgende Frage: Können wir nicht die Tatsache ausnutzen, dass die Knoten bereits viele dieser Transaktionen in ihrem Mempool haben, und so die an die Knoten gesendete Datenmenge reduzieren und sie den neuen Block selbst konsolidieren lassen? ? Die Antwort lautet: Ja, es ist machbar. Und tatsächlich passiert genau das im zweiten Prozess der kompakten Blöcke.
Knoten, die kompakte Blöcke verwenden, verbreiten den Block über einen „Minimalblock“ des abgebauten Blocks. Dieser „Mindestblock“ enthält tatsächlich lebenswichtige Informationen, unter denen wir Folgendes finden können:
- Der 80-Byte-Header des neuen Blocks. Hier finden Sie Informationen zur Block-ID oder zum Block-Hash, zum Merkel-Root, zum … Nuntius und die Anzahl der Transaktionen. Und auch das Datum und die Uhrzeit, zu der es abgebaut wurde.
- Transaktionskennungen oder TXID (ohne Daten aus den Skripten dieser Transaktionen).
- Einige vollständige Transaktionen (mit allen Skriptinformationen für diese Transaktionen), von denen der Senderknoten vorhersagt, dass der Empfängerknoten sie noch nicht in seinem Mempool hat.
Insgesamt belegen diese Mindestblöcke maximal 20 KB Daten. Das ist eine drastische Informationsreduzierung im Vergleich zu den 1 MB Daten, die ein durchschnittlicher Block einnimmt.
Wiederaufbau des Blocks
Wie wir sehen, ist die Informationsmenge in diesem „Minimalblock“ viel geringer als die, die ein vollständiger Block normalerweise hat. Diese Informationen würden es den übrigen Knoten jedoch perfekt ermöglichen, den abgebauten Block genau zu rekonstruieren. Und dazu sollten Sie nur die in diesem Mindestblock und seinem Mempool empfangenen Informationen verwenden. Auf diese Weise verwendet der Knoten diese Daten, um den endgültigen Block vollständig neu zu erstellen, der problemlos überprüft werden kann.
Auch wenn es nicht möglich ist, den Block lokal neu aufzubauen, wird der Knoten Informationen anfordern, um dies zu erreichen. Dazu muss der Knoten diese Transaktion (oder Transaktionen) an einen anderen vollständigen Knoten senden, um den Index neu aufzubauen und den Block eindeutig zu bilden. Dies verhindert beispielsweise, dass Knoten unterschiedliche Blöcke bilden und so den Konsens des Netzwerks brechen.
Dieser Prozess des Sendens von Informationen in Bruchteilen und der Verwendung lokaler Daten zur Vervollständigung der Informationen in den validierten Blöcken ermöglicht eine drastische Reduzierung der Größe von Netzwerknachrichten. Sie können es als das Senden kleiner Signale sehen, die Sie vollständig rekonstruieren können. Etwas, das möglich ist, weil Sie über die Elemente verfügen, die zum Bau dieser Schilder verwendet wurden. Darüber hinaus können Sie dank der Verwendung von Kryptografie sicher sein, dass Ihre rekonstruierte Nachricht mit dem Original identisch ist.
Wie viel weißt du, Kryptonaut?
Tragen Compact Blocks wirklich dazu bei, die Datennutzung des Bitcoin-Netzwerks zu optimieren?WAHR!
Da kompakte Blöcke darauf ausgelegt sind, die im Mempool der Knoten gespeicherten Daten intelligenter zu nutzen, können sie dazu beitragen, die Datennutzung im Netzwerk erheblich zu optimieren und den Bandbreitenbedarf für den effektiven Betrieb erheblich zu reduzieren.
Auswirkungen kompakter Blöcke auf Bitcoin
Zu den Vorteilen kompakter Blöcke zählen:
- Dadurch wird der Bedarf an Netzwerkbandbreite zur Übertragung von Informationen an alle Knoten erheblich reduziert. Tatsächlich liegt der durchschnittliche Datenverbrauch im Netzwerk inzwischen bei 1,4 TB täglicher Daten. Dies bedeutet eine Reduzierung des Datenverbrauchs des gesamten Netzwerks um mehr als 90 %.
- Es ermöglicht eine schnellere Verbreitung von Daten über das Netzwerk. Tatsächlich dauert es etwa 15 Sekunden, bis alle Knoten im Netzwerk die Informationen über den neuen Block haben.
- Ein weiterer Vorteil kompakter Blöcke besteht darin, dass sie den Datenverbrauch für diejenigen Personen reduzieren, die über eine begrenzte Verbindung verfügen. Auf diese Weise können sie ohne größere Probleme oder übermäßige Kosten am Netzwerk teilnehmen.
- Darüber hinaus wird die Netzwerksicherheit verbessert, da die schnelle Informationsübertragung verhindert, dass Angreifer falsche Informationen senden.