解析OmniLedger:通過安全并水平擴展分布式賬本進行分片

OmniLedger是Chainspace的一個很好的升級版。這兩個系統在同一時間獨立開發。OmniLedger結合了Visa級別的可擴展性水平(注意:作者與平均Visa tps進行比較,Visa網絡中的tps峰值相當高)并帶有安全性的分布式賬本。

這也證明了該領域的進展速度有多快,以及如果您一直從事于分布式系統開發,但到目前為止你還是忽略了區塊鏈技術的發展,這給你帶來一些啟發。標準構建模塊以新穎的方式正在興起,還有很多東西需要學習!

本文主要介紹了OmniLedger,這是第一個可提供“水平擴展”事務處理能力的分布式賬本體系結構,與Visa等中心化支付處理系統相媲美,同時又不會影響安全性和兼具去中心化的特點。


Omniledger and Visa

OmniLedger的目標如下:


1.完全去中心化,無需第三方背書的可信性,兼容單點故障的高容災容錯性。

2. 分片健壯性(OmniLedger將狀態分區再并行處理多個分片處理) - 每個分片必須正確且持續處理分配給它的事務。

3. 在內分片和跨分片中確保安全的原子事務。

4. 吞吐量的擴展性能在參與的驗證器數量上呈線性增長。

5. 減低存儲賬本的需求,使驗證節點不需要存儲完整的交易歷史記錄。

6. 許多移動端聚集在一起以支持所有交易確認的低延遲。



首先我們需要一種方法來啟用新的驗證器來加入系統,以及一種安全的方法來對驗證器進行分片,這樣惡意者就不能輕易地對一個分片進行攻擊。

支撐這部分系統的是一個identity blockchain,以及與RandHound(一種可在拜占庭協議中提供無偏向分布式隨機性的可擴展安全多方計算協議)和加密分類(Algorand算法)進行安全分布式隨機生成。

接下來,我們需要一種安全可靠的方法來處理分片中的事務,OmniLedger引入了Omnicon協議,該協議將基于組的樹通信模式與類似PBFT的視圖更改過程相結合,交易記錄在分類帳中。

?UTXOs(未使用的交易輸出模型)為我們提供了一個(明確的)因果+一致性模型,這意味著我們可以并行識別非沖突事務并處理這些事務塊。因果關系圖在跨塊之間進行維護,而不是個別單獨的事務,從而減少了一些元數據的需求。?在分片中達成的共識還是不夠的,我們還需要進行跨分片的原子事務處理。 為此OmniLedger引入了基于鎖定的解鎖協議-Atomix協議(將驗證和監督工作放在產生交易的兩個群組之間,減少被整個系統網絡狀態的影響,也就是兩個小組之間發生交易,就由兩個小組的同學用特殊方式決定,不給整個群體帶來影響)。

這些分片都是這樣的:


安全的進行分片

我們不能讓驗證者自己選擇一個分片加入,因為這樣會允許惡意者將所有驗證者集中在一個分片組中。

如果將驗證器分配給分片是隨機的,那么很可能所有分片都有相同比例的惡意節點。假設我們有一個合適的隨機性來源,就可以這樣做:

想要參與從epoch e(時期)開始的分類賬的驗證節點首先必須在global identity blockchain注冊。

通過epoch e-1中的Sybil攻擊抵抗機制創建identity,并且最多在epoch e-1結束之前連同相應的證據下在gossip網絡上廣播。

Randomness被用來為epoch?選舉一個領導者并將節點分配給分片(稍后會有更多介紹)

領導者在一個塊上請求一個(BFT)集體簽名,并且可以證明迄今為止所有的identity。 如果這些驗證器中至少有2/3支持該塊,那么它將變為有效,而領導者將其附加到identity blockchain。


OmniLedger驗證器分配機制的安全性被模擬為隨機抽樣問題,其中包含兩種可能的結果(誠實或惡意)。假設有無限可能的驗證器,我們可以使用二項分布...

失敗的結果是允許一個惡意者控制一個分片的。對于給定的抵抗能力(受控節點的百分比),下面的圖表顯示了所需的分片大小以將失效概率固定在$10^{-6}$中。


但是隨機性的來源從何而來呢?

我們要求分布式的隨機生成協議提供了不可比性、不可預測性、第三方可驗證性和可擴展性。

有多種方案。我們關注的是RandHound,因為它有更好的文檔和開源的實現。

RandHound本身依靠領導者協調協議運行的。所以現在我們需要選擇一個驗證器來作為這個角色。密碼學就是用來做這個的。加密分類是基于可驗證的隨機函數-VRFs。

在epoch e的開始,每個驗證者i計算一張票 ticket i,e,v=VRF ski,(leader ||config e ||v),conng e包含了所有正確注冊的epoch的驗證者(存儲在identity blockchain中)的配置,而是一個視圖計數器。

驗證器會對一個時間值的票據進行討論,在此之后,他們鎖定了迄今為止所見過的最低價值有效的票據,并接受相應的節點作為RandHound協議的領導者。

為了在過渡階段保持可操作性,OmniLedger在每個時期的每個分片中逐漸在新的驗證器中進行總分類。 詳情請參閱第IV.B部分。


