Shardeum推動分片技術創新 探索動態狀態分片新路徑

分片技術的創新之路:Shardeum與動態狀態分片

2022年9月15日,以太坊完成合並(Merge)。這是一個歷史性時刻,以太坊爲此準備了5年、推遲了6次。由於長期的開發和調試,加上備受關注的光環效應,很多人誤以爲合並會自然而然地帶來更高的可擴展性、安全性和可持續性,但實際上並非如此。從PoW(工作量證明)到PoS(權益證明)的過渡,只是更換了軌道和輪子,它並不會直接帶來更快的速度、更大的容量、更低的費用。真正能實現這些目標的,是一整套解決方案:具有分片能力的主網搭配增強可擴展性的Layer2方案。

正如以太坊創始人Vitalik Buterin所指出的,分片是可擴展性三難困境下的一種擴容解決方案,通過將網路中的節點分成更小的組,處理不同的事務集並實現並行處理。通過分擔處理整個網路上匯總所需的大量數據的負擔,就像我們在Walmart購物結帳時一樣,通過多開設幾條購物結帳的收銀通道,可以直觀地減少排隊時間和提升結帳效率。

這就是分片的邏輯,直接而簡單,然而,魔鬼都在細節中 - 原理和方向沒錯,但在實施中總會遇到很多問題。本文想通過理順在"分片"這條路上的方向和困局,繪制一張仰望星空與腳踏實地的分片探索者地圖。同時通過比較現有的分片解決方案,找到一些共性的問題,並提出一種可行的探索方向:Shardeum與動態分片。

一、關於"分片"

簡單來說,考慮不可能三角的制約,從以太坊作爲坐標系原點(0,0)出發,按照"縱向"和"橫向"兩種思路,我們將當前的區塊鏈的擴展性方法分爲兩大類:

縱向擴容(Vertical Scaling):通過提高系統現有硬件的性能來實現。建立一個去中心化網路,而網路中的每個節點都具有超級計算能力,即每個節點都需要"更好"的硬件 - 這種方式簡單有效,可以達成吞吐量的初步改進,尤其適用於高頻交易、遊戲以及其他對延遲比較敏感的應用場景。然而這種擴容方式會限制網路的去中心化水平,因爲運行驗證節點或全節點的成本變高了。維持去中心化水平受限於計算硬件性能的大致增長速度(這就是所謂的"摩爾定律":芯片上的晶體管數量每兩年會翻一倍,計算成本則會減半)。

橫向擴容(Horizontal Scaling):橫向擴容一般有幾種思路。一種是在區塊鏈的語境下,將某一生態中的交易計算量分散到多個獨立的區塊鏈上,每條鏈都擁有自己的區塊生產者和執行能力,這種方式可以充分定制化每條鏈的執行層,比如節點硬件要求、隱私功能、gas費用、虛擬機以及許可設置等。另一種橫向擴容方案是模塊化區塊鏈,將區塊鏈的基礎架構劃分成執行層、數據可用性層(DA)以及共識層。最主流的區塊鏈模塊化機制就是rollup。還有一種是將一條區塊鏈分成很多片,並行執行。每個分片可以看成一個區塊鏈,也就是說許多區塊鏈可以並行執行。另外,通常還會有一條主鏈,其唯一的任務就是保持所有分片同步。

需要指出的是,以上的擴容思路都不是孤立存在的,每一種解決方案都是在不可能三角中找到一個權衡點,配合系統中經濟力量創造的激勵機制設計,達到宏觀和微觀層面的有效平衡。

爲了討論"分片",我們需要從頭開始梳理。

依然假設這樣一種情景,Walmart購物結帳,爲了提高結帳效率,降低客戶等待時間,我們從單一的結帳通道,擴展到10個結帳窗口,爲了避免帳本錯誤,這個時候我們需要制定統一的規則:

第一,如果我們有10個收銀員,該如何分配他們去哪個窗口工作?

第二,如果我們有1000個客戶排隊等待,該如何決定每一個客戶去哪個窗口結帳?

第三,這10個窗口對應的10個單獨帳本,該如何進行匯總?

