以太坊系列 - 以太坊硬分叉和升级足迹

Olympic | 2015 年 5 月 9 日

以太坊区块链于 2015 年7 月正式公开上线。而在这之前的临门一脚是 Olympic——第 9 个也是最后一个开放的测试网,用以进行概念验证(PoC),让开发者预先探索以太坊区块链发布后的运行情况。Vitalik 宣布将发放共计 25000 枚 ETH 来奖励对网络进行压力测试的开发者们。测试要求很明确:尝试让网络超负荷,并 “疯狂破坏网络状态”,从而了解协议将如何处理流量过高的情况。开发者需要对四个方面进行测试:交易活动、虚拟机运行、挖矿机制以及一般惩罚机制。

Frontier | 2015 年 7 月 30 日

经过几个月的压力测试后,以太坊网络已经做好了进正式主网发布的准备。7 月 20 日,以太坊的创世块被挖出,社区开始逐渐扩大。在 Frontier 发布前几个月,Vinay Gupta 发表了一份说明,阐述了以太坊的发布过程。慷慨激昂的陈词中不乏对以太坊潜在用户的警示,Gupta 表示 Frontier 是 “最原始形态” 的以太坊,开发者们应当谨慎行事。就在 Frontier 发布的前几天, Stephen Taul 也像 Gupta 一样对开发者发出了提醒:“与美国拓荒潮期间那些勇敢的开拓者们一样,以太坊社区的参与者将发现巨大的机会,同时也将面临许多挑战。”

Frontier 协议包含以下几个重要特性:

  • 区块奖励:当矿工们在以太坊区块链上成功挖到一个区块时,他们将收到以 ETH 发放的奖励。在 Frontier 阶段,矿工的区块奖励是每区块 5 ETH。
  • Gas:在 Frontier 发布后的初期,每个区块的 Gas 上限被硬编码为 5000gas。说白了,这就意味着网络上不会有什么大动作。这样就留出了一段缓冲期,以便矿工开始在以太坊上工作,并让早期用户安装客户端。几天后,该 Gas 上限自动解除,网络可以按照计划开始处理交易和智能合约。
  • Canary 合约:Canary 合约被纳入了 Frontier ,用以告知用户哪些链已遭受或易遭受攻击。Canary 合约被会赋予 0 或 1 的值。如果合约被赋值 1,客户端就能识别出这是一条出错的链,并在挖矿时避开这条无效链。本质上来说,Canary 合约的这些功能使得以太坊核心开发团队在网络出现问题时能够停止操作或交易。在以太坊早期阶段,Canary 合约是一个极度中心化却又不可或缺的保护机制。
  • 可用性:所有开发者的操作均通过命令行来执行,因为没有图形用户界面。整个网络是可用的,但用户界面非常粗糙,只有熟悉以太坊并具备操作经验的人才有能力使用。

Homestead | 2016 年 3 月 14 日

Homestead 升级是以太坊网络的第一个硬分叉计划,于 2016 年 3 月 14 日在第 1,150,000 个区块上开始实施。总的来说,Homestead 升级主要包括对以太坊的三大重要改进措施。首先,它移除了 Canary 合约,去除了网络中的中心化部分。其次,它在以太坊的合约编程语言 Solidity 中引入了新代码。最后,它引入了 Mist 钱包,让用户能持有/交易 ETH 并编写/部署智能合约。

Homestead 升级是最早实施的以太坊改进提案(EIP)之一。EIP 指的是向社区提出的建议,一旦它们得到认可,就会被纳入网络升级中。Homestead 升级包含三种 EIP:

EIP-2:Homestead 核心升级

_EIP 2.1:_将通过交易创建智能合约的成本从 21000 Gas 提高到 53000 Gas。之前,通过合约来创建合约(首选办法)的成本比通过交易创建合约的成本更高。由于通过交易创建合约的 gas 成本提高,EIP 2.1 激励用户重新采用通过合约来创建合约的方法。

