以太坊作为全球第二大区块链平台,其成功离不开持续不断的升级与迭代,为了提升性能、增强安全性、引入新功能或修复漏洞,以太坊社区需要一种机制来对协议进行修改。“分叉”(Fork)是实现这些升级的核心技术手段之一,本文将详细解析以太坊如何通过分叉来升级网络,以及不同类型分叉的特点和影响。

什么是分叉

在区块链技术中,分叉指的是区块链协议发生改变,导致区块链网络出现分叉,从而产生两条或多条不同的链,当矿工或节点对网络未来的发展方向或规则达成共识时,他们就会遵循新的规则来生产和验证区块,这可能导致原本的链与新链分离。

分叉主要分为两大类:硬分叉(Hard Fork)软分叉(Soft Fork),以太坊的重大升级通常通过硬分叉来实现。

以太坊升级的主要方式:硬分叉

硬分叉是一种不向后兼容的分叉,这意味着新的规则与旧的规则完全不同,运行旧版客户端的节点将无法继续参与新链的网络,也无法验证新链上的交易,他们要么选择升级客户端,要么继续留在旧的链上(如果还有足够算力支持的话)。

以太坊的重大网络升级,如拜占庭升级(Byzantium)、君士坦丁堡升级(Constantinople)、伊斯坦布尔升级(Istanbul)、伦敦升级(London)、合并(The Merge)、上海升级(Shanghai)、坎昆升级(Cancun)等,都是通过硬分叉的方式完成的。

以太坊硬分叉升级的步骤:

  1. 提案与讨论(EIP 提出与审核)

    • 升级的源头通常是以太坊改进提案(Ethereum Improvement Proposal, EIP),EIP 是一份描述以太坊新特性、流程改进或核心协议变更的技术文档。
    • 开发者、研究员和社区成员通过 GitHub 等平台提交 EIP,然后在以太坊核心开发者会议(如 All Core Devs Calls)上进行讨论、审查和修改,重要的 EIP 会被纳入未来的升级计划。
  2. 确定升级计划与区块高度/时间

    • 一旦升级内容确定,开发者会确定一个具体的升级触发条件,这通常是一个区块高度(在区块高度 12,000,000 触发)或一个预计的时间点(在某个特定日期的某个时间)。
    • 这个信息会提前公布,给交易所、矿工(在 PoS 之前)、节点运营商、开发者以及用户充足的时间做准备。
  3. 客户端开发与测试

    • 以太坊客户端开发团队(如 Geth, Nethermind, Prysm, Lodestar 等)会根据确定的升级内容,开发支持新协议的客户端版本。
    • 社区会进行广泛的测试,包括单元测试、集成测试以及大规模的测试网(Testnet)升级演练,以确保新版本的稳定性和兼容性。
  4. 社区共识与准备

    • 升级方案需要获得以太坊社区(包括开发者、矿工/验证者、节点运营商、用户等)的广泛支持,社区会通过投票、论坛讨论等方式表达意见。
    • 交易所、钱包服务提供商等关键基础设施需要提前规划好升级期间的暂停服务、资产迁移等工作,以确保用户资产安全。
  5. 硬分叉执行(升级激活)

    • 当网络达到预设的区块高度或时间点时,运行新版客户端的节点将开始遵循新的规则生产和验证区块。
    • 那些没有及时升级的节点,由于无法理解新规则下的区块,将自动与主网断开连接,形成孤立的“旧链”。
  6. 升级后监控与维护

      随机配图