2019年3月1日凌晨3時(shí)52分,以太坊區(qū)塊高度7280000,此前一再延期的“君士坦丁堡”與“圣彼得堡”兩大硬分叉終于成功在主網(wǎng)啟動(dòng)。目前網(wǎng)絡(luò)運(yùn)轉(zhuǎn)正常,最受人們關(guān)注的區(qū)塊獎(jiǎng)勵(lì)已降低為兩個(gè)ETH,沒(méi)有產(chǎn)生新鏈。
可以認(rèn)為,君士坦丁堡硬分叉已經(jīng)成功。
屢屢延期的硬分叉
由于開(kāi)發(fā)人員遇到的眾多障礙短期內(nèi)無(wú)法克服,原定于去年10月份進(jìn)行的“君士坦丁堡硬分叉”一再延期。先是從10月8日推遲到10月14日,后因?yàn)楣沧R(shí)問(wèn)題,14日的硬分叉升級(jí)再次落空,經(jīng)過(guò)漫長(zhǎng)的討論和會(huì)議后,以太坊開(kāi)發(fā)團(tuán)隊(duì)進(jìn)而把硬分叉的時(shí)間定在了2019年的1月16日。
然而,時(shí)間在臨近1月16日之前,又傳出了關(guān)于以太坊升級(jí)可能存在隱患的消息,當(dāng)時(shí)我們的文章“君士坦丁堡分叉,是否會(huì)重蹈“the DAO”覆轍?”對(duì)此做出了分析。果不其然,以太坊不愿冒著風(fēng)險(xiǎn)強(qiáng)行硬分叉,升級(jí)時(shí)間被再次延后到了今天(3月1日)凌晨。
作為區(qū)塊鏈行業(yè)的明星項(xiàng)目,以太坊力推的“君士坦丁堡硬分叉”吸引了外界廣泛的關(guān)注。最初,人們認(rèn)為,憑以太坊社區(qū)的技術(shù),升級(jí)本應(yīng)不在話(huà)下,而現(xiàn)實(shí)卻是以太坊社區(qū)將升級(jí)之日一再推后。很多業(yè)內(nèi)人士認(rèn)為,這種爽約行為給以太坊帶來(lái)了負(fù)面的影響,受到了一些非議和指摘。
然而,即便一再食言,以太坊也要保證“君士坦丁堡硬分叉”安全穩(wěn)定的實(shí)施,因?yàn)檫@對(duì)以太坊的影響將會(huì)非常深遠(yuǎn),很大程度上關(guān)乎著以太坊共識(shí)機(jī)制能否順利的改變。
可插拔架構(gòu)的作用
眾所周知,共識(shí)算法是區(qū)塊鏈的核心。有一種說(shuō)法是,共識(shí)算法就是區(qū)塊鏈?zhǔn)澜绲姆?,它決定了區(qū)塊鏈的主要特性和功能。雖然現(xiàn)在共識(shí)算法較多,如PoW,PoS,DPoS,PBTF等,但這些共識(shí)算法也是各有優(yōu)缺點(diǎn),沒(méi)有一種共識(shí)算法能夠適應(yīng)所有的需求,也就是所謂的“FLP不可能原理”。
“FLP不可能原理”:即便在網(wǎng)絡(luò)通信可靠的情況下,一個(gè)可擴(kuò)展的分布式系統(tǒng)的共識(shí)問(wèn)題通用解法的下限是——沒(méi)有下限即無(wú)解。
就拿以太坊來(lái)說(shuō)。最初以太坊在共識(shí)機(jī)制上,采用的是和比特幣一樣的PoW機(jī)制。隨著算力競(jìng)爭(zhēng)的加劇,人們發(fā)現(xiàn),PoW的挖礦行為不僅會(huì)消耗大量的能源,算力還會(huì)被少數(shù)礦場(chǎng)所壟斷,給去中心化造成威脅。因此,以太坊想要把共識(shí)機(jī)制更改為PoS。
而“君士坦丁堡硬分叉”的一個(gè)重要項(xiàng)目(EIP-1234)就是將出塊獎(jiǎng)勵(lì)從3ETH減少到2ETH,通過(guò)減少礦工獎(jiǎng)勵(lì),間接減少礦工數(shù)量,為日后的正式更改共識(shí)機(jī)制減少阻力。
另外,從辯證的角度來(lái)看,共識(shí)算法也在不斷的發(fā)展,總會(huì)有更好的算法出現(xiàn)或?qū)σ延兴惴ㄟM(jìn)行完善或改進(jìn)。因此,保證共識(shí)算法的可插拔,對(duì)維持項(xiàng)目的發(fā)展就顯得非常重要。
可插拔現(xiàn)狀和Trias的方案
理論上講,共識(shí)算法保證了節(jié)點(diǎn)間形成統(tǒng)一的過(guò)程,它可以與數(shù)據(jù)本身無(wú)關(guān)。但具體到區(qū)塊鏈上,因?yàn)槊糠N共識(shí)算法達(dá)成共識(shí)需要多個(gè)各自不同的邏輯過(guò)程,邏輯過(guò)程與共識(shí)算法密不可分,不能簡(jiǎn)單解耦,這給區(qū)塊鏈項(xiàng)目實(shí)現(xiàn)可插拔帶來(lái)極大的困難。
雖然目前共識(shí)算法完全替換難度很大,但對(duì)工作流程相近的共識(shí)算法而言,找出以單個(gè)塊為共識(shí)對(duì)象的算法,這些算法的替換是可以實(shí)現(xiàn)的。
在Trias的構(gòu)想中,共識(shí)算法的可插拔架構(gòu)被設(shè)計(jì)為三層,頂層功能主要包括智能合約、虛擬機(jī)等,第二層是共識(shí)算法框架單元,不同的共識(shí)算法作為獨(dú)立的單元,分別提供統(tǒng)一標(biāo)準(zhǔn)的接口給主框架調(diào)用。第三層是共識(shí)算法的可組合有機(jī)組合功能模塊,如gossip模塊、共識(shí)對(duì)象校驗(yàn)?zāi)K等。
頂層主系統(tǒng)和第二層的可插拔的算法兼容支持,借鑒Tendermint-ABCI實(shí)現(xiàn),根據(jù)配置調(diào)用不同的共識(shí)算法,共識(shí)算法再調(diào)用自己所需的功能模塊。
在Trias設(shè)計(jì)中,可插拔架構(gòu)主要包括以下要點(diǎn):
①支持世界時(shí)間同步,因?yàn)椴糠峙判蛩惴ㄊ菑?qiáng)時(shí)間敏感類(lèi)型;
②雙鏈結(jié)構(gòu),一個(gè)主業(yè)務(wù)鏈,另一個(gè)為配置鏈,每次動(dòng)態(tài)修改組合方案都在配置鏈產(chǎn)生新的塊作為起點(diǎn),新添加的變更功能模塊需通過(guò)配置鏈進(jìn)行同步。
③雙共識(shí)機(jī)制,配置鏈目前默認(rèn)使用基于TEE的PBFT。
綜上所述,雖然目前可插拔架構(gòu)技術(shù)尚需要進(jìn)一步開(kāi)發(fā)和完善,但其方便易用,降低成本和便于維護(hù)的優(yōu)勢(shì)已經(jīng)初步顯現(xiàn)出來(lái),這是未來(lái)公鏈需要可插拔架構(gòu)的三個(gè)最主要的原因。
評(píng)論