原文作者:Beam
聲明:本文僅作為行業研究探討,不代表任何投資建議。
2022年9月15日,以太坊合并。這是一個歷史性的時刻,以太坊為此準備了5年、推遲了6次,由于反復的調試與長期的開發、萬眾矚目的暈輪效應,很多人誤以為合并會自然而然地帶來更高的可擴展性、安全性和可持續性,實際上并不是——我們還是用兩個列車的比喻,從PoW到PoS的過渡,只是更換了軌道和輪子,它并不會直接地帶來更快的速度、更大的容量、更低的車票費用,真正能完成以上三點的,是一整套解決方案:擁有分片能力的主網搭配增強可擴展性的Layer2解決方案。
正如以太坊創始?VitalikButerin所指出的,分?是可擴展性三難困境下的一種擴容解決?案,通過將?絡中的節點分成更?的組,處理不同的事務集并實現并行處理。通過分擔處理整個網絡上匯總所需的大量數據的負擔,就像我們在Walmart購物結賬時一樣,通過多開設幾條購物結賬的收銀通道,可以直觀地減少排隊時間和提升結賬效率。
圖1分片的簡單邏輯
這就是分片的邏輯,直接而簡單,然而,魔鬼都在細節中——原理和方向沒錯,但在實施中總會遇到很多問題。本文想通過理順在“分片”這條路上的方向和困局,繪制一張仰望星空與腳踏實地的分片探索者地圖。同時通過比較現有的分片解決方案,找到一些共性的問題,并提出一種可行的探索方向:Shardeum與動態分片。
一、關于“分片”
簡單來說,考慮不可能三角的制約,從以太坊作為坐標系原點出發,按照“縱向”和“橫向”兩種思路,我們將當前的區塊鏈的擴展性方法分為兩大類:
縱向擴容:通過提高系統現有硬件的性能來實現。建立一個去中心化網絡,而網絡中的每個節點都具有超級計算能力,即每個節點都需要“更好”的硬件——這種方式簡單有效,可以達成吞吐量的初步改進,尤其適用于高頻交易、游戲以及其他對延遲比較敏感的應用場景。然而這種擴容方式會限制網絡的去中心化水平,因為運行驗證節點或全節點的成本變高了。維持去中心化水平受限于計算硬件性能的大致增長速度。
橫向擴容:橫向擴容一般有幾種思路。一種是在區塊鏈的語境下,將某一生態中的交易計算量分散到多個獨立的區塊鏈上,每條鏈都擁有自己的區塊生產者和執行能力,這種方式可以充分定制化每條鏈的執行層,比如節點硬件要求、隱私功能、gas費用、虛擬機以及許可設置等。另一種橫向擴容方案是模塊化區塊鏈,將區塊鏈的基礎架構劃分成執行層、數據可用性層以及共識層。最主流的區塊鏈模塊化機制就是rollup。還有一種是將一條區塊鏈分成很多片,并行執行。每個分片可以看成一個區塊鏈,也就是說許多區塊鏈可以并行執行。另外,通常還會有一條主鏈,其唯一的任務就是保持所有分片同步。
需要指出的是,以上的擴容思路都不是孤立存在的,每一種解決方案都是在不可能三角中找到一個權衡點,配合系統中經濟力量創造的激勵機制設計,達到宏觀和微觀層面的有效平衡。
為了討論“分片”,我們需要從頭開始梳理。
依然假設這樣一種情景,Walmart購物結賬,為了提高結賬效率,降低客戶等待時間,我們從單一的結賬通道,擴展到10個結賬窗口,為了避免賬本錯誤,這個時候我們需要制定統一的規則:
第一,如果我們有10個收銀員,該如何分配他們去哪個窗口工作?
第二,如果我們有1000個客戶排隊等待,該如何決定每一個客戶去哪個窗口結賬?
第三,這10個窗口對應的10個單獨賬本,該如何進行匯總?
第四,為了避免發生賬目不匹配的情況,該如何防止收銀員出現錯誤?
這幾個問題其實對應了分片中的幾個關鍵問題,分別是:
該如何確定全網的節點/驗證者屬于哪個分片?即:如何進行網絡分片;
該如何確定每一筆交易分配給哪個分片?即:如何進行交易分片;
區塊鏈資料如何在不同分片中儲存?即:如何進行狀態分片;
動態 | 韓國房地產初創公司獲590萬美元融資用于推動區塊鏈解決方案:韓國房地產初創公司Kasa在最新一輪a輪融資中,共籌集了70億韓元(590萬美元),用于招聘員工和加強其部分由區塊鏈推動的解決方案。(TheInvestor)[2019/10/18]
復雜意味著風險,在以上所有的基礎上,該如何避免整個系統安全性的分裂?
01網絡分片
如果我們將區塊鏈簡單理解成一種去中心化賬本,無論是PoS還是PoW的共識機制,都是為了讓各個節點按一定的既定規則爭奪記賬權,在這個過程中保證賬本的正確性。而網絡分片是指,需要另一種既定規則,將區塊鏈網絡分片,在盡量降低互相通信的前提下,由各個分片處理鏈上交易,爭奪記賬權——即,節點的分組規則。
而在這個過程中遇到的問題是,隨著區塊鏈內部節點被劃分成不同的片,攻擊者的難度和成本會直線下降。我們可以推理,假定這個分組過程的規則和結果是固定且可以預知的,那攻擊者想要控制整個區塊鏈網絡,只需要定向地控制其中一個分片,收買分片內的部分節點即可。
Near的創始人AlexanderSkidanov這樣描述這個問題:如果一個有X個驗證者的單一鏈決定硬分叉成一個分片鏈,并將X個驗證者分成10個分片,每個分片現在只有X/10個驗證者,破壞一個分片只需要破壞5.1%(51%/10)的驗證者總數。這就引出了第二點:誰為每個分片選擇驗證者?只有當所有這5.1%的驗證者都在同一個分片中時,控制5.1%的驗證者才是有害的。如果驗證者無法選擇在哪個分片中進行驗證,則控制5.1%的驗證者的參與者極不可能將所有驗證者都放在同一個分片中,從而大大降低了他們破壞系統的能力。
圖2攻擊某個分片的難度大大降低
分片系統必須開發一種機制來信任網絡不會從外部分片中逆轉這些交易。迄今為止,可能最好的答案是確保分片內的驗證者數量高于某個最小閾值,這樣不誠實的驗證者壓倒單個分片的幾率就會很低。最常見的辦法是構建一定程度上的無偏隨機性,依靠數學的方式,將攻擊者的成功概率降到最低。比如以太坊,以太坊的解決辦法是隨機從所有驗證者中選出某個分片的驗證者,并且每6.4分鐘更換一次驗證者。
圖3以太坊2.0中構想的驗證者輪換
說的簡單一點就是將節點隨機分組,再將工作分配給各組節點獨立驗證。
然而需要指出的是,區塊鏈中的隨機性是一個非常具有挑戰性的話題,按照邏輯來說,這個隨機數的生成過程不應該依賴于任何特定分片的計算。對于該計算,很多的現有設計思路都是開發一個單獨的區塊鏈,維護整個網絡。這樣的鏈在Ethereum和Near中稱為Beacon鏈,在PolkaDot中稱為Relay鏈,在Cosmos中稱為CosmosHub。
02交易分片
交易分片是指關于“哪些交易要被分配到哪些分片”的規則制定,則既能夠達到并行處理的目的又能避免雙花問題的出現。區塊鏈的帳本模型的不同會對交易分片的開發造成影響。
目前區塊鏈網絡中存在兩類記賬方式,分別為UTXO模型和賬戶/余額模型,前者的典型代表是BTC,后者如ETH。
UTXO模型:在BTC交易中,每筆交易都會有一個或多個輸出,UTXO指尚未花費的區塊鏈交易的輸出,可以作為新交易的輸入,而已花費的交易輸出不可再花費,類似紙幣交易情況下的支付和找零,顧客將一張或多張紙幣支付給店家,店家則將一張或多張紙幣找零給顧客。UTXO模型下,交易分片需要跨分片通信。一筆交易可能包括多個輸入和多個輸出,沒有帳戶的概念,也不會有余額的紀錄,一個可能的方式是:按照其交易的某個輸入值將其放入哈希函數處理成為離散型的哈希值以確定數據應該去哪個分片。如下:
圖4針對UTXO的一種可能的交易分片思路
為了確保條目以一致的方式放置在正確的分片中,輸入到哈希函數中的值都應該來自同一列。此列稱為ShardKey。之后,將產生為1值的交易都分入分片1,將產生為2值的交易都分入分片2。而這種方式的弊端在于,分片之間不得不進行通信以避免雙花攻擊。如果限制跨分片交易將限制平臺的可用性,而允許跨分片交易則不得不權衡跨分片通信的成本和性能提升帶來的收益。
聲音 | 王志誠:區塊鏈思想可以解決在征信實踐當中存儲、傳輸和分享的實際問題:據鳳凰網商業報道,日前,北京大學光華管理學院與百行征信、騰云天下宣布成立征信數據分析與應用聯合實驗室,征信數據實驗室王志誠主任表示:金融是天平,信用是基礎,風險和收益是天平平衡的兩端,區塊鏈的思想可以應用在征信實踐當中,解決存儲、傳輸和分享的實際問題。[2019/1/28]
賬戶/余額模型:系統記錄每個賬戶的余額,在進行交易時,系統檢查賬戶是否有足夠余額用于支付,類似于銀行轉賬時,銀行會記錄每個賬戶的余額,只有賬戶余額大于所需轉賬金額時,交易才能夠進行。在賬戶/余額模型下,由于一筆交易只有一個輸入,因此只要將交易按照發送者地址進行分片,就可以保證同一個賬戶的多筆交易在同一個分片中處理,有效防止雙花。因此,大多數采用分片技術的區塊鏈,都是像以太坊一樣的賬戶帳本系統。
03狀態分片
狀態分片指的是,在區塊鏈資料是如何分配在不同分片中儲存的。
依舊沿用我們Walmart排隊的例子,每個窗口都有一筆賬,他們的賬本是如何記錄的?如果:客戶來排哪個隊,就記哪個賬,比如A客戶去了A窗口,那第二天該客戶去了別的結賬窗口比如B窗口,而B窗口并沒有該客戶的過往賬戶信息,該怎么辦?向A窗口調用該客戶的賬戶信息?
狀態分片是分片最大的難題,比上述的網絡分片和交易分片更棘手。因為在分片機制下,交易會根據地址分配在不同的分片處理,也就是說,狀態只會儲存在其地址所在的分片中,此時要面臨的一個問題是,交易不會只在一個分片中進行,時常會涉及到跨分片。
考慮一種轉賬情形,A賬戶轉賬10U給B賬戶,而A的地址分配在分片1,交易的紀錄也會儲存在分片1。B的地址分配在分片2,交易的紀錄就會儲存在分片2。
一但A要轉賬給B,就會形成跨分片交易,分片2就會向分片1調用過去的交易紀錄,確認交易的有效性,如果A頻繁地打幣給B,分片2就必須不斷跟分片1互動,交易的處理效率便會因此降低。但是,如果不下載和驗證特定分片的整個歷史,參與者則不一定能確定他們之間交互的狀態是某些有效塊序列的結果,且這樣的塊序列確實是分片中的規范鏈。
因此,相比于無分片的單一鏈,分片系統面臨的新挑戰是用戶無法直接完全驗證任何給定鏈的有效性和可用性,因為數據太多。必須為用戶提供最大限度的去信任和實用的間接方法來驗證哪條鏈是完全可用且有效,以便于他們可確定哪條鏈是規范鏈。在實踐中,區塊鏈開發者可以使用如下技術解決驗證中的一些問題:如委員會、SNARKs/STARKs、漁夫機制、以及欺詐和數據可用性證明等。
有兩種思路可以解決這個問題,一個是同步跨分片,即緊耦合,每當需要執行跨分片交易時,包含狀態轉換的相關塊都同時發生,每個分片上的節點協作執行交易。看起來很自然,使用體驗也最好,該模型最著名的設計稱為MergeBlocks,但在實踐中實現這一點很復雜。要完成以上,需要分片之間的驗證器彼此同步通信。如果對跨分片事務的需求足夠高,性能可能會降低,因為更多的分片工作者必須一起協作來處理跨分片事務。
另一種方式是異步跨分片,即松耦合。這種思路的采用更廣泛,比如NEAR、以太坊、Cosmos、Kadena等。而在這個過程中,最具有挑戰的事項是交易的原子性。根據ScalarCapital的聯合創始人JordanClifford,如果我們想象收據的概念,接收者通過提供源分片中的交易的默克爾路徑來證明他們將從外部分片接收了Token。目標分片使用收據并將其記入收件人的帳戶。這必須以原子方式完成。發件人和收件人的帳戶要么一起修改,要么不一起修改。如果存在差距或一端失敗,發件人可能會欺騙收件人,讓他們相信他們已經收到了他們永遠不會得到的資金。
這里對原子性一詞做出一種生活化的比喻,比如我們想要進行一趟海邊旅行,需要同時訂購機票以及酒店,如果預定不到酒店,我希望也不要購買飛機票,如果預定不到飛機票,則也不要預定酒店。這就叫做原子性——要不然都成功,要不然就都不要成功。
二、分片的探索與嘗試
動態 | Blockchain Cuties利用Tron解決擴展性問題:據Blokt報道,Tron宣布與加密游戲Blockchain Cuties合作,Tron幫助后者解決了阻礙游戲充分發揮潛力的主要可擴展性和速度問題。據11月16日消息,原本在以太坊區塊鏈上運行的區塊鏈游戲Block Cuties宣布同時支持EOS和ETH兩個網絡。[2018/11/30]
我們回顧一下以上有關于分片的討論時,提到的一些關鍵性問題:
一是如何進行狀態分片,即區塊鏈資料是如何分配在不同分片中儲存,如果要進行跨分片通訊時,該如何保證其中的效益平衡。
二是如何處理交易的原子性問題,一個分片對于共同訪問的狀態的修改,需要及時地讓另一個分片知道,否則就容易出現狀態錯亂。
在下文中,我們梳理了業內比較知名的公鏈以及其技術解決方案。其中可以窺見部分脈絡,并在此基礎上討論Shardeum的前沿性和革新性。
01計算分片
Zilliqa是最早嘗試分?的智能合約平臺之?,是分片技術的一種很有益也很有效的嘗試。
其成立于2017年,由與新加坡國立大學相關的專門研究人員和學者組成的團隊推動,主要目標是解決可擴展性問題,專為計算密集型任務而構建。Zilliqa網絡能夠通過稱為計算分片的并行化過程,在其網絡上處理高吞吐量的交易。在分片式區塊鏈網絡上,計算交易的任務分布在網絡的各個分片上。
從分片過程來說,Zilliqa將其分為兩部分。首先,選擇目錄服務委員會節點,然后啟動分片過程并將節點分配給每個分片。一旦在分片中驗證了交易,便可以通過整個網絡對其進行驗證,并進入一個全局狀態,該狀態將所有分片中的交易組合到Zilliqa區塊鏈上的單個可驗證真相來源。
簡單來說,對于區塊鏈中的節點具有的三個主要功能:
-處理交易
-打包交易并廣播到其他節點
-存儲整個網絡的歷史賬本
Zilliqa利用了一種簡潔有效的思路來解決我們提到的跨分片通訊以及原子性問題,即:只進行計算分片,不進行網絡和儲存的分片。該平臺中的所有節點都存儲了完整的狀態,并且每個交易都被每個節點接收。為了驗證交易,?絡根據賬?的地址空間被分割成多個分區。這被稱為計算分?,因為它劃分了驗證交易的?作,這通常是計算密集型的。由于每個節點仍然接收每筆交易并更新所有賬?的狀態,因此?絡帶寬和存儲操作仍然成為瓶頸——?絡和存儲沒有分?,因此?法真正擴展。
02靜態狀態分片
更為通用的分片方法是將帳戶的地址空間劃分為多個稱為分片的固定大小區域,并將網絡中的節點分配給不同的分片。這稱為狀態分片。Near、Elrond和Harmony等平臺正在采用這種方法。盡管以太坊最初計劃實施狀態分片,但新方法僅對數據進行分片以增加可訪問性。
2.1以太坊的數據分片構想
在以太坊環境中,分片將通過分擔處理整個網絡上匯總所需的大量數據的負擔,與Layer2協同工作。這將繼續減少網絡擁塞并增加每秒交易量。
應該指出的是,隨著更有效的擴展路徑的開發,以太坊的分片計劃也在不斷發展。以太坊對于未來分片構想其中一個方案版本是基于“數據可用性”的分片,“Danksharding”是一種新的分片方法,它不使用分片“Chain”的概念,而是使用分片“Blob”來分割數據,同時使用“數據可用性抽樣”來確認所有數據是否可用。
而另一種方案版本涉及到在方案一的基礎上,為每個分片添加額外的功能,使每一個分片更像今天的以太坊主網,允許分片存儲和執行代碼并處理交易,因為每個分片都將包含其獨特的智能合約和賬戶余額集,跨分片通信將允許分片之間的交易。然而這種方案還在社區辯論中,因為方案一的數據可用性加上Layer2的協同,已經可以為以太坊提供足夠的可拓展性,因此社區還在評估版本二的經濟成本與收益價值。
2.2Harmony
聲音 | Overstock前總裁:實現區塊鏈技術的全部潛力需要解決開發人員短缺等三個挑戰:據livebitcoinnews報道,overstock前總裁兼董事會成員Jonathan Johnson,分享了他認為實現區塊鏈技術的全部潛力之前需要解決的三個挑戰。1.區塊鏈優秀開發人員短缺 2.監管機構的態度問題 3.購物者和商家須達到一定的使用數量。[2018/11/11]
Harmony是一個基于PoS的分片網絡,采用了一種更為標準的分片方法,這種方法的想法是擁有多個稱為分片的小型區塊鏈,每個分片負責狀態的一部分,以及一個協調它們的區塊鏈,在Harmony中稱為信標鏈。我們按照之前的討論,先看看Harmony是如何從下到上解決網絡分片、交易分片和狀態分片的問題。
網絡分片:Harmony將驗證者網絡分為不同分片,每個分片都包含一組不同的驗證器,它們彼此緊密相連,在它們之間運行共識。
交易分片:Harmony的交易由單個分片處理和處理。這使得分片能夠同時處理交易,提高了區塊鏈的總交易容量。對于交易,用戶只需在簽名交易中指定shard_id字段,表示交易所屬的分片。
狀態分片:在Harmony中,每個分片的驗證者都需要存儲1/N的全局狀態,因為他們維護自己的區塊鏈和狀態數據庫。這減輕了驗證者對數據可用性的擔憂。此外,交叉分片進一步提高了分片之間的狀態一致性。
Harmony主網支持多個分片中的數千個節點,在幾秒鐘內生成具有即時確定性的塊。通過質押機制的安排減少了中心化,同時支持質押委托、獎勵復合和雙簽削減。采用了EPoS(EffectiveProof-of-Stake)的有效抵押機制和安全的隨機分片技術(RandomSharding),靠協議的規定把大戶抵押的代幣打散成許多細小的部分,并隨機分配到多個分片里,這樣任何人就無法把他抵押的代幣集中到單一分片內,從而無法攻擊單一分片。
而關于跨分片,在跨分片交易和信標鏈同步的情況下,來自不同分片的驗證者通過全球連接的網絡跨分片發送消息。根據Harmony官方文檔,采用了「Kademlia跨片路由技術」,來控制跨片間通信的網絡開銷,并且利用「糾刪碼」對區塊廣播過程進行優化,使廣播者的網絡壓力更小,避免發送者的網絡瓶頸問題,從而實現高效的橫向分片擴展。已經裝備自己成為第一個完成跨分片消息傳遞的分片區塊鏈。借助有效的跨分片消息傳遞協議和全網狀設計,分片之間將能夠進行無縫通信,隨著團隊積極朝著這個目標努力,用戶和開發人員可以期待今年晚些時候在Harmony上的跨分片消息傳遞協議。
對于Harmony上的構建者和開發者來說,這是一個重大突破,因為他們可以通過整理特性和使用駐留在不同分片上的數據來構建。此外,分片間數據的一致性也很重要。這兩種追求將決定這種無限可擴展性的可持續性。
2.3Elrond
Elrond是一個高吞吐量的公共區塊鏈,旨在提供安全性、效率、可擴展性和互操作性。使Elrond與眾不同的兩個最重要的特性是自適應狀態分片和安全的權益證明共識機制。
對于交易、數據和網絡,Elrond采用所有級別的自適應狀態分片。動態自適應分片機制將執行分片合并和分片拆分,同時考慮可用驗證節點的數量和網絡使用情況。由于跨分片的定期節點改組,對惡意攻擊保持高彈性。每個epoch,每個分片中最多1/3的節點被重新洗牌到其他分片,以防止串通。在隨機性方面,使用BLS簽名保護隨機源,這使其無偏見和不可預測。
而對于分片狀態架構上的智能合約采用跨分片執行過程處理,分片負載均衡。跨分片平衡智能合約允許Elrond并行運行多個智能合約。
同時,對于跨分片,Elrond采用他們稱為元鏈的設計,可以做到在幾秒鐘內快速確定跨分片交易。通過研究其技術白皮書,我們簡化其過程如下:假定Elrond網絡僅有兩個分片和元鏈。假設用戶從他的錢包中生成一筆交易,該錢包的地址位于分片0,并希望將EGLD發送給另一個錢包地址位于分片1的用戶,則需要下圖所示的步驟來處理跨分片交易。
公告 | EOSCleanerBP團隊發布關于今天部分 Fullnode 與 BP節點異常的解決方案:EOSCleanerBP團隊發布關于今天部分 Fullnode 與 BP節點出現異常的解決方案:疑似與配置文件config.ini中 chain-state-db-size-mb 值有關,若設為1024或更低,會出現以下錯誤:
terminate called after throwing an instance of 'boost::interprocess::bad_alloc'
what(): boost::interprocess::bad_alloc
建議將該值修改為4096或以上,EOSCleanerBP團隊將會對后續進展保持關注。[2018/7/8]
塊的結構由包含有關塊的信息的塊頭表示,以及包含內部實際交易的每個分片的小塊列表。在我們的例子中,對于分片0中的一個塊,通常會有3個小塊:
miniblock0:包含分片0的分片內交易
miniblock1:包含與分片0中的發送者和分片1中的目的地的跨分片交易
miniblock2:包含跨分片交易,發件人在分片1,目的地在分片0。這些交易已經在發件人分片1中處理,將在當前分片處理后完成。
一個塊中具有相同發送者和接收者的小塊的數量沒有限制。這意味著具有相同發送者和接收者的多個小塊可以出現在同一個塊中。在這個過程中,跨分片執行的原子處理單元是一個小塊:要么立即處理小塊的所有事務,要么不處理,小塊的執行將在下一輪重試。
Elrond的跨分片交易策略使用異步模型。驗證和處理首先在發送者的分片中完成,然后在接收者的分片中完成。交易首先在發送者的分片中分派,因為它可以完全驗證從該分片中的帳戶發起的任何交易。之后,在接收者的分片中,節點只需要元鏈提供的執行證明,進行簽名驗證和檢查重放攻擊,最后為接收者更新余額,添加交易金額。
分片0處理小塊0中的分片內交易和一組跨分片交易,這些交易的地址來自分片1作為小塊1中的接收者。塊頭和小塊被發送到元鏈。元鏈通過創建一個新的元鏈塊來公證分片0的塊,其中包含有關每個小塊的以下信息:發送者分片ID、接收者分片ID、小塊哈希。
分片1從元塊中獲取小塊1的哈希,從分片0請求小塊,解析交易列表,請求丟失的交易,在分片1中執行相同的小塊1并發送到元鏈結果塊。經過公證,交叉交易集可以被認為是最終確定的。下圖顯示了完成交易所需的輪數。這些輪次被認為是從第一個包含在小塊中到最后一個小塊被公證。
圖5Elrond的跨分片異步模型
2.4Near
Near是一個全狀態分片、對開發者友好的可拓展性公鏈,他們提出了一種新的協議和解決方案,稱之為夜影協議。
與上述兩個分片公鏈不同的是,它的技術架構并不是由一個信標鏈和多個分片鏈組成的,而是把系統建模成一個單獨的區塊鏈,在區塊級別進行了分片,每個分片中有很多“段”。
圖6Near放棄了信標鏈的做法,采用了Nightshade的設計
Nightshade將系統建模為單個區塊鏈,其中每個塊在邏輯上包含所有分片的所有事務,并更改所有分片的整體狀態。在物理上,沒有參與者下載完整狀態或完整邏輯塊。相反,網絡的每個參與者只維護與他們驗證交易的分片相對應的狀態,并且塊中所有交易的列表被分成物理塊,每個分片一個塊。
在理想條件下,每個塊每個塊的每個分片恰好包含一個塊,這大致對應于具有分片鏈的模型,其中分片鏈以與信標鏈相同的速度生成塊。然而,由于網絡延遲,一些塊可能會丟失,因此實際上每個塊的每個分片都包含一個或零個塊。
在Nightshade中有兩個角色:區塊生產者和驗證者。在任何時候,系統都包含w個塊生產者和wv個驗證者,在near的模型中w=100v=100,wv=10,000。系統包含n個分片,在near的模型中n=1000。在Nightshade中沒有分片鏈,而是所有的區塊生產者和驗證者都在構建一個單一的區塊鏈,稱之為主鏈。主鏈的狀態被分割成n個分片,每個區塊生產者和驗證者在任何時候都只在本地下載了與該分片的某個子集對應的狀態子集,并且只處理和驗證影響這些部分的交易狀態。網絡的維護是按時期完成的,其中一個時期是幾天的時間段。
塊生產者和塊生產者根據固定的時間表輪換每個塊。區塊生產者有一個訂單,并按該順序重復生產區塊。例如,如果有100個區塊生產者,第一個區塊生產者負責生產區塊1、101、201等,第二個區塊生產者負責生產2、102、202等)。由于塊生產與塊生產不同,需要維護狀態,并且對于每個分片,只有sww/n個塊生產者維護每個分片的狀態,相應地,只有那些sww/n個塊生產者輪換創建塊。
而關于跨分片,如果一個事務需要影響Near中的多個分片,則需要分別在每個分片中連續執行。完整的交易被發送到第一個受影響的分片,一旦該交易被包含在該分片的塊中,并在該塊被包含在一個塊中后應用,它會生成一個收據交易,該交易被路由到下一個需要在其中執行事務的分片。如果需要更多步驟,則收據事務的執行會生成新的收據事務,依此類推。具體見下圖:
圖7Near中的跨分片交易
由上述對Harmony、Elrond以及Near的分析中,我們可以看到對于我們提出的兩個問題的解答:
但是同時,通過分析目前市場上的探索與解決方案,我們發現了目前階段公鏈分片的一些新問題:
在跨分片交易時,如何在避免分片連續執行的基礎上,同時保證交易的原子處理?2.如果要網絡中增加了不足一個分片節點數量的節點,網絡如何處理多出來的這部分節點?
作為一個專注于促進區塊鏈的大規模應用、重塑web3價值范式與賦能未來的專業投資公司,Jsquare一直關注區塊鏈的擴展性和安全性,在關注Web3運用層的同時,對更去中心化的基礎架構、無感的區塊鏈使用體驗以及依托于加密技術的安全性未來抱有極大的信心。即使分片的概念并不是新的,即使在這個道路上人們已經探索了一年又一年,我們在接觸Shardeum的時候,依然覺得他們對于分片賽道的洞察以及他們所做出的革命性技術改善值得我們下注。與這兩個問題對應的,Shardeum提出了兩種新穎的解決方式。
3.1Shardeum與交易級共識
Shardeum形成了一種獨特的技術與共識算法,該算法將法定人數證明(PoQ)與權益證明(PoS)相結合,共識算法將通過trustless投票收集和驗證節點的質押來幫助保護網絡。每個交易會在被分組到塊/分區之前按照收到的順序進行處理。
而與上述成名已久的公鏈網絡不同,Shardeum網絡上的共識是在每個交易級別而不是塊級別完成的,允許跨分片同時處理事務,而不是像Near的塊級共識那樣連續處理。這種交易級共識消除了確保原子處理所需的復雜性。因此可以做到秒級的finality和低延遲,從而防止網絡擁塞。
3.2Shardeum與線性擴展
要解釋什么叫線性擴展,我們需要想象下面一種情形:
Near主?1個100個節點的分?。預計將來會添加更多分?。Harmony有4個分片,每個分片250個節點,主網共1000個節點。所有的合約在同一個分片。Elrond有3個分片與1個元鏈,每個分片800個節點,主網共3200個節點。
如果在Harmony中添加100個節點,不足一個分片中需要的250個節點,Harmony該如何處理這部分節點?是否可以考慮將這共1100個節點分成11個分片,每片100個節點?
聽起來更美好,但是由于某些分片的靜態特性,許多額外的節點需要加入網絡才能創建新的分片。假如,我們要向上述網絡中加入一些節點,如果只增加1個單獨的節點,是無法提高整個區塊的表現的,至少要為目前“最小分片大小”數量的節點——因為目前的分片都是靜態分片,不支持線性擴展,還沒有生產網絡實際能做到靜態分片的拆分和合并。
在“交易級別的共識”之外,Shardeum的白皮書提到,一個獨特功能是它使用動態狀態分片,不同于靜態分片中的所有節點都覆蓋相同的地址范圍,Shardeum的虛擬分片可以讓每個節點持有不同的地址范圍,覆蓋的地址之間存在重疊節點——這樣做具有更大的復雜性,但是好處是它允許真正的線性縮放。
通過地址空間和節點對應關系的動態變化,加上一種新的數據可用性證明來做跨分片驗證,Shardeum可以做到擬合或者近似的“線性擴展”。這種按照“交易級別”進行驗證和確認的方式,可能會一定程度上犧牲單片內的性能,但是對于網絡整體,是非常有益的擴展。
Shardeum目前擁有10個分片,每個分片128個節點,共1280個節點,主網預計2022年第四季度上線。雖然Shardeum仍在開發中,但在協議層面使用的Shardus技術已被證明可以實現線性擴展。在2021年第三季度的更新活動中,shardus運行在AWSt3.medium硬件上的1000個節點的網絡被證明可以達到5000TPS的跨分片交易。
圖82021年第三季度,Shardus被證明可以達到5000TPS的跨分片交易
2022年8月,Shardeum在具有完整分片功能的測試網Liberty2.0上,通過ERC20代幣轉移成功展示了100TPS的能力。通常來說,一個區塊鏈需要幾年的時間才能建立并達到更高的TPS,但Shardeum在推出Liberty1.0后不到4個月就實現了這一目標。目前,Shardeum用50個節點測試并發布了Liberty2.0,其中每個節點存儲了約1/5的總數據,執行了1/5的總交易。
四、結語
一個真正的分片和可擴展的區塊鏈需要從頭開始。同樣,一個擁有鉆石般共識的社區也需要從無到有地構建,而社區的建設從來不比技術的研究和突破輕松容易。我們看到了Shardeum測試網上線后,活躍的測試人數以及測試交易數,興奮于我們發現的革新之路有更多人攜手同行,同時也看到了一些質疑的聲音,只是我們相信進步的道路是螺旋而曲折的,任何的創意和探索都值得一試。
正如《抱樸子·用刑》中說,“國有六職,百工與居一焉。或坐而論道,或作而行之”。也有一說,與其坐而論道,不如起而行之,Jsquare始終以開放的態度,希望更多建設者們加入去中心化與分片的測試與探索中。2022年4月26日Shardeum推出了Shardeumalphanet1.0,從那時起,很多用戶參與了Shardeum測試,超過100K的錢包創建,1000的智能合約部署,導致更大的TPS要求。正如我們相信,只有在Web3大面積采用的時候,那些高質量高性能去中心化的公鏈才會在市場競爭中脫穎而出,也正如我們所相信的,那些經歷了質疑、指責、公開討論和反復論證的社區,才能在去中心化的路上走得越來越遠。
Reference
1.https://blog.chain.link/blockchain-scalability-approaches-zh/
2.https://www.odaily.news/post/5147856
3.https://docs.near.org/concepts/basics/transactions/overview
4.https://medium.com/nearprotocol/the-authoritative-guide-to-blockchain-sharding-part-1-1b53ed31e060
5.https://medium.com/nearprotocol/unsolved-problems-in-blockchain-sharding-2327d6517f43
6.https://medium.com/nearprotocol/why-doesnt-near-just-replicate-ethereum-serenity-design-3e2cfa2f960c
7.https://ethereum.org/en/upgrades/sharding/#what-is-sharding
8.https://blog.ethereum.org/2020/03/27/sharding-consensus
9.https://www.web3.university/article/ethereum-sharding-an-introduction-to-blockchain-sharding
10.https://medium.com/harmony-one/enabling-cross-shard-communication-at-harmony-22f26483d0d1
11.https://en.elrondwiki.com/article/multi-shard-the-answers-to-certain-questions
12.https://docs.elrond.com/technology/cross-shard-transactions/
13.https://near.org/papers/nightshade/
14.https://shardus.com/whitepaper.pdf
Jsquare是一家投研和技術驅動的投資機構,專注于賦能Web3行業的Alpha項目,以推進區塊鏈技術的大規模應用。目前我們的自有資金管理規模超過1.5億美元。投資組合包括CeFi(CoinList,3iQ,Republic,FVBank),游戲/NFT(Efinity,BigTime,ThetanArena,Apeiron),基礎設施/工具(Pocket,Render,ChainSafe,GSN)等。
www.jsquare.co
推特|@JSquare_co
相信BTC將突破20,000美元的交易者可以使用這種低風險期權策略進行長期看漲押注。比特幣在9月中旬進入上升通道,并繼續在19,500美元附近橫盤整理.
1900/1/1 0:00:00在USUSSEDLEO試圖突破強勁阻力后,向下力量被觸發。隨后,它對價格走勢采取行動,這將LEO/USDT價格e推至4.297美元.
1900/1/1 0:00:00尊敬的用戶:由於KTO錢包維護,Hotcoin現已暫停KTO充值、提現業務,交易不受影響,具體開放時間敬請留意官方公告.
1900/1/1 0:00:00ForesightNews消息,據TheBlock報道,由YCombinator前學員創建的去中心化風投組織OrangeDAO與風險投資公司PressStartCapital合作推出Web3加速.
1900/1/1 0:00:00像Stellar(XLM)這樣的成熟加密貨幣最近面臨著不穩定。為什么?它們是舊硬幣,現在沒有太多用途了。他們沒有跟上技術變革的步伐,而社區正在尋找其他投資是正確的.
1900/1/1 0:00:00本文來自Decrypt,原文作者:KateIrwinOdaily星球日報譯者|余順遂MikeNovogratz旗下投資機構GalaxyDigital發布的新研究報告顯示.
1900/1/1 0:00:00