In den letzten zwei Tagen habe ich mich durch die Kryptografie-Auswahl für Dusk gearbeitet und eine Entscheidung entdeckt, die extrem leicht übersehen wird: Die Umstellung auf eine andere elliptische Kurve halten die meisten für unwichtig. In Wahrheit zieht das eine ganze Kette nach sich.

//
Zuerst: Warum man nicht einfach das Setup von Bitcoin und Ethereum übernehmen kann.
secp256k1 ist in der Welt der Miner-Wallets die beliebteste Kurve, aber sie ist schlichtweg nicht für zk-Beweise ausgelegt. Das Beweissystem (z. B. die Kurven hinter Plonk wie BN254 oder BLS12-381) begrenzt alle Operationen auf ein bestimmtes Skalarfeld. In der Schaltung müssen Addition und Multiplikation innerhalb dieses Feldes stattfinden. Das Feld von secp256k1 passt überhaupt nicht zu den Feldern dieser Beweissysteme. Wenn man in der Schaltung einen secp256k1-Signatur-Check erzwingen will, muss man „nicht-native“ Operationen simulieren. Das kostet das Tausendfache (oder mehr) dessen, was native Operationen kosten – es geht zwar, aber es ist schlicht unglaublich teuer.

//
Genau dafür ist JubJub gemacht.
JubJub ist eine twisted-Edwards-Kurve. Der entscheidende Punkt ist: ihr Feld lässt sich genau in das Skalarfeld von BLS12-381 einbetten. Das heißt, wenn man in den Plonk-Schaltungen Punktoperationen auf JubJub ausführt, läuft das über native Operationen – der Aufwand sinkt drastisch. Schlüsselgenerierung, Signatur, Verschlüsselung: Diese Dinge passen natürlich zu dem Beweissystem, ohne Umwege.

//
Noch ein Wort zur Ebene „Gruppenabstraktion“: Welche Aufgabe soll sie lösen?
Edwards-Kurven haben in der Regel das Problem, dass ihr Cofaktor nicht 1 ist. Anders gesagt: Zu demselben „logischen Punkt“ können auf der Kurve mehrere verschiedene Byte-Darstellungen gehören. Dass es dabei historisch zu Darstellungsmehrdeutigkeiten und damit zu Schwachstellen kam, ist tatsächlich vorgekommen. Angreifer können Cofaktor-bezogene Untergruppen ausnutzen, Randfälle konstruieren und so die Validierung umgehen. In der Praxis ist die gängige Lösung, noch eine Schicht Gruppenabstraktion über die Kurve zu legen: Die Darstellungsmehrdeutigkeiten werden geglättet, sodass ein Punkt genau eine einzige, normierte Schreibweise hat. Damit wird diese Art von Angriffen von Grund auf blockiert.

//
Wenn man diese Auswahl mit dem in der Miner-Welt beliebtesten secp256k1 vergleicht, wird es sofort klar: Die eine Kurve dient Signatur-Validierungs-Effizienz und Ökosystem-Kompatibilität, die andere dient Kosten innerhalb des Beweissystems und Sicherheitsgrenzen. Sie wurden gar nicht für dasselbe Ziel entworfen. Die Entscheidung, die Kurve zu wechseln, klingt ziemlich technisch und fein, aber sie entscheidet direkt darüber, ob die gesamte zk-Pipeline günstig oder teuer ist – und ob sie sauber ist oder potenzielle Schwachstellen behält.

@Dusk_Foundation $DUSK #dusk

Warum kann die JubJub-Kurve so gut mit Dusk’ Beweissystem zusammenpassen?
A. 域嵌在BLS12-381标量域里运算走原生路径,成本低
B. 它是secp256k1的升级版,兼容性更好
C. 它算力消耗更大,安全性更强
3 Tage(n) übrig