首页 > 区块链 > 区块链 > 以太坊虚拟机(EVM)是什么?
以太坊虚拟机(EVM)是执行以太坊交易的运行时环境,最初在以太坊黄皮书中定义,后来被一系列以太坊改进提案(EIP)修改。它由以下部分组成:
用于执行程序的标准“机器”,每个交易具有易失性“内存”,交易可以写入的持久“存储”和操作“堆栈”
在这台机器中执行状态转换的约 140 个定价“操作码”
我们的虚拟机的一些示例操作码:
堆栈操作 - PUSH1(向堆栈添加一些内容)
算术运算 - ADD(加数字),SUBTRACT
状态操作——SSTORE(存储数据),SLOAD(加载数据)
交易操作——CALLDATA、BLOCKNUMBER(返回有关当前执行事务的信息)
一个 EVM 程序只是一系列这些操作码和参数。当这些程序被表示为一个连续的代码块时,我们将结果称为“字节码”(通常表示为一个长的十六进制字符串)。
通过将大量这些操作码组合成一个执行序列,我们可以创建任意程序。以太坊使用自定义虚拟机,而不是调整现有的 VM,因为它有独特的需求:
每个操作都必须有“成本”以防止滥用(因为所有节点都运行所有交易)
每个操作都必须是确定性的(因为所有节点必须在交易执行后就状态达成一致)
我们需要特定于区块链的概念(例如智能合约、交易)
一些复杂的操作必须是原语(例如密码学)
交易必须是在沙盒里的,没有 I/O 或外部状态访问
EVM 是第一个图灵完备的区块链 VM,于 2015 年发布。它有一些设计限制,但其巨大的先发优势和随后的广泛采用为以太坊创造了巨大的差异化——它是迄今为止最久经考验的区块链虚拟机。它是整个领域的智能合约基础设施。
由于以太坊的主导地位,很多后来的区块链都直接采用了这种运行时环境。例如,Polygon 和 BNBChain 是以太坊的直接分叉,因此使用 EVM。值得注意的是,EVM 并非一成不变,并且在 EIP1559 等升级中经常被修改。由于其他区块链需要时间进行更新,或者XM官网xmworl.com在多个地方与以太坊有所不同,它们通常运行着稍微过时的 EVM 版本,并且难以跟上变化的步伐——这一事实可能会让以太坊的核心开发人员感到沮丧。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69995368/viewspace-2911047/ ,如需转载,请注明出处,否则将追究法律责任。