Der Avalanche Konsensus

Swiss Staking
avalanche_dach
Published in
4 min readMay 4, 2020

Eine der wichtigsten Eigenschaft, wenn man Blockchains miteinander vergleicht ist der Konsensus-Algorithmus — also die Komponente, die bestimmt, wie sich die beteiligten Parteien auf die Wahrheit einigen. Der Avalanche Konsensus gewinnt mehr und mehr an Bekanntheit und den Avalanche Blockchain-Systemen wird hohes Potential zugemutet. Das liegt vor allem daran, dass Avalanche, im Vergleich zu klassischen Konsensus-Protokollen oder dem Nakamoto Modell, eine echte dezentrale Lösung bietet und masslos skalieren kann. Und dies ohne unnötige Ressourcen zu verschwenden.

Die heute bekannten Konsensus-Algorithmen lassen sich in drei Kategorien unterteilen:

Der klassische Konsensus
Beim klassischen Konsensus müssen alle Beteiligten resp. die Nodes sich initial kennen und konstant bleiben. Da sich die Beteiligten mit allen anderen ständig über den aktuellen Stand austauschen müssen, generiert es einen gewaltigen Overhead an Kommunikation. Dies steigt exponentiell mit jedem zusätzlichen Teilnehmer und steht somit der Skalierung im Wege. Deswegen werden die Teilnehmer von einer zentrale Stelle aus bestimmt und berechtigt (permissioned). Die grossen Nachteile sind offensichtlich: nicht wirklich dezentral und nicht skalierbar.

Der Nakamoto Konsensus/Proof of Work
Dieser Algorithmus unterscheidet sich primär zum obigen, dass die Teilnehmer nicht alle Beteiligten kennen müssen, was per se eine Skalierung ermöglicht. Zudem werden die Beteiligten nicht von einer zentralen Stelle bestimmt (permissionless). Jeder kann am Konsensus teilnehmen, der freie Wettbewerb bestimmt, wer der nächste Blockproducer ist.
Entscheidend bei dieser Konsensus-Variante ist das Proof of Work verfahren. Die Investition in Rechenleistung und Energie, die getätigt werden muss, macht es schwierig resp. soll es nicht lohnenswert machen den Inhalt der Blockchain zu manipulieren und fälschen.

Avalanche Konsensus
Im Avalanche Konsensus gibt es keine Leader, jeder Beteiligter im Netzwerk hat eine Stimme. Es gibt auch keine “privilegierte” Nodes, die spezielle Funktionen einnehmen. Der Konsensus-Prozess ist in vier Prozesse aufgeteilt:

  1. Slush:
    Ein Node hat drei verschiedene Status: Neutral, True und False.
    i. Jeder Node startet mit dem Status neutral bis es für eine Transaktion oder einer Entscheidung mit true oder false abstimmt.
    ii. Nachdem der neue Status vom Node (nennen wir unser Node Node-A) angenommen wurde, wird eine zufällige Gruppe von Nodes (nennen wir diese Node-B) abgefragt.
    iii. Wenn diese Node-B keinen Status haben, übernehmen sie den Status vom abfragenden Node-A. Wenn die Mehrheit dieser abfragenden Node-B dennselben Status haben wie Node-A, unternimmt Node-A nichts. Sollte es umgekehrt sein, nimmt unser Node-A den Status der Node-B an (da diese die Mehrheit repräsentieren).
    iv. Dies geschieht einige Male, immer wieder mit zufälligen Nodes die abgefragt werden, bis eine Mehrheit im Netzwerk vorhanden ist.
Avalanche Konsensus-Algorithmus

2. SnowFlake
SnowFlake kann man als Kurzzeitgedächnis vergleichen. Jeder Node hat ein Slush-Zähler:
- der bei jeder Slush-Abfrage, die den gleichen Status zurückgibt, erhöht wird.
- der bei jeder Abfrage, die zu einem eigenen Statuswechsel führt (weil die Node-B die Mehrheit haben), zurückgesetzt wird.

Wenn der Zähler einen genug hohen Wert erreicht, kommt es zum SnowFlak-Locking und der Status wird nicht länger erhöht oder zurückgesetzt. Das Locking dient dazu, dass der Slush-Prozess auch irgendeinmal terminiert.

3. SnowBall
Erst in diesem dritten Teil bekommt der Node ein Langzeitgedächtnis für den SnowFlake Prozess und dieses dient als Vertrauens-Zähler. Mit diesem Zähler wird sichergestellt, dass der Status-Wechsel anhand von mehreren in der Vergangenheit durchgeführten Abfragen geschieht und nicht nur anhand vom Status der fortlaufenden Node-Abfrage.

D.h. für jede erfolgreiche Abfrage (gleicher Status) wird der Zähler erhöht. Der Node wechselt den Status, wenn der Vertrauens-Zähler vom momentanen Status kleiner ist als der vom neuen Status.

4. Avalanche
Im letzten Schritt wird alles miteinander verknüpft und persistiert. Die bestätigten Transaktionen werden in eine Datenstruktur (DAG) hinzugefügt.

Dank der Funktionen von Avalanche können unglaublich schnelle Geschwindigkeiten unterstützt werden. Die Entwickler-Gruppe namens Team Rocket behauptet, dass ein Endzustand bereits in zwei Sekunden erreicht wird. Anders ausgedrückt, werden Transaktionen in nur zwei Sekunden verarbeitet und überprüft. Auch soll mit dem Avalanche-Protokoll einen Durchsatz von 1'000 bis 10'000 Transaktionen pro Sekunde verarbeitet werden können, was eine optimale Voraussetzung für reale use cases schafft.

Zudem ist das Protokoll energieeffizient. Da der Konsens durch das spezielle “Klatschprotokoll” erzielt wird, fällt der Bedarf an grossen Energiemengen, die für den Nachweis der Arbeit (PoW) und andere ähnliche Mechanismen verwendet werden, weg.

Swiss Staking
Website: https://swiss-staking.ch/
Twitter: Swiss Staking

AVA German:
Telegram: AVA Deutsch
Twitter: AVA Deutsch

--

--

Swiss Staking
avalanche_dach

Experienced Validator based in Crypto Valley, Switzerland