0 C
New York
June 24, 2019
Dienstleistungen Nachrichten

Erlay: Eine Methode, um die Konnektivität des Bitcoin-Netzwerks zu verbessern

Mit Erlay stellen Gregory Maxwell, Pieter Wuille und zwei Forscher der British University of Columbia ein Protokoll vor, um die Bandbreite, die Bitcoin-Knoten konsumieren, erheblich zu verringern. Dies würde es erlauben, die innere Konnektivität des Netzwerks ohne Kosten zu erhöhen. Der Vorschlag ist mutig, weil er an einer Grundsäule des Bitcoin-Protokolls rüttelt.

Ein Bitcoin Full Node konsumiert viele verschiedene System-Ressourcen. Um eine davon – die Bandbreite – handelt ein kürzlich erschienenes Paper von Core-Entwickler Gregory Maxwell, Blockstream-Entwickler Pieter Wuille sowie zwei Forschern der British University of Columbia, Sasha Fedorova und Gleb Naumenko.

Bandbreite meint den notwendigen Internettraffic, den ein Full Node braucht, um Transaktionen, Blöcke und andere Nachrichten zu empfangen und zu versenden. Dies umfasst sowohl den Download als auch den Upload dieser Daten. Die Bandbreite gilt als einer der Flaschenhälse, der die Skalierung von Bitcoin so schwierig macht.

Eine Flut an Nachrichten

Bisher wächst die notwendige Bandbreite linear mit der Anzahl von Peers, die ein Node hat. Ist klar: Mit je mehr anderen Nodes man verbunden ist, desto mehr Bandbreite braucht man, um mit diesen Nachrichten auszutauschen. Der Grund dafür liegt in einer fundamentalen Eigenschaft von Bitcoin: Informationen werden durch das „Flooding“-Modell verbreitet: Jeder Knoten erzählt sie jedem Knoten, den er erreichen kann. Das Netzwerk wird mit ihnen geflutet. Das hat den Effekt, dass sich Transaktionen und Blöcke rasend schnell ausbreiten – aber es hat den Nachteil, dass die Redundanz ziemlich hoch ist.

Immerhin fragen Knoten ihre Peers, bevor sie ihnen Transaktionen senden. Das geschieht durch die sogenannten INV (Inventar) Nachrichten: „Wenn ein Bitcoin-Node eine Transaktion empfängt, kündigt er sie allen seinen Peers an, außer dem Peer, von dem er sie erhalten hat. Um eine Transaktion anzukündigen, sendet der Node eine Hash der Transaktion als INV-Nachricht. Wenn ein anderer Knoten dadurch von einer Transaktion zum ersten Mal gehört hat, wird er die volle Transaktion anfordern.“ Das Ergebnis ist, dass „ein Node mit n Verbindungen zwischen n und 2n INV-Nachrichten für jede Transaktion senden und versenden wird.“

Dies macht Flooding ineffizient. Es gibt sehr viele redundante INV-Nachrichten, deren Menge mit der Anzahl der Verbindungen wächst, die ein Knoten unterhält. Die Autoren des Papers haben gemessen, wie viel Bandbreite ein Knoten braucht, um diese Nachrichten auszutauschen: 9 Gigabyte im Monat. Wenn man die Anzahl der Verbindungen von acht auf 24 erhöht, wächst diese Menge auf 15 Gigabyte. Das macht einen erheblichen Teil der Bandbreite aus, die ein Knoten verbraucht. Von dieser Datenmenge seien 88 Prozent unnötig, um Transaktionen tatsächlich im Netzwerk zu verbreiten.

Die Konnektivität

Da der Bedarf an Bandbreite mit der Anzahl von Verbindungen wächst, die ein Knoten unterhält, ist es schwierig, die „Konnektivität“ des Netzwerks, also die Vernetzung der Knoten, zu erhöhen. Dies aber ist ein Faktor, der für die Sicherheit essentiell sein kann: „Die Sicherheit von Bitcoin hängt von einer adäquaten Netzwerk-Konnektivität ab.“ Die Forschung habe „wiederholt empfohlen, die Anzahl von Verbindungen zwischen Knoten zu erhöhen, um das Netzwerk robuster zu machen.“ So sinkt die Erfolgsrate von Eclipe-Angriffen sowie einem erst kürzlich entdeckten Angriff über die Inventar-Nachrichten, wenn die Knoten besser verbunden sind.

