#dusk $DUSK @Dusk
Vier Zahlen — mehr brauchte es nicht. Dusk’ abgeschirmter Pfad des Phoenix — der Teil, der seine komplette Privacy-Behauptung trägt — verifizierte Beweise in einem einzigen Aufruf, und dieser Aufruf prüfte nie vier Selektorwerte gegen die Zusagen, die direkt im Verifier-Key vorliegen. $DUSK #dusk @Dusk hatte schon drei getrennte Audits bestanden, bevor das im Februar gefunden wurde.
Was mich getroffen hat, war die Form des Missstands. Selektoren sollen in standardmäßigem PLONK öffentlich, fest und verifierseitig sein. Dusk-Plonks benutzerdefinierte Widgets zwangen sie jedoch dazu, proversupplizierte Zahlen zu werden — und niemand aktualisierte das mentale Modell, das entscheidet, was kryptografisch gebunden werden muss. Die Schaltkreislogik selbst war Ende-zu-Ende in Ordnung — die Lücke saß eine Ebene darunter, in der Verifikationsverdrahtung.
Was sich für mich änderte, war die Erkenntnis, dass „dreimal auditiert“ nicht dasselbe ist wie „gegen das richtige Bedrohungsmodell auditiert“. Ein Prüfer, der die Constraint-Logik betrachtet, kann an einer strukturellen Annahme vorbeigehen, die stillschweigend aufgehört hat zu gelten. Das ist schwerer zu entdecken als ein normaler Codefehler, und es ist nicht einzigartig für Dusk — dasselbe Muster trat unabhängig davon auch in Espresso’ Jellyfish auf.
Als Nächstes würde ich prüfen: Ob Dusk’ Einsatz für eine standardisierte PLONK-Verifikationsspezifikation tatsächlich ausgeliefert wird — oder ob es nur bei einer Diskussionsrunde bleibt.
Vier Zahlen — mehr brauchte es nicht. Dusk’ abgeschirmter Pfad des Phoenix — der Teil, der seine komplette Privacy-Behauptung trägt — verifizierte Beweise in einem einzigen Aufruf, und dieser Aufruf prüfte nie vier Selektorwerte gegen die Zusagen, die direkt im Verifier-Key vorliegen. $DUSK #dusk @Dusk hatte schon drei getrennte Audits bestanden, bevor das im Februar gefunden wurde.
Was mich getroffen hat, war die Form des Missstands. Selektoren sollen in standardmäßigem PLONK öffentlich, fest und verifierseitig sein. Dusk-Plonks benutzerdefinierte Widgets zwangen sie jedoch dazu, proversupplizierte Zahlen zu werden — und niemand aktualisierte das mentale Modell, das entscheidet, was kryptografisch gebunden werden muss. Die Schaltkreislogik selbst war Ende-zu-Ende in Ordnung — die Lücke saß eine Ebene darunter, in der Verifikationsverdrahtung.
Was sich für mich änderte, war die Erkenntnis, dass „dreimal auditiert“ nicht dasselbe ist wie „gegen das richtige Bedrohungsmodell auditiert“. Ein Prüfer, der die Constraint-Logik betrachtet, kann an einer strukturellen Annahme vorbeigehen, die stillschweigend aufgehört hat zu gelten. Das ist schwerer zu entdecken als ein normaler Codefehler, und es ist nicht einzigartig für Dusk — dasselbe Muster trat unabhängig davon auch in Espresso’ Jellyfish auf.
Als Nächstes würde ich prüfen: Ob Dusk’ Einsatz für eine standardisierte PLONK-Verifikationsspezifikation tatsächlich ausgeliefert wird — oder ob es nur bei einer Diskussionsrunde bleibt.