V神:分析当前4种不同类型ZK-EVM的优缺点及未来展望_HOP:区块链

最近有许多“ZK-EVM”项目高调发布公告,但并不是每一个项目的“等效性”都一样。这篇文章将尝试描述EVM等价性的不同“类型”的分类,以及尝试实现每种类型的好处和成本。

作者:VitalikButerin

转自:《V神:不同类型ZK-EVM的未来》byBlockunicorn

最近有许多“ZK-EVM”项目高调发布公告。Polygon开放了他们的ZK-EVM项目,ZKSync发布了他们的ZKSync2.0计划,相对较新的Scroll最近也发布了他们的ZK-EVM。还有来自隐私和拓展探索的团队、NicolasLiochon等人的团队的持续努力,从EVM到Starkware的zk友好语言Cairo的alpha编译器,当然有一些项目我会错过。

所有这些项目的核心目标都是相同的:使用ZK-SNARK技术来对类似以太坊的交易执行进行加密证明,要么让验证以太坊链本身变得更容易,要么构建与以太坊提供的内容(接近)相同但可扩展性更强的zkrollup。但这些项目之间存在着微妙的差异,以及它们在实用性和速度之间的权衡。这篇文章将尝试描述EVM等价性的不同“类型”的分类,以及尝试实现每种类型的好处和成本。

概述(图表形式)

V神:跨链桥存在“基本安全限制”:金色财经报道,1月8日,以太坊联合创始人兼核心开发人员 Vitalik Buterin 今天在推特上转发了一个 Reddit 帖子链接,其中他讨论了对多链未来的信念,但对跨链生态系统表示怀疑。Vitalik Buterin认为“跨链桥存在基本安全限制”并解释说,他不同意当区块链遭受 51% 攻击时所有安全机制都会失败的想法,51% 攻击的目标是通过控制超过 50% 的网络挖矿哈希率或计算能力来操纵在区块链中注册的交易的完整性。

Vitalik Buterin表示,在 51% 攻击的情况下,攻击者不能提出一个带走某人 ETH 的区块,因为这样的区块会违反共识规则,因此会被网络拒绝。换句话说,他认为,即使 99% 的算力被用于非法拿走另一个钱包的 ETH,节点也会简单地遵循剩余 1% 的链,因为它是唯一遵循协议规则的区块集,因此“诚实”的区块将始终保持状态的一致性。Vitalik Buterin认为,当用户将资产从他们的本地区块链连接到非本地区块链时,问题就会出现,他写道:““如果以太坊受到 51% 的攻击并恢复,Arbitrum 和 Optimism 也会恢复,因此即使以太坊受到 51% 的攻击,在 Arbitrum 和 Optimism 上保持状态的“cross-rollup”应用也可以保证保持一致。如果以太坊没有受到 51% 攻击,那么 51% 攻击就无法分别攻击 Arbitrum 和 Optimism。”

Vitalik Buterin总结称,他并不认为这些问题会立即出现,但随着跨链桥中持有的加密货币数量的增加,攻击它们的动机也会增加。[2022/1/8 8:34:18]

类型1

V神:关注预测市场的人对今天的大选进程“不太惊讶”:推特网友DCinvestor.eth称,昨日,市场预测在几个点上都大错特错,没人知道谁还是对的。对此V神刚刚回复称,我想说人类一般都错得离谱。当人类大错特错的时候,没有一种机制能把正确性从魔法帽子里拔出来。但我确实认为,关注预测市场的人对今天发生的一切“不太惊讶”。今日早前消息,V神再次发推表示看好市场预测类DeFi项目。[2020/11/4 11:39:22]

类型1ZK-EVM力求完全和毫不妥协的等效于以太坊。它们不改变以太坊系统的任何部分,以使生成证明更容易。它们不会取代哈希、状态树、事务树、预编译或任何其他共识逻辑,无论它有多么外围。

优势:完美的兼容性

我们的目标是能够像现在一样验证以太坊区块,或者至少验证执行层(因此,信标链共识逻辑不包括在内,但包括所有的交易执行和智能合约和账户逻辑)。

