这篇文章深入探讨了以太坊的扩展问题,专注于Layer2区块链中的有效性证明和欺诈证明的原理及应用。它详细介绍了两种主要的Rollups(乐观Rollups和零知识Rollups),以及它们在提高区块链交易效率和确保交易安全性方面的重要性。
以太坊的指数级增长在数据处理和存储方面带来了困难,尤其是在受到区块限制的情况下,这些限制是为了通过验证区块链上的每笔交易来保持去中心化和数据安全。
与并行于以太坊但无法获取其安全性好处的侧链以及依赖自身共识机制来保证有效状态的单体区块链不同,第二层区块链在区块链架构中使用证明。
证明最常见于使用汇总(rollups)来实现规模和提高吞吐量的第二层区块链,同时确保基础链的状态是正确的。 汇总是一种扩展解决方案,它在一个独立的区块链上批量处理交易,并使用证明来确保交易的真实性。
汇总主要有两种类型:
乐观 Rollup(Optimistic Rollups) - 假设 所有 交易都是有效的,使用欺诈证明在7天内证明虚假交易
零知识汇总(Zero Knowledge (ZK) Rollups) - 使用有效性证明即时证明交易是否有效
有效性证明和欺诈证明在交易录入基础链状态之前验证其合法性。
有效性证明,也称为零知识(ZK)证明,是一种在证明者(为某些信息创建证明的人)和验证者(不共享任何信息的情况下验证证明的人)之间进行的交易验证方法。
证明者与验证者之间共享的信息称为见证,通常是复杂数学方程的解。实质上,证明者需要展示他们准确知道见证,而验证者需要能够可靠地确定证明者是否掌握见证。
有效性证明设计得很难被破解,并依赖于一种名为多项式承诺的密码学技术。在多项式承诺中,验证计算的每一步中的信息被编码为多项式,而因式分解的多项式表达式可以代表多个方程之间的关系。
通过验证多项式方程,你隐含地验证了数值计算,但这些多项式的哈希过程是复杂的。用于多项式承诺的三种主要多项式哈希方案包括:
KZG(Kate)多项式承诺
Bulletproofs
FRIs
FRI代表“ F ast R eed-Solomon I nteractive Oracle Proofs of Proximity。”
使用零知识证明和汇总的几种区块链示例包括zkSync、StarkNet和Zcash。
所有ZK汇总都有集中关注于安全性和交易验证,这使得它们能够在多种用例中可靠使用。zkSync和Zcash更关注于交易,而StarkNet则分化为支持多种dapp和DeFi项目,包括Immutable X,这是一个为游戏社区提供安全NFT和web3开发的框架。
欺诈证明,也称为 故障证明 ,是由验证者提交的挑战交易状态的证明。 根据实现方式,欺诈证明运行一段交易,并尝试验证它们。
简单解释如下:
如果欺诈证明发现错误,则插入批次的交易将被移除,批次将恢复到先前的、可以验证的正确状态。
如果在争议期间没有提交欺诈证明,则状态变化被乐观地假设为正确。
欺诈证明通过比较Merkle根并通过单轮计算(如Optimism)或多轮计算(如Arbitrum)验证开始和结束状态根。
区块链运行在一种称为Merkle树的数据结构上,每个交易作为树的叶子,后续分支由不断复杂化的哈希表示。
根节点,也称为Merkle根,是一个有效地压缩数据的哈希,因此用户不必不断下载主链的全部内容。
如果验证者想要挑战交易状态的改变,他们只需要提交当前的后状态根和Merkle树的特定部分,这些部分可以用于计算正确的后状态根。如果两者不符,则交易状态变化将被恢复,哈希重置为可证明的正确状态根。
欺诈证明和乐观 Rollup模型比主链上的交易便宜和快速得多,这就是为什么区块链像Arbitrum、Optimism和Metis Andromeda优先使用它们。
Optimism和Arbitrum使用自己的EVM兼容虚拟机,专为乐观 Rollup功能设计,尤其是批量处理交易和提高吞吐量的能力,而Metis则更专注于其L2系统的适用性,并拥有多种有助于创建和开发dapps、DAOs和DeFi生态系统的功能。
ZK和欺诈证明相似之处在于两者都使用汇总解决方案来扩展,并且具有多种实现以满足不同的用例。
汇总设计旨在从主以太坊区块链中移除大部分负载。在主网运行交易的代替,汇总将计算移至链下,同时在以太坊上保留少量每交易的数据。通过压缩交易,汇总允许每秒的交易数(TPS)可扩展性更高,平均Gas费用更低。
两种主要类型的汇总为乐观 Rollup和ZK汇总。
乐观 Rollup的关键特性是最初假设所有交易都是有效的,并允许这些交易被添加到批次中。在提交后,有一个争议期,在这个期间交易可以通过欺诈证明提出挑战。
零知识汇总类似于乐观 Rollup,因为它们也将交易汇总到批次中进行提交,但它们之间的主要区别之一是ZK汇总使用有效性证明在交易提交到账面前验证每笔交易,而无需共享个人信息。
有效性证明有多种实现,包括但不限于SNARKs和STARKs,而欺诈证明也有多种实现,包括单次汇总和多轮汇总。
两种流行的ZK证明实现是SNARKs和STARKs。
SNARK是:
简洁的
非交互式的
知识的
论证
ZK SNARKs创建小型、快速可验证的知识论证(即计算上有效的密码学证明),无需超出证明本身的额外信息。
类似地,STARK是:
可扩展的
透明的
知识的
论证
SNARK和STARK之间的关键区别在于STARK的可扩展和透明特性。STARKs是可扩展的,因为它们的证明线性扩展,而SNARK证明仅以准线性扩展。因此,STARKs更适合于较大的交易。
此外,SNARKs是透明的,因为它们可以使用公开可验证的随机性来建立证明者与验证者之间的交互,而不是依赖于更加集中、可信的设置。
乐观 Rollup的两种主要类型分别是单轮和多轮汇总,由Optimism和Arbitrum使用。当验证者提交欺诈证明以挑战Optimism上的交易时,整个证明在EVM上运行,这一过程相对快速且简单,仅受限于一周的争议时延(DTD)。
另一方面,Arbitrum的欺诈证明验证过程依赖于交互式链下争议验证过程,索赔者和挑战者反复缩小交易的部分,经过多轮直至找到一处不一致的地方。
ZK证明和欺诈证明有多个不同之处,包括它们所需的计算量、验证交易所需的时间、安全性及其实现难度。
ZK证明固有地在数学上很难验证,通常需要强大的计算能力,因为真正的零知识验证过程所需的技术性要求很高。
每批的欺诈证明通常更便宜,大约需要40000 gas,而ZK SNARK证明需要500000 gas。然而,ZK SNARK在链上更便宜,因为乐观 Rollup需要将所有数据发布回主区块链,以便欺诈证明合法化或否定结果。
ZK和欺诈证明之间的一个主要区别是,尽管ZK证明立即验证交易,但欺诈证明具有固有的争议时间延迟(DTD),导致交易变慢。只有在未提交欺诈证明的情况下,该批次才会实际发布到以太坊。
由于ZK证明需要的交互最小(例如只是共享一个证明给验证者),并且这一过程可以安全地完成,因此它们非常去中心化。
此外,由于证明是零知识且完全准确,有效性证明保护用户隐私,降低了像51%攻击L1链等严重威胁的风险。
然而,乐观 Rollup要求验证者提交欺诈证明,这可能会被拦截或DDoS(分布式拒绝服务)以阻止交易状态挑战的通过。
尽管乐观 Rollup和因此而来的欺诈证明可以在任何EVM或乐观虚拟机(OVM)上工作,零知识证明和ZK汇总则需要被称为零知识以太坊虚拟机的专用虚拟机(zkEVMs)。这些虚拟机可以以适配ZK计算和密码学有效性证明的方式执行智能合约。
直到最近,zkEVMs被认为只是理论上可能的,即使现在,也很难包装EVM以支持ZK证明。然而,ZK领域的新发展正在让ZK证明的吞吐量和可扩展性提升。
最值得注意的是,Polygon正在创建其自己的汇总技术,它使用递归的ZK SNARKs以更高效的方式在链下进行交易,然后返回到主链。递归证明通过一次证明多个交易块,然后再证明一个汇总块来工作。
本质上,SNARKs是在证明其他SNARKs,最终在结束时得出一个交易结果,这比多个汇总交易更高效。Polygon的Polygon Zero使用Plonky2来创建这些递归证明,它是当前可用的最快速证明方案。
另一种选择是Validum,这是一种ZK汇总类型,其中数据不仅存储在链上,而是完全存储在链下。这一设置的风险因素是StarkEx运营商可以阻止访问或修改链下数据,但通过创建数据可用性委员会(DAC)来缓解,该委员会提供中立和诚实的数据存储。
直到最近,由于ZK证明难以实现且计算强度更大,欺诈证明和乐观 Rollup受到青睐,但零知识领域的各种新发展正在使ZK汇总比以往更容易获得。
随着越来越多的zkEVM的崛起,ZK汇总作为一种更加安全、无信息且非交互式的交易解决方案,正成为新兴的第二层扩展解决方案。
- 原文链接: alchemy.com/overviews/va...
- 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!