Zcash 計劃於 2021 年 10 月 1 日發布 叠代產品套件 Halo Arc,包括對 Zcashd (Zcash ***識節點)、ECC Reference Wallet 應用以及 ECC 錢包 SDK 的更新,並將涵蓋 Zcash 即將進行的兩項改進,包括 Zcash 網絡升級 5 (NU5,預計激活日期也為 2021 年 10 月 1 日)和統壹地址(unified addresses),其中,Zcash 網絡升級 5 實現Orchard匿名協議,將 Zcash 從 zk-SNARKs 遷移到免除信任初始設置的 Halo 2證明系統中;統壹地址是壹項補充功能,引入了壹種優先采取屏蔽模式(shielded adoption)的未來證明(future-proof)地址格式。
Orchard匿名協議用新的密鑰和地址定義新的匿名池(shielded pool),方便實現未來的規模性提升。
Zcash目前存在兩個匿名協議和匿名池。
但這個兩個協議依然存在兩個問題:
Orchard協議使用橢圓曲線對,采用Halo2證明系統實現遞歸,並且不需要可信設置。
曲線
Orchard協議使用 Pallas/Vesta 橢圓曲線對,代替 BLS12-381 和 Jubjub 曲線。 Pallas 為應用層曲線, Vesta 曲線為電路曲線,即 Vesta 標量域為 Pallas 基域。
將采用 simplified SWU 算法定義 GroupHash 實現,代替原先易錯的 BLAKE2s 機制 。
證明系統
Orchard使用Halo 2證明系統,采用UPA(UltraPlonk)算術化過程,代替Groth16和R1CS。
Orchard協議尚未使用Halo 2遞歸證明,將在未來的協議升級中利用。
電路
Orchard使用壹個電路實現所有的輸入(spends)和輸出 (outputs)。單個 action 包括壹個花掉的note和壹個新建的note。
壹個Orchard交易可以打包多個 actions , 采用壹個halo2 證明。
承諾
Orchard協議采用 UPA 高效的 Sinsemilla 代替原先的非同態承諾。
承諾樹
Orchard采用和sapling類似的承諾樹,只是采用 Sinsemilla 代替原先的 Pedersen hash 。
密鑰和地址
密鑰和地址和 Sapling 類似,有如下改動:
密鑰和地址采用 Bech32 編碼,主網上的地址帶有前綴 zo (Sprout地址前綴為 zc , Sapling 地址前綴為 zs )。
Orchard密鑰采用分層派生(HD)的方式。
Note
Note 結構為 , 用於生成nullifier, 和 由隨機種子派生。
Nullifier
Nullifier 計算方式為:
采用Poseiden 哈希函數, 為固定的基點。
簽名
Orchard使用 RedPallas 代替原先的 RedJubjub 方案。
統壹地址(unified address, UA)是未來證明(future-proof)的地址格式,可以提升可用性,互操作性,默認支持匿名。
背景
由於Zcash協議壹直在叠代升級,出現多種地址類型。采用UA可以提升用戶體驗,支持自動匿名化。
UA也可促進Zcash網絡的叠代升級,推進Layer 2, Defi應用的互操作性。
UA
統壹地址由多個Zcash地址類型生成( transparent , Sapling , Orchard ), 可以方便用戶將資金移到最新的匿名池中,實現自動遷移和自動匿名。
統壹地址兼容Zcash所有的資金池(transparent和shielded),當從透明地址轉入的時候,能自動轉入匿名池中。
/zcash/halo2
/zcash/orchard
https://electriccoin.co/blog/unified-addresses-in-zcash-explained/
https://electriccoin.co/blog/nu5-proposed-features/