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