以太坊虚拟机(EVM)与传统操作系统对比:简易指南(第一部分)

  • OxElliot
  • 发布于 2024-09-08 19:27
  • 阅读 15

本文对比了以太坊虚拟机(EVM)和传统操作系统,解释了EVM如何在去中心化网络中运行智能合约,以及它与底层硬件的交互方式。文章还概述了以太坊节点软件的角色、EVM中的沙盒机制,以及以太坊如何通过共识机制保证网络的安全性和数据一致性。最后还介绍了以太坊中 gas 的概念。

以太坊虚拟机 (EVM) vs 传统操作系统:一份简单的指南(第一部分)

在去中心化金融 (DeFi) 的世界中,理解以太坊的虚拟机 (EVM) 与传统操作系统 (OS) 的比较至关重要。虽然两者在管理和运行应用程序方面都扮演着重要的角色,但它们的架构和功能却截然不同。

本文将以清晰、引人入胜的方式分解这些差异,并帮助你了解智能合约如何在以太坊上执行,以及应用程序如何在 Windows 或 Linux 等传统操作系统上运行。为了让事情更有趣,我们还将看看硬件如何与 EVM 交互。但首先,让我们进入基础知识!

操作系统的作用是什么?

操作系统是你电脑的骨干。把它想象成运行在你设备上的所有程序(应用程序)的管理者。当你在手机上打开一个应用程序时,操作系统会确保每个应用程序都有自己的空间,并且不会干扰其他应用程序。它还管理与硬件组件(如你电脑的 CPU、内存和存储)的交互。

示例:你正在 Spotify 上听音乐,同时浏览互联网。操作系统通过分离它们的活动并将内存等资源分配给每个应用程序,确保两个应用程序顺利运行而不会发生冲突。

进入 EVM:以太坊的操作系统

现在,以太坊的运作方式略有不同。虽然传统的操作系统处理的是应用程序,但以太坊处理的是智能合约——存在于区块链上的自动执行的代码片段。以太坊虚拟机 (EVM) 就像以太坊自己的操作系统。它在沙箱环境中运行这些智能合约,确保每个合约都是隔离和安全的,很像你的操作系统处理不同的应用程序的方式。

但这里是 EVM 的突出之处:它是去中心化的。不是一台计算机在运行,而是全球成千上万个节点参与执行智能合约。因此,与具有中央控制的传统操作系统不同,EVM 在节点网络上运行。

示例时间:沙箱

将沙箱视为在手机上运行不同的应用程序。如果 Spotify 崩溃,你的浏览器会继续正常工作,因为操作系统确保它们不会相互干扰。

在 EVM 中,每个智能合约都是“沙箱化的”。这意味着它在隔离状态下运行,具有自己的一组规则和内存。如果一个合约有错误或失败,它不会影响网络上运行的其他合约。这是维持以太坊安全的关键。

EVM 如何与硬件交互?

你可能想知道,“EVM 如何处理物理硬件,因为它是一个虚拟机?” 虽然传统的操作系统直接管理硬件(例如你的操作系统向你电脑的 CPU 发送指令时),但 EVM 做了一些不同的事情。它在运行以太坊软件的每个以太坊节点的硬件之上运行。

将每个以太坊节点想象成都有自己的小型操作系统(如 Linux),用于处理硬件。 反过来,EVM 在此操作系统之上运行,从而抽离了实际的硬件细节。 这种分离有助于维持区块链的安全性和完整性。

实际比较: 想象一下租车。 你不需要知道引擎是如何工作的; 你只需要开车。 类似地,EVM 运行合约而无需直接访问节点的底层硬件,这是由以太坊节点软件管理的。

为了更好地理解 EVM 的执行层,这里有一个简单的 Solidity 智能合约:

在这个合约中,函数 store() 允许任何人输入一个数字,而函数 retrieve() 允许他们读取存储的数字。 这个基本示例展示了去中心化应用程序如何与以太坊区块链交互,更新和检索全球可访问的数据。

以太坊节点软件:幕后真正的功臣

为了更好地理解 EVM 的工作原理,让我们快速讨论一下以太坊节点。 这些节点是执行 EVM 并运行以太坊区块链的真正功臣。 每个节点都运行以太坊的软件,例如 Geth 或 OpenEthereum,以管理与区块链的交互并保持网络同步。

节点负责:

