Harmony的目標(biāo)是打造一個(gè)基于分片的區(qū)塊鏈,具備完全擴(kuò)展性、安全性。它研究了市面上很多的區(qū)塊鏈解決方案,提出了自己的工程落地方案。這也是Harmony值得大家關(guān)注的地方。
這個(gè)是很高的目標(biāo),首先具備完全的可擴(kuò)展性,Harmony的分片不僅包括交易確認(rèn)、網(wǎng)絡(luò)通信,也包括區(qū)塊鏈狀態(tài)的分片。其次要保證分片的安全性。Harmony的分片基于DRG(分布式隨機(jī)生成)過(guò)程,這讓它具有無(wú)法被預(yù)測(cè)、公平、可驗(yàn)證和可擴(kuò)展的特性。此外,Harmony采用了PoS機(jī)制,而不是PoW機(jī)制來(lái)選擇驗(yàn)證者,它對(duì)PBFT共識(shí)機(jī)制有自己的優(yōu)化。PoS有一定的門檻,既要保證小的權(quán)益質(zhì)押者能夠參與網(wǎng)絡(luò)和賺取收益,也要防止惡意攻擊者在單個(gè)分片獲得掌控權(quán)。Harmony通過(guò)采用自適應(yīng)信息擴(kuò)散算法(Adaptive Information Dispersal Algorithm)實(shí)現(xiàn)分片內(nèi)和跨分片網(wǎng)絡(luò)的信息傳播。Harmony還采用Kademlia路由實(shí)現(xiàn)跨分片交易隨著分片數(shù)量增加呈對(duì)數(shù)級(jí)擴(kuò)展。有了分片,還必須保持跨分片交易的一致性,Harmony也支持跨分片交易,支持分片之間的直接通信,通過(guò)原子鎖定機(jī)制確??绶制灰椎囊恢滦?。
總言之,Harmony通過(guò)對(duì)協(xié)議層和網(wǎng)絡(luò)層的優(yōu)化,試圖提供一個(gè)可擴(kuò)展的,同時(shí)也是安全和去中心化的區(qū)塊鏈,能夠支持更多主流的去中心化應(yīng)用場(chǎng)景,包括游戲、去中心化交易所、IoT等。這是一個(gè)目標(biāo)遠(yuǎn)大的愿景。
?
?
目前,許多新的區(qū)塊鏈項(xiàng)目正試圖提高交易處理速度(吞吐量),但像EOS和TRON中的dPoS,Quarkchain中的Rootchain等新解決方案都必須犧牲部分關(guān)鍵要素,譬如去中心化和安全性,才能顯著提升性能。
這樣的系統(tǒng)盡管運(yùn)行過(guò)程十分迅速,但只能算是半中心化的系統(tǒng),喪失了區(qū)塊鏈的核心理念——去中心化。
分片作為區(qū)塊鏈擴(kuò)容的解決方案,可顯著提升網(wǎng)絡(luò)性能且不損失安全性和去中心化。
Harmony通過(guò)在區(qū)塊鏈中引入狀態(tài)分片來(lái)解決區(qū)塊鏈擴(kuò)容問(wèn)題——由于每個(gè)節(jié)點(diǎn)只需運(yùn)行和存儲(chǔ)一部分區(qū)塊鏈數(shù)據(jù)就可以完成交易,交易處理工作量被分?jǐn)?,由此大大提高了區(qū)塊本身的可擴(kuò)展性。
?
?
擴(kuò)展問(wèn)題是目前區(qū)塊鏈行業(yè)最受關(guān)注的問(wèn)題之一。誰(shuí)率先解決這個(gè)問(wèn)題,誰(shuí)將成為行業(yè)的引領(lǐng)者。當(dāng)然,這里的前提是在兼顧安全和去中心化兩個(gè)屬性的前提下,如果以犧牲這兩個(gè)關(guān)鍵屬性來(lái)實(shí)現(xiàn)突破,這只是低層級(jí)的突破,或者是走向了不同的發(fā)展路徑。
在兼顧安全和去中心化前提下,分片是區(qū)塊鏈擴(kuò)展的最重要的路徑之一。Harmony探索的重點(diǎn)就在于此,盡管目前有其他的分片區(qū)塊鏈項(xiàng)目,還有以太坊2.0,也有跨鏈的項(xiàng)目,Harmony如果能在分片的探索路上能夠比其他項(xiàng)目的工程落地更扎實(shí),那么它就有機(jī)會(huì)在競(jìng)爭(zhēng)中獲得先機(jī)。?
當(dāng)然,Harmony團(tuán)隊(duì)選擇的是一條難的路,需要很多的努力,也有非常強(qiáng)勁的競(jìng)爭(zhēng)者。據(jù)Harmony團(tuán)隊(duì)向藍(lán)狐筆記介紹,項(xiàng)目已完成1800萬(wàn)美元融資,投資人有來(lái)自硅谷、澳大利亞、香港、新加坡的基金,有了一個(gè)很好的開(kāi)始。
從Harmony的白皮書(shū)可以看出,團(tuán)隊(duì)在技術(shù)思路上清晰,對(duì)于分片工程落地要面對(duì)的問(wèn)題也有深入思考,團(tuán)隊(duì)以研發(fā)人員為主,主要來(lái)自于微軟、谷歌、蘋果公司的背景。
?
?
可擴(kuò)展的FBFT共識(shí)機(jī)制
Harmony沒(méi)有采用PoW,而是采用PoS機(jī)制,用戶通過(guò)質(zhì)押代幣獲得生產(chǎn)區(qū)塊的權(quán)利及獎(jiǎng)勵(lì)。同時(shí),Harmony在區(qū)塊的生產(chǎn)和驗(yàn)證過(guò)程中,采用FBPT的機(jī)制。在說(shuō)明什么是FBFT之前,我們知道PBFT是實(shí)用拜占庭容錯(cuò)。由于PBFT有一個(gè)驗(yàn)證者需要把其投票廣播給其他驗(yàn)證人的機(jī)制,這使得PBFT在通信復(fù)雜度上極大增加,導(dǎo)致系統(tǒng)如果節(jié)點(diǎn)達(dá)到幾百上千個(gè)時(shí),區(qū)塊鏈很難擴(kuò)展。?
針對(duì)PBFT難以擴(kuò)展的問(wèn)題,F(xiàn)BFT進(jìn)行了優(yōu)化,F(xiàn)BFT在通信復(fù)雜度方面可以實(shí)現(xiàn)線性擴(kuò)展。具體來(lái)說(shuō),怎么實(shí)現(xiàn)?FBFT機(jī)制中,它也有領(lǐng)導(dǎo)者和驗(yàn)證者的角色,并不要求所有驗(yàn)證者廣播他們的投票,領(lǐng)導(dǎo)者運(yùn)行一個(gè)多重簽名的簽名過(guò)程來(lái)收集驗(yàn)證者的投票,這個(gè)多簽的大小是O(1),然后廣播投票。這意味每個(gè)驗(yàn)證者只需接收一個(gè)多重簽名,將通信的復(fù)雜度從O(n^2)減少到O(n)。?
Schnorr簽名機(jī)制可以實(shí)現(xiàn)恒定大小的多重簽名聚合,并在驗(yàn)證者之間形成多播樹(shù)以方便消息傳遞,但是schnorr多重簽名要求秘密承諾輪次,會(huì)導(dǎo)致單個(gè)多重簽名兩次往返的問(wèn)題,F(xiàn)BFT則采用了BLS(Boneh-Lynn- Shacham)多簽方案來(lái)優(yōu)化這個(gè)問(wèn)題,實(shí)現(xiàn)只要求一次往返,由此,F(xiàn)BFT比普通采用Schonorr簽名機(jī)制的BFT要快50%。最后,Harmony還采用RaptorQ噴泉碼來(lái)加速區(qū)塊廣播過(guò)程。
需要注意的一點(diǎn)是,所有Harmony的共識(shí)驗(yàn)證者都是基于PoS機(jī)制選出來(lái)的。有更多投票份額的驗(yàn)證者比其他人有更多的選票,而不是一次簽名一票。這也意味者,領(lǐng)導(dǎo)者等待的不是2f+1的驗(yàn)證者簽名,而是2f+1的驗(yàn)證者的投票權(quán)份額。?
融合VRF和VDF的隨機(jī)算法?
對(duì)于區(qū)塊鏈來(lái)說(shuō),要快速要擴(kuò)展,比如上述的FBFT能夠?qū)崿F(xiàn)更快速的交易確認(rèn),但安全永遠(yuǎn)是最重要的。在驗(yàn)證區(qū)塊的過(guò)程中,保持隨機(jī)性是安全的重中之重。?
好的隨機(jī)算法必須同時(shí)保證不可預(yù)測(cè)、可驗(yàn)證、一視同仁、以及可擴(kuò)展。有的協(xié)議可以實(shí)現(xiàn)不可預(yù)測(cè)、一視同仁和可驗(yàn)證,但擴(kuò)展性上較弱,例如RandHound協(xié)議。它們有各自的有點(diǎn)和缺點(diǎn)。?
Harmony提出一種隨機(jī)生成的算法,它融合了VRF和VDF兩種技術(shù)。VRF是可驗(yàn)證隨機(jī)函數(shù)(Verifiable Random Function),VDF是可驗(yàn)證延遲函數(shù)(Verifiable Delay Function)。Algorand利用基于VRF(可驗(yàn)證隨機(jī)函數(shù))的加密分類來(lái)選擇共識(shí)驗(yàn)證組;以太坊2.0提出VDF(可驗(yàn)證延遲函數(shù))用于延遲實(shí)際隨機(jī)數(shù)的揭示,防止最后揭示者的攻擊。?
由于有VDF,領(lǐng)導(dǎo)者在 pRnd提交到區(qū)塊鏈之前,無(wú)法知道實(shí)際的最終隨機(jī)數(shù)。由于使用VDF來(lái)計(jì)算Rnd,pRnd已經(jīng)在前一個(gè)區(qū)塊中提交,所以領(lǐng)導(dǎo)者就無(wú)法操縱它。如果領(lǐng)導(dǎo)者不提交pRnd 停止協(xié)議,F(xiàn)BFT有一個(gè)超時(shí)機(jī)制可以切換領(lǐng)導(dǎo)者并重新啟動(dòng)協(xié)議。此外,Harmony所采用的DRG協(xié)議,其協(xié)議的復(fù)雜度是O(n) , 比有些項(xiàng)目在速度上至少快一個(gè)數(shù)量級(jí)。
基于PoS的分片
不管是PoW還是PoS都要預(yù)防女巫攻擊。PoW鏈通過(guò)算力來(lái)進(jìn)行身份證明,并由此獲得生產(chǎn)區(qū)塊的權(quán)利。而Harmony采用的是PoS機(jī)制,PoS使用驗(yàn)證者權(quán)益代幣質(zhì)押來(lái)進(jìn)行證明。要想成為Harmony的驗(yàn)證者,必須首先質(zhì)押一定的代幣。所質(zhì)押的代幣越多,所能獲得的驗(yàn)證者投票份額也就越多。每個(gè)投票份額對(duì)應(yīng)BFT共識(shí)的一票。
權(quán)益質(zhì)押者獲得跟其所質(zhì)押的代幣成正比的投票份額。該投票份額會(huì)隨機(jī)分配到分片。成為分片驗(yàn)證者的權(quán)益質(zhì)押人在分片中獲得相應(yīng)的投票權(quán)。?
Harmony的共識(shí)和分片過(guò)程中,有一個(gè)周期(Epochs)的概念。周期是預(yù)定的時(shí)間間隔,在這個(gè)期間內(nèi),分片結(jié)構(gòu)是固定的,每個(gè)分片持續(xù)地與同一組驗(yàn)證者運(yùn)行共識(shí)。?
每個(gè)周期的開(kāi)始,會(huì)由DRG協(xié)議產(chǎn)生隨機(jī)數(shù),基于隨機(jī)數(shù)來(lái)確定分片結(jié)構(gòu)。驗(yàn)證者如果想要驗(yàn)證某個(gè)時(shí)期內(nèi)的交易,必須在前一時(shí)期質(zhì)押其代幣。權(quán)益質(zhì)押的截止時(shí)間是在隨機(jī)數(shù)原像 pRnd被提交到區(qū)塊鏈之前。?
在每個(gè)新的驗(yàn)證周期開(kāi)始,新驗(yàn)證者的投票份額都會(huì)隨機(jī)分給分片。新驗(yàn)證者加入分片,其中的投票份額會(huì)得到分配。分片的共識(shí)達(dá)成至少需要有2f+1的投票份額的區(qū)塊簽名。?
為了保證單個(gè)分片的安全,Harmony采用了自適應(yīng)閥值PoS,它會(huì)以自適應(yīng)的方式來(lái)通過(guò)算法調(diào)整投票份額的價(jià)格,并把個(gè)體投票份額分配給分片,而不是單個(gè)驗(yàn)證者。?
為了預(yù)防大規(guī)模質(zhì)押代幣攻擊,Harmony不是通過(guò)驗(yàn)證者進(jìn)行分片,而是通過(guò)投票份額進(jìn)行分片,防止大量持幣驗(yàn)證者攻占單一分片。如果單個(gè)驗(yàn)證者擁有分配到不同分片的投票份額,則它可以被分配到多個(gè)分片。分片的領(lǐng)導(dǎo)者被確定為在某組中擁有第一個(gè)投票份額的驗(yàn)證者。?
同時(shí)投票份額較小,以至于惡意攻擊者無(wú)法在單個(gè)分片中聚集力量。Harmony經(jīng)過(guò)測(cè)算認(rèn)為,一旦超過(guò)600個(gè)投票份額,可以保證分片的高安全性。?
從經(jīng)濟(jì)利益來(lái)考量,擁有更多質(zhì)押代幣的驗(yàn)證者有更多機(jī)會(huì)被選為領(lǐng)導(dǎo)者。如果發(fā)生惡意行為,質(zhì)押了代幣的驗(yàn)證者擔(dān)心其利益會(huì)被消減,也由此會(huì)保證網(wǎng)絡(luò)的安全。?
除了以上的機(jī)制之外,Harmony還采用一種重新洗牌的分片方案來(lái)提高其安全性。因?yàn)槿绻制3纸Y(jié)構(gòu)固定,惡意攻擊者仍有機(jī)會(huì)實(shí)施攻擊。比如實(shí)施靜態(tài)循環(huán)攻擊、慢適應(yīng)攻擊或完全適應(yīng)攻擊等。Harmony采用基于Cuckoo規(guī)則的重新分片機(jī)制來(lái)解決這些問(wèn)題。在一個(gè)驗(yàn)證周期結(jié)束,其中撤回質(zhì)押的驗(yàn)證者會(huì)被逐出該網(wǎng)絡(luò),保留質(zhì)押的人會(huì)留下來(lái)。?
快速的狀態(tài)同步
?一個(gè)周期的首個(gè)區(qū)塊包含上一個(gè)周期首個(gè)區(qū)塊的哈希鏈接。這允許新節(jié)點(diǎn)的狀態(tài)快速同步,其中它們可以依賴灰色區(qū)塊來(lái)快速驗(yàn)證當(dāng)前的狀態(tài)。?
假如說(shuō)要驗(yàn)證分片交易,需要下載整個(gè)區(qū)塊鏈歷史,那么時(shí)間上太過(guò)于漫長(zhǎng),如果你同步過(guò)以太坊區(qū)塊鏈歷史就知道了,可能需要好幾天的時(shí)間。而Harmony只須下載一個(gè)周期時(shí)間窗口內(nèi)的當(dāng)前狀態(tài)。?
在Harmony,加入分片的新驗(yàn)證者首先下載該分片的當(dāng)前狀態(tài)tries。新節(jié)點(diǎn)下載歷史區(qū)塊頭,并通過(guò)檢查其簽名來(lái)驗(yàn)證區(qū)塊頭。只要有從當(dāng)前狀態(tài)返回到創(chuàng)世區(qū)塊的加密蹤跡,如哈希指針和簽名,該分片狀態(tài)就有效。?
同時(shí),為了減少簽名驗(yàn)證計(jì)算所帶來(lái)費(fèi)用和時(shí)間成本,Harmony的每個(gè)周期的首個(gè)區(qū)塊包含額外的哈希指針指向上個(gè)周期的首個(gè)區(qū)塊。通過(guò)這種方式,新節(jié)點(diǎn)在追蹤其到創(chuàng)世區(qū)塊的哈希指針時(shí)可以跳過(guò)一個(gè)周期內(nèi)的其他區(qū)塊,由此加快對(duì)當(dāng)前區(qū)塊鏈狀態(tài)的驗(yàn)證。最后,為了進(jìn)一步優(yōu)化狀態(tài)同步過(guò)程,Harmony將使區(qū)塊鏈狀態(tài)本身盡可能小。
相關(guān)鏈接:
https://www.qukuaiwang.com.cn/szhb/3285.html###
?
*以上內(nèi)容由幣界網(wǎng)官方整理,如若轉(zhuǎn)載,請(qǐng)注明出處。