EIP 2.2:“所有 s 值大于 secp256k1n/2 的交易签名被视为无效。ECDSA 恢复预编译合约保持不变并接受较高的 s 值;在有合约需要恢复旧的比特币签名之类的情况下,这一功能就派上用场了。” [来源]

_EIP 2.3:_明确规定了,如果一个合约没有收到足够的 Gas 来完成整个操作过程,合约创建将 会“失败”,而非创建一个空白合约,使得交易可能的输出结果由原来的 [成功]、[失败] 或 [空] 变为 [成功] 或 [失败]。

_EIP 2.4:_取消了对用户创建难度值较高的区块的激励,从而增加挖到区块的概率。这一升级将出块时间稳定在 10 秒到 20 秒,并将整个网络恢复到大约 15 秒的目标出块时间。

EIP-7

“在 0xf4 中新增了一个操作码,DELEGATECALL。该操作码与 CALLCODE 类似,不同之处在于它将发送方和数值从父作用域发送到子作用域,也就是说,被创建的调用与原始调用拥有相同的发送方和数值。”[来源]

EIP-8:面向未来的升级

EIP-8 是一项着眼于未来的网络升级计划改进提案。这一改进确保以太坊网络上所有的客户端软件都能适应未来的网络协议升级。

DAO 分叉 | 2016 年 7 月 20 日

除了计划内的以太坊升级和硬分叉之外,还有一次计划外的 DAO 事件值得被铭记。在 2016 年,一个名为 The DAO 的去中心化自治组织通过代币发售筹集了 1.5 亿美元资金。在6 月,The DAO 被黑客攻击,有价值 5000 万美元的 ETH 被一位不知名的黑客劫走。以太坊社区的大多数参与者决定实行硬分叉,恢复钱包中被盗的 ETH 并修补漏洞。然而,硬分叉没有得到社区内所有参与者的一致认可,还有部分参与者继续在那条 原始 链上挖矿并交易。未恢复被盗 ETH 的 原始 链被称为以太经典(ETC),久而久之,其安全性逐渐降低,挖矿难度也在下降。社区的大部分参与者以及核心开发者则继续在分叉链上工作——被窃的 ETH 回到了它们原本的持有者手中——这就是我们现在熟知的以太坊区块链。

大都会:拜占庭分叉 | 2017 年 10 月 16 日

以太坊路线图的下一步被称为大都会(Metropolis),它将分为两个阶段进行:拜占庭(Byzantium)和君士坦丁堡(Constantinople)。拜占庭分叉于 2017 年在第 437 万个区块高度上激活,其中包含了以下 9 个 EIP:

EIP 100

调整区块难度评估公式,将叔块纳入参考范围。新的公式使得火币增发率变得更加稳定,并确保无法通过操纵叔块来强制提高发行率。

EIP 658

对于拜占庭硬分叉升级后的区块,交易收据内会包含一个状态字段来标志成功(赋值为 1)或失败(赋值为 0)。

EIP 649

“难度炸弹”是这样一种机制:一旦被激活,每新挖出一个区块所需的成本(即难度)都会提高,直到难度达到不可能挖出新的区块为止。一旦达到这个难度,以太坊网络将 “冻结”。难度炸弹最初于 2015 年 9 月被纳入以太坊网络,旨在帮助以太坊网络从 PoW 转型为 PoS。一旦实行了 PoS 机制,矿工们从理论上来说依然可以选择支持旧的 PoW 链,这就会导致社区分裂并产生两条独立的链——一条由权益所有者(staker)维护,另一条由矿工维护。为了防止这种情况发生,难度炸弹机制应运而生,它会让挖矿效率变得越来越低,最终确保整个网络完成向 PoS 机制的过渡,而不会出现硬分叉的情况。在该提案中,难度炸弹(也称冰河世纪)将推迟一年,此外区块奖励从 5 ETH 降至 3 ETH。

