Zum Inhalt springen
buybitcoinsmart

Glossar / Protokoll und Upgrades

Erlay

Was ist Erlay?
Erlay ist eine vorgeschlagene Methode, mit der Nodes mithilfe winziger Skizzen abgleichen, welche Transaktionen sie gesehen haben, statt jeden Transaktionshash an jeden Peer zu schicken.

Spezifiziert im BIP-330.

Das Ankündigen von Transaktionen ist der größte einzelne Verbraucher der Bandbreite eines Nodes, und die Kosten steigen mit jedem hinzugefügten Peer. Gleb Naumenko und Pieter Wuille haben das Design als BIP330 aufgeschrieben, wo es weiterhin ein Entwurf ist: keine Version von Bitcoin Core aktiviert es. Es ist wichtig, weil es entscheidet, wie günstig der Betrieb eines eigenen Nodes werden darf.

Wie es funktioniert

Erlay greift eine Redundanz an, die offensichtlich wird, sobald man sie zählt: Ein Node teilt derzeit jedem seiner Peers jede Transaktion mit, von der er erfährt, und die meisten dieser Peers kannten sie bereits.

Das derzeitige Verfahren ist das Flooding. Jede neue Transaktion wird in einer inv-Nachricht angekündigt, die einen Typcode und eine 32-Byte-Kennung trägt, also 36 Byte pro Ankündigung und Peer. Bitcoin Core öffnet standardmäßig 8 ausgehende Verbindungen für die Transaktionsweitergabe und akzeptiert eingehende Peers bis zu insgesamt 125, sodass eine gut vernetzte Maschine dieselbe kurze Nachricht dutzendfach sendet und empfängt für etwas, von dem sie ohnehin erfahren hätte. Die Verschwendung ist proportional zur Anzahl der Verbindungen, was genau das Verhalten bestraft, das das Netzwerk schwerer teilbar macht.

Erlay behält ein wenig des Floodings und ersetzt den Rest durch Mengenabgleich. Jedes Peer-Paar verfolgt die Ankündigungen, die es noch nicht mit dem anderen ausgetauscht hat. In regelmäßigen Abständen fordert eine Seite eine Skizze dieser Menge an. Eine Skizze ist eine algebraische Zusammenfassung fester Größe, deren Länge davon abhängt, wie viele Unterschiede erwartet werden, und nicht davon, wie viele Transaktionen eine der beiden Seiten hält, und das Kombinieren zweier Skizzen ergibt genau die Einträge, die ein Peer hat und dem anderen fehlen. Die Bibliothek minisketch, die Bitcoin Core seit Jahren im Quellcode-Baum mitführt, während das Weitergabeprotokoll darum herum nicht zusammengeführt wurde, implementiert die Konstruktion und die Dekodierung.

Die Skizzengröße falsch zu schätzen ist nicht fatal. Wenn die Dekodierung fehlschlägt, weil der Unterschied größer war als geschätzt, erweitern die Peers die Skizze und versuchen es erneut, statt von vorn zu beginnen, sodass eine schlechte Schätzung ein wenig zusätzliche Bandbreite kostet statt einer vollständigen Neusynchronisierung.

Wo Sie es sehen

Erlay sehen Sie noch nicht, und das ist die ehrliche Antwort für jeden, der in einem Node-Dashboard danach sucht.

Was Sie sehen können, ist das Problem, auf das es abzielt. Rufen Sie getnettotals auf Ihrem eigenen Node auf, und die Byte-Zähler zeigen, dass der Weitergabeverkehr alles außer dem anfänglichen Herunterladen der Blockchain dominiert. Betreiber mit datenbegrenzten Anschlüssen reagieren bereits, indem sie den Upload mit maxuploadtarget begrenzen oder die Zahl der Peers verringern, die sie halten, und beide Entscheidungen schwächen das Netzwerk ein wenig, um eine Rechnung zu senken.

Das ist der Kompromiss, den Erlay auflösen soll. Wenn die Bandbreite nicht mehr mit der Anzahl der Verbindungen skalierte, könnte ein Node sicher weit mehr Peers halten, und ein dicht vernetztes Netzwerk ist viel schwerer zu partitionieren oder mit einem Eclipse-Angriff zu isolieren. Für jemanden, dessen einziges Interesse darin besteht, seine eigenen Bitcoin zu verifizieren, statt einem Block-Explorer zu vertrauen, ist das Versprechen eng und real: dieselbe Verifizierung über eine günstigere Verbindung.

Erlay vs. kompakte Blockweitergabe

Erlay betrifft Transaktionen, bevor sie gemint werden; die kompakte Blockweitergabe betrifft Blöcke danach. Die beiden antworten auf unterschiedliche Engpässe und wurden nach unterschiedlichen Uhren beurteilt. Die Blockverbreitung ist ein Latenzproblem, denn jede Sekunde, die ein Block unterwegs ist, ist eine Sekunde, die ein Miner damit verbringt, an einer Chain-Spitze zu arbeiten, die nicht mehr existiert, und die Lösung wurde 2016 veröffentlicht. Die Transaktionsankündigung ist ein Volumenproblem, gemessen in Gigabyte über einen Monat und nicht in Millisekunden, deshalb hatte niemand es eilig, und deshalb liegt der Vorschlag seit Jahren als Entwurf vor.

Nicht zu verwechseln mit

Häufig gestellte Fragen

Kann ich Erlay in Bitcoin Core aktivieren?

Nein. BIP330 ist weiterhin ein Entwurf, und keine Version aktiviert den Transaktionsabgleich. Die Bibliothek minisketch, von der es abhängt, liegt im Quellcode-Baum von Bitcoin Core, aber das darauf aufbauende Weitergabeprotokoll wurde nicht zusammengeführt.

Würde Erlay meinen Node schneller machen?

Nicht schneller, sondern günstiger. Es zielt auf das Volumen der Transaktionsankündigungen und nicht auf die Geschwindigkeit von irgendetwas, sodass die sichtbare Wirkung eine niedrigere monatliche Bandbreitenzahl wäre und die Freiheit, mehr Peers verbunden zu halten, ohne dafür zu zahlen.

Verwandte Begriffe

Mehr zum Thema Protokoll und Upgrades

Diese Seite auf Englisch lesen