类型1:ZK-EVM是我们最终需要的,使以太网第1层本身更具可扩展性。从长远来看,在类型2或类型3ZK-EVM中测试出的对以太的修改可能会被引入到以太本身,但这样的重新设计伴随着它自己的复杂性。

类型1:ZK-EVM也是汇总的理想选择,因为它们允许汇总重复使用大量基础设施。例如,EtherumExecution客户端可以按原样使用来生成和处理ROLLUP块(或者至少,一旦实现提取,它们就可以被重新使用,并且该功能可以被重用以支持存放到ROLLUP中的ETH),因此块资源管理器、块生产等工具非常容易重用。

劣势:验证时间

V神:以太坊2.0需要很长时间 各方批评激发了改善工作:8月12日消息,推特网友Sabin P提问称,可扩展性非常重要,这就是人们在ETH中等待多年的原因。今天的技术最终将成为绝对的未来,但是你不认为2.0会花费很多时间吗?V神回复称,是的,2.0需要很长时间。这就是为什么我很高兴我们终于有了测试网,并且同时拥有其他扩展技术如rollups。此外他还称,对以太坊肯定有批评,但我敢肯定,以太坊的人也知道其中绝大部分,这些批评激发了大家为改善局面所做的工作。[2020/8/12]

以太坊最初并不是围绕zk友好性设计的,所以以太坊协议的许多部分需要进行大量的计算来验证zk。类型1的目标是完全复制以太坊,所以它没有办法缓解这些低效率。目前,以太坊区块的证明需要许多小时来产生。这种情况可以通过巧妙的工程来大规模并行化验证器,或者从长远来看,可以通过ZK-SNARK专用集成电路来缓解。

构建者是谁?

隐私和扩展探索团队ZK-EVM正在构建类型1?ZK-EVM。

类型2?(完全等效EVM)

类型2ZK-EVM力求完全等价于EVM,但不完全等价于以太坊。也就是说,它们“从内部”看起来完全像以太坊,但它们在外部有一些不同,特别是在数据结构上,如块结构和状态树。

其目标是与现有应用程序完全兼容,但对以太坊进行一些小的修改,以使开发更容易,并更快地生成证明。

优势:在虚拟机级实现完全对等

类型2ZK-EVM对保存以太状态等内容的数据结构进行更改。幸运的是,这些结构是EVM本身不能直接访问的,因此在Etherum上工作的应用程序几乎总是在类型2ZK-EVM汇总上工作。您将不能按原样使用EtherumExecution客户端,但您可以通过一些修改使用它们,并且您仍然可以使用EVM调试工具和大多数其他开发人员基础设施。

声音 | V神:以太坊2.0将注入可扩展数据层来检测并惩罚欺诈活动:近日,以太坊联合创始人Vitalik Buterin表示,从长期来看,以太坊2.0将注入可扩展的数据层来检测和惩罚欺诈活动,但是在短期内,以太坊可以立即开始使用现有区块链来开发相关技术,尤其是那些交易费用低于以太坊的区块链可以被用作为数据层。Vitalik Buterin暗示了以太坊内部代币和区块链基础设施的成本更高,因为它具有相对较高的数据吞吐量和较低的交易费用。[2019/7/16]

但也有少数例外。对于验证历史以太块的Merkle证明以验证关于历史交易、收据或状态的声明的应用程序,出现了一种不兼容性(例如,桥梁有时会这样做)。用不同的散列函数取代Keccak的ZK-EVM将打破这些证明。然而,我通常建议不要以这种方式构建应用程序,因为未来的以太更改(例如。VerkleTrees)甚至在以太本身上也会破坏这样的应用。对以太坊本身来说,一个更好的替代方案是添加未来可靠的历史访问预编译。

缺点:改进了验证时间,但仍然很慢

类型2ZK-EVM提供比类型1更快的验证时间,主要是通过移除依赖于不必要的复杂和不友好的ZK加密的以太堆栈的部分。特别是,它们可能会改变Etherum的Keccak和基于RLP的MerklePatricia树,可能还会改变区块和接收结构。类型2ZK-EVM可能会使用不同的哈希函数,例如,Poseidon。另一个自然的修改是修改状态树以存储代码散列和keccak,从而不再需要验证散列来处理EXTCODEHASH和EXTCODECOPY操作码。

