从合约部署的角度区分不同的 zkEVM_SOL:VSolidus

来源:pseudotheos.mirror.xyz

作者:Pseudotheos

以太坊虚拟机(EVM)是在以太坊区块链上管理状态和执行智能合约的虚拟机。zkEVMs旨在通过零知识电路来证明EVM的执行,这个领域在过去的一年里已经有了显著的增长并扩张为一个行业。在该领域涌现了许多不同的项目和社区,每个项目和社区都采取了自己独特的方案来应对这两种技术交叉带来的挑战和机遇。

对比不同zkEVM项目的一个维度是EVM的兼容程度。虽然EVM兼容是一个连续介质,但有两种主要的方案:语言层面的兼容和字节码层面的兼容。

Rusk Media宣布完成950万美元融资:金色财经报道,印度数字娱乐公司 Rusk Media Pvt Ltd 已在 A 轮融资中筹集了超过 950 万美元,用于推出基于区块链的 UGC 主导的游戏平台。总部位于首尔的 DAOL Investment 和 Audacity Ventures 领投,现有投资者 InfoEdge Ventures (IEV)、Mistry Ventures、Survam Partners 参与了本轮融资。[2022/8/22 12:41:22]

要理解这些方案之间的区别,很重要的一点是了解EVM如何执行用Solidity或Vyper等高级语言编写的代码。

俄罗斯国家杜马通过法律禁止使用数字金融资产进行支付:金色财经报道,俄罗斯联邦议会下议院国家杜马的多数人支持通过一项法案,禁止在俄罗斯联邦内使用数字金融资产 (DFA) 支付商品和服务。根据目前的俄罗斯立法,DFA 是唯一可以适用于加密货币的法律术语,直到立法者审查并通过旨在更全面地规范加密空间的专门法律草案“数字货币”。该禁令还影响实用的数字权利或代币。然而,报告指出,这些限制可能不适用于某些使用受其他联邦法律监管的实用代币的支付,或者如果原始协议中设想了某些交易以获取相应的数字权利。新立法还将 DFA 平台运营商归类为俄罗斯国家支付系统的主体。这意味着它们必须添加到俄罗斯中央银行 ( CBR ) 维护的特殊登记册中。(news.bitcoin)[2022/7/8 1:58:55]

为了使EVM能够运行智能合约所指定的行为,有这样一个过程:高级语言被编译成字节码,与EVM相连接。对于Solidity,典型的流程如下:

韩国当局将推动区块链平台基本法的制定:6月13日消息,韩国执政党国民力量政策委员会委员长成一钟在今日举行的“恢复虚拟资产市场公平和投资者保护”会议上表示,将推动区块链平台基本法的制定,其中包括保护投资者以防止Luna事件再次发生的措施。

成一钟表示,我们会制定一部名为《区块链平台基本法》的立法,以支持第四次工业革命。上届政府说虚拟资产既不是货币也不是资产,但虚拟资产已经进入了我们的日常生活,占据了巨大的比例和类别。

据悉,出席该会议的有韩国国民力量虚拟资产委员会,韩国金融服务委员会、韩国金融监管局、金融情报局以及韩国5大加密交易所。(Edaily)[2022/6/13 4:21:48]

1.首先,合约是用Solidity编程语言编写的,并保存为一个.sol文件。这个文件包含合约的函数、变量和其他元素。Solidity代码通常使用集成开发环境(IDE)编写,并遵循特定的语法和结构。

2.接下来,使用Solidity编译器将.sol文件编译成字节码。字节码是一种有效存储的、机器可读的操作码表示,可以在EVM上执行。操作码是EVM能够直接解释和执行的低层级指令。编译过程包括几个步骤,如语法检查、类型检查和优化,以确保字节码的正确和有效的。

3.一旦合约被编译成字节码,它就可以被部署到以太坊。这通常涉及到向交易池发送一个带有合约字节码的交易。该交易最终被纳入以太坊区块,然后合约被创建。

4.合约部署后,它可以与以太坊上的其他合约和用户进行互动。

上述流程描述了合约如何被部署到以太坊。部署到zkEVM的流程将根据它是字节码层面兼容的还是语言层面兼容的而有所不同。

执行和证明具有与EVM相同的字节码的zkEVM被称为“字节码层面兼容”。在字节码兼容的zkEVM中,除了合约部署地方的不同,对开发者的体验没有任何改变。这种zkEVM上可以使用同样的Solidity代码、编译器和字节码。开发者可以继续使用他们往常使用的编程语言和工具,同时还可以利用零知识电路的可扩展性和加密安全性。这类zkEVM需要能够通过处理相同的低层级操作码和复制相同的结果来复制EVM的行为。这涉及到将操作码映射到自定义的ZK电路上。从工程的角度来看,这种映射是具有挑战性的,而且操作码的映射导致更庞大的电路和更高的证明生成成本。然而,它最终会给开发者带来更简单的体验。

语言层级兼容性是指zkEVM与高级代码(如Solidity)一起运行的能力。开发者仍然可以用Solidity或其他高级语言编写代码,但这种高级代码必须被编译成与EVM不同的字节码。这需要一个特定于部署合约的zkEVM网络的编译步骤。非EVM的字节码可以被设计为更加电路友好,从而使证明生成更高效。

感谢阅读!在Twitter上关注@pseudotheos以获得未来文章的通知。本文基于CCBY-SA版权类型。

脚注

:Solidity首先被编译成一种中间语言,称为Yul,然后再编译成字节码。

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

水星链

[0:15ms0-0:989ms