其余拜占庭分叉 EIP 的具体内容(140、196、197、198、211、214)可以在这里找到。

大都会:君士坦丁堡 | 2019 年 2 月 28 日

大都会升级的第二阶段君士坦丁堡(Constantinople)原定于 2019 年 1 月中旬在第 708 万个区块高度上线。1 月 15 日,一家名为 ChainSecurity 的独立安全审计公司发布了一份报告,指出五个主要的系统升级中有一个会让攻击者有窃取资金的机会。针对该报告提出的问题,以太坊核心开发者和社区的其他成员投票决定暂缓升级,直到该安全问题得到解决。在 1 月末,核心开发者们宣布将于第 728 万个区块高度上激活升级。2 月 28 日,第 728 万个区块高度上执行了君士坦丁堡硬分叉。以太坊网络目前正处于君士坦丁堡阶段。

EIP 145:按位移动指令

按位移动指令被添加至以太坊虚拟机(EVM)。这些指令让二进制信息中的比特可以以动到左边和右边。这一改进意味着智能合约的按位移动操作将便宜 10 倍。

EIP 1052:智能合约验证

智能合约能够通过检查另一个智能合约的哈希值来验证其本身。在君士坦丁堡分叉之前,智能合约必须提取另一个合约的完整代码才能进行验证,这种验证方式将耗费大量的时间和资源。

EIP 1014:CREATE2

状态通道的可实施性变得更强。状态通道是一种基于链下交易的以太坊扩容方案。

EIP 1283:SSTORE

降低 SSTORE 操作所需消耗的 Gas 成本。这一举措使得交易中多个更新操作的成本更低。

EIP 1234:区块奖励以及暂缓难度炸弹

由两部分组成:减少区块奖励以及暂缓难度炸弹。

区块奖励减少

矿工得到的出块奖励从每区块 3 ETH 降至 2 ETH。这一举措被称为 “1/3 奖励削减(Thirdening)”。

难度炸弹暂缓

EIP 1234 将难度炸弹的激活再次推迟了十二个月,届时将再一次进行投票。

大都会:伊斯坦布尔 | 预计 2019 年 12 月4日

阶段一: ProgPow
阶段二: EC Arithmetic

Geth客户端将支持所有6项提案:

EIP-1108:降低alt_bn128预编译gas成本

EIP-1344:ChainID操作码

EIP-1884:重新定价trie-size-dependent操作码

EIP-2028:降低Calldata gas成本

EIP-152:Blake2压缩函数F预编译

EIP-2200:重新平衡净计量的SSTORE gas成本


往期精彩回顾:
区块链知识系列
密码学系列
共识系列
公链调研系列
以太坊系列
EOS系列
智能合约系列
Token系列

