OmniLedger目標是實現區塊鏈設計中的不可能三角的平衡,是基於分片設計的區塊鏈:
本文詳細描述OmniLedger的設計細節以及介紹實驗資料。
1)OmniLedger整體架構
OmniLedger由一條身份鏈(identity blockchain)以及多條子鏈(shard)構成。OmniLedger使用RandHound協議,將所有的Validator分成不同組,並隨機的將這些組分配到不同的分片子鏈,驗證以及共識區塊(如上圖中的(1)Sharding)。OmniLedger的總體架構以及設計的重點如下圖:
ByzCoinX是OmniLedger在ByzCoin基礎上的增強。每個分片子鏈使用PBFT共識演算法形成共識,OmniLedger將這個共識演算法取名ByzCoinX(如上圖的(2)Consensus)。OmniLedger使用UXTO的賬戶模型,對於跨子鏈的交易,OmniLedger設計了Atomix的跨鏈原子操作,如上圖中的(3)TX Commit。
2)Validator的隨機分組和分配
RandHound協議實現Validator的隨機分組。假設,總共m個Valiator,n個分片,RandHound協議將m個Validator隨機分配到n個分片。每個區塊生成前,所有的Validator都需要重新分組。注意,RandHound協議需要一個“Leader”。OmniLedger演算法使用VRF演算法確定“Leader“。在每個區塊生成前,所有Validator都需要在identity blockchain上註冊。每個Validator使用VRF計算自己的Ticket,計算方法如下圖:
其中config是註冊在identity blockchain上的所有Validator的資訊,v是當前的輪數。對於同一高度的區塊,可能需要多輪共識才能確定。
在一定時間內,所有Validator交換Ticket。Ticket值最小的Validator作為當前的“Leader“。在確定了“Leader”的基礎上,RandHound協議實現所有Validator的分組,並將這些Validator劃分到不同的分片上。
3) Atomix跨 鏈原子操作
為了支援分片間的交易,Omniledger設計了Atomix的跨鏈協議- Byzazantine ShardAtomic Commit。Omnil edger使用UTXO的賬戶模型。Atomix 協議的大體流程如下圖:
1) Initialize 初始化階段-假設使用者從shard1以及shard2 (輸入)轉賬到shard3 (輸出),使用者向shard1以及shard2傳送跨鏈請求。
2) Lock 鎖定階段- shard1以及shard2鎖定請求,確認交易合法,並在shard1以及shard2記錄下鎖定狀態以及合法交易在區塊中的Merkle路徑證明。
3a) Unlock to Commit階段-提交跨鏈確認請求,使用者向shared3提交commit交易(包括所有輸入的證明),完成跨鏈交易。
3b) Unlock to Abort階段-如果在步驟2中,交易不合法(比如shard2中的交 易不合法),則跨鏈交易需要回滾,使用者向shard1傳送跨鏈交易取消。
這樣的跨鏈設計,需要各個分片“監控”其他分片的區塊生成情況。
4) Trust-but-Verify分 層驗證體系
為了更快速的處理大量的小額交易,OmiLedger提出了“先信任後驗證'的分層處理機制,如下圖:
“先信任後驗證”的體系,包括了兩部分共識: 1)分片共識2)分片區塊合併。分片共識可以採用較少的Validator,加快分片的共識速度以及區塊的確認速度。分片形成的區塊,會被較多的Validator進行再次驗證。這樣的設計在出塊速度以及安全性之間形成平衡。
5)其他細節設計
論文中還提及了其他細節設計,比如區塊映象(Snapshot) 以及區塊並行處理。在區塊映象前的一些資訊可以刪除從而較少儲存的消耗。區塊並行處理指的是,可以並行執行的交易打包在不同的區塊中,這些區塊可以同時共識生成。
6)實驗資料
Omniledger論文中提到,為了驗證實驗資料,部署了60臺機器,每臺機器配置是:Intel E5-2420 v2 CPU,24GB記憶體以及萬兆網路。實驗資料表明:
TPS效能隨著分片數量的增加線性增加,如果是16個分片的情況下,TPS達到5850。論文中甚至指出,25個分片的情況下,TPS達到13000。
總結: Omniledger是基於分片的區塊鏈設計。OmniLedger使用 RoundHound和VRF協議將Validator隨機的分配到不同的分片上。每個分片的共識採用PBFT演算法。Omniledger能容忍不超過1/3的作惡節點。在實驗室的環境下,TPS效能隨著分片的數量線性增加,16個分片的情況,TPS達到5850,25個分片的情況,TPS達到13000。
更多區塊鏈資訊:www.qukuaiwang.com.cn/news