Forschungskooperation: Albatross

Ein optimistischer Konsensalgorithmus

Nimiq Translations
Published in
6 min readApr 5, 2019

--

Dies ist eine Übersetzung dieses Artikels.

Team Nimiq präsentiert stolz Albatross, das Ergebnis unserer Forschungszusammenarbeit mit Trinkler Software. Albatross ist ein Proof-of-Stake-Konsensalgorithmus, der in der Lage ist, eine Leistung nahe dem theoretischen Maximum für einkettige Proof-of-Stake-Konsensalgorithmen zu erreichen. Anders als die schon veröffentlichte technischen Beschreibung des Protokolls strebt dieser Blogbeitrag eine leichtere und leicht verständliche Übersicht an.

Es ist wichtig zu betonen, dass Albatross nur ein Konsensverfahren ist. Als solches definiert es nicht die darauf aufbauende Funktionalität, sondern ist nur ein einzelner Baustein eines Blockchain-Protokolls. Nimiq evaluiert derzeit den Einsatz von Albatross für das Protokoll der nächsten Generation, es wurden noch keine Entscheidungen getroffen. Weitere Details zu unseren Plänen für Albatross findet ihr am Ende dieses Beitrags.

Was ist Proof-of-Stake?

In einem Proof-of-Stake (PoS)-basierten Konsensalgorithmus wird die Node (ein Teilnehmer des Netzwerks), die zum Anfügen des nächsten Blocks berechtigt ist, proportional zu dem Einsatz ausgewählt, den sie im System hat. Das macht die Blockproduktion im Vergleich zu Proof-of-Work (PoW)-basierten Algorithmen sehr günstig. Fehlverhalten (z.B. in Form von Forks) wird oft dadurch bestraft, dass der Einsatz der sich fehlverhaltenden Node zerschlagen (engl. “slashed”) und verbrannt (engl. “burned”) oder neu verteilt wird.

Die drei wichtigsten Vorteile von PoS gegenüber PoW sind:

  • ein drastisch reduzierter Energieverbrauch: Es besteht keine Notwendigkeit, energieintensive Arbeit zu leisten, um die Blockchain zu sichern,
  • reduziertes Zentralisierungsrisiko: Insbesondere die “Economies of Scale” sind weniger problematisch in PoS, und
  • das Äquivalent von 51%-Attacken sind teurer: Sich fehlverhaltende Nodes verlieren dauerhaft ihren Anteil, verglichen mit wiederverwendbarerer Hardware in PoW.

Was bedeutet “optimistischer Konsensalgorithmus”?

Wir beschreiben Albatross — unseren neuartigen Blockchain-Konsensalgorithmus — als optimistisch.

Dieser Begriff bedeutet nicht, dass wir in irgendeiner Weise die Sicherheit opfern. Es bedeutet, dass er von einem spekulativen byzantinischen fehlertoleranten (BFT) Algorithmen inspiriert ist.

Klassische BFT-Algorithmen bieten Konsens in verteilten Systemen unter Berücksichtigung einer begrenzten Anzahl bösartiger oder byzantinischer Akteure. Eines der prominentesten Beispiele für einen solchen Algorithmus ist PBFT, welchen z.B. die Tendermint Kryptowährung im Kern nutzt.

Spekulative BFT-Algorithmen sind eine Weiterentwicklung gegenüber Standard-BFT-Algorithmen. Sie ermöglichen drastische Leistungssteigerungen, wenn keine bösartigen Akteure anwesend sind. Dies ist der so genannte optimistische Fall und wo unsere Beschreibung ihren Ursprung findet. Falls byzantinische Akteure anwesend sind und versuchen, das Protokoll zu manipulieren, können andere das bemerken und das Protokoll in seinen langsameren und konservativeren Modus versetzen, der die gleichen Sicherheitsgarantien bietet wie die Standard-BFT-Protokolle.

Optimistische Konsensalgorithmen können daher im besten Fall viel schneller arbeiten als klassische Algorithmen. Während eines Angriffsfalls haben optimistische Algorithmen immer noch eine ähnliche Performance wie Standardalgorithmen.

