Heim > Artikel > Backend-Entwicklung > Verbesserung des Bitcoin-Netzwerks mit Utreexo
Die Welt wird von Tag zu Tag digitaler und immer mehr Aspekte unseres Lebens werden immer ungreifbarer. Auch die Währung wurde nicht außer Acht gelassen, von physischem Bargeld über bargeldlose Systeme bis hin zu Kryptowährungen. Seit der Einführung des ersten Bitcoin-Blocks im Jahr 2009 hat seine Akzeptanz sehr schnell zugenommen, und mit zunehmender Akzeptanz steigt auch die Stabilität und das Vertrauen in das Netzwerk, was seine Akzeptanz nur noch steigern wird.
Bitcoin ist eine dezentrale Peer-to-Peer-Netzwerk-Digitalwährung, die 2008 von einer pseudo-anonymen Entität namens Satoshi Nakamoto geschaffen wurde. Das Bitcoin-Netzwerk ist ein Netzwerk aus Computern, auch Knoten genannt, die miteinander verbunden sind und dabei helfen, Transaktionen zu verbreiten und Transaktionen im gesamten Netzwerk zu validieren. Dieses Netzwerk verwendet die digitale Währung Bitcoin (BTC). Diese Transaktionen werden in einem dezentralen öffentlichen Hauptbuch gespeichert, das Blockchain-Technologie nutzt.
Die Bitcoin-Blockchain besteht aus Blöcken, die mit jedem vorhergehenden Block verknüpft sind, mit Ausnahme des ersten Blocks, der auch als Genesis-Block bekannt ist und mit keinem vorhergehenden Block verbunden ist. Blöcke bestehen aus mehreren Transaktionen, die von Minern validiert und sorgfältig zu einem Block hinzugefügt wurden, bevor der Mining-Prozess durchgeführt wird. Eine Transaktion ist im Grunde eine Wertübertragung zwischen Bitcoin-Wallets. Miner sind für die Durchführung der Hauptarbeiten im Netzwerk verantwortlich, bei denen es darum geht, neue Blöcke zu bestätigen oder zu „minen“ und sie der Blockchain hinzuzufügen.
Im Internet sind mehrere Ressourcen verfügbar, um mehr über Bitcoin zu erfahren. Diese Ressourcen enthalten weitere Einzelheiten zur Funktionsweise von Bitcoin.
Trotz der großartigen Vorteile von Bitcoin war die Skalierbarkeit schon immer ein großes Problem. Bitcoin-Blöcke sind auf eine Größe von 1 MB begrenzt, wobei etwa alle 10 Minuten ein Block abgebaut wird. Damit beläuft sich die aktuelle Größe der Bitcoin-Blockchain zum Zeitpunkt dieses Schreibens auf etwa 580 GB, was einem Anstieg von etwa 18 % gegenüber dem letzten Jahr entspricht. Damit vollständige Knoten der Blockchain beitreten und Netzwerke verifizieren können, müssen sie die gesamte Blockchain herunterladen und mit der Durchführung der Validierung aller alten und neu hinzugefügten Blöcke beginnen. Es ist garantiert, dass diese Größe von Tag zu Tag zunimmt und irgendwann zu groß werden könnte, sodass einige normale Benutzer aufgrund der Ressourcenbeschränkungen davon abgehalten werden, dem Netzwerk beizutreten.
Neben der Größe der Blockchain überprüfen und speichern Knoten auch den aktuellen Zustand des Netzwerks. Bei diesem Status handelt es sich um den aktuellen Unspent Transaction Output Set (UTXO), der relativ viel kleiner ist als die gesamte Blockchain. Allerdings wird auch dieser Status garantiert schnell weiter wachsen, da immer mehr Benutzer mehr Transaktionen im Netzwerk durchführen. Dieser Satz ist der Satz aller nicht ausgegebenen Transaktionsausgaben im Netzwerk.
Utreexo führt einen Hash-basierten dynamischen Akkumulator ein, der es ermöglicht, die Größe des aktuellen Zustands deutlich zu reduzieren. Es ermöglicht Knoten, Eingaben einer Transaktion vollständig zu überprüfen, ohne den gesamten Status des Systems zu kennen. Dies wird dadurch erreicht, dass der Eigentümer der Gelder einen Nachweis darüber führen kann, dass die Gelder tatsächlich vorhanden sind, und dass er diese Gelder dann vorlegen kann, wenn er die Gelder ausgeben möchte.
Utreexo führt einen neuen Knotentyp namens Compact State Node ein. Diese Knoten speichern lediglich eine Akkumulatordarstellung des Zustands. Damit diese Knoten Transaktionen verifizieren können, benötigen sie einen Einschlussnachweis. Dieser Beweis wird durch die Ausgabetransaktion erbracht, wenn einige Eingaben ausgegeben werden sollen.
Wie oben zu sehen ist, ermöglicht Utreexo die Darstellung des Zustands des Bitcoin-Netzwerks als dynamischer Akkumulator. Diese Akkumulatoren sind nur wenige Kilobyte groß, im Gegensatz zum aktuellen Zustand von Bitcoin, der über 5 GB groß ist.
Um zu verstehen, wie Utreexo funktioniert, müssen wir zunächst verstehen, was ein kryptografischer Akkumulator ist und wie er funktioniert. Ein kryptografischer Akkumulator ermöglicht es uns, eine Menge abzufragen, ohne alle Mitglieder der Menge zu speichern oder offenzulegen. Dieser Akkumulatorkonstruktionsansatz eignet sich hervorragend für den UXTO-Satz von Bitcoins, da wir für jede Transaktion abfragen möchten, ob die ausgegebenen TXOs tatsächlich Mitglieder des UTXO-Satzes sind, und wenn nicht, die Transaktion ablehnen.
Reguläre Knoten müssen beim Beitritt zum Netzwerk den gesamten Blockchain-Verlauf herunterladen, der über 580 GB umfasst, Transaktionen überprüfen und eine eigene Kopie des UTXO-Sets erstellen. Anschließend müssen sie alle Zustandsänderungen überprüfen, die den Knoten treffen. Alle diese Prozesse sind ressourcenintensive Vorgänge, die dadurch die Anzahl der Teilnehmer im Netzwerk begrenzen, was wiederum die Skalierbarkeit einschränkt.
Dieser anfängliche Synchronisierungsprozess, auch Initial Block Download (IBD) genannt, kann je nach Internetverbindung und Hardwareressourcen sehr lange dauern. Einer der Hauptfaktoren, die die Geschwindigkeit dieses IBD-Vorgangs beeinflussen, ist der Typ der verwendeten Speicherplatte und die Geschwindigkeit der E/A-Vorgänge, insbesondere die Fähigkeit, schnelle Lesevorgänge mit wahlfreiem Zugriff durchzuführen. Aus diesem Grund können Computer, die ein Solid-State-Laufwerk verwenden, das normalerweise weitaus bessere Direktzugriffs-Lesezeiten aufweist, im Vergleich zu Computern mit einem Festplattenlaufwerk mehr als 30-mal weniger Zeit für die Überprüfung der Transaktionen benötigen.
Bei Utreexo würde der verwendete Festplattentyp keinen so großen Unterschied machen, da wir nur einen geringfügigen Leistungsunterschied zwischen SSD-Computern und HDD-Computern feststellen werden
Utreexo führt einen Hash-basierten dynamischen Akkumulator ein, der keine vertrauenswürdigen Setup- oder Manager-Anforderungen erfordert. Wie oben erwähnt, sind Akkumulatoren kompakte Darstellungen einer Menge, zu der Elemente hinzugefügt und nachgewiesen werden können. Ein Utreexo-Akkumulator nutzt einen Wald perfekter Merkle-Bäume, der eine effiziente Entfernung von Elementen aus dem Akkumulator ermöglicht und die Gesamtzahl der Blätter im Wald reduziert, wenn Löschungen auftreten.
Hinzufügungen sind berechenbar, ohne dass Daten über den Akkumulator und das hinzuzufügende Element hinausgehen, und Löschungen sind mit einem Einschlussnachweis der zu löschenden Daten berechenbar.
Das Design des Akkumulators ist ein Wald perfekter binärer Hash-Bäume. Die Darstellung des Akkumulators, der gespeichert werden muss, umfasst: die Anzahl der gespeicherten Elemente und die Wurzel jedes Baums im Wald.
Die logische Struktur des perfekten Binärbaums würde den Rahmen dieses Artikels sprengen, da es sich lediglich um einen Einführungsartikel handelte. Das vollständige Utreexo-Papier finden Sie jedoch hier.
Der Hash-basierte Akkumulator von Utreexo zielt darauf ab, die Größe des Bitcoin-Status auf nur wenige Kilobyte zu reduzieren, sodass nahezu jedes Gerät da draußen dem Bitcoin-Netzwerk beitreten und mit der Überprüfung von Transaktionen beginnen kann, ohne dass teure und erstklassige Hardware erforderlich ist. Dadurch wird die Skalierbarkeit des Bitcoin-Netzwerks erheblich erhöht, da die Größe des Akkumulators sehr langsam wächst (Onlogn) und die Raumkomplexität.
Das obige ist der detaillierte Inhalt vonVerbesserung des Bitcoin-Netzwerks mit Utreexo. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!