Die Kernfrage, die die Autoren bewegt, ist daher: Wie kann man diese Verbindung lösen? Wie kann man es dem Netzwerk erlauben, die Konnektivität zu steigern, ohne gleichzeitig die Anforderungen an die Bandbreite für Full Nodes zu erhöhen? Die Lösung, die sie dabei gefunden haben, ist Erlay – ein neues Protokoll, um Transaktionen im Netzwerk zu verbreiten.

Abgleich anstatt Flooding

Erlay bricht dabei mit dem Flooding-Verfahren. Das Protokoll begrenzt das Flooding der Nodes auf acht ausgehende Verbindungen, „selbst wenn die Anzahl dieser Verbindungen höher ist“. Das hat den Effekt, „dass die Erhöhung der Konnektivität nicht auch die Kosten der Transaktions-Verbreitung proportional steigert.“

Das ist grundsätzlich einfach zu verstehen. Wenn man seine Daten nur an acht Peers weitergibt, egal mit wie vielen man verbunden ist, ist das Datenvolumen unabhängig von der Anzahl an Peers. Aber hat es nicht den Effekt, dass sich Transaktionen dadurch langsamer im Netzwerk ausbreiten? Macht es nicht eben einen zentralen Effekt einer höheren Konnektivität zunichte?   An sich natürlich schon. Der Großteil des Papers geht daher darum, wie man diesen Nachteil ausbügeln kann.

Dies geschieht durch eine Methode der Abstimmung („Reconsiliation“). Dazu berechnen die Nodes eine Skizze des Sets von unbestätigten Transaktionen, die bei ihnen liegen, und tauschen diese bzw. deren geschätzte Größe mit ihren Peers aus. Sobald die Knoten darin Abweichungen erkennen, können sie von den anderen fehlende Transaktionen anfordern. Eine solche Skizze wird einmal je Sekunde ausgetauscht. Dieser Zeitraum ist variabel, je höher er ist, desto höher kann die Latenz im Netzwerk werden, je geringer, desto geringer fallen die Einsparungen an Bandbreite aus.

Die Autoren haben diese Methode in einem simulierten Bitcoin-Netzwerk mit 6.000 öffentlichen und 54.000 privaten Knoten getestet. Ein solches Netzwerk entspreche dem tatsächlichen Bitcoin-Netzwerk. Um die Effekte von Erlay auf die Konnektivität zu testen, haben sie dabei auch die Anzahl der Verbindungen je Knoten erhöht. Das Ergebnis fiel wie erwartet aus: Erlay spart massiv Bandbreite. Um genau zu sein: 84 Prozent der Daten, die für die Ankündigung von Transaktionen bisher verwendet werden.

„Der Verbrauch von Bandbreite wächst signifikant langsamer. Erlay befördert reibungslos eine höhere Konnektivität, was eine bessere Sicherheit ermöglicht.“ Anders ausgedrückt: Ein Bitcoin-Netzwerk, das Erlay benutzen würde, um Transaktionen zu verteilen, würde es den Knoten erlauben, sich besser zu verbinden. Es würde die „Dichte“ des Netzwerkes erhöhen.

Die Latenz wird etwas höher

Es gibt aber auch einen Nachteil: „Erlay erhöht die Latenz im Vergleich zu Flooding.“ Latenz meint den Zeitraum, den eine Transaktion benötigt, um sich im Netzwerk auszubreiten. Um alle Knoten zu erreichen, braucht eine Transaktion durch Flooding 3,15 Sekunden, während sie mit Erlay 5,75 Sekunden benötigt. Um dagegen bei 80 Prozent der Knoten anzukommen, benötigt eine Transaktion mit Flooding weniger als einer Sekunde und mit Erlay beinah drei Sekunden.

Zudem sinkt bei Flooding die Latenz des Netzwerks mit einer steigenden Konnektivität. Wenn alle Knoten 32 anstatt acht Verbindungen hätte, würde eine Transaktion weniger als eine Sekunde benötigen, um alle anderen Knoten zu erreichen. Mit Erlay bleibt die Latenz beinah unberührt von der Konnektivität.

Die Autoren räumen ein, dass User, die unbestätigte Transaktionen akzeptieren, die Erhöhung der Latenz von etwas über 2 Sekunden spüren werden. Aber sie verstehen das als annehmbaren Tradeoff: „Wir haben uns entschieden, diesen Nachteil in Kauf zu nehmen, weil es ein akzeptabler Preis dafür ist, um die Effizient der Bandbreite zu maximieren.“ Man könnte Erlay aber auch so justieren, dass es eine ähnliche Latenz wie Flooding erreicht, während es weiterhin Bandbreite einspart. Dies würde die Konnektivität ohne Nachteile verbessern.

Related posts

Login

X

Register