Harmony區塊鏈的分片擴充套件之路

買賣虛擬貨幣

(晨光照耀原野,梵高)

區塊鏈的效能問題直接影響到它走向主流人群的步伐。比特幣tps大約為7個左右,這讓它目前很難達成當初的點對點支付系統的目標。以太坊tps大約為15個左右,也無法成為執行DApp的“世界計算機”。這導致比特幣和以太坊都越來越走向效能要求沒那麼高的價值儲存和去中心化金融方向。

如果區塊鏈要達成去中心化網路的目標,構建一個去中介化的應用生態,也就是實現web3.0的願景,其中一個無法逃避的最重要的問題是在兼顧其安全和去中心化的情況下,達到一定規模的效能,能夠實現核心行為鏈上執行。

Harmony的堅守與改進

為了實現區塊鏈效能上的突破,各種不同專案絞盡腦汁,從各個層面和維度進行改進。從共識機制、分片、layer2、子鏈、跨鏈等角度進行擴充套件。共識機制從PoW轉為PoS,有的專案,甚至為了實現更高的效能,選擇部分犧牲去中心化的程度,比如DPoS機制;也有從不同的資料結構上著手,例如DAG、Holochain等。總之,就是各顯神通,從大的視野看,這些實踐,對於區塊鏈發展都是前行的探索,能給整個行業帶來實踐啟示和可能進展。

目前看,為了兼顧安全和去中心化,分片是其中最重要的突破方向之一。分片就像高速公路的收費站,原來只有一個收費通道,都得排隊,吞吐量小。如果開放了更多的收費通道,其處理能力也會隨之線性增長。分片對於公鏈的效能提升是顯而易見的。

當然分片也是技術要求很高的解決方案,這裡有一些難點需要處理。比如分片安全、跨分片交易、網路通訊等。有些專案在分片過程中因為其依賴PoW作為隨機生成的機制容易受到單分片接管攻擊,有的分片專案不劃分割槽塊鏈資料儲存,可能會影響部分機器參與網路,影響去中心化的程度。

那麼,Harmony怎麼看待這個問題?它如何來解決區塊鏈的效能問題?

Harmony的目標是打造一個基於分片的區塊鏈,具備完全擴充套件性、安全性。它研究了市面上很多的區塊鏈解決方案,提出了自己的工程落地方案。這也是Harmony值得大家關注的地方。

這個是很高的目標,首先具備完全的可擴充套件性,Harmony的分片不僅包括交易確認、網路通訊,也包括區塊鏈狀態的分片。其次要保證分片的安全性。Harmony的分片基於DRG(分散式隨機生成)過程,這讓它具有無法被預測、公平、可驗證和可擴充套件的特性。此外,Harmony採用了PoS機制,而不是PoW機制來選擇驗證者,它對PBFT共識機制有自己的最佳化。PoS有一定的門檻,既要保證小的權益質押者能夠參與網路和賺取收益,也要防止惡意攻擊者在單個分片獲得掌控權。Harmony透過採用自適應資訊擴散演算法(Adaptive Information Dispersal Algorithm)實現分片內和跨分片網路的資訊傳播。Harmony還採用Kademlia路由實現跨分片交易隨著分片數量增加呈對數級擴充套件。有了分片,還必須保持跨分片交易的一致性,Harmony也支援跨分片交易,支援分片之間的直接通訊,透過原子鎖定機制確保跨分片交易的一致性。

總言之,Harmony透過對協議層和網路層的最佳化,試圖提供一個可擴充套件的,同時也是安全和去中心化的區塊鏈,能夠支援更多主流的去中心化應用場景,包括遊戲、去中心化交易所、IoT等。這是一個目標遠大的願景。

具體來說,Harmony在哪些特色值得關注?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的FBFT執行圖

需要注意的一點是,所有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) , 比有些專案在速度上至少快一個數量級。

VDF延遲了最終隨機性的揭示

基於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將使區塊鏈狀態本身儘可能小。

Harmony的信標鏈

Harmony的信標鏈也是一種分片,不過它是特殊的分片鏈。除了處理交易之外,信標鏈還有兩件事要做:一是生成隨機數;二是接收權益質押的代幣。這點跟以太坊的信標鏈有類似之處。

 從信標鏈區塊到分片鏈區塊的雜湊連結

信標鏈會包括來自每個分片鏈的區塊頭。在新區塊提交到分片鏈後,它的區塊頭將被髮送到信標鏈。而信標鏈會透過如下方式檢查其區塊頭的有效性:一是前一個區塊的雜湊;二是區塊的多重簽名的簽名者必須是該分片的正確驗證者。

之所以把分片鏈的區塊頭新增進入信標鏈,主要是從安全和可擴充套件的角度來考慮。一是這樣可以增加攻擊單個分片的難度,因為攻擊者必須同時破壞分片鏈和信標鏈才能實施攻擊。二是這樣可以降低在分片中廣播區塊頭的網路成本。如果讓每個分片都單獨廣播其區塊頭,將會有O(N^2 )網路通訊,而使用信標鏈作為中繼,複雜性降低到O(N )。

最後,在信標鏈上提交的區塊頭還會被廣播到整個網路。每個分片會保留所有其他分片的有效的區塊頭。一是可用來檢查來自其他分片交易的有效性,二是也可以起到簡單的支付驗證作用。最終是有利於增強分片鏈安全性和分片鏈狀態的一致性。

Harmony的狀態分片

