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

来源:pseudotheos.mirror.xyz

作者:Pseudotheos

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

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

金色晨讯 | 8月3日隔夜重要动态一览:1.DeFi代币总市值回升至74亿美元。

2.在以太坊担保价值中DeFi占比远低于稳定币。

3.证券日报:已有不少券商开始探索区块链赋能证券业务领域。

4.V神:技术上已有欺诈证明 而约为1kb的merkle证明将只用于证明欺诈。

5.银保监会:鼓励财险公司利用区块链等对传统保险操作流程进行更新再造。

6.国际金融报:中国DCEP有望成为经济“内循环”的未来加速器。

7.Cardano创始人:Cardano不是DPoS智能合约和本地资产将在今年推出。

8.比特币维持震荡,日内最低报11000.18美元,最高报11280美元。[2020/8/3]

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

金色晨讯 | 4月23日隔夜重要动态一览:21:00-7:00关键词:区块链产业、宝马、数字黄金、USDT销毁

1.全球新冠肺炎累计确诊病例超260万。

2.人民网:2025年新基建中区块链产业规模将达389亿元。

3.深圳法院:盗窃ETH构成盗窃罪。

4.证券日报:未来资本市场对区块链等具有重要推动。

5.CME比特币期货4月合约收涨3.27%。

6.宝马集团在汽车行业推动区块链扩展。

7.彭博社:比特币将在2020年成为数字黄金。

8.XRP Markets负责人已离职。

9.Tether Treasury销毁2.2亿枚USDT。[2020/4/23]

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

金色独家 数字彗星创始人张东谊:“黑盒加白盒”分析区块链安全:金色财经独家专访,针对近期热议的安全问题, 数字彗星创始人张东谊指出应该用“黑盒加白盒”分析一个项目或者系统的安全性,具体针对不同的项目要有不同的策略。

其中一种是黑盒分析,主要根据项目暴露的接口来测试输入数据而产生是否正确的输出信息,如果程序崩溃或者返回异常结果则需要进行下一步详细分析原因,如果程序内部本身设计有问题则可能需要通过逆向手段通过反汇编分析业务模块是否有问题;另外一种是白盒分析,主要了解程序内部逻辑结构、对所有逻辑路径进行测试,检查是否存在逻辑漏洞、缓冲区溢出漏洞、数组溢出、整数溢出、重入漏洞、处理外部调用错误、交易顺序依赖、时间戳依赖、条件竞争、权限控制等漏洞。[2018/6/18]

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

金色财经现场报道 医链科技创始人贾求真:区块链技术重塑供应链金融征信体系:金色财经前方记者实时报道,第二届全球金融科技与区块链中国峰会于4月12日在上海召开,医链科技创始人贾求真在现场表示,在整个供应链金融发展阶段中,我们会提1.0、2.0、3.0,实际上供应链金融演进过程都与技术支撑的征信能力息息相关,这个是科技赋能金融的直接表现。传统征信是风控,这是传统金融模式1.0。大数据阶段的支持是数据金融,科技金融的阶段是要表达效率。而用区块链技术解决金融资产征信问题使得征信行业进入到3.0。[2018/4/12]

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

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

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

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

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

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

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

脚注

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

金色早8点

金色财经

Odaily星球日报

欧科云链

澎湃新闻

Arcane Labs

深潮TechFlow

MarsBit

BTCStudy

链得得

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

金宝趣谈

[0:15ms0-7:653ms