以太坊发展历史

Catalogue
  1. 1. 诞生
  2. 2. 奥林匹克(Olympic)
  3. 3. 前沿/边疆(Frontier)
  4. 4. 家园(Homestead)
  5. 5. DAO分叉 / 以太坊经典(ETC)
  6. 6. 橘子口哨 (Tangerine Whistle)
  7. 7. 伪龙 (Spurious Dragon)— #2,675,000
  8. 8. 大都会 (Metropolis)
  9. 9. 伊斯坦布尔(Istanbul)
  10. 10. 缪尔冰川(Muir Glacier)
  11. 11. 宁静 / 以太坊2.0 (Serenity)
    1. 11.1. 阶段 0

诞生

  • 2013年末,以太坊创始人Vitalik Buterin发布以太坊白皮书,启动项目。
  • 2014年2月,Vitalik在迈阿密比特币会议上第一次公布了以太坊项目,并在Reddit上举办第一次“问我们任何事儿”活动,核心开发团队成为世界级的密码学货币团队。
  • 2014年4月,Gavin Wood发布了以太坊黄皮书,这是以太坊的技术圣经,将以太坊虚拟机(EVM)等重要技术规格化。
  • 2014年7月24日起,以太坊进行了为期42天的以太币预售,一共募集到31,531个比特币,根据当时的比特币价格折合1843万美元,是当时排名第二大的众筹项目。预售时所使用的比特币地址是36PrZ1KHYMpqSyAQXSG8VwbUiq2EogxLo2
  • 2014年10月5日发布了第6版测试网络POC6,区块时间从60秒减少到12秒,并使用了新的基于GHOST的协议。
  • 2015年5月发布了最后一个测试网络POC9。
  • 2015年7月末发布正式的以太坊区块链网络。

奥林匹克(Olympic)

以太坊区块链于 2015 年 7 月正式向用户开放使用。以太坊在此之前开放了九个版本的开放测试网络以进行概念证明,其中最后一个版本便是奥林匹克,供开发人员提前探索以太网区块链开放以后的运作方式。Vitalik 曾宣布向耗费时间精力对以太坊网络进行压力测试的开发人员提供总额为 25,000 ETH 的奖励。测试要求很明确:尝试使网络过载,并对网络状态进行极限测试,以便深入了解协议如何处理流量巨大的情况。开发人员需要对四个方面进行测试:交易活动、虚拟机使用、挖矿方式和惩罚机制。

前沿/边疆(Frontier)

经过几个月的压力测试,以太坊网络已准备好发布官方公共主网。7 月 20 日,以太坊的创世区块产生,社区开始逐渐壮大。在 Frontier 发布前几个月,Vinay Gupta 发表了关于以太坊开发过程的说明。该说明的大部分内容虽然十分令人振奋,但同时也发出了对潜在用户的警示。Gupta 表示,Frontier 是 “处于最初始形态” 的以太坊版本,开发者应该谨慎行事。Frontier 发布前几天,Stephen Taul 对开发者作出了与 Gupta 类似的提醒:“目前的开发者就如同美国边疆扩张时期的拓荒者一般,他们和自己的同伴在开辟新家园时将获得无穷的机会,但同时也将面临许多危险”。随着Frontier的发布,以太币也开始在世界各地的交易所进行交易。该阶段包含了以下一系列关键特征:

  • 区块奖励:在以太坊区块链上,当矿工成功挖掘出一个新区块并使其存在得到确认之后,他们会得到 ETH 形式的奖励。在此阶段,奖励被定为每个新区快 5 个 ETH。
  • Gas:在 “边疆” 诞生之初,每个区块的 gas 上限被硬编码为 5000。这个数量基本上意味着以太坊网络不支持进一步开发。此阶段 Gas 上限的制定旨在为矿工提供一段缓冲时间,以帮助他们在以太坊网络上的操作走上正轨,同时使得早期开发者安装他们的客户端。几天之后,gas 上限被自动移除,以太坊网络能按预期处理交易和智能合约。
  • 金丝雀合约(Canary Contracts):金丝雀合约被引入 “边疆” 的目的是提醒用户存在不正当或易受攻击的某条链。它给出的数值只能是 0 或 1。有问题的合约会被赋值为 1,因此客户端就能进行识别,避免在无效链上进行挖矿。金丝雀合约的重要意义在于它使得以太坊核心开发团队能够及时制止网络中出现错误的操作或交易。在以太坊发展初期,金丝雀合约虽然显得十分中心化,但却是不可或缺的保护机制。
  • 可用性:所有开发人员的操作都是经由命令行实现,因为完全不存在图形用户界面。虽然可以在以太坊网络中进行操作,但是其用户界面还十分粗糙,它的使用者也在很大程度上局限于具有以太坊背景知识和经验的专业人士。

家园(Homestead)

“家园” 是以太坊网络的首次硬分叉计划,于2016年3月14日(圆周率节)发生在第 1,150,000 个区块上。对许多协议进行了优化改进,为之后的升级奠定了基础,并且加快了交易速度。相比之前没有明显的技术性里程碑,只是表明以太坊网络已经平稳运行,不再是不安全和不可靠的网络了。在此阶段,以太坊提供了图形界面的钱包,易用性得到极大改善,以太坊不再是开发者的专属,普通用户也可以方便地体验和使用以太坊。

