„„Warte auf 12 Bestätigungen“ ist die Standardempfehlung in den meisten Chains, und ehrlich gesagt erklärt nie jemand, warum gerade 12, oder was in diesen Blöcken eigentlich passiert. Dusk verwendet diesen Shortcut überhaupt nicht – es läuft stattdessen eine echte Zustandsmaschine, um zu entscheiden, wann ein Block sicher ist.
Ein Block durchläuft vier Zustände: akzeptiert, beglaubigt (attested), bestätigt (confirmed), final. Ausgangspunkt ist dabei eine einzige Zahl – wie viele vorherige Iterationen in dieser Runde gescheitert sind, bevor bei dieser Block-Iteration der Erfolg eintrat. In der Arbeit nennt man das n. Wenn n = 0 ist, also der Block bei der allerersten Iteration landet, ohne dass es vorher Fehlversuche gab, wird er sofort als beglaubigt markiert. Wenn n größer als 0 ist, bedeutet das, dass frühere Iterationen in dieser Runde zuerst fehlschlugen; dann wird der Block nur als akzeptiert markiert, was ein schwächerer Zustand ist.
Der Unterschied ist wichtig, weil ein akzeptierter Block noch durch einen konkurrierenden Block aus einer niedrigeren Iteration ersetzt werden kann – er ist noch nicht sicher. Ein beglaubigter Block kann auf diese Weise nicht ersetzt werden, da es keine niedrigere Iteration mehr gibt, die ihn überbieten könnte. Ab dort heißt bestätigt einfach: Ein Block hat genug der richtigen Nachfolgerblöcke auf sich gestapelt, und final bedeutet: Seine gesamte Kette von Ahnen ist ebenfalls final, wodurch sie dauerhaft festgeschrieben wird.
Der Teil, den ich hier wirklich unterbewertet finde, ist das Beispiel direkt in der Arbeit: Ein Block in Iteration 5 – wobei nur zwei der vorherigen Iterationen fehlerhafte Beglaubigungen (fail attestations) aufweisen – wird als akzeptiert markiert und benötigt dann vier weitere beglaubigte oder bestätigte Blöcke, die oben drauf gestapelt werden müssen, bevor er als bestätigt gilt. Das ist keine willkürliche Bestätigungszahl, die irgendwoher geholt wurde, sondern eine Zahl, die sich direkt aus der Unübersichtlichkeit dieser speziellen Runde ergibt. Eine „saubere“ Runde finalisiert schneller. Eine chaotische dauert länger. Das ist ein ganz anderes Modell als „einfach 12 Blöcke abwarten, egal was passiert ist“.
Wenn ich ehrlich bin, fühlt sich das wie eine Art Designdetail an, das für Institutionen, die die Settlement-Finalität bewerten, viel mehr zählt als für Retail-Trader – niemand, der Tokens tauscht, kümmert sich um Iterationszahlen, aber eine Bank, die ein Wertpapier-Settlement durchführt, würde es ganz sicher.
@Dusk
$DUSK
#dusk
Ein Block durchläuft vier Zustände: akzeptiert, beglaubigt (attested), bestätigt (confirmed), final. Ausgangspunkt ist dabei eine einzige Zahl – wie viele vorherige Iterationen in dieser Runde gescheitert sind, bevor bei dieser Block-Iteration der Erfolg eintrat. In der Arbeit nennt man das n. Wenn n = 0 ist, also der Block bei der allerersten Iteration landet, ohne dass es vorher Fehlversuche gab, wird er sofort als beglaubigt markiert. Wenn n größer als 0 ist, bedeutet das, dass frühere Iterationen in dieser Runde zuerst fehlschlugen; dann wird der Block nur als akzeptiert markiert, was ein schwächerer Zustand ist.
Der Unterschied ist wichtig, weil ein akzeptierter Block noch durch einen konkurrierenden Block aus einer niedrigeren Iteration ersetzt werden kann – er ist noch nicht sicher. Ein beglaubigter Block kann auf diese Weise nicht ersetzt werden, da es keine niedrigere Iteration mehr gibt, die ihn überbieten könnte. Ab dort heißt bestätigt einfach: Ein Block hat genug der richtigen Nachfolgerblöcke auf sich gestapelt, und final bedeutet: Seine gesamte Kette von Ahnen ist ebenfalls final, wodurch sie dauerhaft festgeschrieben wird.
Der Teil, den ich hier wirklich unterbewertet finde, ist das Beispiel direkt in der Arbeit: Ein Block in Iteration 5 – wobei nur zwei der vorherigen Iterationen fehlerhafte Beglaubigungen (fail attestations) aufweisen – wird als akzeptiert markiert und benötigt dann vier weitere beglaubigte oder bestätigte Blöcke, die oben drauf gestapelt werden müssen, bevor er als bestätigt gilt. Das ist keine willkürliche Bestätigungszahl, die irgendwoher geholt wurde, sondern eine Zahl, die sich direkt aus der Unübersichtlichkeit dieser speziellen Runde ergibt. Eine „saubere“ Runde finalisiert schneller. Eine chaotische dauert länger. Das ist ein ganz anderes Modell als „einfach 12 Blöcke abwarten, egal was passiert ist“.
Wenn ich ehrlich bin, fühlt sich das wie eine Art Designdetail an, das für Institutionen, die die Settlement-Finalität bewerten, viel mehr zählt als für Retail-Trader – niemand, der Tokens tauscht, kümmert sich um Iterationszahlen, aber eine Bank, die ein Wertpapier-Settlement durchführt, würde es ganz sicher.
@Dusk
$DUSK
#dusk