以太坊虚拟机(EVM)简述
在区块链和加密货币的世界中,钱包起着至关重要的作用,它们不仅管理用户的资产,也作为进入Web3生态系统的门户。然而,传统的钱包往往伴随着一些挑战和局限性,这些问题可能会阻碍用户体验并带来安全风险。例如,用户在不同的链上进行交互时,需要准备不同主网的Token当作Gas费,增加了用户的交互成本。
一、EVM之于以太坊,如同Java虚拟机之于Java语言
在了解EVM之前,我们可以先通过Java虚拟机(JVM)进行类比。程序员在开发Java应用时,需要先将Java代码编译成字节码,但计算机无法直接识别字节码。JVM的作用是将字节码翻译成计算机能够识别的机器码指令并执行。同样,EVM的存在使得程序员可以用Solidity编写合约代码,并在以太坊环境中运行。
以太坊相当于计算机环境,而EVM负责将合约代码编译成以太坊能识别的机器码运行。EVM就像是以太坊生态系统中的资源转换器,没有它,以太坊上的代码无法生效。即使开发者不断编写程序语言,这些代码也不能运行。另外,如果没有EVM,任何人都无法在以太坊协议上执行程序,因为所有写入系统的代码将全是无效的。
二、读懂虚拟机和图灵完备性
- 虚拟机(Virtual Machine):虚拟机是通过软件模拟的、运行在一个完全隔离环境中的完整计算机系统。在实体计算机中能完成的工作,在虚拟机中都能实现。虚拟机通过生成现有操作系统的全新虚拟镜像,具有和Windows系统完全一样的功能,但它独立运行,不会对真正的系统产生影响。
以太坊虚拟机(EVM)是以太坊智能合约的运行环境。系统中的节点可以借助EVM来运行自己的DApp。由于EVM的运行环境完全与主链隔离,这形成了一种测试环境,给了没有区块链技术经验的开发者大胆试错的机会,他们的错误代码不会影响以太坊智能合约。
- 图灵完备性:这个术语得名于英国数学家艾伦·图灵(Alan Turing),他发明了第一台图灵机器,是现代计算机的先驱。图灵完备性指的是系统能够处理任意复杂程度的计算。以太坊能够部署任何类型和功能的计算机程序,这些程序是分布式的,而不是中心化的,这一切归功于EVM的底层设计。从这个角度看,比特币并不是图灵完备的,因为它只是个分布式账本,无法执行任何应用程序。
综上所述,EVM是一个可以执行任何复杂度计算的、完全虚拟化的计算机系统,从某种程度上来说,它像是以太坊的大脑。
三、EVM执行过程中的关键模块
-
操作码(Opcode):EVM通过操作码解释和转译Solidity编写的指令。目前EVM中有140多个不同的操作码。例如,CREATE操作码用于创建智能合约,STOP操作码用于暂停正在运行的合约。
-
Gas费:Gas费是在EVM环境中执行代码的资源,以“gwei”(以太单位)为单位。执行任何一笔交易都需要消耗算力资源和存储空间。这部分隐性消耗在链上直观地转化为Gas费。EVM每执行一项指令,都要消耗对应额度的Gas费。
-
执行转账:EVM在转账时的具体步骤包括核对转账信息的有效性、计算并收取Gas费、将数字资产转账到指定地址。如果EVM检测出转账者未支付足够的手续费,转账会被回滚,且不退转账费,直接支付给矿工。如果收款人地址错误导致交易失败,EVM会将转账本金和手续费退回给付款人。
四、EVM公链的概念和重要动向
以太坊在公链赛道上占据龙头地位,无论是生态应用数量还是总锁仓量都占行业绝大多数。许多主流公链选择兼容EVM,这使得在其公链上搭建的智能合约可以快速便捷且低成本地在以太坊上迁移。
OKTC公链是一个值得关注的EVM兼容公链。2021年5月10日,OKTC公链主网实现EVM兼容。作为一个100%开源的公链,OKTC性能卓越,每0.5秒产生一个新的区块。相较于其他EVM兼容公链,OKTC的性能更稳定、速率更高效、生态规模更强大。
OKTC公链背靠欧易OKX,其Web3生态涵盖全球体量最大的数字资产交易平台、兼容全球最优质币种的Web3数字钱包以及综合性价比最高的NFT市场。这些优势资源不断倾斜给OKTC公链,助其在EVM兼容链中脱颖而出。
五、eWASM与EVM的关系
以太坊2.0是以太坊的终极形态,实现了从POW到POS的机制转换。由于目前EVM无法与以太坊2.0的理想状态完全适配,eWASM(ETH版的WebAssembly)成为EVM的接替者。
WebAssembly是一种为基于栈的虚拟机设计的二进制指令格式,拥有更好的性能、更低的存储成本、更安全的执行环境和更多的语言支持。eWASM具有更好的性能和扩展性,可以支持多种编程语言,如Solidity、C++、Rust、AssemblyScript,且与当前的Web标准兼容,更容易在普通浏览器中运行。
以太坊2.0分为三个阶段:PoS、分片和eWASM。虽然目前最受关注的是转POS阶段,但eWASM作为EVM的接替者,其概念足够吸引人。我们将持续关注eWASM能否如预期撬动整个以太坊2.0的发展。
结语
EVM是以太坊生态中不可或缺的重要组成部分。它不仅提供了一个虚拟化的计算环境,使得以太坊能够运行复杂的智能合约,还通过其设计和功能实现了图灵完备性,为去中心化应用的发展奠定了基础。未来,随着eWASM的引入和发展,以太坊生态将变得更加完善和强大。