@Dusk $DUSK #dusk
Ich dachte mir, eine Blockchain finalisiert entweder einen Block oder sie kommt gar nicht erst weiter. Wie sich herausstellte, hat Dusk einen kompletten dritten Zustand dazwischen gebaut: einen, der erst auftaucht, nachdem das Netzwerk dieselbe Runde sechzehn Mal in Folge fehlschlägt.
Als ich das zum ersten Mal sah, dachte ich wörtlich, dass der wachsende Timeout nach jeder fehlgeschlagenen Runde einfach ein Geduldsmechanismus ist – um langsame Nodes abzufedern. Der wahre Grund dafür ist jedoch spannender.
So kommt’s: Jede fehlgeschlagene Runde lässt den nächsten Versuch um zwei Sekunden länger warten, beginnend bei sieben und mit einem Maximum von vierzig. Das ist dafür gebaut, mit kleinen Aussetzern klarzukommen – hier mal eine langsame Abstimmung, dort mal eine verpasste Signatur. Aber dieses Design verhindert nicht, dass das Netzwerk immer wieder aus einem wirklich schlechten Grund scheitert. Und eine Kette, die einfach dort sitzt und für immer wartet, ist ein schlechteres Ergebnis als fast jeder einzelne fehlerhafte Block.
Darum ist Dusk um eine harte Struktur herum gebaut, die festlegt, wie lange eine Runde sich noch abmühen darf. Sechzehn fehlgeschlagene Versuche in Folge und das System wechselt in den sogenannten Notfallmodus. Fünfzig Versuche sind die absolute Obergrenze für jede Runde. Und es gibt einen ganz bestimmten Slot, Iteration 255, der nur für Notfallblöcke reserviert ist.
Was das für mich noch interessanter macht: Dusk versuchte nicht zu verbergen, wie lange eine fehlschlagende Runde noch normal aussehen kann. Es zog einfach eine harte Linie, ab wann das Zählen des Normalzustands aufhört.
Was diese Konsens-Mechanik geduldig macht, ist zugleich genau das, was sie über eine längere Strecke hinweg gut aussehen lässt, obwohl das System eigentlich feststeckt. Dusk hat das Zeitfenster nicht verkürzt – sie haben nur am Ende eine Mauer gebaut.
Ich weiß immer noch nicht, was sich tatsächlich ändert, sobald der Notfallmodus greift. Stimmen dort dieselben Ausschüsse noch auf die gleiche Weise ab? Lässt sich ein dort finalisierter Block mit derselben Garantie bewerten wie ein Block aus einer sauberen Runde? Für eine Kette, die auf institutionelle Abwicklung ausgelegt ist, ist das nichts, was ich unklar lassen wollen würde.
$BCH $ENA #BullRunAhead