content is required\n

放长眼,走出君士坦丁堡一小步,以太坊还有大未来

备受关注的以太坊君士坦丁堡分叉进入24小时倒计时。

之前,以太坊已经经历过多次分叉。

2016年,以太坊遭遇了黑客攻击事件,DAO筹集的1.6亿美元资金,被黑客利用智能合约漏洞转走。为了减少损失,以太坊决定修改代码,然而,以太坊内部部分人认为,这样做违背了区块链技术不可篡改的特点。两种意见,催生了现在的以太坊和以太经典。

以不过这次分叉和因为黑客攻击导致的分叉不同,君士坦丁堡分叉可以理解为一次版本的更新。

有人预计,即将实施的君士坦丁堡硬分叉预计会大幅改进以太坊的性能,而且以太坊改进提案(EIP)中提到的采矿奖励等一些重大变化也会在这次硬分叉中实施。

也有不少人,对此次分叉表示了质疑。对矿工来说,这次君士坦丁堡的硬分叉,必然会减少他们的挖矿收益:为了防止升级过后,区块产生的速度更快,以太坊将挖矿奖励从3ETH降到2ETH。

另外,ASIC芯片的出现,让挖矿业务集中到“大户”手中,“散户”的生存空间越来越小。

到底什么是君士坦丁堡分叉?我们又会经历什么?

君士坦丁堡分叉

什么是君士坦丁堡分叉?

君士坦丁堡分叉属于以太坊从PoW转向PoS升级道路上的一环。以太坊的最终目标是PoW转向PoS,成为一个高性能的世界计算机。就像我们国家制定的三步走战略、两个百年计划等。在向这个终极目标迈进的过程中,V神在成立以太坊初期就制定了一个四步走战略:前沿、家园、大都会、宁静。

其中,大都会阶段又分为两小步:拜占庭分叉和君士坦丁堡分叉。我们现在所处的时间段是在大都会阶段中,拜占庭分叉后向君士坦丁堡进发的前夜。君士坦丁堡硬分叉是一个系统范围的以太坊技术更新,旨在提高网络运算效率。

“这是以太坊早期规划的时候,对于以太坊的初期发展规划了四个阶段,但以太坊是一个长期项目,一定不会只有四个阶段。”Nervos联合创始人吕国宁补充道。

2013年,11月,以太坊白皮书问世。

2015年,7月30日,Frontier(前沿)发布,全世界的矿工开动挖矿设备,用户运行节点,以太坊网络成长起来。这是以太坊的第一个阶段,也是初级版本。但并不是一个完全安全可靠的网络。

2016年3月14日,Homestead(家园)发布。没有明显的技术性里程碑事件,但是网络运行更加平稳,减少了不安全、不可靠的因素。以太坊的第二个版本,开发者可以开始在网络上开发和部署应用。插曲:因为The DAO危机,7月20日硬分叉为两条链:ETH和ETC。

Metropolis(大都会)分为两个小阶段:

2017年10月,拜占庭分叉。

2019年1月,君士坦丁堡分叉。

宁静(Serenity),以太坊 2.0。

如何确定每次硬分叉的时间?

据公告,以太坊将在区块高度7080,000进行君士坦丁堡分叉,预估时间为2019年1月16日。那么具体的分叉高度是如何确定呢?在什么情况下可以升级进入到下一个阶段?

“准确的说,以太坊每一个阶段的升级是没有确切时间的,它要根据项目的开发进度来的。”imToken产品运营郭辉向火鸟财经解释道。他在2016年中旬接触到区块链,17年加入imToken。

“在现实的开发中,有很多因素(如技术上的难度和一些计划外的事情)会影响开发进程,比如 2016 年的 The DAO hacker 事件,实际上把 Metropolis 的首个拜占庭分叉拖延了至少半年以上。”吕国宁补充道,“当技术开发准备好,测试网络如期进行,社区对升级达成一致共识,就可以确定硬分叉的时间了。”

确实,当以太坊团队即将发布Homestead时,是这样说的:“我们的目标是:当Frontier网络连续四周运行不出现严重问题(严重问题指共识失败,或者用户丢失大量以太币,或者中等程度的网络故障)时,我们将发布Homestead。我们将会发布进入Homestead阶段的详细策略。”

君士坦丁堡分叉的变化

每一次升级都伴随着相应的变化。这次君士坦丁堡分叉主要有五个方面的改进:

(注:Ethereum Improvement Proposal,EIP即以太坊改进建议的缩写)

EIP145:主要引进了「按位移动」(Bitwise Shifting)的运算符。以太坊虚拟机(EVM)通过原生支持「按位移动」运算符,能大大优化 DApp 开发者智能合约的 Gas 消耗。

EIP1014:新增了一个合约创建函数CREATE2,提供了一种可以提前预测合约地址的合约创建方法,该升级能更好的支持基于状态通道或者链下交易的扩容解决方案,即现在主流的 Layer2 方案。

EIP1052:引入了一个新的操作码,能有效减少以太坊网络对于大型智能合约的运算量。

EIP1234:将现有的区块奖励由 3 ETH 减少到 2 ETH,减产 33%,同时将难度炸弹(Difficulty Bomb)推迟 12 个月。

EIP1283:通过更改 SSTORE 操作码优化智能合约网络存储的定价(Gas),减少和智能合约运行量不匹配的 Gas 消耗。

总的来看,此次升级有利于优化以太坊网络的整体性能。但是大家感受最直观的可能是EIP1234中,挖矿奖励减少,难度炸弹(difficulty bomb)推迟 12 个月。

难度炸弹是神来之笔

难度一词来源于比特币,为了防止矿工提前把比特币全部挖出来,中本聪设计了难度系统,将出块时间稳定在十分钟左右。如果出块小于十分钟则难度系数会增加,也就是说解题难度会增加,反之则会降低。

