Die meisten Proof-of-Stake-Ketten tun nach einem vorgeschlagenen Block im Grunde nur Folgendes: Ein Komitee stimmt ab, und wenn genug Stimmen eingehen, wird der Block gezählt.
@Dusk macht das zweimal, und die zweite Runde ist die, die niemand erklärt.
Succinct Attestation führt in jeder Runde drei Schritte aus. Ein Provisioner schlägt einen Kandidatenblock vor. Ein zufällig ausgewähltes Komitee validiert ihn. Dann ratifiziert ein zweites Komitee — und was es bestätigt, ist nicht der Block. Es bestätigt das Ergebnis der Validierung.
Diese Unterscheidung habe ich erst eine Weile richtig verstanden.
Validierung beantwortet „Ist dieser Block gültig?“. Ratifizierung beantwortet „Hat das Netzwerk tatsächlich zugestimmt, dass er validiert wurde?“. Das sind unterschiedliche Fragen, und die zweite ist der Punkt, der deterministische Finalität ermöglicht. Ohne sie habt ihr nur die Meinung eines Komitees, die über ein Netzwerk verbreitet wird und bei verschiedenen Knoten zu unterschiedlichen Zeiten ankommt. Mit ihr habt ihr einen beglaubigten Vermerk darüber, dass die Einigung selbst stattgefunden hat.
Das ist der Unterschied zwischen „Dieser Block ist sehr wahrscheinlich final“ und „Dieser Block ist final.“ Für eine Kette, die auf Wertpapierabwicklung abzielt, ist diese Lücke keine Philosophie. Es ist der Unterschied zwischen einer Abwicklungsgarantie und einer Abwicklungsschätzung.
Auch die Kosten sind real. Zwei Komitees bedeuten zwei Runden mit Signaturen, zwei Chancen, dass die Teilnahme knapp ausbleibt, sowie Aufteilung der Belohnungen, die das widerspiegelt — Validierung und Ratifizierung nehmen jeweils einen Anteil der Blockbelohnung, getrennt vom Blockgenerator.
Ob sich diese zusätzliche Runde im Hinblick auf die Latenz und den Koordinationsaufwand wirklich lohnt, ist genau die Art von Sache, die ein Audit nicht für euch beurteilen kann. OAK Securitys Review bezeichnete das Protokoll als gut durchdacht. „Gut durchdacht“ und „gut geeignet für echten Betrieb unter Last“ sind unterschiedliche Behauptungen.
Echte Frage an die Node-Operatoren hier: Hat jemand gemessen, wie oft Ratifizierung der Schritt ist, der blockiert, statt Validierung?

#dusk $DUSK #block