Stellar Consensus Protocol

Das Stellar Consensus Protocol (SCP) ist der zugrunde liegende Konsensalgorithmus des Stellar Network, der als nachweislich sichere Konstruktion des Federated Byzantine Agreement (FBA) fungiert. Das Netzwerk von Stellar implementiert viele ähnliche Mechanismen für die verteilte Fehlertoleranz in einem Finanznetzwerk wie andere Kryptowährungen mit einigen deutlichen Abweichungen.

Stellar Consensus Protocol

Das SCP leitet sich aus dem Konzept der Byzantinischen Abkommen (BA) ab und ist auf ein dezentrales und erlaubnisloses Netzwerk zugeschnitten, das Quorums und Quorum Slices verwendet. Das Verständnis des SCP erfordert eine kurze Geschichte der BAs und deren Vergleich mit FBAs, gefolgt von einer Beschreibung der Quorums und Quorum Slices, des Verbundabstimmungsmodells und schließlich des Commit / Abort-Abstimmungssystems des SCP-Protokolls.

Byzantinische Abkommen und föderierte byzantinische Abkommen

Byzantinische Vereinbarung ist Byzantinische Fehlertoleranz von verteilten Computersystemen, die es ihnen ermöglichen, trotz willkürlichen Verhaltens von einem Bruchteil der Knoten im Netzwerk zu einem Konsens zu gelangen. Der BA-Konsens macht keine Annahmen über das Verhalten von Knoten im System. Praktische byzantinische Fehlertoleranz (pBFT) ist das prototypische Modell für eine byzantinische Vereinbarung. Sie kann schnell und effizient einen Konsens erzielen und gleichzeitig den Konsens von den Ressourcen entkoppeln (d. H. Finanzielle Beteiligung an PoS oder Elektrizität an PoW)..

Praktische byzantinische Fehlertoleranz

Lesen Sie: Was ist praktische byzantinische Fehlertoleranz??

BA (pBFT) lässt sich jedoch nicht gut skalieren und erfordert einen großen Kommunikationsaufwand zwischen allen beteiligten Knoten. Darüber hinaus benötigt das System eine einstimmige Einigung über die Mitgliedschaft im Netzwerk, um Abhilfe zu schaffen Sybil greift an.

Das föderierte byzantinische Abkommen wurde von der SCP-Whitepaper und spricht ausdrücklich die Einschränkungen von BA an, indem ein Konsensprotokoll gefördert wird, das Folgendes garantiert:

  • Dezentrale Steuerung
  • Flexibles Vertrauen
  • Geringe Wartezeit
  • Asymptotische Sicherheit

Eine der Hauptfolgen von FBA im Vergleich zu BA besteht darin, dass ein FBA-System für Knoten offen ist, die sich einer Umgebung ohne Berechtigung anschließen, anstatt über eine geschlossene (Berechtigungs-) Mitgliederliste.

Die FBA einigt sich auf Statusaktualisierungen unter Verwendung eines eindeutigen Slot Dabei werden Aktualisierungsabhängigkeiten zwischen Knoten abgeleitet. Die Knoten müssen sich in jeder Konsensrunde auf die Aktualisierung des Slots einigen. Da das System jedoch für Knoten offen ist, die nach Belieben dem Netzwerk beitreten und es verlassen, funktioniert ein mehrheitlicher Quorum-Konsensmechanismus nicht. Stattdessen wird die FBA im SCP verwendet Quorumscheiben Das sind Teilmengen von Quoren, die in der Lage sind, bestimmte Knoten einer Vereinbarung zu überzeugen.

Nach dem Stellar Blog::

“Der Hauptunterschied zwischen einem byzantinischen Vertragssystem und einem föderierten byzantinischen Vertragssystem (FBAS) besteht darin, dass in der FBA jeder Knoten seine eigenen Quorum-Slices auswählt.”

Quorums und Quorum Slices werden nachstehend ausführlicher erläutert. Der wichtigste Aspekt hierbei ist jedoch, dass einzelne Knoten unabhängig voneinander entscheiden können, welchen anderen Knoten (Teilnehmern) sie für Informationen vertrauen. Daher ist SCP das erste BA-Protokoll, das jedem Teilnehmer maximale Freiheit bei der Auswahl der Vertrauenspersonen bietet.

Quorums und Quorum Slices

EIN Quorum ist definiert als eine Reihe von Knoten, die benötigt werden, um eine Einigung in einem verteilten System zu erzielen. Wenn Knoten versuchen, eine Einigung zu erzielen, kommunizieren sie miteinander (unter der Annahme, dass keine Nachrichten gefälscht werden – hier kommt die Kryptografie herein) und stimmen darin überein, dass eine Aktualisierung des Status gültig ist, sobald ein bestimmter Schwellenwert für übereinstimmende Knoten erreicht ist.

