是什麼讓Harmony團隊在眾多公鏈專案中脫穎而出?讓我們來深度剖析一下Harmony與Zilliqa等專案到底有何不同。
State Sharding狀態分片技術
儘管都是打著分片技術的期號,但Harmony和Zilliqa的分片技術顯然有所差異。Zilliqa僅對網路和交易進行了分片,而Harmony則在這一基礎上,進一步對區塊鏈狀態進行了分片處理。簡而言之,Zilliqa是將網路節點分到不同的分片,每個分片包含幾百個節點(即網路分片),這使得不同的交易可以被各分片同時處理(即交易分片)。然而,為了能夠處理跨片交易,每個分片的每個節點都需要儲存區塊鏈的整個賬本資料,這使得某些效能差的節點無法參加到網路中,進而減弱去中心化。
相比之下,Harmony對區塊鏈的賬本資料也做了進行了分片處理(即狀態分片),團隊將這種在分片技術中各方面突破的總和方案命名為“深度分片”。深度分片,是包括對網路、交易和狀態的多層分片,同時在網路層的資料傳輸協議中,利用糾刪碼技術對區塊資料進行分片,使廣播者的網路壓力很小,再加上引入Kademlia路由協議,讓區塊資料能透過最短路徑傳輸到目的地,在此基礎上,還可以允許小節點的加入,最大限度地保證了去中心化程度。
PBFT Consensus Mechanism/PBFT共識機制
Zilliqa的共識機制被稱為PBFT(實用拜占庭容錯)協議。在這一協議裡,一個節點被選為“領導者”,其餘節點作為“驗證者”。每一次共識過程包括兩個階段:prepare(準備)和commit(確認)。在每個階段,領導者向所有驗證者廣播一個提議,所有驗證者收到提議後,再反過來將自己的投票意見廣播給其他人,最後每個驗證者都要計算所有收到的其他投票。這個過程導致總訊息複雜度為O(n*n),這裡n是總節點數。透過簡單的計算可知,這種演算法在幾百個節點的網路中並不實用。
Harmony 在 PBFT 演算法的基礎上進行了大量改良,創造出FBFT演算法(快速拜占庭演算法)。在這個新的演算法中,驗證者不用廣播他們的投票,只需透過數字簽名的方式把投票發給領導者即可,領導者把收到的數字簽名合成為一個資料量位O(1)的多重簽名,再廣播出去,這使得整個共識過程的訊息複雜度從O(n*n)驟降到O(n)。
此外,驗證者的選取是透過PoS抵押代幣的機制完成的,想要成為驗證者的節點需要抵押一定數量的代幣才有權參與共識。PoS相比於PoW有節能高效的特點,在這點上,基於PoS的Harmony要比基於PoW的Zilliqa具有更多優勢。抵押代幣越多的節點,被選為領導者的機率越大,但恰恰因為抵押代幣越多,他們才不會輕易作惡,因為一旦被網路檢查到,他們的抵押代幣將會被全部沒收。
Distributed Randomness Generation/分散式隨機數生成
分片區塊鏈系統通常需要一個隨機的節點分配過程,目的是避免單一分片受到攻擊。這就需要生成一個隨機數來實現隨機的分片過程。隨機數本身需要具有完全不可預測,不可干擾的特性,這樣惡意節點就無法知道它將被分配到哪個分片。此外,這個隨機數的產生過程還需要快速並且可驗證。
在這個問題上,我們先看看Harmony白皮書裡提到的其他幾個分片專案方案的做法。專案Omniledger採用的分散式隨機數產生協議叫RandHound,協議中會把所有參與的節點劃分成若干組,我們以c代表組數。這個協議的弱點在於它的複雜度為O(n*c*c),對於節點眾多的區塊鏈系統來說,如此高的複雜度會使協議速度極慢。RapidChain作為比Omniledger更新的分片專案設計,採用了基於Verifiable Secret Sharing(VSS)的分散式隨機數產生協議。雖然這個協議比RandHound快很多,但它並不安全,容易受到攻擊者的干擾和阻礙。大家熟知的專案Algorand用到了Verifiable Random Function(VRF)作為隨機數,雖然它是基於密碼學裡重要的技術,但它不是分散式的協議,任何單一節點都可以獨自完成隨機數過程。最後以太坊2.0採用了Verifiable Delay Function(VDF)的最新技術,可以大大提高分散式隨機數協議的安全性。
有了信標鏈的保護,攻擊者必須同時攻陷分片鏈和信標鏈才有可能進行雙花攻擊。不止如此,由於信標鏈在分片鏈區塊頭的廣播中起到了中樞的作用,所導致的網路開銷僅為O(n)的量級。設想一下,如果沒有信標鏈的幫助,每個分片都需要分別廣播它的區塊頭,那麼總體網路開銷將是O(n*n),這極有可能造成網路阻塞,而透過信標鏈,Harmony則巧妙地避免了這個問題。
Parting Thoughts/總結
可以看出,Harmony願景遠大,而一個遠大巨集大的願景是成功改變世界的起點開始。在測試網中,Harmony利用44,000個節點跑出了驚人的118,000TPS的資料。誠然,好的技術也需要有好的落地場景和市場來檢驗,Harmony團隊在市場開發這方面也毫不遜色,相信他們會在不久的將來開拓出自己的市場。除此之外更重要的是,Harmony是一個關注社群建設的專案,他們的開發者一直在Telegram和Discord上積極回答社群問題,並聽取建議。