以太坊君士坦丁堡硬分叉介绍
扫描二维码
随时随地手机看文章
2019年3月1日凌晨3时52分,以太坊区块高度7280000,此前一再延期的“君士坦丁堡”与“圣彼得堡”两大硬分叉终于成功在主网启动。目前网络运转正常,最受人们关注的区块奖励已降低为两个ETH,没有产生新链。
可以认为,君士坦丁堡硬分叉已经成功。
屡屡延期的硬分叉
由于开发人员遇到的众多障碍短期内无法克服,原定于去年10月份进行的“君士坦丁堡硬分叉”一再延期。先是从10月8日推迟到10月14日,后因为共识问题,14日的硬分叉升级再次落空,经过漫长的讨论和会议后,以太坊开发团队进而把硬分叉的时间定在了2019年的1月16日。
然而,时间在临近1月16日之前,又传出了关于以太坊升级可能存在隐患的消息,当时我们的文章“君士坦丁堡分叉,是否会重蹈“the DAO”覆辙?”对此做出了分析。果不其然,以太坊不愿冒着风险强行硬分叉,升级时间被再次延后到了今天(3月1日)凌晨。
作为区块链行业的明星项目,以太坊力推的“君士坦丁堡硬分叉”吸引了外界广泛的关注。最初,人们认为,凭以太坊社区的技术,升级本应不在话下,而现实却是以太坊社区将升级之日一再推后。很多业内人士认为,这种爽约行为给以太坊带来了负面的影响,受到了一些非议和指摘。
然而,即便一再食言,以太坊也要保证“君士坦丁堡硬分叉”安全稳定的实施,因为这对以太坊的影响将会非常深远,很大程度上关乎着以太坊共识机制能否顺利的改变。
可插拔架构的作用
众所周知,共识算法是区块链的核心。有一种说法是,共识算法就是区块链世界的法律,它决定了区块链的主要特性和功能。虽然现在共识算法较多,如PoW,PoS,DPoS,PBTF等,但这些共识算法也是各有优缺点,没有一种共识算法能够适应所有的需求,也就是所谓的“FLP不可能原理”。
“FLP不可能原理”:即便在网络通信可靠的情况下,一个可扩展的分布式系统的共识问题通用解法的下限是——没有下限即无解。
就拿以太坊来说。最初以太坊在共识机制上,采用的是和比特币一样的PoW机制。随着算力竞争的加剧,人们发现,PoW的挖矿行为不仅会消耗大量的能源,算力还会被少数矿场所垄断,给去中心化造成威胁。因此,以太坊想要把共识机制更改为PoS。
而“君士坦丁堡硬分叉”的一个重要项目(EIP-1234)就是将出块奖励从3ETH减少到2ETH,通过减少矿工奖励,间接减少矿工数量,为日后的正式更改共识机制减少阻力。
另外,从辩证的角度来看,共识算法也在不断的发展,总会有更好的算法出现或对已有算法进行完善或改进。因此,保证共识算法的可插拔,对维持项目的发展就显得非常重要。
可插拔现状和Trias的方案
理论上讲,共识算法保证了节点间形成统一的过程,它可以与数据本身无关。但具体到区块链上,因为每种共识算法达成共识需要多个各自不同的逻辑过程,逻辑过程与共识算法密不可分,不能简单解耦,这给区块链项目实现可插拔带来极大的困难。
虽然目前共识算法完全替换难度很大,但对工作流程相近的共识算法而言,找出以单个块为共识对象的算法,这些算法的替换是可以实现的。
在Trias的构想中,共识算法的可插拔架构被设计为三层,顶层功能主要包括智能合约、虚拟机等,第二层是共识算法框架单元,不同的共识算法作为独立的单元,分别提供统一标准的接口给主框架调用。第三层是共识算法的可组合有机组合功能模块,如gossip模块、共识对象校验模块等。
顶层主系统和第二层的可插拔的算法兼容支持,借鉴Tendermint-ABCI实现,根据配置调用不同的共识算法,共识算法再调用自己所需的功能模块。
在Trias设计中,可插拔架构主要包括以下要点:
①支持世界时间同步,因为部分排序算法是强时间敏感类型;
②双链结构,一个主业务链,另一个为配置链,每次动态修改组合方案都在配置链产生新的块作为起点,新添加的变更功能模块需通过配置链进行同步。
③双共识机制,配置链目前默认使用基于TEE的PBFT。
综上所述,虽然目前可插拔架构技术尚需要进一步开发和完善,但其方便易用,降低成本和便于维护的优势已经初步显现出来,这是未来公链需要可插拔架构的三个最主要的原因。