第四,爲了避免發生帳目不匹配的情況,該如何防止收銀員出現錯誤?

這幾個問題其實對應了分片中的幾個關鍵問題,分別是:

該如何確定全網的節點/驗證者屬於哪個分片?即:如何進行網路分片(NetworkSharding);

該如何確定每一筆交易分配給哪個分片?即:如何進行交易分片(Transaction Sharding);

區塊鏈資料如何在不同分片中儲存?即:如何進行狀態分片(State Sharding);

復雜意味着風險,在以上所有的基礎上,該如何避免整個系統安全性的分裂?

01 網路分片(Network Sharding)

如果我們將區塊鏈簡單理解成一種去中心化帳本,無論是PoS還是PoW的共識機制,都是爲了讓各個節點按一定的既定規則爭奪記帳權,在這個過程中保證帳本的正確性。而網路分片是指,需要另一種既定規則,將區塊鏈網路分片,在盡量降低互相通信的前提下,由各個分片處理鏈上交易,爭奪記帳權 - 即,節點的分組規則。

而在這個過程中遇到的問題是,隨着區塊鏈內部節點被劃分成不同的片,攻擊者的難度和成本會直線下降。我們可以推理,假定這個分組過程的規則和結果是固定且可以預知的,那攻擊者想要控制整個區塊鏈網路,只需要定向地控制其中一個分片,收買分片內的部分節點即可。

Near的創始人Alexander Skidanov這樣描述這個問題:如果一個有X個驗證者的單一鏈決定硬分叉成一個分片鏈,並將X個驗證者分成10個分片,每個分片現在只有X/10個驗證者,破壞一個分片只需要破壞5.1%(51% / 10)的驗證者總數。這就引出了第二點:誰爲每個分片選擇驗證者?只有當所有這5.1%的驗證者都在同一個分片中時,控制5.1%的驗證者才是有害的。如果驗證者無法選擇在哪個分片中進行驗證,則控制5.1%的驗證者的參與者極不可能將所有驗證者都放在同一個分片中,從而大大降低了他們破壞系統的能力。

分片系統必須開發一種機制來信任網路不會從外部分片中逆轉這些交易。迄今爲止,可能最好的答案是確保分片內的驗證者數量高於某個最小閾值,這樣不誠實的驗證者壓倒單個分片的幾率就會很低。最常見的辦法是構建一定程度上的無偏隨機性,依靠數學的方式,將攻擊者的成功概率降到最低。比如以太坊,以太坊的解決辦法是隨機從所有驗證者中選出某個分片的驗證者,並且每6.4分鍾(一個epoch的長度)更換一次驗證者。

說的簡單一點就是將節點隨機分組,再將工作分配給各組節點獨立驗證。

然而需要指出的是,區塊鏈中的隨機性是一個非常具有挑戰性的話題,按照邏輯來說,這個隨機數的生成過程不應該依賴於任何特定分片的計算。對於該計算,很多的現有設計思路都是開發一個單獨的區塊鏈,維護整個網路。這樣的鏈在Ethereum和Near中稱爲Beacon鏈,在PolkaDot中稱爲Relay鏈,在Cosmos中稱爲Cosmos Hub。

萬字詳解新公鏈 Shardeum:分片的另一種可能

02 交易分片(Transaction Sharding)

交易分片是指關於"哪些交易要被分配到哪些分片"的規則制定,則既能夠達到並行處理的目的又能避免雙花問題的出現。區塊鏈的帳本模型的不同會對交易分片的開發造成影響。

目前區塊鏈網路中存在兩類記帳方式,分別爲UTXO(Unspent Transaction Outputs,未使用交易輸出)模型和帳戶/餘額模型,前者的典型代表是BTC,後者如ETH。

UTXO模型:在BTC交易中,每筆交易都會有一個或多個輸出,UTXO指尚未花費的區塊鏈交易的輸出,可以作爲新交易的輸入,而已花費的交易輸出不可再花費,類似紙幣交易情況下的支付和找零,顧客將一張或多張紙幣支付給店家,店家則將一張或多張紙幣找零給顧客。UTXO模型下,交易分片需要跨分片通信。一筆交易可能包括多個輸入和多個輸出,沒有帳戶的概念,也不會有餘額的紀錄,一個可能的方式是:按照其交易的某個輸入值將其放入哈希函數處理成爲離散型的哈希值以確定數據應該去哪個分片。如下:

