小学生也能看懂的零知识证明科普(4):什么zk-Rollup?

前三篇文章介绍了 ZK 基本原理、非交互式证明基本原理、zk-SNARK 与 zk-STARK 区别与关联。

本系列将试图用通俗举例和语言,帮助大家理解复杂概念。本系列非学术论述,举例只为帮助大家通俗理解。如有错误,欢迎指正。更严谨的表述,欢迎大家查看专业论文学习。

前情回顾,

1/ 零知识证明,英文为 Zero Knowledge Proofs,简写为 ZK 或 ZKP。

zkXXX,即代表应用了零知识证明。

2/ 零知识证明技术,要在证明速度、验证速度、整体大小之间做取舍,继而产生的用户体验不同。

zk-SNARK 诞生时间久,经过验证,应用比较成熟,并诞生了 Groth16、PLONK、Halo2 等多技术分支。zk-STARK 相较而言,诞生时间较短,仍需时间验证完善。

Manta 采用 Groth16,是目前最快、数据量最小的 zk-SNARK。Manta在椭圆曲线密码(FH-ECC)算法等基础上,进一步优化升级,ZK 生成速度比Zcash快十倍。交互确认时间仅需 2-3秒。

3/ ZK 开发逐渐模块化。zk-SNARK 与 zk-STARK 之间,可通过切换多项式承诺,进行相互转换。且,代码终会开源,所以长期看,单靠技术无法构筑壁垒。

正式开始本篇内容。

什么是 Rollup ?

Roll,卷、滚的意思。Up,向上、起来的意思。Rollup 就是“卷起来”。

当然,这不是内卷那个“卷”,而是像面饼一样,把食材统统卷进去的那个“卷”。

Rollup,就是把许许多多多笔交易“卷”起来,在自己的网络里处理掉。

Rollup 通常运行一组中心化定序器(Sequencer),为 Rollup 上的交易进行排序。定序器就像中心化的服务器。

Rollup 与 以太坊主链关系,举个便于理解但不十分严谨例子,如同初期的支付宝与银行。

资金从以太坊主网转入 Rollup,如同把钱从银行卡转入支付宝。

用户在 Rollup 交互,交互信息并不直接提交到以太坊主链上,而是由 Rollup 定序器进行排序。

这个过程,称为“链下扩容”,所谓“链下”指的是在以太坊链下。

支付宝初期,用户直接使用支付宝余额交易,银行对具体交易信息,并不知情。支付宝相对银行,也是“链下”。

定序器会对 Rollup 里的交易,统一进行排序、打包、压缩,隔一段时间提交到以太坊主链,由以太坊主链提供结算、校验交易数据,以减轻主链负担。

主链矿工可以通过欺诈证明(Fraud Proof,通常由Optimistic Rollup 采用)或有效性证明(Validity Proof,通常由 zk-Rollup 采用),验证 Rollup 交易数据是否真实。

举个例子,用户在 Aribitrum 上,使用 Gmx 疯狂进行衍生品交易。这些操作,都让 Aribitrum “卷”起来处理掉了,这些交互仅在 Aribitrum 当前 Rollup 上发生,不会造成以太坊主链拥堵。

Aribitrum 会将一段时间内的交互信息排序、打包、压缩、提交到以太坊主链,由以太坊全节点校验交易数据真实性,所以,Rollup 称为执行层,主要负责执行交易。

Optimistic Rollup 与 ZK Rollup?

Optimistic 与 ZK,是以太坊主链全节点,校验 Rollup 交易数据真实性的方式,可以理解成是对账方式。

Rollup 是处理交易的方式。

这俩都是 Rollup,所以,处理交易方式一致,都是“卷起来”。区别在于,对账方式:

1/ Optimistic,意为“乐观的、积极的”。

Optimistic Rollup“乐观的”默认交易信息真实有效。

万一有人提供虚假交易信息呢?

若使用 Aribitrum 或 Optimism,会发现,把代币跨回其他网络,需要等待几天时间,即“等待期”。

“等待期”内,以太坊主网全节点都可以发起挑战,证明某交易为假。

由于 Rollup 数据层和结算层仍使用以太坊,相当于根账本在以太坊上,所以,Rollup 自身是无法篡改、作弊的。

若挑战成功,则会罚没作弊者保证金,交给挑战者,并回滚该区块内的交易。

2/ zk-Rollup

还记得 ZK 的基本原理及特性嘛?

证明者(Prover)和验证者(Verifier)。证明者生成证明,验证者在不获取信息本身的前提下,验证该证明。

ZK 有以下特性:

完备性(Complete):提交者若确实掌握了答案,那他能找到方法向验证者证明为真,即真的假不了。

