ETH记事录:解读君士坦丁堡升级之路
“在旧金山寒冷的十一月的一天,我第一次写出以太坊(Ethereum)白皮书的最初草稿。这份初稿是我对我们称之为“密码学货币2.0”领域长达几个月的思考和工作的结晶。密码学货币2.0简单地说就是把区块链技术应用到货币以外的领域,不再仅仅局限于货币领域。”
——这是Vitalik Buterin在2014年1月23日写的博客,如今以太坊即将进行君士坦丁堡升级,让我们从起点回顾以太坊的成长历程,或许能更好的理解这次重大升级。
01起点
Vitalik Buterin于2013年底描述了以太坊。此后不久,Vitalik发表了以太坊白皮书,详细描述了以太坊协议和智能合约架构的技术设计和基本原理。2014年1月,Vitalik在美国佛罗里达州迈阿密举行的北美比特币会议上正式宣布了以太坊。
以太坊开发开始于2013年12月份,当时两个开发者(中间:Jeffrey Wilcke和右边:Gavin)和一个大学辍学生(左边:Vitalik)决定集思广益,一起开发这一项目。ETH的第一个概念验证(Proof of Cocept 1,PoC1)在2014年2月1日完成。
为了启动庞大的开发商、矿工、投资者和其他利益相关者网络,以太坊宣布计划进行以太币代币的预售。2014年7月23日,以太坊通过为期42天的预售募集到1844万美金,大概为60102216枚以太坊。
继以太网成功预售之后,以太坊开发在一个名为ETH DEV的非营利组织下正式化,该组织根据以太坊的合同管理以太坊的发展——Vitalik Buterin,Gavin Wood和Jeffrey Wilcke一起担任该公司的3名董事。
2014年11月,ETH DEV在柏林举办了为期5天的第一次小型开发者会议devcon 0。
Devcon 0现场
2015年5月,奥运测试网推出,一直在2014年2月1日午夜开始的事情(POC1)即将结束。实际上在整个2014年和2015年,以太坊团队开发了一系列概念验证发布,在第9个POC(也是最后一个)开放测试网络,称为奥运会,开发者社区被邀请参加网络上限的测试,持有各种记录或以某种方式破坏系统的人可以获得丰厚的奖金。
这也是Frontier发布之前以太坊开发过程的最后阶段。
02发布
2015年7月30日,以太坊发布测试版,即Frontier(以太坊的第一个阶段)。全世界的矿工开动挖矿设备,用户运行节点,以太坊网络运行起来了。尽管作为以太坊项目的第一个里程碑,Frontier本质上是一个测试版本,供开发者学习和体验,并开始初步构建去中心化的应用和工具。
Frontier网络:
Frontier(前沿)采用了一个类似Bitcoiners的模型,是以太坊的最初版本。Frontier是空白版的以太坊网络:一个用于挖矿的界面和一种上传和执行合约的方法。
Frontier的主要用途是:将挖矿和交易所交易运行起来,从而社区可以运行挖矿设备,开始建立一个环境,人们可以在里面测试分布式应用(DApps)。在这个环境中,用户上传自己的软件到以太需要以太币。你可以通过以太币/比特币(ETH/BTC)交易对购买ETH,或者在预售期间购买以太币,然后可以在Frontier网络中使用它。
Frontier只有命令行界面,没有图形界面,需要非常精通整个以太坊模型,对工具的掌握非常好。你可以挖到真正的以太币,每个区奖励0.59个以太币,是正常以太币发行速率的10%。挖出的以太币可以用于支付程序运行费用,或者用于交互其它东西。
如果核心开发者和审计人员认为Frontier已经十分稳定了,ETH将从Frontier迁移到Homestead(家园)。当准备好迁移到Homestead(Frontier之后的另一个阶段),Frontier网络会被关闭。钱包中的以太币一起被转移,但是合约中的状态会被擦除,且通过“炸弹合约”的形式转换到新网络。
2015年11月初,第二届开发者大会DEVCON-1在伦敦市举行。为期5天的活动包括100多场演讲,小组讨论和闪电讲座,吸引了400多名参与者,各种开发者,企业家,思想家和企业高管。像UBS、IBM和微软这样的大公司的出席,也表明了企业界对这些技术的兴趣,微软也宣布将在其云计算平台Azure上提供以太坊区块链服务(Blockchain as a Service,BaaS)。
devcon 1现场
2016年3月14日(圆周率日,Pi Day),以太坊进入一个新阶段:Homestead。Homestead区块是主网络的第1150000个区块。对于测试网络Morden来说,Homestead区块是测试网络的第494000个区块。
Homestead版本:
Homestead是以太坊平台的第二个阶段,包括几个协议改变(protocol changes):
❶以太币挖矿获得100%的报酬,即5个ETH,而不再是Frontier时期的10%
❷EIP-2 主要的Homestead硬分叉改变
❸EIP-7 硬分叉相对应的EVM(以太坊虚拟机)更新:DELEGATECALL
❹EIP-8 devp2p 向前兼容性
2016年9月19日至24日,为期5日的第三届以太坊开发者会议DEVCON 2在上海举行。会议吸引了一千多名的参与者,并围绕以太坊开发、工具、安全、应用以及生态进行展望与探讨。此外,在DEVCON 2会议上,Vitalik将其最新的研究成果作为《以太坊紫皮书》发布,详细阐述了Casper和sharding(分片)技术的机制。
Devcon 2 现场
03低谷
事实上,2015-2016年是ETH的一个低谷,ETH团队在解决PoS、可扩展性中的一些核心问题上遭遇了一系列困难,具体包括“投注共识”,存储费用,分片技术等。
除了技术开发,外部面临的困难也给它带来了最为严峻的考验。
2016年4月30日 “The DAO” 项目开启众筹,在28天时间筹集了价值超过1.5亿美元的ETH,成为有史以来最大的众筹项目。
DAO(Decentralized Autonomous Organization)是“去中心化自治组织”的简称。其目的是为规则制定者以及决策机构编写智能合约,从而节约人工和管理成本,创建出一个去中心化的自治管理架构,可以把DAO理解为完全由计算机代码控制运作的类似公司的实体。
2016年6月18日,黑客利用The DAO代码中的漏洞,成功盗取了360万枚以太币,在当时这些币价值超过5000万美元,经过社区激烈的讨论后,以太坊社区决心通过硬分叉来阻止黑客将币提走。
2016年7月20日,以太坊硬分叉完成,以太坊在原链的基础上分叉出了一条新的链,然而,社区里的一些矿工依旧继续挖原链,这直接导致了Ethereum Classic(ETC)的诞生。从此以后,ETH和ETC两条链并行发展。
就在所有人都以为The DAO事件告一段落的时候,麻烦再次落在以太坊头上。在2016年行将结束前的几个月里,以太坊网络又遭受多次DoS攻击。The DAO事件和DoS攻击,最终耽误了很多人的时间和精力,时间长达6个月。
04大都会来临
2017年10月17日,以太坊按照原定计划于第473万个区块高度升级至第三阶段Metropolis(大都会)。
Metropolis版本共包含Byzantium(拜占庭)和Constantinople(君士坦丁堡)两个硬分叉,其中,Byzantium作为Metropolis首要部分成功部署,而后者则计划于2018年进行升级,后推迟至2019年1月16日。
“大都会"是以太坊发展的四个阶段里面的第三个,随着它的到来,以太坊增加了许多有趣的特性,即:zk-Snarks、PoS(Proof of Stake , 即权益证明)早期实施、智能合约的灵活性和稳定性和抽象账户
“拜占庭"将会引入大量新特性,主要包括前面讲的zk-Snarks、“revert功能和returndata指令”(智能合约的灵活性),以及抽象账户。
具体包括以下升级:
❶增加‘REVERT’操作符,允许处理错误不需要花费掉所有的gas(EIP 140)
❷现在交易接收方可以包括一个状态字段,用以指出交易成功还是失败(EIP 658)
❸在alt_bn128(EIP 196)和配对检查上(EIP 197)增加椭圆曲线和标量乘法,允许ZK-Snarks和其它加密数学
❹支持大数模幂(EIP 198),实现RSA签名验证和其它加密应用。
❺支持可变长度返回值(EIP 211)
❻增加‘STATICCALL’操作符,允许对其它合约进行非状态改变调用(EIP 214)
❼修改难度调整公式,将叔块计算在内(EIP 100)
❽冰河期/难度炸弹延期一年,区块奖励从5个以太币降到3个以太币(EIP 649)
05君士坦丁堡升级
此次升级除去包括大量提升平台效率的优化,进一步降低费用成本外,最重要的改变在于引入PoW+PoS混合共识机制,为PoW向PoS的顺滑过渡做准备。
总体来说这次升级主要有以下几个方面,具体为EIP-145、EIP-1052、EIP-1014、EIP-1234。
EIP-145:它向EVM添加了按位移位指令。按位移动是向左或向右移动数字位的过程。通过这个新指令,系统运行时的操作将减少10倍的gas消耗,意味着某些项目的智能合约将会变得更便宜。
EIP-1052:它引入了一项允许智能合约验证的新操作,使另一份合同的代码更有效率。以前此验证需要用户获取其他合同的代码,并验证。这个新操作会返回代码的哈希值,允许检查。合同的哈希就像一个指纹,它具有唯一的标识并且不可以伪造。
EIP-145和EIP-1052将使EVM更高效,从而使用户获得更便宜的价格在以太坊网络上运行他们的智能合约。
EIP-1014:将添加状态通道,可以与比特币的Lightning网络进行比较,允许某些交易不在主区块链进行,将大大提高以太坊的吞吐量和性能。(注:Lightning网络是扩容方案的一种,采用链下交易的形式,只需开始和结束需要在链上广播交易,其他的交易完全在链下实现。)
EIP-1234:这是一个引发争议的提议,是关于以太坊的“难度炸弹”(“Difficulty Bomb”)和减少块奖励。
EIP-1234为什么要引入难度炸弹?
在第二阶段Homestead(家园)中,100%采用PoW挖矿,但是挖矿的难度除了因为算力增长而增加之外,还有一个额外的难度因子呈指数级增加,这就是难度炸弹(Difficulty Bomb),为了防止PoW转PoS的过程中矿工联合起来抵制,从而分叉出两条以太坊区块链,难度炸弹被引入
难度炸弹指的是计算难度时除了根据出块时间和上一个区块难度进行调整外,加上了一个每十万个区块呈指数型增长的难度因子。
随着区块高度的增加,呈指数增长的难度因子比重将会显著提高,使得出块难度大大增加,矿工将难以挖出新的区块,这也将导致平均15秒的出块时间越来越长,每天总出块数也会下降,随着出块越来越艰难,到最后区块将被完全冻结,这个过程又被称作“冰川时代”(Ice Age)。
有了这个预期,一直使用PoW挖矿的矿工会逐渐发现转移到PoS上挖矿收益会更好,从而主动放弃PoW挖矿,将已购入的矿机做为沉没成本处理掉而不是发起分叉行动,同时难度炸弹也将在第三阶段Metropolis(大都会)时解除。
然而当真正进入到Metropolis(大都会)阶段时,转换到权益证明(PoS)的开发时间远比原计划的要长,工作量证明(PoW)仍然是以太坊当前挖矿主要的机制,此时以太坊的平均出块时间为15秒,并因为难度炸弹的作用开始出现增长趋势。
为了不堵塞交易,维持系统稳定运行,在PoS还未上线时,难度炸弹拆除需要被相应地延迟,实现方式是将挖矿难度按照回退300万个区块的高度去计算达到维持平均15秒的出块速度,这样操作后ETH的供应量会明显超出按原本难度炸弹时间表规划的供应量,这会导致通货膨胀,降低ETH的价值。
为了使ETH的供应量与原本计划的数量相当,于是需要减少每个区块的奖励,拜占庭(Byzantium)升级就将原本的5个ETH减少为3个ETH,叔块的奖励也将相应减少。这样冰川时代(Ice Age)到来时间就被推迟了4200万秒,大约是1.4年,预计到2018年年底的出块速度在平均30秒(EIP649)。
然而,随着权益证明(PoS)的开发进一步滞后,这次君士坦丁堡(Constantinople)升级不得不再一次重复拜占庭的操作,将难度炸弹解除再推迟12个月,实现方式是将挖矿难度按照回退500万个区块的高度,并进一步从3个ETH减少为2个ETH,叔块的奖励也将进一步减少(2E18 wei, or 2,000,000,000,000,000,000 wei, or 2 ETH)。
这样,冰川时代(Ice Age)也就被顺延了2900万秒,大约是12个月,预计到2019年冬季时的出块速度在平均30秒(EIP1234)。
06总结
从项目成立至今,以太坊的愿景一直在进化和扩展。简单的说,一开始以太坊(Ethereum)的愿景是下一代密码学账本,打算支持众多的高级功能,包括用户发行货币,智能协议,去中心化的交易和第一个完全的去中心化自治组织(DAOs)或去中心化自治公司(DACs)应用。
随着以太坊区块链的开发,逐步形成了与之相匹配的一套底层和高层协议,包括 Solidity、Whisper、IPFS、零知识证明系统、账户管理系统、专用的浏览器等等。以太坊已经从一个通过增加编程功能提高 Mastercoin 的简单尝试变成了实现更为宏大的愿景即“网络3.0”——一个更加安全、可信和开放的为共识、金融、审计、追踪、利用去中心化技术取代原有低效方案的应用而生的互联网,而区块链只是其中的一部分。
我们可以把以太坊整个升级之路用下表表示:
在2018年底的devcon 4上,ETH团队展示了以太坊2.0,即进入“宁静阶段”的三大特点是:权益证明的共识机制(casper是pow与pos共存的机制)、分片和Ewasm虚拟机,除此之外,还有侧链方案plasma等,ETH接下来的开发和道路仍然是艰巨的。
然而对于ETH这样一个成熟的项目来说,除了面对开发上的困难,在每一次升级之际如何妥善处理好社区生态的关系,也是需要慎重考虑的问题。据ETHernodes网站提供的数据显示,截至1月9日晚以太坊全网7863个全节点中仅有1%左右的节点支持君士坦丁堡硬分叉,尽管说难度炸弹在很大程度上保证了ETH不会分裂成两条链,但矿工们面临奖励收益减小的情况,是否会撤出ETH,选择其他链进行挖矿未可知。