“家园” 升级是最早的以太坊改进提案(EIP)实施案例之一。EIPs 是面向社区提出的改进建议,一旦获得批准,则会囊括在网络升级中。“家园” 升级包括3个EIPs:https://eips.ethereum.org/EIPS/eip-606

  • EIP-2.1:通过交易创建智能合约的成本被提高至21,000至53,000个gas。
  • EIP-2.3:当合约创建过程中没有足够的gas用以完成操作,该合约将“作废”而非创建一个空白合约。之前的交易可能输出结果包括[成功] [失败]或者[空白],这一改进则删除了[空白]结果。
  • EIP-7:在 0xf4 添加一个新的操作码,DELEGATECALL,它与 CALLCODE 的理念类似,不同之处在于前者将发送方和发送值从父范围扩散到子范围,即创建的调用与原始调用具有相同的发送方和发送值

DAO分叉 / 以太坊经典(ETC)

在以太坊计划内的升级和硬分叉历史中,计划外的DAO事件值得记录。2016年,一个名为The DAO 的去中心化自治组织通过发售通证募集了 1.5 亿美元的资金。同年6月,the DAO 遭到黑客入侵,价值 5 千万美元的 ETH 被一未知黑客窃取。以太坊社区的大部分成员决定实行硬分叉,将资金返还到原钱包并修复漏洞。然而,这次硬分叉却引来了争议,以太坊社区的小部分成员选择继续在原链上进行挖矿和交易。未返还被盗资金的原链则演变成了以太坊经典(ETC),久而久之受到削弱的原链成为了容易被侵入的对象,导致后来遭受了51% 攻击。而大多数社区成员和核心开发人员选择了分叉链(被盗资金返还至原持有者)这就是我们现在所知的以太坊区块链。

DAO分叉在 #1,920,000个区块上激活,EIPs地址:https://eips.ethereum.org/EIPS/eip-779

橘子口哨 (Tangerine Whistle)

2019年12月8日在 #2,463,000 区块上激活。

橘子口哨是一次计划外的次要分叉,仅包括一条 EIP-150。该提案对一些操作码 (opcodes) 重新定价,提高拒绝服务攻击 (denial-of-service) 的成本,以防止此类攻击。

伪龙 (Spurious Dragon)— #2,675,000

2016 年 11 月 22 日在 #2,463,000 区块上激活。

该硬分叉包括四项提案,用以解决一些攻击问题:

  • EIP 155: 简单重放攻击保护
  • EIP 160: 提升 EXP 操作码的费用
  • EIP 161: 状态树清理 (不变量保持替代)
  • EIP 170: 调整智能合约的最大字节数限制

大都会 (Metropolis)

该阶段分将分两个阶段进行:

  • 拜占庭(Byzantium):2017年10月16日在 #4,370,000 个区块上激活
  • 君士坦丁堡(Constantinople):2019年2月28日在 #7,280,000个区块上激活

拜占庭硬分叉包括9个EIPs:https://eips.ethereum.org/EIPS/eip-609,其中主要的EIP如下:

  • EIP 658:对于拜占庭硬分叉升级后的区块,交易收据包括了一个状态字段,用于表示成功(由1表示)或失败(由0表示)。

君士坦丁堡硬分叉包括5个EIPs:https://eips.ethereum.org/EIPS/eip-1013 ,其中主要的EIP如下:

  • EIP 145:按位移动指令。在以太坊虚拟机 (EVM)上增加按位移动指令。这个指令允许二进制信息左右移动。这个改进意味着智能合约的变更执行将便宜10 倍。
  • EIP 1052:智能合约验证。允许智能合约只需通过检查另一个智能合约的哈希值来验证彼此。在君士坦丁堡升级之前,智能合约必须提取另一个合约的整个代码才能进行验证,而这样的验证方式需要花费大量时间和精力。
  • EIP 1014:智能合约函数 CREATE2。使得状态信道更易实现。状态信道是基于 “链下”(off-chain) 交易的以太坊扩容解决方案。
  • EIP 1283:SSTORE 操作码。减少 SStore 操作码的 GAS 耗费。这使得交易中多个更新操作的价格更加友好。
  • EIP 1234:区块奖励 & 难度炸弹。将区块采矿奖励从每块 3 ETH 减少到 2 ETH。这个改变也被称作 “Thirdening”,即以太坊第三次区块奖励减半。另外将 “难度炸弹” 时期推迟 12 个月,届时将会进行再次投票。

伊斯坦布尔(Istanbul)

2019年12月8日在 #9,069,000 区块上激活。

https://eips.ethereum.org/EIPS/eip-1679

缪尔冰川(Muir Glacier)

2020年1月2日在 #9,200,000 区块上激活。

https://eips.ethereum.org/EIPS/eip-2387

宁静 / 以太坊2.0 (Serenity)

放眼未来,“宁静”(Serenity) 是以太坊区块链的终极目的地。

阶段 0

2020年12月1日,以太坊2.0 阶段 0 上线信标链主网。

Eth2.0区块浏览器:https://beaconscan.com/https://beaconcha.in/。