В эти дни, разбираясь с выбором криптографии для Dusk, я нашёл одно решение, которое очень легко упустить из виду: смена эллиптической кривой. Большинство думают, что это неважно, но на самом деле это тянет за собой всё

//
Сначала — почему нельзя просто взять ту же схему, что используют в биткоине и эфириуме
secp256k1 — самая популярная кривая в мире кошельков для майнеров, но она вообще не проектировалась для zk-доказательств. Система доказательств (например, BN254 за которой стоит Plonk, или кривые типа BLS12-381) выполняет все вычисления в заданной скалярной области. То есть операции сложения и умножения в схеме должны делаться именно в этом поле. Поле secp256k1 и поля этих систем доказательств не совпадают — и если пытаться в схеме проверять подпись secp256k1, приходится моделировать это через «не нативные» операции. Цена получается в сотни раз выше, чем у нативных операций — не то чтобы сделать нельзя, но это слишком дорого

//
А вот кривая JubJub как раз создана, чтобы решить эту несовместимость
Это twisted Edwards-кривая, и ключевой момент в том, что её поле как раз встраивается в скалярное поле BLS12-381. То есть при вычислениях в плонковской цепи мы выполняем операции над точками на JubJub, и они идут через нативные операции — издержки резко падают. Обработка ею генерации ключей, подписи, шифрования и т.п. естественно ложится на систему доказательств, без обходных манёвров

//
Теперь — что именно пытается решить абстракция группы
У кривых в форме Эдвардса обычно есть проблема cofactor не равен 1. Говоря проще: один и тот же «логический пункт» на кривой может иметь несколько разных байтовых представлений. Исторически такая неоднозначность представлений действительно приводила к уязвимостям — атакующий мог использовать малые подгруппы, связанные с cofactor, и конструировать пограничные случаи, позволяя обходить проверку. Типичное отраслевое решение — обернуть всё это ещё одним уровнем абстракции группы, «сгладив» неоднозначность представлений: гарантировать, что у точки существует только одна нормативная запись, тем самым пресечь подобные атаки на корню

//
Сравним эту подборку с самым популярным secp256k1 в мире майнеров — всё станет очевидно: одна кривая служит эффективности проверки подписи и совместимости с экосистемой, а другая — стоимости вычислений внутри систем доказательств и границам безопасности. Их вообще нельзя назвать целящимися в одну и ту же цель. Решение сменить кривую звучит довольно технично и тонко, но напрямую определяет, будет ли вся zk-цепочка дешёвой или дорогой, чистой или с оставленными рисками

@Dusk_Foundation $DUSK #dusk

Почему кривая JubJub может так хорошо стыковаться с системой доказательств Dusk?
A. 域嵌在BLS12-381标量域里运算走原生路径,成本低
B. 它是secp256k1的升级版,兼容性更好
C. 它算力消耗更大,安全性更强
3 дн. осталось