因此,Harmony使用的狀態分片無疑提供了一個更好的選擇——每個分片儲存一部分割槽塊狀態。
Harmony如何避免1%攻擊:
雖然分片技術顯著地減少了交易完成時間,提高了交易處理量,但現階段,分片技術落地的最大障礙仍然是其潛在的安全問題,即“1%攻擊”。
在採用PoW的區塊鏈中,例如比特幣,當攻擊者擁有網路的大部分雜湊算力時,“51%攻擊”就有可能發生。一旦發生,攻擊者就可以“雙花”、索取所有獎勵,阻止交易等。
只是,想要擁有整個網路的51%或者更多的雜湊算力就需要大量的電力和裝置。目前,在比特幣網路上實施51%攻擊的成本是80億美元,每天電費則是1280萬美元。
假設一個區塊鏈網路被分成一百份,也就是一百個分片,每個分片擁有1%的雜湊算力。那麼,本質上攻擊者只需要將他的雜湊算力集中在某一單個分片上,就可以實現對該分片的控制,這無疑會影響到整體網路的安全性。而同樣的問題也適用於PoS系統。
防止此類攻擊發生的一種有效方式是阻止攻擊者將他們的雜湊算力或代幣權益集中在某一片分片上。
透過對PoS代幣權益進行切分和隨機抽樣分片,Harmony就能有效地消解攻擊者對某一分片所集中的權益,從而消除1%攻擊的可能性。
Harmony採用了全新的權益證明(PoS)方式去選擇驗證者
目前基於分片的區塊鏈專案比如Zilliqa或Quarkchain,使用了PoW來防止Sybil攻擊,但它們依然容易受到1%攻擊。相比之下,Harmony則在選擇一組共識驗證者組成一個分片時,透過可驗證隨機函式(VRF)和可驗證延遲函式(VDF)的雙重安全演算法隨機選中驗證者(即節點),並均勻分配到每個分片中。這樣某個攻擊者就很難集中資源攻擊單一分片,即實施1%攻擊。
在Harmony的PoS設計中,區塊驗證者需要抵押一定數量的代幣,抵押的代幣數量將決定它會得到投票權數量。
驗證者投票權會被隨機分配到某一個或多個分片中,在預設好的一個週期(假設為一天)內,驗證者可參與這一個或多個分片的共識,每個週期結束後,投票權將重新計算並分配。這個重新洗牌的過程能夠極大增大安全性,防止惡意攻擊者逐漸瓦解和賄賂單一分片內的節點。
Harmony的PoS機制能夠確保:
– 攻擊者無法選擇自己想要加入的分片
– 攻擊者無法提前知道他們會被分配到哪片分片
如果每隔一段時間就重新洗牌,一個節點把分片的狀態下載下來需要多長時間?
當一個驗證者加入一個新的分片時,他們需要快速同步分片的資料才能驗證新的交易。
傳統下載區塊歷史記錄的過程,需要許多天去完全同步所有的歷史資訊,而在Harmony的快速同步演算法中,節點只需要下載此分片的區塊頭和上一週期的區塊資料即可開始驗證新交易,因此,節點會在驗證者重新分配的過程中迅速做好準備。
Harmony的跨片通訊
當交易被分配在不同的分片中時,分片之間的高效溝通變得至關重要。如果分片間的溝通困難,如同一座座孤島,那整個分片系統就將失去意義。
舉個例子,假設要在一個分片協議網路中預定一張火車車票和一家酒店,火車票交易在一個分片裡,酒店交易則在另一個分片裡,對於使用者來說,想要的結果是車票和酒店同時預訂成功,而不是一個成功,另一個失敗。
Harmony支援跨分片交易,分片之間不僅可以相互通訊,還能同步執行垮分片操作。
當每個新區塊被建立時,透過一個Kademlia路由協議將區塊鏈頭髮送到信標鏈。在這種方式中,Harmony網路中的每個節點都儲存了一張包含所有節點距離的路由表。
當一個來自分片A的訊息要傳送到分片B時,分片A中的節點將查閱路由表,並將訊息傳送往距離最近的節點, 這種方法可以確保資訊只經過最短路徑傳遞,並以最快的方式抵達目標分片。
與Zilliqa和Hashgraph等專案所使用的普通“Gossip廣播”相比,Kademlia路由協議從底層機制上減少了整體網路負載。例如在Kademila設定中,擁有10,000,000個節點的網路內,任何子節點之間的通訊,最多隻需要大約20個傳播跌點(hops)。
Harmony與其他分片專案對比
注:Harmony使用的是拜占庭系列的共識演算法,這種演算法假定誠實節點的數量要達到2/3,才能保證系統的正確性。在PBFT(實用拜占庭容錯)的基礎上,Harmony調整了訊息廣播方式,使其比PBFT更快更有效,並將這種演算法命名為快速拜占庭容錯(FBFT)。
作為早期分片專案,Zilliqa的分片方案僅限於網路和交易的分片。每個節點需要儲存所有區塊鏈資料的需求也讓Zilliqa對小節點並不友好。此外,基於PoW的簡單分片方案也讓Zilliqa更容易受到1%攻擊。
相比之下,Hamony協議裡則採用了在研究和實踐中都被驗證過的技術突破,基於PoS的安全節點分配和狀態分片技術,讓整個區塊鏈系統更安全的同時,也實現了真正的去中心化。