V神:我个人对跨链交流并不感冒:今日V神在王峰十问上表示:我知道有些团队正致力于跨链交流,但我个人对此并不感冒。[2018/6/22]

这些修改显著提高了验证时间,但它们不能解决所有问题。由于EVM固有的低效性和对zk的不友好性,证明EVM原样的过程仍然很缓慢。一个简单的例子是内存:因为MLOAD可以读取任何32字节,包括“未对齐”的块(其中开始和结束不是32的倍数),MLOAD不能简单地解释为读取一个块;相反,它可能需要读取两个连续的块,并执行位操作来合并结果。

构建者是谁?

Scroll的ZK-EVM项目正朝着2型ZK-EVM的方向发展,正如PolygonHermez一样。也就是说,这两个项目都还没有完成;特别是,许多更复杂的预编译还没有实现。因此,目前两个项目都最好考虑类型3。

2.5类型(与evm相当,不包括gas费用)

显著改善最坏情况验证时间的一种方法是大幅增加EVM中很难证明的特定操作的费用成本。这可能涉及预编译、KECCAK操作码,还可能涉及调用约定或访问内存、存储或恢复的特定模式。

不断变化的gas费用成本可能会降低开发人员工具的兼容性,并破坏了一些应用程序,但通常认为这比“更深层次的”EVM更改风险更小。开发人员应该注意,在交易中需要的gas费用不要超过区块的容量,不要使用硬编码的gas费用数量进行调用(这已经是很长时间以来对开发人员的标准建议)。

类型3(几乎等同于EVM)

第3型zk-EVM几乎同等于EVM,但为了实现完全相同,需要做出一些牺牲,以进一步提高验证时间并使EVM更容易开发。

优点:更容易构建,验证时间更快

类型3ZK-EVM可能会删除一些在ZK-EVM实现中特别难实现的功能。在这里,预编译通常位于列表的顶部;此外,类型3ZK-EVM在处理合约代码、内存或堆栈的方式上有时也有细微的差异。

缺点:更多的不兼容

类型3ZK-EVM的目标是与大多数应用程序兼容,其余部分只需要最少的重写。也就是说,有些应用程序需要重写,要么是因为它们使用了类型3ZK-EVM删除的预编译,要么是因为对边缘情况的微妙依赖,而这些边缘情况是由EVM以不同的方式处理的。

构建者是谁?

Scroll和Polygon目前形式都是类型3,尽管随着时间的推移,他们有望改善兼容性。Polygon有一个独特的设计,他们用ZK验证自己的内部语言zkASM,并使用zkASM实现解释ZK-EVM代码。尽管有这样的实现细节,我仍然将其称为真正的Type3ZK-EVM;它仍然可以验证EVM代码,只是使用了一些不同的内部逻辑来完成。

今天,没有ZK-EVM团队想要成为类型3;类型3只是一个过渡阶段,直到添加预编译的复杂工作完成,项目可以转移到类型2.5。然而,在未来,类型1或类型2ZK-EVM可能会自愿成为类型3ZK-EVM,方法是添加新的ZK-SNARK友好预编译器,为开发人员提供低验证时间和gas费用成本的功能。

类型4(相当于高级语言)

类型4系统的工作方式是采用用高级语言编写的智能合同源代码(例如,SOLIDITY、VYPER或某种两者都编译为的中间语言),并将其编译成某种明确设计为ZK-snark友好的语言。

优点:验证时间非常快

通过不使用ZK来证明每个EVM执行步骤的所有不同部分,并直接从更高级别的代码开始,可以避免很多开销。

我在这篇文章中只用一句话描述了这一优点(与下面与兼容性相关的缺点的大项目符号列表相比),但这不应被解释为价值判断!直接从高级语言编译确实可以极大地降低成本,并通过使其更容易成为证明者来帮助分散。

