Die Avalanche Konsensusfamilie, der größte Durchbruch seit Nakamoto

lakai01
avalanche_dach
Published in
9 min readJan 24, 2021

--

Übersetzung des von

stammenden englischen Originalartikels

Die Konsensfindung ist jenes Verfahren, bei dem eine Reihe von unabhängigen Knoten in einem Netzwerk (oft als “Validatoren” bezeichnet) zu einer Einigung über eine Entscheidung kommen. Durch die Konsensusfindung ist garantiert, dass das Netzwerk eine synchronisierte Sicht auf einen bestimmten Zustand hat. Ohne Konsens gibt es keine Möglichkeit sicherzustellen, dass der Zustand, den ein Validator für richtig hält, auch von den anderen Knoten im Netzwerk als richtig angenommen wird.

Sowohl Proof-of-Work (PoW) als auch Proof-of-Stake (PoS) werden häufig mit Konsensprotokollen verwechselt, diese sind jedoch so genannte Sybil-Kontrollmechanismen. PoS erreicht den Konsens nicht von alleine und wird daher mit einem Protokoll wie „Practical Byzantine Fault Tolerance“ (PBFT), Tendermint/Cosmos oder Avalanche verknüpft, um die Konsensfindung zu ermöglichen. PoW für sich alleine genommen ist ebenfalls kein Konsens-Mechanismus. Sowohl bei BTC als auch bei BCH wird der Konsens stattdessen mit der so genannten “heaviest/longest chain selection rule” erreicht.

In der 45-jährigen Geschichte verteilter Systeme gab es bisher nur drei Ansätze für die Lösung des Konsensproblems: klassische Protokolle, Nakamoto und Avalanche.

Klassische Konsensprotokolle

Klassische Konsensprotokolle, wie z. B. Practical Byzantine Fault Tolerance (PBFT), HotStuff und Tendermint/Cosmos werden seit den 1980er Jahren verwendet und basieren darauf, dass alle Knoten im Netzwerk gemeinsam den Konsens erreichen. Bei diesen Konsensprotokollen wird klassischerweise ein “Leader” bestimmt, der den Entscheidungsprozess initiiert. Darauf folgt eine Reihe von Abstimmrunden unter den Knoten im Netzwerk, um sicherzustellen, dass alle Knoten zur gleichen Entscheidung gelangt sind. Transaktionen werden sofort abgeschlossen, nachdem der Leader die getroffenen Entscheidungen von einem repräsentativen Anteil der Knoten im Gesamtsystem erhalten hat.

Klassische Protokolle benötigen durch die Tatsache, dass alle Knoten im Netzwerk für die Entscheidungsfindung mit einbezogen werden, typischerweise einen quadratischen Kommunikationsoverhead O(n²) (bei 10 Knoten erfordert jede Abstimmrunde 100 Nachrichten, bei 100 Knoten erfordert jede Abstimmrunde 10.000 Nachrichten und bei 2000 Validatoren erfordert jede Abstimmrunde 4.000.000 Nachrichten). Für den Fall, dass der Leader ausfällt, erhöht sich der Kommunikations-Overhead weiter auf O(n³ ). Darüber hinaus wird ein genauer Zustand über die einzelnen Knoten im System benötigt. Jeder Fehler bei der Aufrechterhaltung der Knotenbeteiligung im System oder jeder Unterschied bei der Entscheidungsfindung der Netzwerkknoten kann zu Sicherheitsverletzungen führen. Wenn ein Angreifer die Kontrolle über 1/3 +1 des Netzwerks erlangt, kann dieser einen Double-Spend-Angriff starten, der dann garantiert zum Erfolg führt.

Das am besten skalierende klassische Protokoll, HotStuff (welches von Facebooks Libra verwendet wird und von Ted Yin entwickelt wurde, der jetzt am Avalanche-Protokoll arbeitet), unterstützt nur etwa 100 Validatoren, bevor die Leistung des Netzwerks beeinträchtigt wird. Manche Projekte, die auf klassische Konsensprotokolle setzen, behaupten, auf tausenden von Knoten skalieren zu können. Hier muss jedoch bedacht werden, dass diese Projekte für die Konsensfindung nur einen kleinen Teil der Knoten im System auswählen. Die anderen Knoten im System nehmen dabei nicht an der Entscheidungsfindung teil. Dies führt dazu, dass die Kosten für das Brechen der Sicherheit in so einem System sehr gering ausfallen können, da dazu nur ein kleinerer Teil der Knoten im System korrumpiert werden muss.