爲了確保條目以一致的方式放置在正確的分片中,輸入到哈希函數中的值都應該來自同一列。此列稱爲Shard Key。之後,將產生爲1值的交易都分入分片1,將產生爲2值的交易都分入分片2。而這種方式的弊端在於,分片之間不得不進行通信以避免雙花攻擊。如果限制跨分片交易將限制平台的可用性,而允許跨分片交易則不得不權衡跨分片通信的成本和性能提升帶來的收益。

帳戶/餘額模型:系統記錄每個帳戶的餘額,在進行交易時,系統檢查帳戶是否有足夠餘額用於支付,類似於銀行轉帳時,銀行會記錄每個帳戶的餘額,只有帳戶餘額大於所需轉帳金額時,交易才能夠進行。在帳戶/餘額模型下,由於一筆交易只有一個輸入,因此只要將交易按照發送者地址進行分片,就可以保證同一個帳戶的多筆交易在同一個分片中處理,有效防止雙花。因此,大多數採用分片技術的區塊鏈,都是像以太坊一樣的帳戶帳本系統。

萬字詳解新公鏈 Shardeum:分片的另一種可能

03 狀態分片(State Sharding)

狀態分片指的是,在區塊鏈資料是如何分配在不同分片中儲存的。

依舊沿用我們Walmart排隊的例子,每個窗口都有一筆帳,他們的帳本是如何記錄的?如果:客戶來排哪個隊,就記哪個帳,比如A客戶去了A窗口,那第二天該客戶去了別的結帳窗口比如B窗口,而B窗口並沒有該客戶的過往帳戶信息(比如涉及到了儲值卡等結帳方式),該怎麼辦?向A窗口調用該客戶的帳戶信息?

狀態分片是分片最大的難題,比上述的網路分片和交易分片更棘手。因爲在分片機制下,交易會根據地址分配在不同的分片處理,也就是說,狀態只會儲存在其地址所在的分片中,此時要面臨的一個問題是,交易不會只在一個分片中進行,時常會涉及到跨分片(Cross-Sharding)。

考慮一種轉帳情形,A帳戶轉帳10U給B帳戶,而A的地址分配在分片1,交易的紀錄也會儲存在分片1。B的地址分配在分片2,交易的紀錄就會儲存在分片2。

一但A要轉帳給B,就會形成跨分片交易,分片2就會向分片1調用過去的交易紀錄,確認交易的有效性,如果A頻繁地打幣給B,分片2就必須不斷跟分片1互動,交易的處理效率便會因此降低。但是,如果不下載和驗證特定分片的整個歷史,參與者則不一定能確定他們之間交互的狀態是某些有效塊序列的結果,且這樣的塊序列確實是分片中的規範鏈。

因此,相比於無分片的單一鏈,分片系統面臨的新挑戰是用戶無

SHM32.08%
查看原文
此頁面可能包含第三方內容,僅供參考(非陳述或保證),不應被視為 Gate 認可其觀點表述,也不得被視為財務或專業建議。詳見聲明
  • 讚賞
  • 6
  • 分享
留言
0/400
GateUser-c799715cvip
· 6小時前
又在狂吹merge梦呢
回復0
GasOptimizervip
· 12小時前
gas什么时候能降到2gwei啊 算了整套解决方案再等5年吧
回復0
GateUser-32ed30edvip
· 07-30 20:40
能不能说人话
回復0
币圈塔罗师vip
· 07-30 05:08
这不等于白折腾了五年
回復0
pumpamentalistvip
· 07-30 05:04
就知道炒merge 结果啥用没有
回復0
GateUser-00be86fcvip
· 07-30 04:57
这波升级不如直接上L2
回復0
交易,隨時隨地
qrCode
掃碼下載 Gate APP
社群列表
繁體中文
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)