缺点:更多的不兼容

一个用Vyper或Solidity编写的“正常”应用程序可以被编译下来,它会“正常工作”,但有一些重要的方面,很多应用程序不是“正常工作”的:

-合约在类型4系统中的地址可能不同于它们在EVM中的地址,因为CREATE2协定地址取决于确切的字节码。这打破了依赖于尚未部署的“反事实合同”、ERC-4337钱包、EIP-2470单例和许多其他应用程序的应用程序。

-手写的EVM字节码更难使用。为了提高效率,许多应用程序在某些部分使用手写EVM字节码。类型4系统可能不支持它,尽管有一些方法可以实现有限的EVM字节码支持来满足这些用例,而不需要努力成为一个完整的Type3ZK-EVM。

-许多调试基础设施不能继续,因为这些基础设施运行在EVM字节码上。也就是说,通过更多地从“传统”高级或中间语言访问调试基础设施,这一缺点得到了缓解(例如,LLVM)。

开发人员应该注意这些问题。

构建者是谁?

ZKSync是一个类型4的系统,尽管随着时间的推移,它可能会增加对EVM字节码的兼容性。NetherMind的Warp项目正在构建一个从Solidity到Starkware的Cairo编译器,这将把StarkNet变成事实上的类型4系统。

ZK-EVM类型的未来

这些类型并不是明确地比其他类型“更好”或“更差”。相反,它们在权衡空间上是不同的点:编码难度较低的类型与现有基础设施更兼容,但速度较慢;编码难度较高的类型与现有基础设施不太兼容,但速度更快。总体而言,所有这些类型的人都在探索,这对这个领域是健康的。

-ZK-EVM可以从类型3开始,决定不包括一些特别难ZK-证明的功能。稍后,他们可以随着时间的推移添加这些功能,并转移到类型2。

-ZK-EVM可以从类型2开始,然后通过提供在全以太兼容模式下运行或使用可以更快证明的经修改的状态树的可能性而变成混合型2/类型1ZK-EVM。Sroll正在考虑朝这个方向发展。

-从类型4开始的系统可能会随着时间的推移而变成类型3,因为后来添加了处理EVM代码的能力(尽管仍鼓励开发人员直接从高级语言编译,以减少费用和验证时间)。

-如果Etherum本身采用其修改以努力变得对ZK更友好,则类型2或类型3ZK-EVM可以成为类型1ZK-EVM。

-类型1或类型2的ZK-EVM可以通过添加预编译器来验证ZK-SNARK友好语言中的代码,从而成为类型3?ZK-EVM。这将让开发人员在以太兼容性和速度之间做出选择,这将是类型3,因为它打破了完美EVM的同等性,但从实际目的和目的来看,它将具有类型1和类型2的许多好处。主要缺点可能是一些开发人员工具不理解ZK-EVM的定制预编译,尽管这是可以修复的:开发人员工具可以通过支持包括预编译的EVM代码等价实现的配置格式来添加通用预编译支持。

就我个人而言,我希望随着时间的推移,所有的东西都会变成类型1,通过改进ZK-EVM和改进以太本身来使其更适合ZK-Snark。在这样的未来,我们将有多个ZK-EVM实现,既可以用于ZK汇总,也可以用于验证以太链本身。从理论上讲,以太坊没有必要为L1使用的单个ZK-EVM实现进行标准化;不同的客户端可以使用不同的证明,因此我们继续受益于代码冗余。

然而,我们需要相当长的时间才能达到这样的未来。与此同时,我们将在扩展以太坊和基于以太坊的ZK-汇总的不同途径上看到许多创新。

作者:PA荐读

来源:panewslab

来源:金色财经

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

金智博客

SHIBHipHopDoge - 嘻哈 Doge征服世界舞台_HOP:xNFT币

HipHopDoge,嘻哈狗由一支出色的团队所带领,具有出色的工作效率,一同向着一个改革性的最终目标努力前进!旨在将元宇宙连接到我们日常生活中!在这个时代,互动对于下一次演变至关重要.

[0:0ms0-3:587ms