Aufgrund der begrenzten Skalierbarkeit der Anzahl der Validatoren und der Anfälligkeit, die sich durch die laufende Sicherstellung des Status der Knoten im System ergibt, sind klassische Protokolle nicht für große, offene und „permissionless“ Netzwerke geeignet, in denen Knoten nach Belieben dem Netzwerk beitreten und dieses auch wieder verlassen können.

Nakamoto-Konsensprotokolle

Der erste Durchbruch fand mit den Nakamoto-Konsensprotokollen statt, welche mit dem Aufstieg von Bitcoin populär wurden. Diese verzichten auf die Anforderung, dass für eine Entscheidungsfindung alle Knoten des Netzwerks mit einbezogen werden müssen und sind damit für offene, permissionless Umgebungen, in denen jeder Knoten dem System jederzeit beitreten kann, sehr gut geeignet. Im Gegensatz zu klassischen Konsensprotokollen bieten diese Protokolle eine probabilistische und keine deterministische Sicherheitsgarantie im Netzwerk. Durch einen zusätzlichen Protokollparameter kann die Wahrscheinlichkeit des Auftretens und Ausnutzens von Double-Spend-Attacken minimiert werden, so dass auf Grundlage eines Systems, welches ein Nakamoto-Protokoll einsetzt, auch vollständige und umfangreiche Finanzsysteme aufgebaut werden können.

Diese Protokolle sind jedoch teuer, gehen verschwenderisch mit den Ressourcen um und sind in ihrer Leistungsfähigkeit begrenzt. Die Protokolle erfordern sinnlose Berechnungen, die riesige Mengen an Energie verbrauchen; eine Analyse der internationalen Energieagentur schätzt, dass das Mining von Kryptowährungen mindestens so viel Energie verbraucht wie die gesamte Nation Irland. Das Ergebnis ist, dass Nakamoto-basierte Systeme ständig Wert aus ihrem Ökosystem an Energieunternehmen verlieren. Um die Sicherheit von Proof-of-Work-Systemen aufrechtzuerhalten, dürfen die Miner niemals abgeschaltet werden, wodurch sich leider auch ergibt, dass dieser absurd hohe Energieverbrauch niemals endet. Das Minen eines Blocks ist per Design aufwändig, wodurch Nakamoto-Protokolle Transaktionen sehr langsam finalisieren — es vergeht rund eine Stunde, bis eine Bitcoin-Transaktion final wird. Diese hohe Latenz wird sich jedoch auch nicht merklich verringern, selbst wenn in der dahinterliegenden Technologie bahnbrechende Fortschritte erzielt werden können.

Avalanche Konsensprotokolle

“Only three times in the 45-year-old history of distributed systems have we had a new family emerge. Avalanche is a brand-new family, as big of a breakthrough as Satoshi’s protocol was; it combines the best of Satoshi with the best of classical in scales like no other that allow anyone to integrate themselves into the consensus layer.” — Emin Gün Sirer

Die Avalanche-Konsensprotokolle sind nun der nächste große Durchbruch, da diese Protokollfamilie die Vorteile des Nakamoto-Konsensus (Robustheit, Skalierung, Dezentralisierung) mit allen Vorteilen des klassischen Konsensus (Geschwindigkeit, schnelle Finality und Energieeffizienz) kombinieren. Im Jahr 2018 wurde dazu ein Paper von einer pseudonymen Gruppe namens „Team Rocket“ veröffentlicht, welches bewies, dass klassische Protokolle dahingehend verallgemeinert werden können, damit diese sich probabilistisch verhalten und dadurch massive Leistungsverbesserungen erzielen.

So wie bei Nakamoto — wo eine geringe Fehlerwahrscheinlichkeit mit Leistung erkauft wird — verhält sich auch Avalanche probabilistisch. Dies führt dazu, dass die Wahrscheinlichkeit, dass eine Sicherheitsverletzung auf einem Avalanche-Validator auftritt, geringer ist als die Wahrscheinlichkeit, eine SHA-256-Hash-Kollision zu finden. Folgendes Beispiel soll dies nochmal verdeutlichen: Es ist um Dutzende von Größenordnungen wahrscheinlicher, dass ein lebensbedrohlicher Asteroid in den nächsten hundert Jahren mit der Erde kollidiert, als dass eine SHA-256-Kollision in den nächsten tausend Jahren von einem Netzwerk entdeckt wird, das 1 Quintillion Hashes pro Sekunde berechnet.

