#dusk $DUSK @Dusk

Ich bin immer wieder auf eine kleine Einzelheit im Konsensdesign von Dusk zurückgekommen: Was genau passiert eigentlich nach 16 fehlgeschlagenen Iterationen.

Zunächst habe ich den Notfallmodus als simples Sicherheitsnetz für die Liveness verstanden. Wenn der Konsens weiter fehlschlägt, braucht das Netzwerk irgendwann einen anderen Weg, voranzukommen.

Aber je länger ich darüber nachdachte, desto weniger einfach fühlte sich das an.
Die Schwellenwerte von Dusk machen bereits eine interessante Unterscheidung. Ein gültiges Ergebnis braucht 2/3, während Ungültig, NoCandidate oder NoQuorum auf 1/2 + 1 kommen können.

Ich sehe die Begründung: Das Bestätigen eines gültigen Zustands sollte eine stärkere Übereinstimmung erfordern als die bloße Anerkennung, dass der Konsens fehlgeschlagen ist.
Trotzdem wirft das eine Frage auf, die meiner Meinung nach nicht allein durch einen Blick auf die Schwellenwerte beantwortet wird.
Wo genau zieht Dusk die Grenze zwischen „nicht vorankommen“ und „zu aggressiv vorankommen“?

Der Auslöser nach 16 Iterationen macht diese Frage noch spannender – vor allem, weil die Abstimmungsmacht über Committee Credits stake-gewichtet ist. Wenn die Teilnahme von Validatoren ungleich wird, beginnt die Konzentration neben dem eigentlichen Fehlermechanismus eine Rolle zu spielen.

Ich nenne das keine Schwäche. Wenn überhaupt, dann ist es eine der Details, die ich lieber untersuchen möchte, bevor ich mir eine Meinung bilde.

Echte Validator-Ausfälle werden wahrscheinlich nicht ordentlich in ein fertiges Paket fallen. Einige mögen verschwinden, manche mögen anderer Meinung sein, und manche nehmen einfach nicht mehr teil.

Also frage ich mich immer wieder, was passiert, wenn sich diese Bedingungen überlappen.

Gibt der Notfallmodus Dusk genug Spielraum, um von festgefahrenem Konsens zu genesen, ohne ein neues Sicherheitsproblem zu erzeugen?
Dieses Gleichgewicht zwischen Liveness und Sicherheit ist wahrscheinlich der Teil, den ich besser verstehen möchte.

@Dusk #dusk $DUSK