Das Albatross-Protokoll

In Albatross werden die für die Erstellung neuer Blöcke verantwortlichen Nodes als Validierer bezeichnet. Jeder, der einen Anteil am System hat, kann sich freiwillig als Validierer melden, indem er seinen Anteil als Sicherheit hinterlegt, der bei Fehlverhalten zerschlagen werden kann.

Die Blockproduktion in Albatross ist in Epochen unterteilt. Wie die folgende Abbildung zeigt, besteht jede Epoche aus einer konstanten Anzahl von Mikroblöcken (im folgenden Beispiel je vier Mikroblöcke), gefolgt von einem Makroblock. Mikroblöcke enthalten die Transaktionen und haben einen einzelnen Blockproduzenten, der zufällig aus den Validierern ausgewählt wird. Währens sich jeder freiwillig als Validierer melden kann, wird der tatsächliche Satz von Validierern in einer bestimmten Epoche (die aktiven Validierer) durch den Makroblock der vorangegangenen Epoche ausgewählt.

In unserem Beispiel bestimmt die Blocknummer 0 die aktiven Validierer v_0,…,v_k für die Epoche von Block 1 bis Block 5.

Um den nächsten Blockproduzenten aus der Liste der Validierer zufällig auswählen zu können, enthält jeder Block ein zufälligen “Beacon” (dt. “Bake” oder “Leuchtfeuer”), wie oben durch r_i dargestellt. Der Blockproduzent eines Blocks verwendet eine sogenannte Verifiable Random Function (VRF, dt. “überprüfbare Zufallsfunktion”), um den nächsten Zufallswert r_i aus dem vorherigen Wert r_{i-1} zu erzeugen. Jeder andere Teilnehmer kann dann die Richtigkeit des nächsten Zufallswertes überprüfen.

Mit diesen zufälligen Beacons in jedem Block ist jeder Teilnehmer von Albatross dann in der Lage, den nächsten Blockproduzenten v_{σ(r)} aus der Liste der aktiven Validierer zu bestimmen.

Zur Herstellung von Mikroblöcken muss der ausgewählte Blockproduzent somit einfach die Transaktionen in einen Block setzen, den Block kryptographisch signieren und den Block an das Netzwerk senden.

Die Produktion von Makroblöcken ist etwas aufwändiger, kommt aber viel seltener vor. Makroblöcke werden mit dem klassischen PBFT-Protokoll erstellt. Zu diesem Zweck konstruiert der gewählte Blockproduzent — oder in diesem Fall eher ein Vorschlagender — den nächsten Zufallswert und bestimmt daraus die neue Liste der aktiven Validierer für die nächste Epoche. Die Liste der Validierer wird aus allen Freiwilligen gebildet, die über ihren Einsatz gewichtet werden und dann auf der Grundlage des zufälligen Beacons ausgewählt werden. Der Blockantragsteller veröffentlicht dann seinen Vorschlag, und alle anderen aktiven Validierer stimmen in zwei Runden darüber ab. Makroblöcke enthalten keine Transaktionen.

Es gibt keine Vorstellung von einer gezielten Blockzeit zwischen den Blöcken, so dass Blöcke fast so schnell produziert werden können, wie es das Netzwerk erlaubt.

Die obige Erklärung deckt nur den optimistischen Fall, jedoch bleibt das Protokoll sicher unter der Annahme, dass höchstens ⅓ der Validiererliste byzantinische Akteure sind. Diese Akteure können jedoch die Kette vorübergehend verlangsamen und die Blockproduktion in den konservativeren Modus versetzen. Byzantinische Akteure können vor allem zwei Mechanismen auslösen:

(1) Forks, die den nächsten Blockproduzenten veranlassen, einen der widersprüchlichen Blöcke auszuwählen und es Validierern ermöglichen, den Einsatz des bösartigen Validierers zu zerschlagen, und

(2) Verzögerungen, die einen anderen Validierer veranlassen, den Block stattdessen zu produzieren.

Eine detailliertere Erläuterung dieser Fälle findet ihr im Fachbeitrag.

Konsistenz vs. Verfügbarkeit