Avalanche-Protokolle sind außerdem sehr leichtgewichtig und stabil. Im Gegensatz zu Nakamoto-Protokollen verbrauchen die Protokolle sehr wenig Energie. Wird die Leistung des Netzwerkes nicht benötigt, so geht das System in den Ruhezustand über und verbleibt dabei in einem Zustand mit sehr geringem Energieverbrauch. Dies ist ein echter “Game Changer”, der einen hohen Durchsatz ermöglicht und gleichzeitig eine geringe Latenz aufweist. Die Anzahl der Nachrichten, die jeder Validator pro Entscheidung verarbeiten muss, ist O(k) und steigt nicht mit der Skalierung des Netzwerks, so dass eine Skalierung auf Millionen von Validatoren, die an der Konsensfindung teilnehmen, möglich ist. Dadurch wird eine tatsächliche globale Dezentralisierung für die permissionless Blockchain erreicht und die Blockchain einen Schritt weiter Richtung Massenadaption gebracht.

Die Protokolle der Avalanche-Familie sind äußerst performant und erreichen eine irreversible Finalität in unter drei Sekunden (meistens sogar unter einer Sekunde) und sind damit schneller als eine typische Kreditkartentransaktion. Die Protokolle unterstützen viele Tausende von Transaktionen pro Sekunde, was den typischen Durchsatz von Visa mit 4500 TPS übersteigt. Wir reden hier jedoch nicht von erfundenen Marketing-Zahlen — so wie diese von einigen anderen Projekte veröffentlicht werden und oftmals auf einer beschränkten Anzahl von Validatoren in einem einzigen Rechenzentrum basieren. Diese Zahlen hier stammen direkt aus einem echten, vollständig implementierten Avalanche-Netzwerk, das auf 2000 Knoten auf der AWS läuft, die auf Low-End-Maschinen über den Globus verteilt sind. Höhere Leistungsergebnisse (10.000+) können durch die Annahme einer höheren Bandbreitenbereitstellung für jeden Validator und dedizierte Hardware für die Signaturverifikation erreicht werden. Zusätzlich sind die hier besprochenen Zahlen Metriken der Basis-Schicht. Layer-2-Skalierungslösungen würden diese Zahlen noch wesentlich verbessern.

Wie funktioniert die Konsensus-Findung?

In einer gegebenen Runde wählt jeder Validator zufällig K Knoten aus der gesamten Validatorenliste aus (die Wahrscheinlichkeit der Auswahl wird nach der Höhe des Stakes gewichtet), und fragt diese nach deren getroffener Entscheidung ab. Jeder befragte Validator liefert diesem Validator nun die getroffenen Entscheidungen zurück. Weicht die Mehrheit der Antworten, die in einer Runde zurückgegeben werden, von jener des Validators ab, der die Anfragen durchgeführt hat, so passt dieser seine Entscheidung an die Mehrheit an.

Zur Veranschaulichung zeigt das folgende Diagramm einen Validator-Satz von 64 Knoten, bei dem die Validatoren zwischen den Farben Blau und Gelb wählen müssen. Die Anzahl der zufällig zur Abfrage ausgewählten Validatoren, dargestellt als K, beträgt 5. Wir konzentrieren uns zunächst nur auf den Validator ganz oben links, der gerade „Gelb“ als bevorzugte Entscheidung anzeigt. Dann werden 5 zufällige Validatoren aus der gesamten Validatorenmenge ausgewählt um ihre getroffene Entscheidung abzufragen (die ausgewählten Validatoren wurden rot markiert).

Hier sieht man, dass 3 Validatoren die Antwort „Blau“ zurückgegeben haben, während 2 Validatoren die Antwort „Gelb“ zurücklieferten, somit ist „Blau“ die Mehrheit und der Validator oben links, der die Abfrage durchführt, aktualisiert seine eigene Entscheidung ebenfalls auf „Blau“.

Wir konzentrieren uns weiter auf den linken oberen Validator. Dieser wählt nun in der nächsten Runde nach dem Zufallsprinzip 5 weitere Validatoren aus und ermittelt von diesen deren getroffene Entscheidung, in diesem Fall sind dies 4 Mal „Blau“ und 1 Mal „Gelb“. Somit behält unser Validator seine eigene bevorzugte Entscheidung „Blau“ bei.

