木星链 木星链
Ctrl+D收藏木星链
首页 > 币安币 > 正文

LAYER:Scroll 研究:zkEVM 的设计挑战和解决方案

作者:

时间:1900/1/1 0:00:00

概述

zk-Rollup是一种非常便宜且安全的以太坊二层扩展解决方案。然而,现有的zk-Rollup只限于特定应用程序使用,这使得开发人员在zk-Rollup中构建通用的可组合DApp和迁移现有应用程序变得困难。我们通过引入zkEVM生成zk证明用于EVM验证来构建完全兼容EVM的zk-Rollup,任何以太坊应用程序都可以轻松迁移到该zk-Rollup。

本文介绍zkEVM的设计挑战以及可行性,并提出了从零开始构建zkEVM的详细方案。

背景

zk-Rollup是公认的以太坊最佳扩容解决方案。不仅具有以太坊Layer1的安全性,并且与所有其他Layer2解决方案相比,交易速度最快。

从中长期来看,随着ZK-SNARK技术的改进,ZKrollups将在所有用例中胜出。—VitalikButerin

zk-Rollup的基本理念是将大量交易聚合到一个Rollup块中,并为链下的块生成简洁的证明。然后Layer1上的智能合约只需要验证zk-Rollup的证明并直接更新状态,无需重新执行那些交易。证明验证状态比重新执行计算的gas费用便宜很多,另外数据压缩利于降低gas费用,这样的交易流程节省一个数量级的gas费用。

尽管zk-Rollup安全高效,但很难构建通用DApp,其应用仍仅限于支付和互换,主要是以下两个原因:

首先,在zk-Rollup中开发DApp需要使用特殊的编程语言来编写智能合约的逻辑。该编程语言的语法复杂,而且要求开发者精通零知识证明。

其次,当前的zk-Rollup不支持可组合性。这意味着多个的zk-Rollup应用程序不能在Layer2内相互交互,极大地降低了DeFi应用程序的可组合性。

简而言之,目前zk-Rollup对开发人员不友好并且功能有限。我们希望解决这些问题,通过直接支持原生EVM验证,为开发人员提供快速开发体验,支持Layer2内应用程序的可组合性,以便现有的以太坊应用程序可以轻松迁移到zk-Rollup上。

基于Ethscriptions协议发行的代币交易量突破100万美元:6月27日消息,根据OpenSea的数据,自Ethscriptions协议于6月中旬推出以来,基于该协议发行代币的交易量已超过560枚ETH(价值100万美元)。

尽管如此,该协议目前仍处于高度投机阶段,缺乏明确的价值主张。不过其创建者Tom Lehman断言,Ethscriptions为以太坊NFT提供了一个具有成本效益的替代方案。

需要注意的是,基于Ethscriptions发行的代币并不完全像传统的NFT。它们不遵守ERC-721标准(以太坊上最常与NFT相关的标准),不能以同样的方式转让或出售。它们是永久记录在以太坊区块链上的数据的唯一表示。[2023/6/27 22:03:40]

在zk-Rollup中构建通用DApp

在zk-Rollup中有两种构建通用DApp的方法。

为不同的DApp构建专用电路

为智能合约执行构建一个通用的“EVM”编码

“电路”是指零知识证明中使用的程序表示方法。例如,如果要证明hash(x)=y,则需要使用ASIC电路重新编写散列函数。电路只支持非常有限的计算表达式和乘法)。因此,开发人员使用电路语言编写程序的过程非常困难,必须使用add和mul构建所有程序逻辑。

第一种方法要求开发人员为不同的DApp设计专门的“ASIC”电路,这需要使用零知识证明最原始的方式。通过设计定制电路减少每个DApp的成本。然而,由于电路是“静态的”,不能为应用提供可组合性,并且需要专业的电路设计知识,因此开发体验很糟糕。

