57 什么是以太坊虚拟机(EVM)?

理解以太坊的虚拟机(EVM),需要首先回顾其前身BitTorrent软件。以太坊的发明者Vitalik Buterin说,BitTorrent是最早的去中心化应用(DApp):一个由独立用户组成的社区,在一个开放的互联网网络上为对方生成和交换数据。

程序员布拉姆-科恩在2001年发明了BitTorrent作为文件共享协议,尽管国际上有一致的、价值数十亿美元的势力来摧毁它,但它今天仍然非常活跃。最新的电影或软件仍然可以通过BitTorrent协议在几分钟内直接下载到你的笔记本电脑。要真正阻止BitTorrent,你必须关闭地球上每个国家每个家庭的每一台电脑。EVM的情况也是如此,这就是为什么去中心化的以太坊网络被称为 “不可阻挡的世界计算机”。

什么是以太坊虚拟机?

以太坊虚拟机(EVM)是嵌入在每个完整的以太坊节点中的一个强大的、沙盒化的虚拟堆栈,负责执行合约字节码。合约通常是用更高级别的语言编写的,如Solidity,然后编译成EVM字节码。

这意味着机器代码与网络、文件系统或主机的任何进程完全隔离。以太坊网络中的每一个节点都运行一个EVM实例,这使得他们能够同意执行相同的指令。EVM是图灵完备的,这指的是一个能够执行计算功能的任何逻辑步骤的系统。为全球网络提供动力的编程语言JavaScript,广泛使用图灵完备性。

以太坊虚拟机已经在各种编程语言中成功实现,包括C++、Java、JavaScript、Python、Ruby和其他很多种语言。

EVM对以太坊协议至关重要,对以太坊系统的共识引擎也很有帮助。它允许任何人在一个无信任的生态系统中执行代码,其中执行的结果可以得到保证,并且是完全确定的(即)执行智能合约。

对于在EVM上执行的每一条指令,一个跟踪执行成本的系统会给指令分配一个以Gas为单位的相关运营成本。当用户想要启动执行时,他们会保留一些以太币,用来支付运行所需要的Gas费。

通过使用Gas机制,两个主要问题得到了解决。即使执行失败,验证者也能保证收到最初的预付金额。执行的时间不能超过预付金额的允许范围。而不是无限制地循环,执行时间为一直运行到它的Gas用完。

当一个交易被发送到网络时,验证器可以接受该交易,执行相关的代码。验证器将做到:

  • 交易的所有信息都是有效的。
  • 发送者有足够的资金来支付交易的执行。
  • EVM在执行过程中没有遇到任何异常。

EVM通过实现一种经济,按执行的软件指令收费,而不是像比特币那样按执行的金融交易收费,实现了图灵完备性。与支付交易费用不同,你需要为运行程序支付费用。

作为图灵完备性,这意味着以太坊在技术上是一个点对点的通用世界性计算机,甚至可以承担我们所知的互联网的功能。以太坊可以让我们创建文件共享经济,点对点的众筹活动,智能合约,出租你的笔记本电脑上未使用剩余硬盘的市场,去中介化的Uber或Facebook(没有公司的产品),等等。这基本上就像1994年的互联网:没有人知道未来会带来什么。

比特币当前区块高度:713,530

内容整理来源:What is the “Unstoppable World Computer”?


翻译、排版:恬儿

内容团队:李卫军寂寞不语杨卫祥穆逸扬

本文主理人:李卫军

顾问:Sylvia

统筹:志刚

技术支持:运营组

留下评论