Wichtig zu verstehen ist hier, dass wir uns zwar nur auf unseren Validator links oben konzentriert haben, jedoch jeder Validator im Netzwerk pro Runde den gleichen Vorgang durchgeführt hat und ebenfalls zufällig eigene 5 Validatoren auswählte um von diesen die getroffenen Entscheidungen zu ermitteln. Die Validatoren warten demnach nicht abwechselnd auf die Abfrage, sondern führen diese Aufgabe unabhängig voneinander aus. Im folgenden Bild sehen wir anhand von 4 verschiedenen Validatoren, die jeweils ihre Knoten ausgewählt haben (rot, schwarz, grün und lila umrandet), dass das Netzwerk problemlos in die Tausende skalieren kann und trotzdem die Last pro Validator gleich bleibt — unabhängig von der Gesamtanzahl der Teilnehmer an Netzwerk.

Das Vertrauen in getroffene Entscheidungen ist innerhalb des Netzwerkes sehr hoch, da die Auswahl der zu befragenden Validatoren zufällig getroffen wird und getroffene Entscheidungen stehts von allen Validatoren im gesamten Netzwerk geteilt werden. Im Gegensatz zum klassischen Konsensprotokoll ermittelt ein Validator den Status der anderen Validatoren anhand einer eigens ausgewählten Stichprobe. Dadurch ist das Netzwerk in der Lage, auf hunderttausende oder sogar Millionen von Validatoren zu skalieren, ohne zusätzlichen Overhead bei jedem einzelnen Validator zu erzeugen da die Größe der Stichprobe konstant bleibt. Sobald einer getroffenen Entscheidung ausreichend vertraut wird, wird diese sofort finalisiert. Dies passiert so schnell, sodass Avalanche hinsichtlich Verarbeitungsgeschwindigkeit und Sicherheit problemlos mit großen Zahlungsdienstleistern konkurrieren kann. Anhand der folgenden Abbildung sieht man, wie schnell eine Entscheidungsfindung abläuft, wenn alle Validatoren die Abfrage in einem Netzwerk mit einem gleichverteilten Anfangszustand in blau und gelb durchführen:

Avalanche ist zudem gegen Angriffe innerhalb des Netzwerks resistent. Wenn das Netzwerk so parametrisiert ist, dass ein Angreifer mindestens 33% des Stakes besitzen muss und ein Angreifer 34% der Stakes im Netzwerk hält, so kann dieser in klassischen Konsensprotokollen einen Double Spend-Angriff starten, der garantiert erfolgreich ist. Bei Avalanche bedeutet dies nur, dass der Angreifer eine etwas höhere Chance hat, mit seinem Angriff erfolgreich zu sein. Da die Konsensfindung ohne „Leader“ durchgeführt wird, ist das Netzwerk zudem gegen eine große Anzahl von Angriffsvektoren immun, denen andere Konsensprotokollfamilien ausgesetzt sind. Die große Anzahl von Validatoren sorgt dafür, dass getroffene Entscheidungen nicht rückgängig gemacht werden können und ist dabei gleichzeitig zensurresistent, was bei Proof-of-Work-Protokollen, die von einer kleinen Anzahl von Mining-Pools unterstützt werden, nicht der Fall ist.

Derzeit sind zwei verschiedene Konsensprotokolle namens Snowman und Avalanche verfügbar, die Entwicklung eines dritten Protokolls mit dem Namen Frosty ist bereits in der Roadmap eingeplant. Snowman bietet eine vollständig geordnete Timeline, die typischerweise für Smart Contracts erforderlich ist. Avalanche hingegen bietet eine teilweise geordnete Timeline, wo Beziehungen zwar nicht vollständig abgebildet sind, dadurch jedoch einen viel höheren Durchsatz mit sehr geringer Latenz ermöglicht und so bspw. Für Zahlungsvorgänge geeignet ist.

Für weitere Informationen, wie das Avalanche Konsensprotokoll funktioniert, wird an dieser Stelle auf folgenden Artikel https://medium.com/avalabs/avalanche-consensus-101-99c68a3e3159 sowie auf das Whitepaper unter https://files.avalabs.org/papers/consensus.pdf verwiesen.

Eine generelle Übersicht über Avalanche bietet weiters dieser Artikel.

Comparison between Avalanche, Cosmos and Polkadot

Why Avalanche (AVAX) has the potential to be an incredible store of value

Setting Up an Avalanche Node with Microsoft Azure (Cheaper than AWS)

Danke an dieser Stelle auch nochmal an

für den hervorragenden englischen Originalartikel!

--

--

lakai01
avalanche_dach
0 Followers
Editor for

Software Developer, interested in Cryptos #AVAX, #ADA and of cource #BTC