這兩天翻Dusk的密碼學選型,發現一個特容易被忽略的決定——換一條橢圓曲線這事,大部分人覺得無所謂,其實牽一髮動全身

//
先說爲啥不能直接拿比特幣以太坊那套用
secp256k1是礦機錢包世界最流行的曲線,但它壓根不是爲zk證明設計的。證明系統(比如Plonk背後靠的BN254、BLS12-381這類曲線)所有運算都被限制在一個特定標量域裏,電路里的加法乘法都得在這個域裏做。secp256k1的域跟這些證明系統的域根本對不上,硬要在電路里驗證一個secp256k1簽名,得靠"非原生運算"去模擬,成本是原生運算的成百上千倍——不是不能做,是貴得離譜

//
JubJub這條曲線,就是專門衝着解決這個不兼容來的
它是一條twisted Edwards曲線,關鍵在於它的域剛好嵌在BLS12-381的標量域裏,也就是說在Plonk電路內部做JubJub上的點運算,走的是原生運算,代價一下降下來了。拿它處理密鑰生成、簽名、加密這些操作,跟證明系統天然貼合,不用繞彎子

//
再說說羣抽象這層要解決的事
Edwards形式的曲線普遍有cofactor不是1的問題,說白了就是同一個"邏輯上的點",在曲線上可能對應好幾種不同的字節表示。這種表示歧義歷史上確實出過漏洞——攻擊者能利用cofactor相關的小子羣,構造出一些邊界情況繞過驗證。業內常見的解法,是在曲線上面再包一層羣抽象,把這些表示歧義抹平,保證一個點只有一種規範寫法,從根上堵住這類攻擊

//
拿這套選型跟礦機世界最流行的secp256k1比一下就清楚了:一個是爲簽名驗證效率和生態兼容服務的曲線,一個是爲證明系統內部運算成本和安全邊界服務的曲線,壓根不是奔着同一個目標去的。換曲線這個決定聽着挺技術、挺細,但直接決定了後面整條zk管線是便宜還是昂貴、是乾淨還是留了隱患

@Dusk $DUSK #dusk

JubJub曲線爲什麼能跟Dusk的證明系統貼合?
A. 域嵌在BLS12-381标量域里运算走原生路径,成本低
86%
B. 它是secp256k1的升级版,兼容性更好
14%
C. 它算力消耗更大,安全性更强
0%
14 票 • 投票已結束