PA荐读
|2021-09-10 10:41
分片(sharding)也是非常重要的擴容解決方案之一。
新的巴韭特晚餐終於又來了,這段時間在研究分片,看了不少資料,終於完成了這篇文章。區塊鏈的可拓展性或者說擴容問題一直是行業關注的焦點,以太坊之後的大多數公鏈都致力於解決這個問題,於是也迎來了後來的公鏈大爆發。諸如EOS 通過改變共識機制,使用偏中心化的DPoS 實現更快的共識確認,IOTA 通過改變網絡結構,使用DAG 實現更強的拓展性,當然也有通過側鍊或狀態通道實現擴容的二層解決方案,例如Celer。除此之外,分片(sharding)也是非常重要的擴容解決方案之一。關於分片可能很多人早已聽過,最早Zilliqa 以及後來的Quarkchain 都是知名的分片公鏈,以太坊也已經計劃在將來版本中使用分片,而在新一代公鏈中,國外知名的分片項目Harmony、Near 和Elrond 也同樣值得關注。其中Harmony 已登陸幣安並上線了其主網,Elrond 也登陸了幣安,並於18 年12 月底啟動了Pre-Staking,進入主網啟動階段,Near 還沒有登錄任何交易所,他們計劃在今年第一季度啟動主網。那麼,這三個分片公鏈在技術上到底有哪些區別?他們的市值相差多大?哪個背景更強?哪個會是2020 年的黑馬呢?在分析這三個項目之前,也許需要簡單普及下分片到底是個啥?分片在互聯網領域早已有之,一般稱之為數據庫分片(database sharding) 。它指的是將單個數據庫中的數據,通過某種策略分攤到多個表結構與其相同的其他數據庫中,這樣每個數據庫中的數據量就會相對減少很多,並且可以部署在不同服務器上,理論上能夠實現數據庫的無限橫向拓展。在區塊鏈領域,道理也是相似的。分片指的是將區塊鍊網絡中的任務分攤給不同的節點進行處理的一種水平擴容方式。在這樣的網絡中並不是所有的節點共同參與一筆記賬,而是有很多個小組,每個小組單獨記賬,通過這種並行處理的方式來提升整個網絡的性能。以太坊分片方案示意圖,image byHsiao-Wei Wang分片的目標是能夠在達成共識的同時,減少計算和存儲冗餘,並以足夠快的方式處理交易或事務,同時保證網絡有足夠的安全性。舉例來說,假設目前網絡中有1000 個節點,可以將節點分為10 個小組,每個小組內有100 個節點,這樣網絡中的所有交易將會被分給這10 個小組進行並行處理。在分片的區塊鍊網絡中,並不一定所有的事務都需要進行分片,通常來講分片有三種類型,分別為網絡分片、交易分片、狀態分片。網絡分片就是將整個區塊鍊網絡進行分組,每個小組叫做一個分片(shard),所有分片同時處理不同的交易,實現並行記賬。或者稱之為物理分片。交易分片就是將交易隨機分到不同的分片或小組,讓某些節點進行記賬,比如可以通過交易Hash 或者地址進行分配,也可以通過VRF 等隨機的方式進行分配。狀態分片就是把完整的賬本信息存儲在各個分片中,每個分片內各自維護部分的賬本信息。這裡可能還會涉及到跨分片數據同步,跨片交易等問題,是最複雜的一種分片方式。關於分片介紹的差不多了,下面我們分別來聊聊這三個項目的分片解決方案吧。 Harmony 是一個基於狀態分片和PoS 的高性能公鏈項目,它的分片架構由一條信標鍊和多條分片鏈組成,信標鏈提供包括去中心化的隨機數,分片鏈Header的驗證,接受驗證節點的權益抵押等服務。在共識算法方面, Harmony 在每個分片內部使用FBFT 達成共識,FBFT 是PBFT 深度優化的共識,通過BLS 多重簽名,使傳統的PBFT 的效率提升了一個數量級,通過這種方式在分片內快速達成共識。下方是FBFT 的示意圖: 目前Harmony 主網v0 版本,每個分片內有250 個節點,出塊時間在8 秒以內,官方說優化後預計達到5 秒以內。在分片公鏈中,可能1% 攻擊即可進行雙花。因為網絡分片後,全網算力和抵押代幣數量都被分割了,每個分片只有網絡的N 分之一,如果有100 個分片,在沒有特殊安全協議的設計的情況下,利用全網1% 的算力或權益就可以控制一個分片,進行雙花,甚至憑空創造新幣。 Harmony 採用了EPoS(Effective Proof-of-Stake)的有效抵押機制和安全的隨機分片技術(Random Sharding) ,靠協議的規定把大戶抵押的代幣打散成許多細小的部分,並隨機分配到多個分片裡,這樣任何人就無法把他抵押的代幣集中到單一分片內,從而無法攻擊單一分片。上圖中紅色是攻擊者,他的代幣被隨機分配到了多個分片,這樣就沒法在任何一個分片內得到主動權。 EPoS 不僅有效解決了抵押Stake 中心化的問題,同時支持抵押複利和抵押委託。在Harmony 的網絡中,抵押者並非按照實際抵押量來獲得獎勵,而是按照”有效抵押“獲得獎勵。有效抵押,簡單來說就是取用戶抵押數量的中位數,所有抵押的代幣數量都在這個中位數上下15% 的數值之內。舉個極端的例子好了,假設現在有5 個節點,抵押ONE 數量分別為1, 10, 100, 200, 1000。這裡的中位數就是100,那其他節點的”有效抵押“分別為85, 85, 100, 115, 115。EPoS 的有效抵押主要是為了減緩“富人越富”效應,以及防止PoS 網絡趨於中心化的問題。不過對於這種方式,可能有些大戶並不會特別樂意,我倒是覺得是不錯的解決方案,當然仁者見仁智者見智了。 Harmony 已於2019 年7 月份上線了其第一階段的主網「Day ONE」(這個代號讓我想起了我經常使用的日記APP Day One 哈哈), 它具備分片和共識等基本功能,總共有4 個全狀態分片,包括150 個基石節點在內的總共600 個節點同時參與共識。除了1% 攻擊之外,還有另一個攻擊方式是賄賂攻擊,既在初始分片結束後,攻擊者通過收買或賄賂的形式,獲得單一分片內的絕大部分權力,進行攻擊。為了避免賄賂攻擊,Harmony 引入了基於Cuckoo Rule的隨機再分片機制(Resharding),系統會每隔一天時間重新隨機打散驗證者的權利,並再分片,讓攻擊者很難鎖定要賄賂的目標,沒法成功攻擊單一分片。這裡隨機再分片機制需要依賴一個安全的隨機數生成器。 Harmony 採用了獨創的分佈式隨機數生成(DRG, distributed randomness generation)協議產生安全不可預測的隨機數,這是一種特殊的多方計算MPC 方法。 DRG 協議讓每一個參與其中的節點生成一個本地的VRF(可驗證隨機函數),然後這些隨機數會被結合起來生成一個preimage 數字,並放到下一個區塊中,之後這個preimage 會被用來運算VDF(可驗證延遲函數)來生成最終的隨機數。 在DRG 中,VRF 保證了結果的隨機性,VDF 保證了結果的不可干擾性。 Harmony 已經利用BLS12-381 橢圓曲線實現了VRF 的功能,並完成了第一個用Go語言實現的VDF可驗延遲函數( https://github.com/harmony-one/vdf )。 VDF 的作用可以簡單理解為,是防止最後一個節點在看到前面的隨機數之後,自己快速計算一個有利於自己的隨機數來左右最終結果。而通過VDF 可以延遲計算和公佈前面的隨機數,從而讓最後的節點無法在最後修改有利於自己的結果。關於VDF 更詳細的介紹可以查看這篇文章:《 一文搞懂可驗證延遲函數VDF 》在狀態分片中最重要的就是跨片通信。而如果採用簡單的P2P 廣播協議,最終系統將產生非常多的消息負載,這樣的系統沒法支持大量的分片。 Harmony 採用了「 Kademlia 跨片路由技術」 ,來控制跨片間通信的網絡開銷,並且利用「糾刪碼」對區塊廣播過程進行優化,使廣播者的網絡壓力更小,避免發送者的網絡瓶頸問題,從而實現高效的橫向分片擴展。因為下面還會提到糾刪碼,所以這裡簡單解釋下,糾刪碼(Erasure Code)是存儲領域常見的一種數據冗餘技術,它可以將數據分割成片段,把冗餘數據塊擴展、編碼,並將其存儲在不同的位置,當某些數據丟失時,可以通過重構算法恢復原來的數據。與之有相似功能的是多副本策略,即把數據複製多份存儲起來,以便能恢復。 Near 是基於全狀態分片、對開發者友好的可拓展性公鏈,他們提出了一種新的協議和解決方案,稱之為夜影協議(Nightshade)。 Near 與其他分片公鏈不同的是,它的技術架構並不是由一個信標鍊和多個分片鏈組成的,而是把系統建模成一個單獨的區塊鏈,在區塊級別進行了分片,每個分片中有很多“段”。 具體來說,Near 將區塊分為一個個物理組成塊,因為每一個區塊都包含這些物理組成塊,經過對多個區塊的驗證,物理組成塊均相同的時候就可以驗證這些區塊是正確的。每個區塊邏輯上包含所有分片的所有交易,並切分分片的狀態,驗證者只負責驗證交易所針對分片相對應的狀態即可。項目主網上線時計劃是8 個分片,24 個區塊/塊生產者以及800 個驗證人。這意味著每一個區塊切分成8 份,然後需要800 個驗證人負責驗證24 個區塊確認每一個物理組成塊不出問題,相應的NEAR 的區塊間隔也就會更低。 Near 採用了獨創的稱之為Doomslug 的共識機制,該共識機制允許一組區塊生產者只需要一輪通信就可以創建區塊,從而使得每個區塊都不可逆。而且即使有50% 的區塊生產者不在線,也依然可以完成。同時他們還推出了一種類似Casper 的最終確定性工具,稱之為Nightshade Finality Gadget(夜影確定性小工具) ,它可以保證區塊在不超過1/3 惡意攻擊者的情況下會被最終確定,進而增強了網絡安全性。為了不暴露特定分片的驗證人, Near 通過VRF 對驗證人進行隨機分配,隱藏驗證人分配到分片的信息。這樣節點只知道驗證人的存在,卻並不知道每個驗證人所對應的分片是哪個。而且,這些隱藏的驗證人是對塊進行簽名,而不是具體的段,這樣也會隱藏驗證人具體是驗證了哪個分片。 Near 也是通過「糾刪碼」來解決分片的數據的可用性問題,因為分片的存在,並不是所有的節點都有所有分片的狀態,如果一些節點沒有某些分片的狀態,就難以保證某些數據的可用性。 Near 的解決思路是,每一個節點會把他們所製造的區塊分成很多部分發送給不同的驗證者,使得只需要依靠其中的一些部分,就可以重組它這個節點所製造的分片區塊,從而使得數據的可用性能夠得到保證。 Elrond是一個自適應狀態分片的高吞吐量公鏈。他們提出了一種改良的權益證明機制,稱之為安全權益證明(SPoS)的共識機制,引入隨機選擇的共識組,抵押加評級的方式。與Harmony 類似,Elrond 也有一條主鏈,稱之為公證鍊或元鏈( Notarization (Meta) chain ),負責所有網絡和全局數據操作,比如節點加入和離開網絡,驗證人列表,節點分配等。 Elrond 採用SPoS 共識機制,他們參考了Algorand 隨機選擇機制,並進行了改進。 Elrond 通過隨機選擇共識組,與抵押和評級這些維度相結合的方式來達成共識,它與傳統PoS 不同的是,加入了對每個參與打包節點進行評級這個維度,以及共識組內通過pBFT 進行簽名確認。 Elrond 執行跨分片通信的策略是使用異步模型。 Elrond 的每個塊結構由一個區塊頭表示,它包含塊隨機數、輪次、提議節點、驗證節點時間戳等信息,以及包含交易信息的微塊(Miniblock) ,每個微塊都包含所有事務。在這個網絡中,交易的驗證和執行會先在發送方的分片中完成,然後在元鏈中進行公證並提供執行證明,之後再到接收方的分片中完成並更新余額等。在這個過程中的處理單元就是微塊。 Elrond 使用了隨機數來保證安全性,例如將區塊提議者和驗證者隨機採樣到共識組中,並在一個輪次結束後對分片之間的節點進行改組。通過這種方式也可以防止上文所說的賄賂攻擊等。 隨機性是區塊鏈的核心,不僅是在PoS 共識中,可能通過持幣量和幣齡,或者隨機數等選擇每一輪的記賬節點,在PoW 共識中很重要的一點也是需求某種隨機性。於是我做了一張簡單的技術對比圖。把比較知名的幾個做分片公鏈的項目做了一個匯總,其中參考了Harmony 幣安的研究報告,以及部分內容聯繫官方做了確認。 除了MultiVAC,國內TOP Network 也是採用了分片解決方案,後面有機會也會研究一下。技術是一方面,對於內容我也想簡單提一下,哈哈哈,其中Harmony 讓我看的最透徹,他們在Medium 和幣乎有大量的中文資料,而且白皮書和AMA 中對技術的闡述條理清晰。 Near 確實夠技術,技術到夜影協議中文版白皮書我都看不太懂具體的實現方案,更別提其他幾個原版白皮書了,我四級的英文水平,看到頭痛欲裂。 Elrond 幾乎很少的中文資料,只看到Tokengazer 對他們的分析和評級,還好他們的白皮書和其他資料比較有條理。面對中國市場,技術再厲害,沒有好的內容向大家展示也許是非常可怕的,一個中國區負責人或者一個靠譜的Marketing 團隊是很有必要性的。Harmony總發行量126 億枚,目前流通量大約37 億枚,據Coingecko 數據Harmony 市值排在143 名。他們在18 年5 月份完成種子輪募資,投資方包括Continue Capital、CypherMines、Lemniscap、Univalues Associates、Qtum、點陣資本、共識資本等,出售了22.4% 的額度總共融了1830 萬美元, 19 年5 月份在幣安IEO 出售了12.5% 的額度又融了500 萬美元。投資方背景很強,融資金額還算充裕,不過如果18 年5 月份融資的以太坊沒有變現,到現在估計也有點捉襟見肘了。 Harmony 二級市場表現還算可以,目前價格0.0048 左右,相較於私募價0.0065 雖處於破發狀態,但相較於IEO 0.003175 的價格還處於盈利。 不過Harmony 代幣分配感覺並不是很合理,關於協議進展和生態建設部分讓人摸不著頭腦。根據團隊公開的代幣解鎖信息( http://dwz.date/dxf ),2020 年還有兩次種子輪的解鎖,約14 億枚。加上協議進展和生態建設以及團隊的代幣,到今年底預計流通量達到70% 左右。目前Harmony 的Staking 好像並沒有開始,他們計劃在Q1 開放抵押,預計年化收益率在10% 左右。如果Staking 將流通量控住在更小的範圍,加之主網之後Dapp 的發展,也許還會有不錯的表現,當然也要看團隊的決策和資金了。 NEAR是以傳統形式進行的融資,投資方包括MultiCoin Capital、Coinbase、Electric Capital、MetaStable、百度風投、SVAngel 等,共融資1210 萬美元。目前Near 還未登陸任何交易所,預計Q1 啟動主網並登陸交易所。關於代幣分配和解鎖以及私募價格等信息官方暫時沒有公佈。最近看到Near 來國內做了幾場線下活動,效果還不錯,不過來國內的時間貌似選的並不太好,年底國內的環境和市場並不好,並且沒有大的利好,很難刺激大家的神經。期待春節後的動作吧。 Elrond總發行量200 億枚,目前流通量大約100 億枚,據Coingecko 數據Elrond 市值排在149 名,竟然和Harmony 排名相差很少。 Elrond 相對來說估值低很多,私募出售了19% 的額度融了190 萬美元,投資者包括Binance Labs、Electric Capital、NGC、Maven 11、Woodstock Capita。後來Elrond 在幣安進行了IEO ,出售了25% 的額度融資325 萬美金。相比來說,Elrond 融資應該是最少的,而在官網上看到他們團隊有20 多人,成本還是很高的,資金看上去也並不充裕,不知道他們是否有再融資的計劃。目前項目方都不太容易,如果真的有突破和價值,削減成本保證開發,未來可期。最後,感謝大家的閱讀,為了寫這篇文章看了很多資料。可能還有很多點未能詳盡介紹和分析,以後有機會我們再慢慢聊~
作者 :PA荐读
本文为PANews入驻专栏作者的观点,不代表PANews立场,不承担法律责任。文章及观点也不构成投资意见。
图片来源 :
PA荐读
如有侵权,请联系作者删除。