合理性(Sound):若提交者未掌握答案,那他无法向验证者证明为真,即假的真不了。

零知识性(Zero-Knowledge):证明过程中,验证者除了“证明”之外,不会获得其他相关信息。

zk-Rollup 会在向以太坊主网提交区块时,生成一个零知识证明。主网全节点验证该证明即可。

需要注意的是,zk-Rollup 通常只应用了 ZK 前两个属性,即完备性与合理性,达到压缩计算的目的。

Optimistic Rollup 需要将一段时间内交易数据,压缩后,完整地连同状态根(包含用户地址余额等信息)、欺诈证明(仅在发生争议时),传回到以太坊主网。

由于交易数据和结算仍存储在以太坊主网上,当全节点提出挑战时,可根据先前存储的状态,校验欺诈证明是否成立,判断 Optimistic Rollup 是否作弊。

zk-Rollup 不需要将全部交易数据发布至以太坊主网,仅发布状态差异(类似用户账户状态变化)和有效性证明即可,这样会使得交易成本 Gas 更低。使用 zk 前两个属性,达到压缩计算目的。

zk-Rollup 证明文件很小,验证时间一定,所以证明本身不会随着交易数量增加而变大。

长期来看 zk-Rollup 在 Gas 成本和 Tps 方面,要优于 Optimistic Rollup,且无需提现等待期。

所以,以太坊创始人 Vitalik 认为,短期内 Optimistic Rollup 会因 EVM 兼容性占据优势,但长期来看,zk-Rollup 会胜出。

本质上,Optimistic Rollup 安全来自于经济学,作恶者要考虑损失的成本,挑战者的动机由经济利益驱动。

zk-Rollup 安全来自于密码学,用密码学手段验证证明,可以做到去信任化。

长期看,zk-Rollup 相比 Optimistic Rollup 更具优势,但短期仍受制于 zk-EVM 发展。这也是我们在下一篇会聊到的话题。

这里需要区分的是,用户在 zk-Rollup 上的交易信息仍是透明可查询的。

而 Manta 作为基于 ZK 的可编程隐私公链,除前两个特性外,还重点应用了零知识性,让链上交易隐私化。

Rollup 与模块化

不可能三角,又称三元悖论,通常指去中心化(Decentralization)、可扩展性(Scability)、安全性(Security)三者不可同时兼得。

通常,模块化是指,把 Layer1 共识、结算、数据、执行四层分别解耦(单拆出来),在不增加节点硬件负担,造成中心化前提下,实现扩容,打破“不可能三角”。

V神在波哥大以《Hardening rollups with multi-proofs》为主题进行分享,即采用多证明机制,加强Rollup安全。

方案二是多证明人机制(multi-provers),采用多证明系统,用欺诈证明或 zkEVM 多种实现,预防网络宕机情况。

方案三是双重证明加治理小组(two-provers plus governance tie break),采用欺诈证明加ZK证明,再加上治理小组裁决。当一个证明系统出现漏洞,另一个系统不受影响。

在此之前,Optimism 的 Kelvin 曾写过《The hybrid ZK/Optimistic Rollup of the future》(ZK/Optimistic 混合 Rollup 的未来),探讨过将 Optimistic 与 ZK 相结合。

总结下, 1/ Rollup 内的交易,隔一段时间统一压缩打包,提交到以太坊主网,由主网提供结算、验证交易数据,以减轻主链负担。

2/ Optimistic 与 ZK,是以太坊主链全节点,校验 Rollup 交易数据真实性的方式,可以理解成是对账方式。Rollup 是处理交易的方式。

3/ Optimistic Rollup 需要将一段时间内交易数据,压缩后,完整地连同状态根、欺诈证明(仅在发生争议时),传回到以太坊主网。

zk-Rollup 不需要将全部交易数据发布至以太坊主网,仅发布状态差异(类似用户账户状态变化)和有效性证明即可,这样会使得交易成本 Gas 更低。使用 zk 前两个属性,达到压缩计算目的。

4/ 本质上,Optimistic Rollup 安全来自于经济学,作恶者要考虑损失的成本,挑战者的动机由经济利益驱动。

zk-Rollup 安全来自于密码学,用密码学手段验证证明,可以做到去信任化。

5/ 用户在 zk-Rollup 上的交易信息仍是透明可查询的。而 Manta 是基于 ZK 的可编程隐私公链,除前两个特性外,还重点应用了零知识性,让链上交易隐私化。

6/ 当前,将 Optimistic 与 ZK 结合,是 Rollup 探索方向之一。

小学生也能看懂的零知识证明科普(4):什么zk-Rollup?

扫一扫手机访问

小学生也能看懂的零知识证明科普(4):什么zk-Rollup?

发表评论