跨分片交易

在UTXO模型(OmniLedger采用的模型)中,交易的輸出創建新的UTXO,并輸入完全“花費”現有的UTXO。 隨著UTXO隨機分配到分片進行處理,我們可以預期跨分片交易是常見的。

OmniLedger使用稱為Atomix的Byzantine Shard Atomic Commit(拜占庭分片原子確認)協議來自動處理跨越分片的事務(為了保證信息的一致性)。

它建立在這樣的事實之上:全局可信的、不會無限的崩潰以及在內部運行ByzCoin(提供BFT共識)的基礎上。

該協議是由客戶端驅動的,分三個階段進行:

1. 在初始化階段,客戶端創建一個跨分片交易,消耗一些輸入分片的UTXO,并在某些輸出分片中創建新的UTXO。該交易在網絡上被討論并最終到達所有輸入分片中。

2. 在鎖定階段,與交易相關聯的所有輸入分片首先驗證交易以確保輸入可以花費。 然后,如果交易有效,則交易記錄在分片分類賬中,并且接受證明是有討論的。(在經典2PC中認為“PREPARE”)。

如果交易沒有被接受,那么拒絕證明就會變成討論內容。交易輸入現在被鎖定,但交易尚未提交。

客戶端可以檢查輸入的分片賬簿來驗證證據,并確認交易確實被鎖定。客戶持有足夠的證據來提交交易或中止交易并回收任何鎖定的資金,但不能同時回收這2種。

3.在解鎖階段,客戶端可以通過創建一個適當的解鎖交易來解除鎖定或取消鎖定。每一個涉及的輸出分片都有驗證交易,并將其包含在其分類帳的下一個區塊中,以便更新狀態并啟用新資金的支出。


如果你以前在分布式系統上有過操作經驗,那么你可能想知道如果客戶崩潰或不繼續入第三階段,在分類帳中留下可疑交易,會發生什么情況。在這種情況下,資金不會自動回收,這些資金本身為客戶提供了完成交易的動機。

我們認為,無限期崩潰的客戶等同于失去私鑰的客戶,這使得他無法使用相應的UTXO。此外,系統中的任何實體(例如驗證者在交易中的費用)都可以為客戶創建解鎖交易,因為所有必要的信息都是被討論過的。

可擴展的BFT與Omnicon的共識

OmniLedger基于ByzCoin拜占庭式共識方案,該方案使用集體簽名(CoSi)使PBFT更具可擴展性。 ByzCoin使用多點傳送樹型結構來提高性能,并且將塊分配到一種擴展性更小的星型拓撲結構以實現容錯。

不沖突的交易可以在不同的區塊中進行,并以并行方式安全地處理。一個基于塊狀的DAG,其中每個塊有多個母節點可以捕捉區塊的并發處理。跟蹤因果關系的元數據消耗,減少了UTXO之間傳遞的依賴關系,因此我們只需要跟蹤塊之間的因果關系,而不是塊內的單個交易。

低延遲交易

對于頻繁使用低延遲價值交易的客戶,OmniLedger支持一種可選的“信任并驗證”模式。 良好的驗證程序可以快速處理交易,核心驗證程序隨后再次驗證交易以提供最終結果并確保可驗證性。


這樣可能會犯下一些不良交易,但最終核心驗證者會驗證所有臨時的驗證結果,發現任何不一致及其欺詐者,從而可以懲罰惡意驗證者并賠償被欺詐的客戶的損失。

減輕賬本

比特幣的區塊鏈每天增長大約144MB,但具有Visa級吞吐量(例如4000 tps和500 B / tx)的下一代系統每天可以產生超過150GB的數據。 如果新的驗證者需要下載并處理整個分類賬以便引導,那么這是一個很苦惱問題。

所以OmniLedger采用了穩定的檢查點狀態塊。 在一個epoch結束時,分片的領導者將UTXO存儲在有序的Merkle樹中,并將Merkle樹的根哈希放入狀態塊的頭部。 驗證者在這個塊上運行共識,如果被批準,它就成為下一個epoch的創始塊。

OmniLedger和Chainspace

OmniLedger的方法與Chainspace相輔相成,因為我們專注于開放式可擴展UTXO風格的DL(分布式賬本),而Chainspace則專注于可以共享的智能合約和小規模分片(例如:在允許的設置中)。

因此,OmniLedger和Chainspace的結合極有可能創建一個開放式可擴展的智能合約平臺,在與其他分片協議對比,提供了更強大的可擴展性和安全性。

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 我同事是位近60的老大姐,特愛喝水,有過把我帶的水都喝光的行為。 一次開會時,會務給我們幾人一人一小瓶礦泉水。老大...
    丌十閱讀 596評論 0 1
  • #幸福是需要修出來的~每天進步1%~幸福實修09班~17-潘娜 20170725(8/30)09班 【幸福三朵玫瑰...
    幸福實修09班17號潘娜閱讀 255評論 0 0
  • 宋依霖是我朋友圈里的一位冠軍運動員。認識宋依霖,因為她參加了我組織的“21天愛上寫作訓練營”。她是職業高爾夫運動員...
    思維聽FM閱讀 414評論 0 0