第二种方法不需要任何特殊的设计或电路专业知识。这种基于机器证明的高级思想让任何程序可以在CPU上运行,因此开发者只需要构建一个通用的CPU电路来验证底层步骤。然后使用这个CPU电路来验证程序的执行。在此场景中,程序指的是智能合约,CPU则是EVM。但是,由于成本过高,过去几年并没有普遍采用这种方法。例如,即使开发者只想增加一个验证步骤,就需要承担整个EVM电路的成本。如果执行跟踪中有数千个步骤,那么EVM电路成本将是1000倍。

Uniswap社区新提案建议在Scroll测试网上部署Uniswap V3:11月29日消息,以太坊L2扩容方案Scroll已在Uniswap社区提交“在Scroll测试网上部署Uniswap V3”的提案,预计全面部署将需要2-3周时间。目前该提案在社区讨论阶段,快照投票将于12月1日开启。据悉,包括Lens、theGraph、Covalent、Empiric、Blockwallet、Ledger、Safe、Orbitor等数十个项目已承诺部署至Scroll测试网。团队预计将有100余个项目部署在无许可测试网上部署。[2022/11/29 21:09:18]

最近,有很多研究在按照这两种方法优化zk证明,包括:

提议新的零知识证明友好型语言Poseidonhash,其在电路中的效率是SHA256的100倍

通用可验证虚拟机,如TinyRAM

)越来越多的通用优化技巧,如Plookup,以及运行速度更快的密码学库。

我们之前建议为每个DApp设计“ASIC”电路,通过验证密码进行通信。但是,根据社区的反馈,我们改变了优先级,将重点关注在第二种方法,优先构建通用EVM电路。zkEVM将支持与Layer1完全相同的开发体验。我们不会将底层设计的复杂性留给开发人员,而是通过定制的EVM电路设计来解决效率问题。

zkEVM的设计挑战

zkEVM很难构建,与TinyRAM不同,zkEVM的设计和实现更具挑战性,原因如下:

首先,EVM对椭圆曲线的支持有限。目前,EVM仅支持BN254配对,不直接支持循环椭圆曲线,因此很难进行递归证明。其他专用协议在此限制下也很难使用,除非是EVM兼容的验证算法。

其次,EVM字长为256位。EVM在256位整数上运行,而zk证明在素数字段上工作。在电路内部进行“不匹配场算术”需要范围证明,这将在每个EVM步骤中增加大概100个约束,导致EVM电路尺寸扩大两个数量级。

Optimistic推出JavaScript中的合约模拟Smock v2:官方消息,以太坊二层扩容方案Optimistic Ethereum推出JavaScript中的合约模拟Smock v2,无需在Solidity中编写模拟合约。据Optimistic介绍,智能合约测试历来很困难或困惑,必须在Solidity中编写测试代码;必须重新编译测试合约才能改变测试;测试合约和目标合约共享相同的链状态。而Smock v2具有以下功能:伪造任何合约;操作任何合约函数;对调用进行断言;创建由真实合约支持的模拟;在模拟中操作变量等。[2021/8/12 1:50:38]

第三,EVM有很多特殊的操作码。EVM与传统VM不同的是有许多特殊的操作码,例如CALL,还有执行上下文和gas相关的错误类型。这将给电路设计带来新的挑战。

第四,EVM是基于堆栈的虚拟机。SyncVM(zksync)和Cario(starkware)架构在基于寄存器的模型,并定义了特定的IR/AIR。需要专门的编译器将智能合约代码编译成新的zk友好的IR。这种方法是语言兼容而不是原生EVM兼容,基于堆栈的模型和直接支持原生工具链更难实现。

第五,以太坊存储布局的成本太大。以太坊存储布局高度依赖Keccak和MPT,它们都不是zk友好类型,并且会产生高昂的成本。例如,Keccak哈希的电路大小是Poseidonhash的1000倍。但是,如果将Keccak替换为另一个哈希,则会对现有的以太坊基础设施造成一些兼容性问题。

第六,基于机器的证明有高昂的成本。即使能够妥善处理上述所有问题,仍然需要找到一种有效的方法将它们组合在一起以获得完整的EVM电路。正如我在上一节中提到的,简单的操作码add可能会导致整个EVM电路的成本。

为什么zkEVM有可能实现?