Ein interessanter Kompromiss bei der Gestaltung eines solchen Protokolls ist der zwischen Konsistenz und Verfügbarkeit. Konsistenz beschreibt die Eigenschaft, dass sich alle Teilnehmer des Protokolls auf den gleichen, aktuellen Wert einigen. Die Verfügbarkeit beschreibt die Eigenschaft, dass Teilnehmer nicht davon abgehalten werden können, auf unbestimmte Zeit den richtigen, neuesten Wert zu lernen.

Das CAP-Theorem besagt nun, dass während einer Netzwerkpartition diese Eigenschaften nicht gleichzeitig erreicht werden können.

Bitcoin zum Beispiel begünstigt die Verfügbarkeit gegenüber der Konsistenz. Im Falle einer Netzwerkaufteilung können beide Netzwerke weiterleben und potenziell widersprüchliche Transaktionen (z.B. doppelte Ausgaben) enthalten. Wenn sich das Netzwerk jedoch nach dem Split erholt, wird nur ein einziger Verlauf akzeptiert.

Albatross bevorzugt Konsistenz gegenüber Verfügbarkeit. Im Falle einer Netzwerkaufteilung kann entweder eine einzelne der Netzwerkpartitionen weiterarbeiten oder keine (je nach Größe der Partitionen). Es wird jedoch nie eine eventuell falsche Sicht auf den letzten Zustand geben. Wenn sich das Netzwerk nach dem Split erholt, arbeitet das Protokoll wieder normal.

Nächste Schritte

Nachdem bereits die technische Beschreibung von Albatross veröffentlicht und das Protokoll von Reto Trinkler im Rahmen von Katallassos beim EthCC’19 in Paris vorgestellt wurde, sind dies die nächsten Schritte:

Wir begannen mit dem Bau eines Simulators für das Albatross-Protokoll, um dessen Leistung in großen Netzwerken zu bewerten. Derzeit deckt dieser Simulator nur das Basisprotokoll ab, ohne Optimierungen und byzantinische Teilnehmer zu berücksichtigen. Wir planen, diesen Simulator zu erweitern und mehr Einblicke in den realen Betrieb von Albatross zu erhalten.

Inzwischen prüfen wir auch Optimierungspotenziale für Albatross. Diese Optimierungen beinhalten den Einsatz von “Handel”, einem schnellen Multi-Signatur-Aggregationsprotokoll. Unter anderem prüfen wir auch die Anwendbarkeit von Verifizierbaren Verzögerungsfunktionen, um die Kommunikation bei nicht antwortenden Blockherstellern zu reduzieren.

Schließlich, wenn diese notwendigen Voraussetzungen die gewünschten Ergebnisse zeigen, werden wir die Machbarkeit der Integration von Albatross in Nimiq weiter prüfen. Dieser Schritt würde auch Details wie Blockbelohnungen, HTLCs, Vesting Contracts und Staking-Pools beinhalten. Wir werden dann ein Testnetz mit Albatross bauen.

Albatros könnte eine immense Steigerung der Leistung von Nimiq bedeuten und gleichzeitig den Energieverbrauch drastisch senken. Eine erfolgreiche Implementierung würde zwar grundlegende Verbesserungen für den Kern von Nimiq bringen, aber alle seine Auswirkungen müssen bewertet und gründlich geprüft werden.

Das Team Nimiq würde es sich zur Priorität machen, einen reibungslosen Übergang zu einer potenziellen Nicht-PoW-Zukunft von Nimiq zu ermöglichen, von der unserer Meinung nach letztlich alle profitieren würden.

HAFTUNGSAUSSCHLUSS: Keine der Aussagen darf als Bestätigung oder Empfehlung für Nimiq, Kryptowährungen oder andere Anlageprodukte angesehen werden. Weder die Informationen noch die hierin enthaltenen Meinungen stellen eine Aufforderung oder ein Angebot der Gründer oder Teilnehmer dar, Wertpapiere oder andere Finanzinstrumente zu kaufen oder zu verkaufen oder Anlageberatung oder -dienstleistungen anzubieten.

--

--