Diese Tage habe ich die Konsens-Dokumente von Dusk durchgearbeitet und je mehr ich hinschaue, desto mehr sticht mir ein Detail ins Auge: Bei vielen PoS-Ketten übernehmen Verifizierungs-Validatoren sowohl das Blockproduzieren als auch das Block-Validieren. Vereinfacht gesagt: Eine Person hat zwei Rollen gleichzeitig – nämlich derjenige, der einen Vorschlag macht, und zugleich derjenige, der als Schiedsrichter darüber befindet. Diese Gestaltung birgt von sich aus eine Schwachstelle; für böswilliges Handeln ist der Weg besonders kurz.
//
Dusk trennt diese beiden Aufgaben konsequent voneinander.
Der Konsens heißt SBA (Segregated Byzantine Agreement). Im Kern werden „Blockproduktion“ und „Zeugen-/Witness-Blocks“ als Rollen bereits im Design sauber getrennt. Eine Gruppe von Knoten stellt speziell Kandidatenblöcke zur Abstimmung/als Vorschlag bereit, während eine andere Gruppe Knoten speziell verifiziert, abstimmt und entscheidet, welcher Block auf die Kette kommt.
Die beiden Gruppen haben unterschiedliche Rechte und Pflichten, unterschiedliche Identitäten: Die eine kümmert sich ums Vorschlagen, die andere ums Prüfen. So kann niemand gleichzeitig Spieler und Schiedsrichter in einer Person sein.
//
Auch ein technisches Detail ist dabei ziemlich interessant.
In der Validierungsphase müssen viele Knoten jeweils separat signieren und abstimmen. Wenn jede einzelne Signatur getrennt gesendet und separat verifiziert wird, explodiert der Netzwerkaufwand mit der Anzahl der Knoten. Die Idee von BLS-Aggregationssignaturen ist, dass man aus tausenden unabhängigen Signaturen ein kompaktes Aggregat-Ergebnis macht. Andere Knoten müssen dann nur dieses eine aggregierte Signaturergebnis prüfen – und damit sind die Abstimmungen aller Beteiligten bereits verifiziert. Dadurch sinken die Verifizierungskosten drastisch und die Konsenseffizienz steigt automatisch.
//
Der wirklich wertvolle Teil, wenn man die beiden Schritte trennt, liegt darin, die Einstiegshürde für eine Verschwörung deutlich zu erhöhen.
Wenn Blockproduktion und Blockvalidierung von derselben „Clique“ übernommen werden, reicht es für schädliches Verhalten, nur eine Rolle zu kontrollieren. Nach der Aufteilung müsste man hingegen, um das Ergebnis zu manipulieren, gleichzeitig sowohl den Produktions- als auch den Witness-/Zeugen-Teil umdrehen – und zwar zwei Gruppen, die völlig unabhängig voneinander sind. Wie man sie auswählt, wie die Identitäten definiert werden und wie Anreize gesetzt werden, ist alles getrennt designt. Dadurch werden die Kosten einer Verschwörung und das Risiko, dabei aufzufliegen, direkt nach oben geschoben.
Die Logik der Trennung von Verantwortlichkeiten und Rechten ist in der traditionellen Governance nichts Neues, aber Dusk „verbackt“ sie im Konsens-Layer als grundlegendes Mechanismusdesign – nicht nur als Behauptung. Das dürfte genau das sein, was SBA lösen möchte.
@Dusk_Foundation $DUSK #dusk
Was ist das Kern-Design des SBA-Konsenses?
//
Dusk trennt diese beiden Aufgaben konsequent voneinander.
Der Konsens heißt SBA (Segregated Byzantine Agreement). Im Kern werden „Blockproduktion“ und „Zeugen-/Witness-Blocks“ als Rollen bereits im Design sauber getrennt. Eine Gruppe von Knoten stellt speziell Kandidatenblöcke zur Abstimmung/als Vorschlag bereit, während eine andere Gruppe Knoten speziell verifiziert, abstimmt und entscheidet, welcher Block auf die Kette kommt.
Die beiden Gruppen haben unterschiedliche Rechte und Pflichten, unterschiedliche Identitäten: Die eine kümmert sich ums Vorschlagen, die andere ums Prüfen. So kann niemand gleichzeitig Spieler und Schiedsrichter in einer Person sein.
//
Auch ein technisches Detail ist dabei ziemlich interessant.
In der Validierungsphase müssen viele Knoten jeweils separat signieren und abstimmen. Wenn jede einzelne Signatur getrennt gesendet und separat verifiziert wird, explodiert der Netzwerkaufwand mit der Anzahl der Knoten. Die Idee von BLS-Aggregationssignaturen ist, dass man aus tausenden unabhängigen Signaturen ein kompaktes Aggregat-Ergebnis macht. Andere Knoten müssen dann nur dieses eine aggregierte Signaturergebnis prüfen – und damit sind die Abstimmungen aller Beteiligten bereits verifiziert. Dadurch sinken die Verifizierungskosten drastisch und die Konsenseffizienz steigt automatisch.
//
Der wirklich wertvolle Teil, wenn man die beiden Schritte trennt, liegt darin, die Einstiegshürde für eine Verschwörung deutlich zu erhöhen.
Wenn Blockproduktion und Blockvalidierung von derselben „Clique“ übernommen werden, reicht es für schädliches Verhalten, nur eine Rolle zu kontrollieren. Nach der Aufteilung müsste man hingegen, um das Ergebnis zu manipulieren, gleichzeitig sowohl den Produktions- als auch den Witness-/Zeugen-Teil umdrehen – und zwar zwei Gruppen, die völlig unabhängig voneinander sind. Wie man sie auswählt, wie die Identitäten definiert werden und wie Anreize gesetzt werden, ist alles getrennt designt. Dadurch werden die Kosten einer Verschwörung und das Risiko, dabei aufzufliegen, direkt nach oben geschoben.
Die Logik der Trennung von Verantwortlichkeiten und Rechten ist in der traditionellen Governance nichts Neues, aber Dusk „verbackt“ sie im Konsens-Layer als grundlegendes Mechanismusdesign – nicht nur als Behauptung. Das dürfte genau das sein, was SBA lösen möchte.
@Dusk_Foundation $DUSK #dusk
Was ist das Kern-Design des SBA-Konsenses?
A. 把出块和验块拆成两拨独立节点
B. 用算力竞争决定谁出块
C. 所有节点轮流当唯一的验证者
6 Tage(n) übrig
