以太坊虚拟机(EVM)是在以太坊区块链上管理状态和执行智能合约的虚拟机。zkEVMs旨在通过零知识电路来证明EVM的执行,这个领域在过去的一年里已经有了显著的增长并扩张为一个行业。在该领域涌现了许多不同的项目和社区,每个项目和社区都采取了自己独特的方案来应对这两种技术交叉带来的挑战和机遇。
对比不同zkEVM项目的一个维度是EVM的兼容程度。虽然EVM兼容是一个连续介质,但有两种主要的方案:语言层面的兼容和字节码层面的兼容。
要理解这些方案之间的区别,很重要的一点是了解EVM如何执行用Solidity或Vyper等高级语言编写的代码。
为了使EVM能够运行智能合约所指定的行为,有这样一个过程:高级语言被编译成字节码,与EVM相连接。对于Solidity,典型的流程如下:
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的字节码可以被设计为更加电路友好,从而使证明生成更高效。
本文主要分析DAO财库治理和执行中的痛点,并尝试提出一种解决方案:非托管和主动资金执行。 DAO财库治理难题 DAO是一种加密原语.
近日,Coinbase的亲儿子layer2项目Base链上不太平。首先是其上最大的Meme币项目bald项目从早期的大规模资金注入做市,一再从流动性池中撤资,涉嫌恶意操纵市场,导致Bald的币价.
所有人都在追赶Ordinal热潮,享受着比特币NFT的乐趣。于是我默默混迹于各discord群和googlesheet里,理解消化着这一切的含义.
元宇宙至少需要1万倍算力?理想的元宇宙在算力上,比现在至少要提升多少倍?感觉一直以来都是个迷。先说一下本文的答案,至少1万倍:分辨率10倍x刷新率2倍x其他感官10倍x并发人数50倍=10000.
我在视频号里小米的电视业务高管讲他和雷军开会的一个故事。高管在会上说,这个季度我们电视业务利润多少。。。。雷军说:谁让你挣钱的?我们上次的目标就是要市场份额,你挣钱是错了。。。。。
较高的区块空间需求和较低的以太坊扩容性能不可持续的流动性挖矿激励推动了对其他L1链的需求。今天这些L1链表现如何? 说句公道话,大多数DeFi的数据都在下降.