两笔共10亿枚XRP从Ripple?Escrow钱包解锁 价值约15.9亿美元:Whale Alert数据显示,北京时间5月1日08:00,两笔共10亿枚XRP从Ripple?Escrow钱包解锁,价值约15.9亿美元,交易哈希分别为CADAD2EE7D319B2F59822A1BC4171EE185187E94096FBC3E946F041580D15BEE和2BC260584F241330B5A93FF7B87B9191355041937AA1AD0334052672524DE8DF。 注:按照惯例,Ripple 会在每个月的第一天解锁10亿枚XRP。但这些资金中的大部分通常会在同一天的晚些时候重新锁定在托管钱包中。[2021/5/1 21:15:35]

感谢研究人员在这方面取得的巨大进步,近两年来解决的效率问题越来越多,证明了zkEVM的可行性!主要的技术进步来自以下几个方面:

多项式承诺的使用。在过去的几年里,大多数零知识证明协议都在使用R1CS,PCP查询被编码到了特定于应用的受信任起步设置中。。这种情况通常会使电路会超出负载,并且无法进行自定义优化,因为每个约束的程度需要为2仅允许指数中的一次乘法)。开发者使用多项式承诺方案可以通过通用设置或者透明设置将约束提升到任何程度,大幅提高后端的选择的灵活性。

数据表查询参数和自定义小工具。优化数据表查询参数首先由Arya中提出,然后在Plookup中进行优化。这可以为zk不友好的编程语句省略很多按位运算。定制小工具可以让开发者高效地进行高度约束。TurboPlonk和UltraPlonk定义了优雅的语法,以便开发者更轻松地使用查询数据表和自定义小工具。这对于减少EVM电路的成本非常有帮助。

递归证明的可行性越来越高。在过去递归证明依赖于特殊的循环椭圆曲线,需要大量的成本。目前更多的技术在不牺牲效率的前提下改变这种依赖情况。例如,Halo可以配对友好椭圆曲线,并使用特殊的内积参数来分摊递归成本。Aztec表明可以直接对现有协议进行聚合证明。这种方法可以极大地提高电路负载量的可扩展性。

两笔共10亿枚XRP从Ripple?Escrow钱包解锁 价值约4.16亿美元:Whale Alert数据显示,北京时间3月1日08:00,两笔共10亿枚XRP从Ripple?Escrow钱包解锁,价值约4.16亿美元,交易哈希分别为5D81B5C346FBCC6DDE06F30810BA01B1D1141A1198B7F84E58C836645CDE83D6和17DD3E166702B1D7A2206DDAA31372870EA5F8A5A7D0F4FA2AC12B995A9CE08E。注:按照惯例,Ripple 会在每个月的第一天解锁10亿枚XRP。但这些资金中的大部分通常会在同一天的晚些时候重新锁定在托管钱包中。[2021/3/1 18:02:07]

硬件加速更加高效。我们制造了GPU和ASIC/FPGA加速器,并且关于ASIC证明者的论文已经被最大的计算机会议接受。GPU证明器比Filecoin的实现快大约5到10倍。这将大幅提高证明器的计算效率。

zkEVM是如何工作的,如何建造它呢?

除了强大的直觉和技术改进之外,我们还需要更清楚地知道我们需要证明什么,并制定出更具体的架构。我们将在后续文章中介绍更多技术细节和比较。在这里,我们描述了总体工作流程和一些关键思想。

开发人员和用户的工作流程

开发人员可以使用任何与EVM兼容的语言来运行智能合约,并将编译后的字节码部署在Scroll上。然后,用户可以发送交易与智能合约进行交互。用户和开发者的体验将与Layer1完全相同。但是,gas费用显着降低,并且在Scroll上的交易订单即时预先确认。

zkEVM的工作流程

即使Layer1和Layer2表面上的工作流程没有太多差别,但二者的底层处理过程完全不同:Layer1依赖于智能合约的重新执行;Layer2依赖于zkEVM电路的有效性证明。

让我们更详细地解释Layer1和Layer2交易的情况有何不同。

