#dusk $DUSK @Dusk
Vier Zahlen waren alles, was es brauchte. Dusk’s abgeschirmter Phoenix-Pfad — der Teil, der seinen gesamten Datenschutz-Pitch trägt — verifizierte Beweise durch einen einzigen Aufruf, und dieser Aufruf prüfte nie vier Selektorwerte gegen die Zusagen, die direkt im Verifier-Key vorlagen. $DUSK #dusk @Dusk hatte bereits drei separate Audits bestanden, bevor das im Februar gefunden wurde.
Was mich getroffen hat, war die Form der Lücke. Selektoren sollen in standardmäßigem PLONK öffentlich, fest und verifzierseitige Daten sein. Dusk-Plonks benutzerdefinierte Widgets zwangen sie jedoch, stattdessen proversseitige Zahlen zu werden, und niemand hat das mentale Modell aktualisiert, das darüber entscheidet, was kryptografisch gebunden werden muss. Die Schaltkreislogik selbst war Ende-zu-Ende in Ordnung — die Lücke saß eine Ebene darunter, in der Verifikationsverkabelung.
Was sich für mich geändert hat, war die Erkenntnis, dass „drei Mal auditiert“ nicht dasselbe ist wie „gegen das richtige Bedrohungsmodell auditiert“. Ein Reviewer, der die Constraint-Logik prüft, kann an einer strukturellen Annahme vorbeigehen, die stillschweigend nicht mehr hielt. Das ist schwerer zu erwischen als ein normaler Code-Bug, und es ist nicht einzigartig für Dusk — dasselbe Muster tauchte unabhängig auch in Espressos Jellyfish auf.
Als Nächstes würde ich prüfen: Ob Dusk’s Einsatz für eine standardisierte PLONK-Verifikationsspezifikation tatsächlich geliefert wird oder als Diskussions-Thread hängen bleibt.
Vier Zahlen waren alles, was es brauchte. Dusk’s abgeschirmter Phoenix-Pfad — der Teil, der seinen gesamten Datenschutz-Pitch trägt — verifizierte Beweise durch einen einzigen Aufruf, und dieser Aufruf prüfte nie vier Selektorwerte gegen die Zusagen, die direkt im Verifier-Key vorlagen. $DUSK #dusk @Dusk hatte bereits drei separate Audits bestanden, bevor das im Februar gefunden wurde.
Was mich getroffen hat, war die Form der Lücke. Selektoren sollen in standardmäßigem PLONK öffentlich, fest und verifzierseitige Daten sein. Dusk-Plonks benutzerdefinierte Widgets zwangen sie jedoch, stattdessen proversseitige Zahlen zu werden, und niemand hat das mentale Modell aktualisiert, das darüber entscheidet, was kryptografisch gebunden werden muss. Die Schaltkreislogik selbst war Ende-zu-Ende in Ordnung — die Lücke saß eine Ebene darunter, in der Verifikationsverkabelung.
Was sich für mich geändert hat, war die Erkenntnis, dass „drei Mal auditiert“ nicht dasselbe ist wie „gegen das richtige Bedrohungsmodell auditiert“. Ein Reviewer, der die Constraint-Logik prüft, kann an einer strukturellen Annahme vorbeigehen, die stillschweigend nicht mehr hielt. Das ist schwerer zu erwischen als ein normaler Code-Bug, und es ist nicht einzigartig für Dusk — dasselbe Muster tauchte unabhängig auch in Espressos Jellyfish auf.
Als Nächstes würde ich prüfen: Ob Dusk’s Einsatz für eine standardisierte PLONK-Verifikationsspezifikation tatsächlich geliefert wird oder als Diskussions-Thread hängen bleibt.