以太坊系列 - 以太坊硬分叉和升级足迹相关推荐

  1. 以太坊系列 - 以太坊的测试网

    测试网简介 目前Ethereum存在三个测试网,分别是Ropsten(PoW算法,支持Parity和Geth),Kovan(PoA算法,Parity专用)和Rinkeby(Clique PoA共识算法 ...

  2. 转载:区块链:关于软分叉与硬分叉以及什么是共识

    第0章 引言 比特币是一套软件,对软件代码进行修改升级就经常会涉及到两个概念,一个叫硬分叉,一个叫软分叉.这到底是什么意思呢?社区里最常见的定义说是对共识的修改.但"共识"具体指的 ...

  3. 什么是硬分叉,什么是软分叉,什么是共识

    第0章 引言 比特币是一套软件,对软件代码进行修改升级就经常会涉及到两个概念,一个叫硬分叉,一个叫软分叉.这到底是什么意思呢?社区里最常见的定义说是对共识的修改.但"共识"具体指的 ...

  4. 什么是硬分叉?什么是软分叉?什么是共识就?

    什么是硬分叉?什么是软分叉?什么是共识就?  王会森 关注 2017.07.24 19:17* 字数 7203 阅读 72评论 0喜欢 1 01开始吧 不使用术语还能把事情说明白,那就是真明白了. 比 ...

  5. Hudson Jameson将在柏林硬分叉后卸任以太坊基金会社区经理

    帮助协调推动以太坊核心开发者会议(AllCoreDevs,ACD)的以太坊基金会社区经理Hudson Jameson发推称,决定将在柏林硬分叉后卸任该职位,之后以太坊开发者Tim Beiko将接任.H ...

  6. 以太坊拜占庭硬分叉成功!前亚马逊首席科学家加盟京东金融;俄罗斯将发法定数字货币...

    今天,Fintech行业又有哪些不可错过的大事发生?雷锋网AI金融评论栏目"Fintech"晚报将为你搜罗业界最新资讯! 以太坊拜占庭硬分叉成功! 雷锋网10月16日报道,今日以太 ...

  7. 全球区块链第9周看点 | 以太坊君士坦丁堡/圣彼得堡硬分叉正式完成;纳斯达克正式上线BTC和ETH指数...

    TokenInsight整理了区块链行业在交易所.项目治理.通用平台.稳定币.隐私.游戏等方面发生的大事件,并对此进行了点评. 本周市场数据 针对本周(2019 年 2 月 23 日至 2019 年 ...

  8. 1分钟链圈 | 重大决定!以太坊团队例会上决定实行康斯坦丁堡硬分叉!

    Hi,艾瑞巴蒂! 这里是 8 月 25 日的每日1句话新闻晚报,只需1分钟,看看全球最热.最新的区块链新闻. 实时币价:BTC $6680.70    ETH $277.21    EOS $4.95 ...

  9. 以太坊硬分叉升级在即,这几件事情你必须知道

    作者:圆圆 来源:区块链情报速递 在过去一年多的时间里,"以太坊2.0"一直被人们关注和提及,成为长期的热议话题.随着时间的逼近,以太坊下一次的升级已经提上日程. 根据以太坊核心开 ...

最新文章

  1. 疫情下的硅谷区块链创业者
  2. ubuntu 16.04 连接 阿里云服务器
  3. 关于 Number() parsint() abs() 的区别
  4. ubuntu pcl 点云库使用
  5. 【时间序列预测】基于matlab LMS麦基玻璃时间序列预测【含Matlab源码 1443期】
  6. 北京某数据中心全年用水量分析
  7. yum: command not found
  8. 游戏服务器背包设计与开发
  9. 三星6.0系统机器(亲测有效)激活XPOSED框架的流程
  10. 异步和同步数据备份的差别_备份和同步数据的最佳文章
  11. 中国气象网 气象数据开放平台 API使用方法 (Android)(已废弃)
  12. 微信小程序 —— canvas生成海报图与分享
  13. 在vs2019上配置opencv,百分百成功
  14. 全球及中国光通信箱体行业市场需求前景与发展规划分析报告2022-2028年
  15. python爬取物流信息_python爬虫快递查询系统(源码)
  16. 【调剂】浙江工业大学信息工程学院宣琦课题组诚招2020级研究生
  17. 计算机类最热门最高薪的四大专业详细解析,为你2022年高考志愿填报,提供决策参考
  18. 影响产品质量的6方面因素:人、机、料、法、环、测
  19. python codes模块读写文本文件的简要说明
  20. DundasWebChart开发实例一

热门文章

  1. P1460 [USACO2.1]健康的荷斯坦奶牛 Healthy Holsteins
  2. 前端企业级的开源项目
  3. 如何判断线性方程组是一个解还是无穷个解
  4. Dynamics 365 OP V9.1启用邮箱失败问题
  5. Python中jieba库的安装方法
  6. 欧几里得算法(扩展欧几里得、欧拉定理、费马小定理)
  7. 解决win10下samba不能访问
  8. VC常用控件用法(转载)
  9. node.js + express + mysql 简单运用
  10. 线性子空间模型 linear subspace model