在Layer1,智能合约的字节码存储在以太坊存储中,交易将在P2P网络中广播。对于每个事务,每个全节点都需要加载相应的字节码并在EVM上执行以达到相同的状态。

Layer2的智能合约字节码也以相同的方式进行操作,但后续步骤是交易将在链下发送到一个集中的zkEVM节点。然后,zkEVM执行字节码并生成一个简洁的证明,以证明在应用交易后状态已正确更新。最后,Layer1合约将验证证明并更新状态,而无需重新执行交易。

让我们深入了解一下执行过程,看看zkEVM最终需要证明什么。在原生执行中,EVM首先加载字节码,然后从头开始逐个执行字节码中的操作码,对每个操作码执行以下三个子步骤:

从堆栈、内存或存储中读取元素

对这些元素执行一些计算

将结果写回堆栈、内存或存储。例如,add操作码需要从堆栈中读取两个元素,将它们相加并将结果写回堆栈。

所以zkEVM的证明需要包含与执行过程相对应的以下几个方面:

字节码从存储中正确加载

字节码中的操作码逐个执行

每个操作码都正确执行

zkEVM设计亮点

在设计zkEVM的架构时,我们需要处理/解决上述三个问题。

第一,为密码验证器设计一个电路。这部分就像一个“可验证的存储”,我们通过使用密码验证器这种技术手段来保证验证结果的正确性。以默克尔树为例,部署的字节码将作为叶节点存储在Merkle树中。然后验证者可以使用简洁的证明来验证从给定地址加载的字节码。对于以太坊存储,则需要电路兼容MerklePatriciaTrie和Keccak哈希函数。

第二,设计一个电路来将字节码与真实的执行产生关联。将字节码转移到静态电路中会带来一个问题:像jump这样的条件式操作码可能会跳转到任何地方。在某个人使用特定输入运行该字节码之前,跳转目的地都是不确定的。这就是为什么我们需要验证实际的执行踪迹。执行踪迹可以被认为是“展开的字节码”,包含按实际执行顺序排列的操作码。

证明者将直接提供执行踪迹作为电路的见证数据。我们需要证明该执行追踪是通过特定字节码使用特定的输入“展开”的工作,目的是强制让程序计数器的值保持一致。针对目的地不确定的问题,解决思路是让证明者提供一切数据。然后通过查找参数高效地检查一致性。

第三,为每个操作码设计电路。这是最重要的部分,证明执行跟踪中的每个操作码都是正确且一致的。如果将所有东西直接放在一起,将会带来高昂的成本。这里的优化方案是:

1)我们将读写和计算分成两个证明。一个证明会将所有操作码用到的元素都放到“总线”中,另一个证明会证明对“总线”上元素的计算是正确执行的。这会大幅降低每个部分的成本。前者被称为“状态证明”,后者被称为“EVM证明”。另一个发现是,查找声明可以有效处理“总线映射”。

2)我们可以为每个操作码设计度数更高的定制化约束。我们可以选择是否根据需求通过一个选择符多项式来“打开”一个约束。这样可以避免每个操作都要消耗整个EVM电路的成本。

这个架构最初由以太坊基金会提出,依然处于早期阶段,正在积极开发中。我们正在与以太坊基金会进行密切合作,旨在找到最佳方式实现该EVM电路。迄今为止,我们已经定义了EVM电路最重要的特点,并实现了一些操作码。更详细的内容将在后续文章中介绍。我们推荐感兴趣的读者阅读这篇文档。开发流程将是透明化的。这将是集整个社区之力的完全开源的设计。希望会有更多人加入进来,贡献出一份力量。

zkEVM还能带来什么?

zkEVM远不仅仅是Layer2扩容。我们可以将它理解为通过Layer1有效性证明扩展以太坊Layer1的直接方式。这意味着不需要任何特殊的Layer2就可以扩展现有的Layer1。

例如开发者可以将zkEVM当作全节点来使用,该证明可以用来直接证明现有状态之间的转换。所有Layer1交易无需将任何东西迁移到Layer2上,你可以直接证明!更宽泛地来说,你可以使用zkEVM为整个以太坊生成简洁证明,就像Mina那样。唯一需要增加的东西是证明递归。

