Cellular Consensus

Modul 4.1.1

Im Cellular Consensus wird der Abstimmungsprozess als zellularer Automat modelliert, bei dem Nodes als Zellen betrachtet werden können, die die Zustände ihrer Nachbarn überwachen und ihre Meinung entsprechend anpassen. 

Der eigentliche Konsensalgorithmus ist äußerst einfach und kann in 5 Codezeilen zusammengefasst werden:

If NumberOfNeighborsPreferringTransaction(tx) > NumberOfNeighbors / 2 {
    PreferTransaction(tx)
} else {
    DislikeTransaction(tx)
}

Dies beschreibt einen Mechanismus, bei dem Nodes die Mehrheitsmeinung ihrer Nachbarn übernehmen und eine auf dieser Mehrheit basierende Transaktion mögen oder ablehnen.

Es ist extrem schnell und stabil. Die folgende Animation zeigt eine Simulation von 10.000 Nodes, die bei 128 in Konflikt stehenden Transaktionen einen Konsens erzielen (verschiedene Farben stehen für verschiedene Transaktionen):

In diesem Beispiel erreicht das Netzwerk innerhalb von Sekunden einen Konsens.


Die Erhöhung der Anzahl der Nodes wirkt sich auf die Zeit aus, die für die Verbreitung von Transaktionen im Netzwerk benötigt wird, nicht aber auf die Zeit, um einen Konsens zu erzielen. Entscheidungen werden lokal und parallel getroffen, unabhängig davon, wie viele Nodes am Netzwerk teilnehmen.

Die Tatsache, dass Abstimmungen immer mit den gleichen Nachbarn ausgetauscht werden, kann einen Angriffsweg darstellen. Wir bieten Sicherheit, indem wir die manabasierte Reputation in den Peering-Prozess integrieren: Nodes bevorzugen Nachbarn mit einer ähnlichen Reputation. Dies macht es für Angreifer teuer, überhaupt als Nachbarn betrachtet zu werden und schafft einen weiteren Anreiz für Nodes, einen hohen Ruf zu erlangen. Das Netzwerk wird immer sicherer, da die Menge an Mana, die von ehrlichen Nodes besessen wird, mit der Zeit natürlich wächst.


Gerüchte über Meinungen: Das Immunsystem des Organismus

Die Behandlung von Nodes als Zellen eines lebenden Organismus ermöglicht es uns, ein “Immunsystem” aufzubauen. Dies sichert das Netzwerk vor Angriffen, indem es die Teilnehmer zwingt, nach den Regeln zu spielen, und bietet einen besseren Schutz als traditionelle Maßnahmen wie den Schutz von Sybil. Da alle Nachbarn zufällig ausgewählt werden, ist der Prozess, mit dem Shimmer einen Konsens erreicht, sehr wahrscheinlich. Aber auf Nodeebene ist der Zelluläre Konsens deterministisch. Dies ermöglicht es uns, das Verhalten eines Knotens zu überprüfen, wenn wir die Meinung seiner Nachbarn kennen. Böse Akteure, die gegen die Regeln verstoßen, können daher von jedem ihrer Nachbarn erkannt (wie unten gezeigt) und sofort verwiesen werden.


Diese Idee kann in dem folgenden Gossip-Protokoll, das wir “Klatsch über die Meinung” nennen, formalisiert werden:

  • In regelmäßigen Abständen sendet jeder Node eine “Heartbeat”-Meldung an seine Nachbarn. Darin enthalten sind seine aktuelle Meinung und der Grund, warum er zu dieser Meinung gekommen ist, d.h. die Meinung seiner Nachbarn in der vorangegangenen Runde.
  • Um die Menge der ausgetauschten Daten zu komprimieren, wird nur die Differenz zwischen den aufeinanderfolgenden Herzschlägen gesendet, d.h. nur die Transaktionshashes, deren “gemochter” Status sich geändert hat.
  • Ein Node signiert seine Heartbeat-Nachrichten und Meinungen, um die Authentizität zu gewährleisten.



Dieser Herzschlag dient mehreren Zwecken:

  • Sie zwingt die Nodes, regelmäßig Aussagen zu machen und aktive Mitglieder des Netzwerks zu bleiben.
  • Es wird verwendet, um Meinungen zwischen Nachbarn zu synchronisieren, so dass Nodes ihre eigene Meinung nach den zuvor beschriebenen Regeln aktualisieren können, ohne proaktiv andere Nodes abfragen zu müssen.
  • Es erlaubt Nodes, zu überprüfen, ob ihre Nachbarn ehrlich sind – diejenigen, die das Protokoll verletzen, indem sie ihre Meinung ändern, können sofort aus dem Netzwerk geworfen werden. Da die Nachrichten signiert sind, kann das Fehlverhalten nachgewiesen werden, indem bösartige Nachrichten auf die Nodes zurückgeführt werden, die sie ausgegeben haben.


Dieser Ansatz weist eine Reihe von überzeugenden Merkmalen auf, die in keinem anderen genehmigungsfreien Konsensmechanismus zu finden sind: seine asynchrone Natur, die Einfachheit seiner Implementierung, die Effizienz seines Nachrichten-Overheads, die Geschwindigkeit, mit der er einen Konsens erreicht, und seine Angriffsresistenz.

Während entstehende Phänomene in biologischen Systemen sehr verbreitet sind und sich in der Praxis bewährt haben, ist es aufgrund ihrer chaotischen und komplexen Natur äußerst schwierig, sie mathematisch zu modellieren. Der größte Nachteil des Ansatzes ist daher die Komplexität der Formalisierung seiner wissenschaftlichen Beweise. Es wäre notwendig, den Zellulären Konsens in einer Testnetzumgebung gründlich zu studieren, bevor er im Mainnetz eingesetzt werden kann.

Quellen

https://coordicide.iota.org/module4.1.1