# Validity Rollups: 以太坊扩容的最佳解决方案?Validity Rollups (VRs),也称为zk-rollups,被认为是以安全和去中心化方式提升以太坊吞吐量的最具前景的方案。这种扩容解决方案的核心在于使用有效性证明进行可验证计算。其工作原理如下:运营商将交易执行转移到链下环境(第2层)进行处理。处理大量交易后,第2层运营商将结果返回以应用于以太坊状态,同时提供有效性证明以验证链下执行的完整性。该证明确保批次中的所有交易均有效,并由链上验证者合约自动验证。这允许以太坊将结果应用到其状态。需要注意的是,Validity Rollups通常被误称为零知识汇总,但这并不准确。大多数Validity Rollup并不使用ZKP,也不用于确保隐私。因此,"Validity Rollup"这一术语更为准确。## 链下虚拟机虚拟机(VM)是一个可以运行程序的环境,类似于在Mac上运行Windows操作系统。它在对某些输入执行计算后在状态之间转换。以太坊虚拟机(EVM)是运行以太坊智能合约的VM。零知识虚拟机(zkVM)是一种程序执行环境,它能够生成易于验证的有效性证明,以证明程序已正确执行。"zkEVM"通常指利用以太坊虚拟机(EVM)并能够证明EVM执行的汇总。这个术语可能有误导性,因为EVM本身并不生成这些证明;相反,证明是由一个单独的证明机制生成的,该机制以EVM执行的结果为起点。此外,这些证明关注的是有效性而非隐私,因此它们并非完全的零知识证明。尽管所有Validity Rollups都旨在利用有效性证明来扩展以太坊,但它们在选择VM来执行链下交易方面各有不同。许多Validity Rollups选择复制EVM的设计(因此被称为"zkEVM rollups"),试图在L2 rollup上复制以太坊。而另一种方案使用了专门设计的新型VM - Cairo VM (CVM),旨在优化有效性证明效率。这两种方法各有优缺点,但zkEVM以性能换取以太坊兼容性,而Cairo VM则将性能置于兼容性之上,优先考虑扩展能力。## zkEVM的方法zkEVM旨在将以太坊体验完整地引入Layer-2区块链。它的目标是将以太坊开发环境复制为汇总。借助zkEVM,开发人员在编写智能合约或将智能合约移植到更具可扩展性的解决方案时,无需更改代码或放弃其EVM工具(和智能合约)。这种方法的一个主要缺点是降低了有效性证明的扩展潜力。由于zkEVM致力于与以太坊兼容,因此速度较慢且资源密集度更高。与CVM不同,EVM在设计时并未考虑证明效率。这限制了可以提高效率和可扩展性的优化的使用,最终影响系统的整体性能。## EVM的可证明性挑战zkEVM方法的核心挑战源于EVM的原始设计 - 它并非为在有效性证明环境中运行而设计。因此,反映其功能的努力无法充分发挥有效性证明的潜力,导致效率不佳。这种低效率最终会影响系统的整体性能。EVM与有效性证明的兼容性受到以下因素的制约:1. EVM采用基于堆栈的模型,而有效性证明更适合基于寄存器的模型。EVM的堆栈特性增加了证明其执行正确性的难度,也使得为其原生工具链提供直接支持变得更加困难。2. 以太坊存储布局严重依赖Keccak和大型Merkle Patricia Tree,这两者都不利于有效性证明,并增加了大量证明负担。例如,Keccak在x86架构上运行很快,但需要90k步来证明。相比之下,对zk友好的Pedersen哈希函数只需32个步骤。即使使用递归压缩,在zkEVM中使用Keccak也意味着用户需要承担大量证明者资源成本。因此,各种zkEVM方案为以太坊工具提供了不同级别的支持 - zkEVM与以太坊的兼容性越高,性能就越差。## Cairo-VM的方法与zkEVM投入大量开发时间来"让EVM适应Validity Rollups"不同,Cairo-VM采用了全新的专用虚拟机设计,并在其之上添加对以太坊工具的支持作为附加层。这是于2021年11月推出的无需许可的Validity Rollup - Starknet所采用的方法。Starknet是第一个在完全可组合的网络上提供通用智能合约平台的Validity Rollup。Starknet使用Cairo-VM (CVM),这是一种同名的高级语言。Cairo-VM是专门为高效生成程序执行的有效性证明而设计的VM。使用Cairo(虚拟机和语言),我们获得了:1. 优化的有效性证明 - 每条指令都有一个有效的代数表示2. 用于编写可证明程序的类Rust语言3. 高级Cairo和Cairo汇编(VM指令)之间的中间表示(Sierra),允许高效执行Cairo代码开发新语言可以根据特定需求进行定制,并为其配备满足以前未满足需求的功能。## Cairo和编码多元化Cairo语言最初旨在简化生成有效性证明的过程,并使向StarkEx添加功能和复杂业务逻辑变得更容易。Cairo程序被编译成代数机器代码 - 一个数字序列 - 由固定的VM执行。有了Cairo,生成描述计算的数学约束的复杂性被抽象出来,并被固定的约束集(总共少于50个约束)捕获。因此,开发人员可以利用有效性证明来扩展他们的应用程序,而无需了解底层数学和基础设施,只需使用他们熟悉的语法编写代码即可。Starknet注重创新,这体现在其多元化的代码方法中。Cairo使用STARKs获得最佳扩展的能力不仅限于那些直接用Cairo编写合约的人。开发人员可以选择最适合他们的方法:1. 在Cairo中直接编写代码:随着Cairo 1.0的发布,开发人员现在可以使用符合人体工程学且安全的类Rust语言,这使得编写程序逻辑变得更加容易且不易出错。2. Solidity兼容性:Solidity开发人员可以编写Cairo VM可使用的代码。这种方法提供了与以太坊类似的开发体验,并使Solidity智能合约可移植到Starknet。有两种实现方式: - 转译:将一种编程语言的源代码转换为另一种语言。某团队创建了Warp转译器,用于将Solidity代码转译到Cairo。Warp使Solidity智能合约可移植到Starknet,有效地使其成为Type 4 zkEVM。它已被用于转译和部署某DEX合约,只需进行极小的改动。 - Starknet上的zkEVM:Cairo VM可用于证明另一个VM的执行。Kakarot是一个用Cairo编写的zkEVM,可用于在Starknet上运行以太坊智能合约。Cairo VM和zkEVM并非竞争方案,我们可以同时拥有Cairo VM和zkEVM!尽管存在时间很短,但Cairo已成为TVL排名第四的最受欢迎智能合约语言,并已获得超过3.5亿美元的资金支持。## 总结zkEVM旨在将以太坊环境复制为rollup,并允许开发人员使用熟悉的以太坊工具。然而,这种方法限制了有效性证明的全部潜力,且可能资源密集。Cairo VM专为有效性证明系统设计,不受EVM限制。它由一种新的、安全且符合人体工程学的类Rust编程语言Cairo 1.0支持,形成了一个强大的工具,旨在通过使用STARK证明实现最大效率的以太坊扩展。Cairo的持续进展,以及Kakarot zkEVM和Warp等多样化开发选择的增长,令人振奋。随着基于Cairo的应用进入生产阶段,展示了Cairo的强大功能,相信它将在未来用于更具雄心的项目。得益于STARK扩展的多种途径,以及未来几个月内必将出现的其他途径,开发人员现在对区块链扩展拥有前所未有的控制能力。
Validity Rollups: EVM与Cairo VM之争引领以太坊扩容新方向
Validity Rollups: 以太坊扩容的最佳解决方案?
Validity Rollups (VRs),也称为zk-rollups,被认为是以安全和去中心化方式提升以太坊吞吐量的最具前景的方案。这种扩容解决方案的核心在于使用有效性证明进行可验证计算。其工作原理如下:
运营商将交易执行转移到链下环境(第2层)进行处理。处理大量交易后,第2层运营商将结果返回以应用于以太坊状态,同时提供有效性证明以验证链下执行的完整性。该证明确保批次中的所有交易均有效,并由链上验证者合约自动验证。这允许以太坊将结果应用到其状态。
需要注意的是,Validity Rollups通常被误称为零知识汇总,但这并不准确。大多数Validity Rollup并不使用ZKP,也不用于确保隐私。因此,"Validity Rollup"这一术语更为准确。
链下虚拟机
虚拟机(VM)是一个可以运行程序的环境,类似于在Mac上运行Windows操作系统。它在对某些输入执行计算后在状态之间转换。以太坊虚拟机(EVM)是运行以太坊智能合约的VM。
零知识虚拟机(zkVM)是一种程序执行环境,它能够生成易于验证的有效性证明,以证明程序已正确执行。"zkEVM"通常指利用以太坊虚拟机(EVM)并能够证明EVM执行的汇总。这个术语可能有误导性,因为EVM本身并不生成这些证明;相反,证明是由一个单独的证明机制生成的,该机制以EVM执行的结果为起点。此外,这些证明关注的是有效性而非隐私,因此它们并非完全的零知识证明。
尽管所有Validity Rollups都旨在利用有效性证明来扩展以太坊,但它们在选择VM来执行链下交易方面各有不同。许多Validity Rollups选择复制EVM的设计(因此被称为"zkEVM rollups"),试图在L2 rollup上复制以太坊。而另一种方案使用了专门设计的新型VM - Cairo VM (CVM),旨在优化有效性证明效率。
这两种方法各有优缺点,但zkEVM以性能换取以太坊兼容性,而Cairo VM则将性能置于兼容性之上,优先考虑扩展能力。
zkEVM的方法
zkEVM旨在将以太坊体验完整地引入Layer-2区块链。它的目标是将以太坊开发环境复制为汇总。借助zkEVM,开发人员在编写智能合约或将智能合约移植到更具可扩展性的解决方案时,无需更改代码或放弃其EVM工具(和智能合约)。
这种方法的一个主要缺点是降低了有效性证明的扩展潜力。由于zkEVM致力于与以太坊兼容,因此速度较慢且资源密集度更高。与CVM不同,EVM在设计时并未考虑证明效率。这限制了可以提高效率和可扩展性的优化的使用,最终影响系统的整体性能。
EVM的可证明性挑战
zkEVM方法的核心挑战源于EVM的原始设计 - 它并非为在有效性证明环境中运行而设计。因此,反映其功能的努力无法充分发挥有效性证明的潜力,导致效率不佳。这种低效率最终会影响系统的整体性能。EVM与有效性证明的兼容性受到以下因素的制约:
EVM采用基于堆栈的模型,而有效性证明更适合基于寄存器的模型。EVM的堆栈特性增加了证明其执行正确性的难度,也使得为其原生工具链提供直接支持变得更加困难。
以太坊存储布局严重依赖Keccak和大型Merkle Patricia Tree,这两者都不利于有效性证明,并增加了大量证明负担。例如,Keccak在x86架构上运行很快,但需要90k步来证明。相比之下,对zk友好的Pedersen哈希函数只需32个步骤。即使使用递归压缩,在zkEVM中使用Keccak也意味着用户需要承担大量证明者资源成本。
因此,各种zkEVM方案为以太坊工具提供了不同级别的支持 - zkEVM与以太坊的兼容性越高,性能就越差。
Cairo-VM的方法
与zkEVM投入大量开发时间来"让EVM适应Validity Rollups"不同,Cairo-VM采用了全新的专用虚拟机设计,并在其之上添加对以太坊工具的支持作为附加层。这是于2021年11月推出的无需许可的Validity Rollup - Starknet所采用的方法。Starknet是第一个在完全可组合的网络上提供通用智能合约平台的Validity Rollup。
Starknet使用Cairo-VM (CVM),这是一种同名的高级语言。Cairo-VM是专门为高效生成程序执行的有效性证明而设计的VM。
使用Cairo(虚拟机和语言),我们获得了:
开发新语言可以根据特定需求进行定制,并为其配备满足以前未满足需求的功能。
Cairo和编码多元化
Cairo语言最初旨在简化生成有效性证明的过程,并使向StarkEx添加功能和复杂业务逻辑变得更容易。Cairo程序被编译成代数机器代码 - 一个数字序列 - 由固定的VM执行。有了Cairo,生成描述计算的数学约束的复杂性被抽象出来,并被固定的约束集(总共少于50个约束)捕获。因此,开发人员可以利用有效性证明来扩展他们的应用程序,而无需了解底层数学和基础设施,只需使用他们熟悉的语法编写代码即可。
Starknet注重创新,这体现在其多元化的代码方法中。Cairo使用STARKs获得最佳扩展的能力不仅限于那些直接用Cairo编写合约的人。开发人员可以选择最适合他们的方法:
在Cairo中直接编写代码:随着Cairo 1.0的发布,开发人员现在可以使用符合人体工程学且安全的类Rust语言,这使得编写程序逻辑变得更加容易且不易出错。
Solidity兼容性:Solidity开发人员可以编写Cairo VM可使用的代码。这种方法提供了与以太坊类似的开发体验,并使Solidity智能合约可移植到Starknet。有两种实现方式:
转译:将一种编程语言的源代码转换为另一种语言。某团队创建了Warp转译器,用于将Solidity代码转译到Cairo。Warp使Solidity智能合约可移植到Starknet,有效地使其成为Type 4 zkEVM。它已被用于转译和部署某DEX合约,只需进行极小的改动。
Starknet上的zkEVM:Cairo VM可用于证明另一个VM的执行。Kakarot是一个用Cairo编写的zkEVM,可用于在Starknet上运行以太坊智能合约。Cairo VM和zkEVM并非竞争方案,我们可以同时拥有Cairo VM和zkEVM!
尽管存在时间很短,但Cairo已成为TVL排名第四的最受欢迎智能合约语言,并已获得超过3.5亿美元的资金支持。
总结
zkEVM旨在将以太坊环境复制为rollup,并允许开发人员使用熟悉的以太坊工具。然而,这种方法限制了有效性证明的全部潜力,且可能资源密集。
Cairo VM专为有效性证明系统设计,不受EVM限制。它由一种新的、安全且符合人体工程学的类Rust编程语言Cairo 1.0支持,形成了一个强大的工具,旨在通过使用STARK证明实现最大效率的以太坊扩展。
Cairo的持续进展,以及Kakarot zkEVM和Warp等多样化开发选择的增长,令人振奋。随着基于Cairo的应用进入生产阶段,展示了Cairo的强大功能,相信它将在未来用于更具雄心的项目。
得益于STARK扩展的多种途径,以及未来几个月内必将出现的其他途径,开发人员现在对区块链扩展拥有前所未有的控制能力。