有的區塊鏈分片專案只有網路分片和交易分片,而Harmony還包括了區塊鏈的狀態分片。

Harmony的狀態分片採用於基於賬戶的資料模型(不同於UTXO資料模型)。每個分片鏈包含自己的賬戶狀態,已有代幣在所有分片中分佈。使用者賬戶可以在不同的分片中有多個餘額,例如,777個代幣在分片A中,277個代幣在分片B中。使用者可以透過跨分片交易轉移其在不同分片中的代幣。

除了普通的使用者賬戶之外,還有智慧合約賬戶。智慧合約賬戶僅限於建立合約的特定分片。

假設分片A的吞吐量無法滿足某一個遊戲類DApp的業務需求,該遊戲應用開發者可以在不同分片中例項化同一智慧合約,可以實現每個例項處理部分需求。不過,同一智慧合約的不同例項不共享相同狀態,可以透過跨分片通訊跟其他例項進行通訊。

基於Kademlia的路由方案

區塊鏈的效能提升,還要面臨一個重要的受限因素就是現實世界的網路通訊。

Harmony採用Kademlia作為跨分片資訊傳遞的路由機制,使用Kademlia路由協議可以減少網路通訊的複雜度。

Harmony網路中的每個節點都維護一個包含來自不同分片的節點路由表。當一個分片A的訊息要傳送到分片B,分片A的節點首先會檢視路由表,然後把資訊發給距離最近的分片ID的節點。

使用基於Kademlia路由,在抵達目標分片之前訊息僅穿過O(logN)節點。跟傳統的八卦網路廣播相比,Kademlia路由機制可以大大減少分片區塊鏈的整體網路負載。

此外,Harmony還使用糾刪碼進行廣播,可以顯著減少傳送者的網路負載。在Harmony中,傳送者首先用糾刪碼對訊息進行編碼,然後將編碼的訊息塊傳送給鄰居。這會讓傳送者的網路負載減少到O(M + e) ,其中e是糾刪碼的大小,它通常比原始訊息M要小。

此外,Harmony想要透過用RaptorQ噴泉碼來替換原始的Reed-Solomon糾刪碼來提高IDA的穩健性。

最後考慮到住宅節點和節點IP地址改變的現實問題,Harmony也作出應對解決方案。住宅網路的P2P節點會產生獨特問題:除非由其住宅網際網路路由器調解,否則它們無法從外部抵達,需要用NAT(網路地址轉換)的技術。這些路由器對進入流量的支援還各不相同,需要開發不同的方法來支援不同型別的路由器。Harmony的P2P層試圖檢測節點執行的NAT(網路地址轉換)機制,並且採用對應的解決機制,如STUN、TURN、IGDP等。

對於節點會改變他們的IP地址,比如膝上型電腦會經常在不同的wifi網路之間跳躍,IP地址每次都會改變。為瞭解決這個問題,Harmony的網路層使用行業標準的HIPv2(Host Identity Protocol Version 2)引入了節點身份(節點擁有的加密金鑰對)和節點定位器(可以抵達節點的網路/傳輸層定位器)之間的清晰分離。

Harmony的懲罰機制

Harmony是採用PoS的機制,除了在區塊成功生成之後,將新代幣獎勵給所有驗證者之外,也有懲罰機制,防止惡意行為者的不當行為。

Harmony對於權益質押者的不當行為,會有消減代幣的懲罰。例如,驗證者簽名了不誠實的區塊,領導者沒能完成共識流程並觸發領導者更改流程等,這些行為都會被消減一定數量的質押代幣。

不當行為可以透過兩個簽名區塊的相互衝突發現。任何驗證者都可以提交交易證明其他驗證者的不當行為,如果經過驗證,被消減的代幣會獎勵給證明人。

結語

擴充套件問題是目前區塊鏈行業最受關注的問題之一。誰率先解決這個問題,誰將成為行業的引領者。當然,這裡的前提是在兼顧安全和去中心化兩個屬性的前提下,如果以犧牲這兩個關鍵屬性來實現突破,這只是低層級的突破,或者是走向了不同的發展路徑。

在兼顧安全和去中心化前提下,分片是區塊鏈擴充套件的最重要的路徑之一。Harmony探索的重點就在於此,儘管目前有其他的分片區塊鏈專案,還有以太坊2.0,也有跨鏈的專案,Harmony如果能在分片的探索路上能夠比其他專案的工程落地更紮實,那麼它就有機會在競爭中獲得先機。

當然,Harmony團隊選擇的是一條難的路,需要很多的努力,也有非常強勁的競爭者。據Harmony團隊向藍狐筆記介紹,專案已完成1800萬美元融資,投資人有來自矽谷、澳大利亞、香港、新加坡的基金,有了一個很好的開始。

從Harmony的白皮書可以看出,團隊在技術思路上清晰,對於分片工程落地要面對的問題也有深入思考,團隊以研發人員為主,主要來自於微軟、谷歌、蘋果公司的背景。期待Harmony在這條區塊鏈擴充套件的探索路上能夠率先作出成績! 

------

風險警示:藍狐筆記所有文章都不構成投資推薦投資有風險,投資應該考慮個人風險承受能力,建議對專案進行深入考察,慎重做好自己的投資決策。

免責聲明:

  1. 本文版權歸原作者所有,僅代表作者本人觀點,不代表鏈報觀點或立場。
  2. 如發現文章、圖片等侵權行爲,侵權責任將由作者本人承擔。
  3. 鏈報僅提供相關項目信息,不構成任何投資建議

推荐阅读

;