以太坊也采取了这样的设计,不过除了难度系统,还有一个难度炸弹。

“难度炸弹的原理是每 10w 个块高度后,给挖矿难度增加一个系数,而这个难度系数是一个指数函数,所以难度的增长由于这个指数函数的存在而变成一条指数曲线,这就是所谓的难度炸弹。”吕国宁解释道。

难度炸弹会导致矿工挖矿的难度越来越高,最终导致基本上挖不出块(又称以太坊冰河期Ethereum Ice Age)。

为什么要设计这个难度炸弹呢?根据以太坊核心研发人员的解释是:“设计以太坊的时候,为了避免网络抗拒变化的趋势。我们设计了一个冰河时期。冰河时期的存使得通过硬分叉,来实现网络变化以及优化变成一种必要。”

imToken的郭辉的解读也是如此,他说,难度炸弹是以太坊开发者团队一开始就人为设置,用来监督开发者团队的开发进度,让矿工退出老链、前往新链。“难度炸弹”的主要工作原理是,每一次升级,开发者团队都会根据下一次升级的大概时间,设置“难度炸弹”的时间。当时间接近冰河时期时,以太坊的出块时间会呈指数增加,导致矿工几乎无法正常挖矿,开发者最好在“冰河期”到来之前升级网络或者调整“难度炸弹”的时间。

“难度炸弹的确是一个神来之笔,如果没有难度炸弹,社区如果要对某个升级达成共识有可能因为分歧而无限拖延下去,有了难度炸弹则大幅提升了共识达成的效率。”吕国宁也非常认可这个设计,同时他也指出,这个设计的缺点是,如果有其他因素拖延了开发,导致技术没有准备好,而难度炸弹效果显现出来时,就会出现很多问题。

2017 年 10 月拜占庭分叉之前,以太坊的出块时间已经从 15s 飙升到 30s 以上。当时整个开发者社区压力是非常大的,为此社区把难度炸弹重置到初始状态。

此次君士坦丁堡升级中,开发者把引爆“难度炸弹”的时间设置成了12个月。如果到时候开发者在这个期限内完成了开发进度,就直接升级到下一个里程碑,如果没有,就只能再延迟难度炸弹的引爆时间。在以太坊最终完成使命之前,难度炸弹理论上都会存在。

但是吕国宁也指出:“难度炸弹是一个deadline,但是在deadline之前没有准备好,那 deadline就会被质疑。”

为什么要向PoS转变?

所有的这一些设计都是为了实现从PoW向PoS的转变,但是为什么要转向PoS呢?在Ethfans社区,火鸟财经通过翻阅大量的文章,在其中找到了一些说法:

工作量证明意味着将电力转换为热量、以太币和网络稳定性。但是若非必要,我们不想因为挖矿排放过多热量,所以我们需要修改算法:权益证明(PoS)。

Casper: Casper是以太坊将要采用的PoS算法,将使区块链的确认速度相对于PoW的线性效率,达到指数级。我们的目标是同时实现更短的出块时间(我个人认为4秒会是一个平衡安全性,资源浪费以及中心化风险的选择)、更好的确认机制以及大幅降低能量消耗。

PoS是一种在公链中的共识算法,可作为PoW算法的一种替换。PoW是保证比特币、当前以太坊和许多其它区块链安全的一种机制,但是PoW算法在挖矿过程中因破坏环境和浪费电力而受到指责。PoS试图通过以一种不同的机制取代挖矿的概念,从而解决这些问题。相较工作证明制度,PoS制度中实施经济惩罚的可能会使各种51攻击变得极其昂贵。

这些言论大部分来自V神和以太坊核心开发成员。可见之所以选择PoS主要是出于能耗、性能和安全方面的考量。

为什么要曲线救国?

看到这里,相信不少朋友就会问,既然认为PoS在很多方面优于PoW,为什么不一开始就选择这个PoS呢?为什么要曲线救国呢?

对此,吕国宁解释道, Ethereum 发布是 在2015 年,在那时要发布一条带有图灵完备的 EVM 虚拟机,并且可以运行智能合约的主网络,本身就是一件非常挑战的事情。当时 PoW 算法经过多年验证,是非常安全稳定的共识算法,而PoS 算法在彼时并不成熟。因此,对于 Ethereum来说,没有必要在那个时候冒险选择从理论到工程实现都不成熟的技术。

他还透露,这样“曲线救国”的做法,以太坊并不是先例。在他之前,BM 开发的Bitshare 也是这么做的。Bitshare 在上线之前,其 DPoS 共识机制还没有开发好,所以先使用了 PoW 算法,到了后面才切换到使用 DPoS 的网络。

imToken的郭辉也给出了自己的看法,他说主要有这么几个原因:

第一,社区的成熟度。以太坊白皮书刚出来的时候,整个区块链还是一个很小众的圈子,不管是投资圈还是技术圈,基本还是十万级的圈子。作为开山鼻祖的比特币,采用的是PoW共识,为了让项目更好的推广,让更多的成员参与进来,采用主流的PoW更容易让社区接受。

第二个,技术不成熟。PoS理论上是需要一定的时间去研究清楚的,如果在没有完全想清楚之前,就贸然上线一个不成熟的PoS方案,还不如先用一个成熟的PoW,这样项目交付更快,也能在一定程度上抢占先机,我们现在看到的PoS方案,已经经历过了几年的迭代。

好了,我们还是静静等待分叉的到来吧。

参考资料:《一文揭示以太坊君士坦丁堡升级》作者:imToken产品运营郭辉

火鸟财经原创,更多精彩内容请关注“火鸟财经”