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