# Validity Rollups: 以太坊扩容的最佳选择Validity Rollups(又称zk-rollups)被认为是当前最有希望安全、去中心化地提升以太坊吞吐量的方案。这种扩容解决方案的核心在于使用有效性证明进行可验证计算。其工作原理如下:运营商将交易执行卸载到链下环境(即第2层)进行处理。处理大量交易后,第2层运营商将结果返回以太坊主网,同时附上验证链下执行完整性的有效性证明。这个证明能够保证批次中的所有交易都是有效的,并由链上验证者合约自动验证。这使得以太坊能够将结果应用到其状态中。值得注意的是,Validity Rollups 通常被误称为零知识汇总,但这并不准确。大多数 Validity Rollup 实际上并不使用零知识证明,也不用于隐私保护目的。因此,使用"Validity Rollup"这一术语更为恰当。## 链下虚拟机在探讨之前,我们需要先了解什么是虚拟机(VM)。简而言之,VM是一个可以运行程序的环境,就像在Mac上运行Windows操作系统一样。它在执行某些输入的计算后在不同状态之间转换。以太坊虚拟机(EVM)就是用于运行以太坊智能合约的VM。零知识虚拟机(zkVM)是一种特殊的程序执行环境,它不仅能执行程序,还能生成易于验证的有效性证明,以证明程序已正确执行。"zkEVM"这个术语通常指的是能够利用以太坊虚拟机(EVM)并证明EVM执行的rollup系统。这个术语可能会引起误解,因为EVM本身并不生成这些证明;相反,证明是由一个独立的证明机制生成的,该机制以EVM执行的结果为基础。此外,这些证明主要关注有效性而非隐私,因此并不完全是零知识证明。尽管如此,为了保持一致性,我们在本文中仍将使用传统的"zkEVM"术语。虽然所有Validity Rollups都旨在利用有效性证明来扩展以太坊,但它们在选择执行链下交易的VM方面存在差异。许多Validity Rollups选择复制EVM的设计(因此被称为"zkEVM rollups"),试图在L2 rollup上复制以太坊的功能。而Starknet则使用了一种新的VM——Cairo VM(CVM),专门设计用于优化有效性证明的效率。这两种方法各有优缺点。zkEVM以性能为代价换取了以太坊的兼容性,而Cairo VM则将性能置于兼容性之上,优先考虑扩展能力。## zkEVM的方法zkEVM是一种Validity Rollup,其目标是将完整的以太坊体验带到Layer-2区块链上。它旨在为rollup复制以太坊的开发人员环境。借助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解决方案不同,Starknet采用了另一种方法:使用全新的专用虚拟机,并在其上添加对以太坊工具的支持作为附加层。Starknet于2021年11月推出,是第一个在完全可组合的网络上提供通用智能合约平台的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。有两种方法可以实现这一点: - 转译:Nethermind团队创建了Warp转译器,用于将Solidity代码转译到Cairo。Warp使Solidity智能合约可移植到Starknet,有效地使其成为Type 4 zkEVM。它已经被用于转译和部署Uniswap合约,只需进行极小的改动。 - Starknet上的zkEVM:Cairo VM可用于证明另一个VM的执行。Kakarot是一个用Cairo编写的zkEVM,可用于在Starknet上运行以太坊智能合约。尽管存在时间较短,但Cairo已成为TVL排名第四的最受欢迎的智能合约语言,并且已经获得超过3.5亿美元的资金支持。## 总结zkEVM旨在将以太坊环境复制为rollup,并允许开发人员使用熟悉的以太坊工具。然而,这种方法限制了有效性证明的全部潜力,并且可能是资源密集型的。Cairo VM专为有效性证明系统而设计,不受EVM的限制。它由一种新的、安全且符合人体工程学的Rust启发的编程语言Cairo 1.0支持,形成了一个强大的工具,旨在通过使用STARK证明扩展以太坊来获得最大效率。随着Cairo不断取得进展,以及Kakarot zkEVM和Warp等不同开发选择的增长,未来发展令人期待。随着Starknet dApp进入生产阶段,展示了Cairo的强大功能,我们相信它将在未来用于更具雄心的项目。得益于STARK扩展的多种途径,以及未来几个月内可能出现的其他方案,开发人员现在对区块链扩展拥有前所未有的控制权。
Validity Rollups: 揭秘以太坊扩容新趋势
Validity Rollups: 以太坊扩容的最佳选择
Validity Rollups(又称zk-rollups)被认为是当前最有希望安全、去中心化地提升以太坊吞吐量的方案。这种扩容解决方案的核心在于使用有效性证明进行可验证计算。其工作原理如下:
运营商将交易执行卸载到链下环境(即第2层)进行处理。处理大量交易后,第2层运营商将结果返回以太坊主网,同时附上验证链下执行完整性的有效性证明。这个证明能够保证批次中的所有交易都是有效的,并由链上验证者合约自动验证。这使得以太坊能够将结果应用到其状态中。
值得注意的是,Validity Rollups 通常被误称为零知识汇总,但这并不准确。大多数 Validity Rollup 实际上并不使用零知识证明,也不用于隐私保护目的。因此,使用"Validity Rollup"这一术语更为恰当。
链下虚拟机
在探讨之前,我们需要先了解什么是虚拟机(VM)。简而言之,VM是一个可以运行程序的环境,就像在Mac上运行Windows操作系统一样。它在执行某些输入的计算后在不同状态之间转换。以太坊虚拟机(EVM)就是用于运行以太坊智能合约的VM。
零知识虚拟机(zkVM)是一种特殊的程序执行环境,它不仅能执行程序,还能生成易于验证的有效性证明,以证明程序已正确执行。"zkEVM"这个术语通常指的是能够利用以太坊虚拟机(EVM)并证明EVM执行的rollup系统。这个术语可能会引起误解,因为EVM本身并不生成这些证明;相反,证明是由一个独立的证明机制生成的,该机制以EVM执行的结果为基础。此外,这些证明主要关注有效性而非隐私,因此并不完全是零知识证明。尽管如此,为了保持一致性,我们在本文中仍将使用传统的"zkEVM"术语。
虽然所有Validity Rollups都旨在利用有效性证明来扩展以太坊,但它们在选择执行链下交易的VM方面存在差异。许多Validity Rollups选择复制EVM的设计(因此被称为"zkEVM rollups"),试图在L2 rollup上复制以太坊的功能。而Starknet则使用了一种新的VM——Cairo VM(CVM),专门设计用于优化有效性证明的效率。
这两种方法各有优缺点。zkEVM以性能为代价换取了以太坊的兼容性,而Cairo VM则将性能置于兼容性之上,优先考虑扩展能力。
zkEVM的方法
zkEVM是一种Validity Rollup,其目标是将完整的以太坊体验带到Layer-2区块链上。它旨在为rollup复制以太坊的开发人员环境。借助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解决方案不同,Starknet采用了另一种方法:使用全新的专用虚拟机,并在其上添加对以太坊工具的支持作为附加层。Starknet于2021年11月推出,是第一个在完全可组合的网络上提供通用智能合约平台的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。有两种方法可以实现这一点:
转译:Nethermind团队创建了Warp转译器,用于将Solidity代码转译到Cairo。Warp使Solidity智能合约可移植到Starknet,有效地使其成为Type 4 zkEVM。它已经被用于转译和部署Uniswap合约,只需进行极小的改动。
Starknet上的zkEVM:Cairo VM可用于证明另一个VM的执行。Kakarot是一个用Cairo编写的zkEVM,可用于在Starknet上运行以太坊智能合约。
尽管存在时间较短,但Cairo已成为TVL排名第四的最受欢迎的智能合约语言,并且已经获得超过3.5亿美元的资金支持。
总结
zkEVM旨在将以太坊环境复制为rollup,并允许开发人员使用熟悉的以太坊工具。然而,这种方法限制了有效性证明的全部潜力,并且可能是资源密集型的。
Cairo VM专为有效性证明系统而设计,不受EVM的限制。它由一种新的、安全且符合人体工程学的Rust启发的编程语言Cairo 1.0支持,形成了一个强大的工具,旨在通过使用STARK证明扩展以太坊来获得最大效率。
随着Cairo不断取得进展,以及Kakarot zkEVM和Warp等不同开发选择的增长,未来发展令人期待。随着Starknet dApp进入生产阶段,展示了Cairo的强大功能,我们相信它将在未来用于更具雄心的项目。
得益于STARK扩展的多种途径,以及未来几个月内可能出现的其他方案,开发人员现在对区块链扩展拥有前所未有的控制权。