Quorumscheiben sind die Teilmengen eines Quorums, die in der Lage sind, bestimmte Knoten einer Vereinbarung zu überzeugen, was bedeutet, dass sich ein Knoten auf mehrere Gruppen von Knoten verlassen kann, die Anweisungen bestätigen. Ein Knoten kann auf zahlreiche Informationsscheiben angewiesen sein, und diese Vertrauenswürdigkeit kann auf Informationen von außerhalb des Systems basieren. Insbesondere wird Vertrauen aufgebaut innerhalb die des Knotens config Datei, die die dynamische Bildung von Quorum Slices und die anschließende Dezentralisierung ermöglicht.

Als Beispiel:

Knoten A kann feststellen, dass er Banken nicht vertraut, was dazu führt, dass ein weiteres Quorum Slice erforderlich ist, dem Knoten A vertraut, um eine Einigung mit Banken zu erzielen. Sobald eine Einigung erzielt wurde, wird ein Quorum gebildet. Die folgende Grafik eignet sich hervorragend zum besseren Verständnis dieses Beispiels. Knoten 7 (und 8) würden Knoten A darstellen, der Banken nicht vertraut.

Bildnachweis – David Mazieres Präsentation bei Google

Herkömmliche BA erfordert, dass alle Knoten dieselben Slices akzeptieren, anstatt selbst Quellen vertrauenswürdiger Informationen zu erkennen. Daher gibt es keine Möglichkeit, Slices und Quorums zu unterscheiden, für die ein geschlossener und autorisierter Zugriff der Mitglieder auf das Netzwerk erforderlich ist.

Das FBA-Modell stützt sich darauf, dass einzelne Knoten ihre eigenen Sätze von Quorum-Slices auswählen, was effektiv die organische und dezentralere Bildung von Quorums ermöglicht, die auf individuellen Entscheidungen beruhen, daher der Name „föderiert“. In der Diskussion Sicherheit und Lebendigkeit Im FBA-Protokoll müssen wir auswerten Quorum-Schnittpunkt und disjunkte Kollegien.

Laut dem SCP-Whitepaper:

“Ein Protokoll kann nur dann eine Übereinstimmung garantieren, wenn die durch die Funktion Q dargestellten Quorum-Slices eine Gültigkeitseigenschaft erfüllen, die wir Quorum-Schnittpunkt nennen.”

Quoren überschneiden sich, wenn sie sich einen Knoten teilen. Gute Quorums teilen sich Knoten und führen zu überlappenden Quorums. Knoten sind dafür verantwortlich, dass ihre Auswahl von Quorum-Slices nicht gegen den Quorum-Schnittpunkt verstößt, und erfordern normalerweise, dass Knoten Slices auswählen, die konservativ sind und zu großen Quorums führen.

Wenn sich Quoren nicht überschneiden, werden sie als bezeichnet disjunkte Kollegien. Disjunkte Quorums sind schlechte Quorums, die zu widersprüchlichen Aussagen führen können, die den Konsens untergraben. Um einen ordnungsgemäßen Slice-Auswahlprozess sicherzustellen, müssen die Knoten ausgeglichen werden Sicherheit und Lebendigkeit.

Knoten sind nicht sicher, wenn sie Werte auslagern, die anderen Knoten widersprechen. Knoten sind nicht lebendig, wenn sie auf dem Weg zur Einigung blockiert werden. Das Federated Voting-Modell spielt eine entscheidende Rolle bei den Knoten, die sich auf eine Aussage einigen.

Föderierte Abstimmung

Federated Voting ist die Methode, mit der sich der SCP auf Aussagen der Teilnehmer einigt. Insgesamt gibt es zwei Sätze von Nachrichten, die zwischen Knoten ausgetauscht werden, und die zwei Nachrichtenrunden können in Übereinstimmungszustände von unterteilt werden Unbekannt, akzeptiert, und Bestätigt. Insbesondere muss die Abstimmung in einer föderierten Umgebung eine offene Mitgliedschaft ermöglichen, was den Prozess komplizierter macht als ein geschlossenes System.

Der föderierte Abstimmungsprozess besteht aus 4 Phasen:

  1. Erstabstimmung
  2. Annahme
  3. Ratifizierung
  4. Bestätigung

Erstabstimmung Hier stimmen Knoten für eine bestimmte Aussage ab, von der sie behaupten, dass sie gültig ist und dass sie nicht für widersprüchliche Aussagen stimmen. Dies lässt jedoch weiterhin die Möglichkeit offen, dass der Knoten seine Stimme ändert, wenn genügend der anderen teilnehmenden Knoten – denen ein Knoten vertraut – für eine andere gültige Nachricht stimmen. Abstimmungen in dieser Phase sind technisch vorläufige Abstimmungen.

Annahme ist die Phase, in der ein Knoten eine Anweisung akzeptiert, basierend darauf, ob dieser bestimmte Knoten eine widersprüchliche Anweisung akzeptiert hat oder nicht V-Blocking Eine Gruppe von Knoten, die sich in Quorum-Slices mit diesem Knoten befinden (Quorum-Schnittpunkt), akzeptieren eine Anweisung. Wenn der Knoten keine widersprüchliche Anweisung oder eine v-blockierende Gruppe von Knoten akzeptiert hat, die für die Annahme einer Anweisung stimmen, wird die Anweisung vom Knoten akzeptiert.

