Zcash NU5 升级

2021-06-15  本文已影响0人  雪落无留痕

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匿名协议

Orchard匿名协议用新的密钥和地址定义新的匿名池(shielded pool),方便实现未来的规模性提升。

Zcash目前存在两个匿名协议和匿名池。

但这个两个协议依然存在两个问题:

Orchard协议使用椭圆曲线对,采用Halo2证明系统实现递归,并且不需要可信设置。

曲线

Orchard协议使用Pallas/Vesta 椭圆曲线对,代替BLS12-381Jubjub曲线。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 结构为(addr, v, \rho,\varphi,rcm), \rho 用于生成nullifier, \varphircm 由随机种子派生。

Nullifier

Nullifier计算方式为:
nf = [F_{nk}(\rho)+\varphi(mod\ p)\mathbb{G}+cm]
F 采用Poseiden 哈希函数, \mathbb{G} 为固定的基点。

签名

Orchard使用RedPallas 代替原先的RedJubjub 方案。

统一地址

统一地址(unified address, UA)是未来证明(future-proof)的地址格式,可以提升可用性,互操作性,默认支持匿名。

背景

由于Zcash协议一直在迭代升级,出现多种地址类型。采用UA可以提升用户体验,支持自动匿名化。

UA也可促进Zcash网络的迭代升级,推进Layer 2, Defi应用的互操作性。

UA

统一地址由多个Zcash地址类型生成(transparent, Sapling, Orchard), 可以方便用户将资金移到最新的匿名池中,实现自动迁移和自动匿名。

统一地址兼容Zcash所有的资金池(transparent和shielded),当从透明地址转入的时候,能自动转入匿名池中。

参考

https://electriccoin.co/blog/halo-arc-for-zcash-proposed-for-release-later-this-year/

https://zips.z.cash/zip-0224

https://github.com/zcash/halo2

https://github.com/zcash/orchard

https://electriccoin.co/blog/unified-addresses-in-zcash-explained/

https://electriccoin.co/blog/nu5-proposed-features/

上一篇下一篇

猜你喜欢

热点阅读