结论

zkEVM可以为开发者和用户提供相同的体验。在不牺牲安全性的情况下,它的价格要便宜几个数量级。已经提出了以模块化方式构建它的架构。它利用最近在零知识证明方面的突破来减少成本。我们期待看到更多的人加入zkEVM社区,与我们一起集思广益!

备注:

:?Starkware于2021年9月1日的公告中声明已实现可组合性。

:电路是固定且静态的。例如,在将一个程序实现为电路时,你无法使用可变上限循环。上限必须固定为最大值。电路无法处理动态逻辑。

:为便于读者理解,我们在这里详细说明EVM电路的成本。正如前文所言,电路是固定且静态的。因此,EVM电路需要包含所有可能的逻辑。这就意味着,即使你只想证明add,你依然需要负担该EVM电路中可能包含的所有逻辑的成本。也就是说,成本被放大了10000倍。在执行追踪中,你需要证明一连串操作码,而且每个操作码都会带来高昂的成本。

:EVM本身并没有与默克尔-帕特里夏树紧密绑定。目前,MPT仅用于存储以太坊状态。要换一个很容易。

:这是经过高度简化的抽象概念。从技术上来说,“EVM状态”的名单更长,包括程序计数器、gas余量、调用栈、一组日志和交易范围变量。我们可以另外引入针对不同调用环境的标识符来直接支持可组合性。:由于存储量很大,我们使用累加器进行存储。内存和堆栈可以使用可编辑的Plookup。

:将一个完整的递归证明添加进zkEVM电路并非易事。实现递归的最好方式还是使用循环椭圆曲线。我们需要引入某种“包装”过程让递归在以太坊Layer1上可验证。

编译:饼干,链捕手

标签:LAYERROLROLL以太坊LAYERX价格TROLL价格TROLLBNB以太坊币今日价格行情查询

币安币热门资讯
加密货币:欧洲央行执委会成员:避免加密市场重蹈美国狂野西部时代的覆辙

混乱是一个阶梯,加密资产应该在明确、受监管的边界内使用,并用于为社会增加价值的目的。170年前,美国的牛仔们一路向西,在淘金热中寻找他们的财富。贪婪和无法无天将这片应许之地变成了狂野的西部.

1900/1/1 0:00:00
区块链:金色早报 | 马斯克回应狗狗币创始人:使用狗狗币给创作者小费会“很好”

头条▌马斯克回应狗狗币创始人:使用狗狗币给创作者小费会“很好”金色财经报道,Dogecoin创始人ShibetoshiNakamoto发推称,为dogecoin增加有用的事情.

1900/1/1 0:00:00
NEAR:开始起飞了 重新想象Near「无限可扩展性」的叙事

最近关注Near的人很多,起因也有很多。从顶级机构那里募资3.5亿美元,生态项目接连融资,推出算法稳定币USN……这些处在不同层面的动作都指向了同一个方向——Near开始起飞了.

1900/1/1 0:00:00
WEB:金色观察|a16z全面解析Web3 安全性:攻击类型和经验教训

web3的大量安全性依赖于区块链做出承诺和对人为干预具有弹性?的特殊能力。但最终性的相关特征——交易通常是不可逆的——使得这些软件控制的网络成为攻击者的诱人目标.

1900/1/1 0:00:00
FOM:美联储利率上调50个基点 三大指数短线跳升

美国总统拜登在白宫就美国经济现状和通胀压力发表讲话。拜登表示,在本财政年度结束前,美国政府将再削减1.5万亿美元的联邦赤字,“这将是美国历史上单年赤字降幅最大的一年”.

1900/1/1 0:00:00
NFT:前5月NFT收藏者向市场发送370亿美元 与去年全年持平

原标题:2022年NFT收藏者向市场发送370亿美元?几乎与2021全年持平今年(截至5月1日),非同质化代币(NFT)的收藏者已经向NFT市场发送了超过370亿美元的价值.

1900/1/1 0:00:00