Ratifizierung Hier stimmen alle Mitglieder eines Quorums ab, um eine Erklärung anzunehmen. Wenn dies der Fall ist, wird die Anweisung von den Knoten bestätigt. Zurück zum Knoten A, der Banken nicht vertraut. Wenn die Knoten, mit denen Knoten A ein Quorum Slice teilt, zusätzlich zu anderen Knoten, denen er vertraut, abstimmen, um eine Erklärung zu akzeptieren, wird er von Knoten A ratifiziert.

Bestätigung ist eine systemweite Vereinbarung über eine Erklärung. Das System stimmt einer bestimmten Anweisung zu, sobald ein ausreichender Schwellenwert für Nachrichten im Netzwerk verarbeitet wurde. Knoten verbreiten Akzeptanznachrichten von Knoten innerhalb ihres Quorums über das Netzwerk. Diese Nachrichten können andere Knoten dazu veranlassen, die Nachricht zu akzeptieren, selbst wenn sie eine andere ursprüngliche Nachricht akzeptiert haben. Schließlich wird eine Runde von Bestätigungsnachrichten gesendet, um die Nachricht zu bestätigen, und die Abstimmungsrunde wird abgeschlossen.

Der Abstimmungsmechanismus ist kompliziert, aber Stellar bietet einige hervorragende Ressourcen, um ihn effektiver abzubilden. Sie bieten eine “Galaktischer KonsensGrafik für einen breiteren Überblick sowie einen nützlichen Blog-Beitrag mit dem Beispiel zur Mittagszeit. Für einen technischen Tieftauchgang können Sie den Abschnitt Federated Voting der lesen SCP-Papier.

Das Stellar Consensus Protocol

Das SCP ist die Implementierung des Protokolls der Föderierten Byzantinischen Vereinbarung, mit dem die Fälle blockierter Vereinbarungen minimiert und durch ein Abstimmungssystem neutralisiert werden sollen. Das SCP-Protokoll besteht aus zwei primären Unterprotokollen, dem Nominierungsprotokoll und dem Abstimmungsprotokoll.

Für jeden Konsensschlitz erzeugt das Nominierungsprotokoll Kandidatenwerte. Schließlich kann jeder Knoten deterministisch einen Konvergenzwert für jeden Schlitz erzeugen. Sie können jedoch nicht kennt Wenn die Konvergenz auftritt und böswillige Knoten möglicherweise den Nominierungsprozess zurücksetzen können.

Das Abstimmungsprotokoll wird ausgeführt, sobald die Knoten zustimmen, dass das Nominierungsprotokoll konvergiert hat. Im Abstimmungsprotokoll ist ein Stimmzettel an den Kandidatenwert gebunden, und ein Knoten muss verpflichten oder abbrechen der Wert, der an diesen Stimmzettel gebunden ist. Um das Blockieren von Vereinbarungen zu vermeiden, können Knoten bestimmte Stimmen abbrechen und zu einer anderen wechseln. Umgekehrt können Knoten abstimmen, um einen Stimmzettel festzuschreiben, wodurch der mit diesem Stimmzettel verbundene Wert an den Konsensschlitz ausgelagert wird.

Auf hoher Ebene ähnelt die Art und Weise, wie der SCP jeden Slot unabhängig behandelt, dem Konsens mit einem Slot in Paxos, nur mit vielen getrennten Instanzen.

Es gibt keine blockierten Zustände im SCP mit Quorum-Schnittpunkt. Befouled-Knoten – Knoten, die stark von schlechten Knoten abhängen – können sogar durch einen entbehrlichen Mengenmechanismus umgangen werden, bei dem gute Knoten Aussagen ohne die Zusammenarbeit von befouled-Knoten ratifizieren können. Befouled Knoten können auch den Konsens nicht untergraben.

Sowohl das Nominierungsprotokoll als auch das Abstimmungsprotokoll enthalten einige hochkomplexe Details für bestimmte Szenarien wie geteilte Stimmen. Diese Details finden Sie auch im SCP-Papier.

Eine der Einschränkungen des SCP besteht darin, dass es nur dann Sicherheit gewährleisten kann, wenn Knoten geeignete Quorum-Slices auswählen. Darüber hinaus sind Sicherheitsprobleme in Verbundsystemen wie weithin vertrauenswürdigen Knoten möglich, die ihre Positionen für unethische Vorteile nutzen. Wenn sich Banken beispielsweise auf eine Vielzahl von Knoten verlassen, haben sie möglicherweise einen Informationsvorteil, der anderen Knoten im Netzwerk nicht zur Verfügung steht.

Fazit

Insgesamt ist das SCP das erste nachweislich sichere Konsensprotokoll, das dezentrale Kontrolle, geringe Latenz, flexibles Vertrauen und asymptotische Sicherheit bietet. Verschiedene Formen des Konsenses sind mit ihren Kompromissen verbunden, aber das SCP behält ein hohes Maß an Effektivität bei, um schnell zu einem Konsens in einem verteilten, erlaubnislosen Netzwerk zu gelangen, ohne die Sicherheit zu beeinträchtigen.