Archiv On Tangle Voting (Multiverse)

Mit dem Coordicide wird der On Tangle Voting Consensus (aka Multiverse) eingeführt, damit werden die Meinungen der Nodes nicht mehr von dem Fast Probabilistic Consensus (FPC) abgefragt. 

FPC wird aber nicht vollständig verschwinden, zusammen mit dem On Tangle Voting entsteht ein Mechanismus den die IF intern OTVFPCS nennt (On Tangle Voting mit Fast Probabilistic Consensus on a Set). FPCS wird als ein Mechanismus zum Brechen der Metastabilität verwendet, welcher zusätzlich zu OTV angewendet werden kann. Generell ist in IOTA2.0 das Erreichen einer hohen Zustimmungsgewichtung das Finalitätskriterium, wenn die Zustimmungsgewichtung hoch genug ist, wird die Message/Transaktion finalisiert. Mit OTVFPC wird die initiale Meinung mit OTV erstellt, wenn nach einiger Zeit die Meinungen der Nodes immer noch gespalten sind, aus welchem Grund auch immer, wird FPC aktiviert, um diesen metastabilen Zustand zu brechen. Die Endgültigkeit von Wert-Transaktionen sollte so schneller erreicht werden.

Hans Moog: A new “consensus” – The Tangle Multiverse [Part 1]  [Part 2]  [Part 3]  [Part 4]  [Part 5]

Die grundlegenden Ideen hinter dem Multiverse Konsens (OTV)

Blockchain verfolgt einen einzigen Ledger-State einer einzigen langen Chain. Blöcke sind nur dann gültig, wenn sie keine doppelten Ausgaben (double-spends) enthalten und die Blockproduzenten als Gatekeeper fungieren, die kontrollieren, welche Messages dem Ledger-State hinzugefügt werden. Nodes verfolgen das “Ergebnis des Konsens”.

In einer DAG-basierten DLT, wie sie von IOTA verwendet wird, gibt es keine Blockproduzenten und jeder kann zu jeder Zeit irgendetwas zur zugrunde liegenden Datenstruktur hinzufügen, ohne einen anderen um Erlaubnis zu fragen – sogar doppelte Ausgaben. Jede doppelte Ausgabe führt eine andere Version des Ledger-State ein, die mit anderen Versionen, die durch andere Transaktionen eingeführt wurden, kompatibel sein kann oder auch nicht. IOTA hat eine Datenstruktur entwickelt – den parallelen realitätsbasierten Ledger-State – der es erlaubt, all diese verschiedenen Versionen (Realitäten) gleichzeitig effizient zu verfolgen. Er verfolgt den Ledger-State “vor dem Konsens”.

Da es in der zugrundeliegenden Datenstruktur zu doppelten Ausgaben kommen kann, verwendet IOTA ähnlich wie andere DAG-basierte DLTs einen Abstimmungsmechanismus (FPC), bei dem die Nodes ihre Meinungen austauschen, um zu einer Einigung zu kommen, welche Messages vom Tangle “akzeptiert” werden sollen.

Aufgrund des einzigartigen Ledger-State muss IOTA im Gegensatz zu anderen DAG-basierten DLTs nicht über nicht-konfliktierende Messages abstimmen, sondern nur über die konfliktierenden, was den Message-Overhead deutlich reduziert.

Der Multiverse-Konsens (OTV) geht nun einen Schritt weiter und nutzt die zugrunde liegende Datenstruktur selbst als Abstimmungsmechanismus. Jede Message, die von einer Node ausgegeben wird, enthält bereits die Meinung dieser Nodes, da sie bestimmte Gelder ausgibt, die zu einer bestimmten Realität gehören (s.a. parallel reality ledger state), und die Node genehmigt auch 2 oder mehr andere Messages im Tangle, die ebenfalls zu einer bestimmten Realität gehören. Die Meinung der ausstellenden Nodes ist also bereits bekannt, ohne sie fragen zu müssen. Theoretisch ermöglicht dies der IF, den zusätzlichen Abstimmungsmechanismus (FPC) loszuwerden, der den Message-Overhead für die Abstimmung auf 0 setzen würde.

Dies ist gleichbedeutend mit der “ursprünglichen Vision” von IOTA, bei der das einzige, was die Nodes tun müssen, die Ausgabe von Messages ist und der Konsens automatisch erreicht wird.

Um das Tangle abzusichern, können Nodes mit viel Gewicht (Mana) im Konsensprozess hin und wieder eine einzelne Transaktion senden, die per Gossip repliziert wird, anstatt auf Anfragen einer potenziell unbegrenzten Anzahl anderer Nodes antworten zu müssen. Dies ist nicht nur viel effizienter, sondern auch viel sicherer, da jeder Node die gleiche Sicht der Dinge hat und die Nodes niemals zu einem anderen Schluss kommen können.


Kommentar von Angelo Capossele [IF] — 18:28 am 20.07.201 im Discord #goshimmer-discussion

Der Konsens-Algorithmus wird sich nicht drastisch ändern. Wir verwenden derzeit das Zustimmungsgewicht, um Messages und Transaktionen zu bestätigen, und wir werden auch in zukünftigen Iterationen das gleiche verwenden. Es gibt das Missverständnis, dass die Teilkomponenten, die wir im Moment verwenden, nämlich FCoB und FPC, nicht funktionieren, nur weil wir Alternativen erforschen (On Tangle Voting bzw. FPC on a Set). In Wirklichkeit funktioniert der Konsens auch jetzt schon sehr gut (natürlich mit allen Einschränkungen, die durch fehlende Komponenten wie Reorg entstehen). Was wir wirklich tun, ist nur die Verbesserung dessen, was wir erforscht und gebaut haben, um die Leistung zu erhöhen, den Kommunikations-Overhead zu minimieren sowie die Implementierung zu vereinfachen. Und dies sollte als ein kollektives Ergebnis der Zusammenarbeit zwischen IF und der Community gesehen werden.

Die Frage ist also nicht, ob dieses oder jenes nicht funktioniert, sondern wie man dieses oder jenes effizienter und sauberer machen kann. Das ist ein wichtiger Schritt in der Entwicklung, da er den Beginn einer anderen Phase markiert, die sich auf die Verbesserung der Gesamtqualität konzentriert.


Quellen

https://husqy.medium.com/
https://iota.cafe/t/on-tangle-voting-with-fpcs/1218