MSTR Cat

区块链/等级 VI · 比特币之后/6.3 以太坊与智能合约/课程 1

以太坊白皮书与EVM

在每个节点上运行、以Gas为燃料的状态机

材料以太坊白皮书(2014年版)的副本以太坊黄皮书(加文·伍德,2014年)可以访问如 Etherscan 这样的区块浏览器

好奇

  1. 为什么一台在数千台机器上复制运行的计算机,需要为每一条指令收费?
  2. 如果运行在那些机器上的代码可以无限循环而不会受到任何惩罚,那么什么会出问题呢?
  3. 两种不同的账户模型——UTXO与原地更新的余额——如何以不同方式表示同一笔财富?

探索

  1. 19岁的维塔利克·布特林在2013年底撰写了以太坊的白皮书,他提出的并非某种特定货币,而是一个通用计算平台。该项目于2014年1月正式公开,吸引了加文·伍德、约瑟夫·卢宾、查尔斯·霍斯金森、安东尼·迪奥里奥以及米哈伊·阿利西等人为联合创始人。2014年7月至8月期间进行了众筹活动,为该项目筹集了大约31,500枚比特币的资金。2015年7月30日,以太坊网络正式上线,这标志着它从比特币那种功能有限的脚本系统,转变为一个完全可编程的环境,开发者可以在链上直接构建复杂的应用程序。
  2. 该架构的核心是以太坊虚拟机(EVM),这是一种图灵完备的状态机,在每个全节点上复制运行。比特币的UTXO模型追踪的是一个个未花费输出,而以太坊采用账户模型,余额直接原地更新。每个账户——无论由私钥还是由代码控制——都保存一个nonce和余额。交易执行时,EVM以确定性的方式处理它;每个节点都独立计算出相同的结果,从而在参与者之间无需信任的情况下达成共识。
  3. 智能合约是用 Solidity 等高级语言编写的程序,它们会被编译成低级操作码,由 EVM 执行。这类合约同时具备存储价值与执行逻辑的功能:它可以保存以太币、根据条件执行交易,或依据其他账户的输入来管理治理投票。由于其执行过程是确定性的,且许多智能合约会公开其源代码,因此任何人在与其交互之前都可以查看其逻辑结构。这种透明度使得在许多金融应用中无需依赖可信的中间机构,因为规则是由软件而非人为决策来执行的。
  4. 为防止无限循环和拒绝服务攻击,每项EVM操作都会消耗“Gas”,这是一种以以太币支付的计算单位。发送方需预先设定Gas上限;如果执行过程耗尽了这些燃料,状态变更将被回滚,但已消耗的Gas仍会被扣除。这种经济约束迫使开发者编写高效的代码,并保护网络免受恶意或有缺陷合约的影响,否则这些合约可能令整条链陷入停滞。Gas价格随需求涨跌;最初用户只需自行出价,自2021年起,由协议设定的基础费用会自动调整,用户可在此之上另付小费(后续课程讲解)。
  5. EVM的设计选择体现了表达能力与安全性之间的权衡。图灵完备性允许任意计算,但也带来了可能隐藏漏洞的复杂性。账户模型让某些程序比UTXO更简单,但相互调用的合约必须谨慎编写,以避免重入等漏洞——这正是The DAO被攻击的根源(后续课程讲解)。EVM的标准化催生了一个庞大的生态,其中有大量熟悉这一特定指令集的工具和审计人员。
  6. 打开Etherscan等区块浏览器,查看任意一笔最近部署智能合约的交易。观察“合约创建”(Contract Creation)状态,以及实际消耗的Gas与Gas上限的对比。注意该交易的输入数据中包含了将存储在新地址上的编译后字节码。这一具体步骤揭示了部署的实际机制:代码被上传,经每个节点验证,然后被锁定在链的状态机中,等待未来交互时执行。

关键事实

  • 维塔利克·布特林于2013年底撰写了以太坊的白皮书,该项目则于2014年1月正式公布。
  • 2014年7月至8月的众筹活动为以太坊开发基金筹集了约31,500枚BTC。
  • 以太坊主网于2015年7月30日上线,它配备了一台图灵完备的虚拟机。
  • 每项EVM操作都会消耗以以太币支付的Gas,以防止无限循环并确保执行能够终止。
  • 以太坊采用账户模型,余额原地更新,这与比特币的UTXO系统不同。
  • 智能合约通常用 Solidity 编写,随后会被编译为确定性的 EVM 字节码。

练习 九、六、三、一

9收集列出以太坊白皮书中与比特币协议不同的9项技术限制或设计决策。
6归类按影响领域将这9项分为6类:状态管理、安全性、执行成本、语言支持、共识和治理。
3提炼将这6类归纳为图灵完备性为何需要Gas机制的3个核心原因。
1凝结用1句话解释EVM的确定性如何确保全网就状态转换达成全局共识。

事实核查

日期、数字及数据均依据下方列出的已发表资料进行核实。

在互动学院中打开 →

EN PT ES JA KO RU DE FR MS