原文作者:freeyao
原文标题:《以太坊协议层的七年之变》
PoW链/ETH1),我需要依照什么规则?
你没法找到一份规范描述以太坊当前的共识规则,因为以太坊的协议是通过增量更新来描述的。以太坊黄皮书描述了创世时的完整协议,而每一次协议变更都称为一次硬分叉(当然,也有人尝试用「网络升级」这个表述),需要所有的客户端更新代码。简而言之,以太坊通过硬分叉来实现协议层的变化,变化的最小单元被称为以太坊改进提案(EIP,EthereumImprovementProposal),一次硬分叉包含一组以太坊改进提案。本文将回顾以太坊的历次硬分叉及其中包含的改进提案,试图展现过去的七年中以太坊究竟做了什么。
概况
以太坊的历次硬分叉可以通过此页面查看。自2015年7月30日上线起,共进行了14次硬分叉,包含39个EIP。间隔最近的两次硬分叉是26天,间隔最远的两次则是490天。
硬分叉分为「主动升级」和「被动升级」。主动升级指的是开发团队主动对以太坊协议的修正,而被动升级则是「不得不」采取的行动,以应对潜在的安全性风险。被动升级至少包括「DAOFork」、「TangerineWhistle」、「SpuriousDragon」、「MuirGlacier」、「ArrowGlacier」、「GrayGlacier」,它们或处置黑客盗窃(DAOFork),或应对DDOS攻击(TangerineWhistle,SpuriousDragon),或仅仅处置难度炸弹(MuirGlacier,ArrowGlacier,GrayGlacier)。而「主动升级」大致符合白皮书的规划,Frontier(Frontier,FrontierThawing)、Homestead、Metropolis(Byzantium,Constantinople/Petersburg,Istanbul),而Berlin和London则是以太坊路线图变更后的过渡性升级。此外,多次主动升级也包含了推迟难度炸弹的选项。
Solana网络故障超12小时等待重启,超过70%节点已升级至1.6.24最新版本:9月15日消息,公链Solana的主网Beta版自北京时间昨夜19:52开始出现不稳定状况,至今已达12小时,Solana链上应用至今无法正常运转。SolanaStatus发布的信息称,Solana验证人社区选择协同重启网络,快照高度为slot96542804。Solana Status建议验证节点更新至Mainnet-Beta1.6.24版本。
截止发稿时,Solana浏览器Solana Beach数据显示,目前有71.4%的验证人已经升级至1.6.24版本。Solana的主网Beta版进行重启需要验证节点达到80%的绝对多数同意。[2021/9/15 23:25:52]
硬分叉是如何达成共识的呢?尽管关于硬分叉的协商并无成文规定,而是依照某种社区惯例进行,但其流程发生过一次变更,标志性事件是MartinHolstSwende提出了「以EIP为中心的升级」。这种新的硬分叉协商机制首次在Berlin升级使用,并避免了一次大型失误,细节将在后文中介绍。
DAO分叉
DAO分叉事件是以太坊发展过程中最为深远的一次事件。由于theDAO的智能合约被黑客攻击,约360万ether被黑客盗走,但有28天的冻结时间。在这期间,借助Carbonvote,持币者表达意愿,以太坊基金会决定将这部分资金转移到新的智能合约,允许投资者提款。此次分叉产生了EthereumClassic,也引发了大量的社会争论。
未审计DeFi项目SpaghettiMoney推出12小时吸金2.03亿美元:DeFi流动性挖矿(Yield Farming)热潮仍在继续,Spaghetti?仅在十小时前推出,投资者迄今已在其协议中投入了总计2.03亿美元的数字资产。Spaghetti提供了几种DeFi代币的质押池,包括yEarn(YFI),Maker(MKR)和Compound(COMP)。Spaghetti没有公共团队,也没有经过审核,争取奖励的一些代码来自YAM。它还有一个本机PASTA代币,将在接下来的7天中的某个时间通过权益池公开分发。(Coindesk)[2020/8/19]
上海DOS
在Devcon2期间,以太坊核心开发者们齐聚上海,但以太坊网络却遭遇了大量的网络流量攻击,造成了拒绝服务(DOS)。由于EXTCODESIZE操作码所消耗的实际系统资源远高于攻击者所需支付的手续费,攻击者反复调用该操作码,造成全网大多数节点无法追上最新区块。开发者们一面协调矿池和全节点启用受影响较小的Parity客户端,一面协商降低区块gas(从5M降低至1.5M)。最终,借助TangerineWhistle和SpuriousDragon两次硬分叉调整了相关操作码的价格,并做了状态清理,才缓解了DOS攻击的影响。这次硬分叉还带来了后续影响,由于对EIP-161(纳入在SpuriousDragon中)的实现不当(Go-ethereum和Parity各自错误地做了实现),造成了共识分叉。
双堡奇兵
BTC预计12小时后下调难度14.78%至14.11T:金色财经报道,据BTC.com数据显示,当前BTC全网算力为95.12EH/s,目前比特币未确认交易笔数为23247笔。当前比特币挖矿难度为16.55T,距离难度调整还有12小时,预计下次难度将下调14.78%至14.11T。[2020/3/25]
你也许会好奇为什么在7280000高度会有「君士坦丁堡」和「彼得堡」两个分叉,仔细观察会发现两者的差别就在于「彼得堡」移除了EIP-1283。
根据ChainSecurity的报告,EIP-1283会为部分合约引入重入攻击的风险。TrailOfBits给出了更详尽的分析并提供了可能受影响的合约列表。在硬分叉激活前32小时,以太坊基金会发文提醒节点升级或降级以推迟君士坦丁堡升级,随后发布新版本引入彼得堡硬分叉,客户端需要将「双堡」配置在同一块高或禁用君士坦丁堡硬分叉。
拆弹危机
为什么MuirGlacier和Istanbul两次硬分叉之间只有26天,这是因为核心开发者们错误计算了难度炸弹的爆炸时间,导致在Istanbul中未纳入推迟难度炸弹的提案。等到发现难度炸弹即将要对网络产生影响时,第76次核心开发者会议迅速接受了EIP-2384,并纳入到MuirGlacier硬分叉中。
硬分叉决策流程变更
硬分叉是如何决定的?实际上以太坊长期缺少成文文档,更多依赖「社会共识」。EIP-233试图规范分叉的正式流程,但并未被接受。
12小时数字货币行情梳理:根据Bitfinex交易平台数据显示,BTC最新成交价格109504.62元,最高价达116109.64元,最低价格104359.31元,成交量5.10万,跌幅1.88%;
ETH最新成交价格4295.31元,最高价达4326.29元,最低价格3425.96元,成交量68.00万,涨幅6.79%;
BCH最新成交价格10674.25元,最高价达11059.37元,最低价格9885.81元,成交量15.23万,涨幅0.69%;
ETC最新成交价格201.78元,最高价达215.30元,最低价格172.95元,成交量170.58万,跌幅3.34%;
LTC最新成交价格1992.14元,最高价达2159.84元,最低价格1545.38元,成交量170.45万,跌幅2.39%。[2017/12/13]
尽管本文无法展现以太坊社区对硬分叉决策流程的讨论,但以太坊的硬分叉决定流程显然发生过变化。在Berlin硬分叉之前,开发者首先确定硬分叉的时间,再决定要纳入哪些EIP,确定之后再进行实现和测试。Berlin前的每次硬分叉都是一个MetaEIP,例如Istanbul硬分叉通过EIP-1679定义(简称HFM-1679)。
MartinHolstSwende提出了EIP为中心的硬分叉流程,其核心观点是将EIP的接受与硬分叉剥离,核心开发者聚焦于单个EIP的认可、实现和测试,当单个EIP被接受后,后续的硬分叉可选择纳入该EIP。尽管在写作过程中尚未找到该流程是如何被以太坊核心开发者接受的,但是Berlin硬分叉弃用了HFM-2070,而是采纳了Martin提出的流程。
12小时数字货币行情梳理:根据Bitfinex交易平台数据显示,BTC最新成交价格91360.63元,最高价达100158.52元,最低价格84.086.11元,成交量10.10万,跌幅3.71%;ETH最新成交价格2886.00元,最高价达3223.25元,最低价格2729.85元,成交量32.54万,跌幅8.21%;BCH最新成交价格9033.69元,最高价达10649.99元,最低价格7884.39元,成交量9.75万,跌幅11.33%;ETC最新成交价格172.83元,最高价达182.83元,最低价格164.77元,成交量130.87万,跌幅5.82%;LTC最新成交价格891.81元,最高价达1019.75元,最低价格808.78元,成交量98.38万,跌幅8.31%。[2017/12/11]
决策流程的变更很快就发挥了作用,在Berlin硬分叉测试网激活前两周,围绕EIP-2315的废留,开发者们展开了激烈的争论并最终移除了EIP-2315。由于新流程的采纳,最后时刻的变更并未对硬分叉造成太大影响,并最终按期进行。更多细节可参考本人撰写的《移除EIP-2315:以太坊柏林升级前的紧急刹车》
不是改变的改变
值得一提的是,以太坊的区块空间上限(Blockgaslimit)并非共识的一部分。矿工有权更改区块空间上限,每个区块的上限变化最多为0.1%。不去硬编码这个数值主要是为了避免潜在的攻击风险。该数值变化的历史可参见MyCrypto撰写的研究报告。
EIP深入分析
这些EIP对以太坊究竟造成了什么影响,又是谁影响着以太坊的决策呢。本文整理了以太坊硬分叉中纳入的所有EIP(不包含元提案),详见链接。
https://primitiveslane.notion.site/cbd45cf0289c414b86715b8a9e71b28e?v=838baf2ac3a442a6b3fa03e58c5dc0ae
EIP都在做什么
纳入硬分叉的EIP的类型主要包含计费模型变更、新操作码引入、难度炸弹、经济模型、预编译、安全考虑等。
计费模型变更
计费模型变更是数量最多的EIP,共有10个,占25.6%。其通过增减操作码的单价,以平衡gas消耗和实际占用系统资源的不匹配,可消除系统被DOS攻击的隐患,或是有利于特定类型应用的部署。一部分DOS隐患是因为对系统资源的错误估计造成的,EIP-150和EIP-160解决了这个问题;而另一部分DOS隐患则是系统的固有特性,伴随着状态数据增长,访问状态数据的实际资源消耗也随之增长,因此需要定期调整相应操作码的单价,典型的有EIP-1884(我认为写得最好的EIP之一)。
由于以太坊的状态表示模型,计费模型必须定期调整,这是特性,而非故障。
新操作码引入
共有9个EIP为以太坊虚拟机引入了新的操作码(不含EIP-1884),占23.08%。其中比较有影响力的包括EIP-7(DELEGATECALL),EIP-1014(CREATE2),EIP-3198(BASEFEE)等。
难度炸弹
共有6个EIP在推迟难度炸弹,占15.4%。有2次硬分叉伴随着经济模型的调整,即降低新区块奖励。其中有3次仅为了推迟难度炸弹而实施的分叉,即名字中带有Glacier的硬分叉。有关难度炸弹的历史,可见原语里弄的报告。
经济模型
有4个EIP对经济模型有影响,2个降低了新区块奖励,1个调整了难度计算模型(EIP-100),此外引发较多争议的EIP-1559调整了手续费市场。
预编译
有4个EIP将一些密码学操作预编译,因此无需在EVM中执行,提升运行效率。包括EIP-152,EIP-196,EIP-197,EIP-198。
安全考虑
有3个EIP是出于安全考虑的,包括重放攻击保护(EIP-155),状态前缀树清理(EIP-161),合约代码大小限制(EIP-170)。
其它
其它EIP还包括网络协议改进(EIP-8),增加交易执行状态接口(EIP-658),增加新的交易类型(EIP-2718)等。此外,EIP-2包含了Homestead的所有更新,较为复杂。
谁为EIP做贡献
共有43人,77人次参与了这些EIP的撰写,其中参与2个以上(含)EIP的作者有11个。VitalikButerin参与撰写的最多,共17个,占43.6%。MartinSwende和ChristianReitwiessner各参与5个,AlexBeregszaszi和JamesHancock各参与3个,其余人参与的个数均不超过2个。
MartinSwende是以太坊基金会安全负责人,Go-ethereum工程师,EIP为中心的硬分叉流程的提出者;ChristianReitwiessner是Solidity语言的发明者。
另外有趣的是在新的硬分叉流程实施之后,EIP作者的数量发生了显著变化,这或许说明新的流程提高了EIP的参与度。Berlin之前,28个EIP,43人次,平均每个EIP有1.54个作者;Berlin之后,11个EIP,34人次,平均每个EIP有3.09个作者,增长了一倍。
https://github.com/ethereum/execution-specs
https://github.com/ethereum/go-ethereum/blob/d10c28030944d1c32febba3f45ae8c175ab34063/params/config.go
https://www.ethereum.cn/the-history-of-ethereum-hard-forks
https://etherscan.io/chart/gaslimit
https://github.com/ethereum/go-ethereum/pull/3341/files#r89548312
https://blog.ethereum.org/2019/01/15/security-alert-ethereum-constantinople-postponement
https://ethereum-magicians.org/t/hardfork-meta-eip-2070-berlin-discussion/3561
https://notes.ethereum.org/@holiman/S1ELAYY7S?type=view
分享协议
本作品采用知识共享署名-非商业性使用-相同方式共享4.0国际许可协议进行许可。
标签:以太坊ETHTHEHER以太坊币最新价格美元是多少eth官网查询地址THERADIO价格Mexican Peso Tether
尊敬的KuCoinPool用戶:KuCoinPool已於2022年09月14日08:00:00完成挖礦服務系統的全面升級。現已恢復挖礦服務,用戶可正常接入算力挖礦.
1900/1/1 0:00:00Caradno正在慢慢地等待反弹的可能性,这可能会在未来几天将价格推高至0.5美元以上虽然合并未能提升价格.
1900/1/1 0:00:00坚实的基本面和技术催化剂的组合帮助SOL价格在三周内达到最高水平。Solana(SOL)在9月13日上涨,反映了以比特币(BTC)和以太(ETH)为首的更广泛加密货币市场的类似上行趋势.
1900/1/1 0:00:009月16日消息,据官方公告,币安昨日晚间宣布在以太坊工作量证明链成功部署后,将根据2022年9月15日14:42:42的快照时间,按照符合条件的钱包ETH净余额,以1ETH=1ETHW的比例分发ETHW并计入现货钱包.
1900/1/1 0:00:00Gate.ioHODL&EarnRBLS#2willbeavailableatGate.io's“HODL&Earn”undertheflexible-termsection.
1900/1/1 0:00:00尽管成功合并,但随着以太坊呈下行趋势,不确定的BTC价格走势仍在继续。9月15日,随着市场处理以太坊(ETMerge. BTC卡在价格磁铁之间 来自CointelegraphMarketsPro和TradingView的数据显示,BT.
1900/1/1 0:00:00