曲速未來 揭秘:CodeChain中的Schnorr簽名區塊鏈
曲速未來表示:Schnorr簽名是橢圓曲線數字簽名,它是ECDSA的替代品,也在CodeChain中實現。
介紹
Schnorr,是一種簽名算法:一系列連接私鑰、公鑰和簽名的數學規則,Schnorr來源于它的發明人的姓名Claus-Peter Schnorr。很多密碼學家認為Schnorr簽名在相關應用中是最好的,因為它有很高水平的正確性,沒有延展性問題,驗證速度相當快,最重要的是支持多重簽名:可以把多個簽名聚合成一個新的簽名。
區塊鏈安全咨詢公司 曲速未來 表示:Schnorr簽名是橢圓曲線數字簽名,它是ECDSA的替代品,也在CodeChain中實現。
首先,Schnorr簽名的四大優勢如下:
Schnorr簽名比ECDSA更容易操作,速度更快。ECDSA在計算中具有模塊化逆和點乘的繁重操作,而Schnorr簽名相對于ECDSA的操作相對較少。
與ECDSA相比,Schnorr簽名具有較小的簽名大小。ECDSA簽名包括支持公鑰恢復的恢復參數。具有隱式Y坐標的Schnorr簽名允許在沒有恢復參數的情況下恢復公鑰。
可以使用Schnorr簽名執行批量驗證,即同時驗證一個塊中的簽名。這是由于Schnorr簽名的線性,使得允許添加多個驗證方程而沒有問題。以這種方式,一次驗證所有簽名可以減少點乘法的數量。
Schnorr簽名的引入減少了多重簽名的大小。當多個人加入multisig時,大多數區塊鏈會逐個存儲他們的簽名。這更快地處理簽名簽名,但是,驗證很慢并且簽名的大小隨參與者的數量線性增加。如果使用Schnorr簽名,則可以使用具有常量簽名大小的多個多重簽名方案。代表性方案是MuSig。
CodeChain上的Schnorr簽名實現
CodeChain使用在比特幣的libsecp256k1中實驗性實現的Schnorr簽名代碼。為了實際使用Rust,在此使用一個名為rust-secp256k1的Rust包裝器。
開始在CodeChain的JavaScript Primitives中提供了Schnorr簽名的簡單實現,基于此,然后創建了JavaScript SDK和Keystore的Schnorr版本。CodeChain和SDK的Schnorr版本已經過測試,可以在從ECDSA移至Schnorr時傳遞所有現有測試,而無需對現有代碼進行任何更改。
CodeChain基于Schnorr簽名的多重簽名
如前所述,MuSig具有m-of-m多重簽名方案,其優點是不需要單獨的簽名驗證實現,并且可以以與驗證單個簽名相同的方式進行驗證。由于在輸入Schnorr簽名時可以使用MuSig,因此CodeChain將通過JavaScript SDK和RPC支持MuSig簽名簽名。
此外,CodeChain將利用使用MuSig的樹簽名來支持m-of-n閾值簽名。樹簽名只能使用鎖定腳本創建,不需要額外的實現。它們還具有更快驗證的優勢。對于CodeChain,Tree簽名的鎖定腳本作為標準腳本包含在內,SDK和RPC將支持簽名簽名,就像MuSig一樣。
區塊鏈安全咨詢公司 曲速未來 觀點:通過使用Schnorr簽名,不僅可以加強隱私,最重要的是可以降低每個人的交易費用。實際上,為了使用最優隱私選項,需要支付一個成本,這只是一個人人可以選擇的選項,它大大加強了隱私的保護。
1.TMT觀察網遵循行業規范,任何轉載的稿件都會明確標注作者和來源;
2.TMT觀察網的原創文章,請轉載時務必注明文章作者和"來源:TMT觀察網",不尊重原創的行為TMT觀察網或將追究責任;
3.作者投稿可能會經TMT觀察網編輯修改或補充。