• 验证交易

• 执行智能合约(通过 EVM)

• 存储区块链数据

在某种程度上,以太坊节点软件是基础,而 EVM 是建立在其之上的建筑物,运行着去中心化应用程序和合约。

示例:发送交易

让我们想象一下,你向智能合约发送了一笔交易,以在 Uniswap 上交换代币。 你的交易进入以太坊网络并被一个节点拾取。 该节点上的 EVM 在一个沙箱环境中执行合约的逻辑,独立于其他合约。 一旦执行,该节点会帮助验证并在整个网络中传播结果。 感谢以太坊的共识机制,每个节点都同意相同的结果。

主要区别

1. 应用层

传统操作系统: 考虑一下在你笔记本电脑或台式机上运行的应用程序。 这些可以包括 Web 浏览器、游戏或文字处理器。 它们面向用户,并依靠操作系统来处理文件管理和内存分配等后台任务。

EVM: 在以太坊中,“应用层”由智能合约组成。 智能合约是代码片段,会在触发时自动执行。 这些对于去中心化应用程序 (DApps)(如 DeFi 平台、NFT 市场等)至关重要。

2. 用户模式 vs. 执行层 (EVM)

传统操作系统: 用户通过 shell(命令行或 GUI)与操作系统交互。 在后台,操作系统确保应用程序接收到正确的内存量、CPU 性能和其他资源。

EVM: 在以太坊中,智能合约在 EVM 上运行,这可确保所有指令都得到一致执行。 EVM 检查并强制执行 gas 限制,从而确保交易不会消耗过多的资源。

3. 内核 vs. 共识层

• 传统操作系统: 内核是控制硬件交互的操作系统的核心。 它管理从内存分配到进程调度的所有内容。

• EVM: 以太坊不依赖内核,而是依赖共识机制(权益证明)来确保所有节点状态的准确性。 多个节点必须就交易结果达成一致,以维持安全性和完整性。

4. 硬件交互 vs. 节点通信

• 传统操作系统:操作系统内核直接与 CPU、RAM 和其他硬件设备通信。 它将 CPU 周期分配给进程并处理网络输入/输出。

• EVM: 在以太坊中,以太坊网络中的节点不是进行硬件通信,而是以点对点的方式进行交互。 这些节点验证交易,相互通信并达成共识以保护网络。

5. 物理存储 vs. 区块链存储

• 传统操作系统:数据存储在本地磁盘上并由文件系统管理。 例如,文档、应用程序和系统文件都位于硬盘驱动器或 SSD 上。

• EVM: 在以太坊中,所有智能合约数据都存储在全局共享状态(分布式账本)中。 此数据会在网络中的所有节点上复制,以确透明性和安全性。

第二部分预告:以太坊 EVM 如何处理硬件和共识

在本系列的下一部分中,我们将更深入地探讨以太坊 EVM 在执行智能合约时如何与硬件交互。 我们将探讨:

• 沙箱如何确保以太坊中的安全性。

• 在交易执行期间如何在节点之间达成共识。

• 硬件和内存如何交互以运行以太坊智能合约。

这些主题将使你更深入地了解 EVM 在底层是如何运行的。

第三部分预告:分解以太坊中的 Gas、存储和效率

在本系列的最后一部分中,我们将揭开 gas 费背后的谜团、智能合约如何在链上存储数据以及如何编写更高效的智能合约。 我们将介绍:

• 了解 gas 费并对其进行优化。

• 链上与链下存储:数据真正存储在哪里。

• 开发人员使智能合约更具成本效益的实用技巧。

结论

以太坊虚拟机起初可能看起来很复杂,但是当我们逐层分解它时,我们可以看到它与传统操作系统的相似之处和差异。 从执行智能合约到管理全局共识,EVM 提供了去中心化技术和计算的迷人融合。

请继续关注第 2 部分和第 3 部分,在其中我们将探讨以太坊如何在底层运行,以及如何优化智能合约开发以实现去中心化的未来。

“你觉得以太坊虚拟机哪个方面最吸引人?在下面的评论中分享你的想法和问题,让我们一起更深入地了解去中心化技术的世界!”

  • 原文链接: tusharbhatia43.medium.co...
  • 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
点赞 0
收藏 0
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

0 条评论

请先 登录 后评论
OxElliot
OxElliot
https://tusharbhatia43.medium.com/