天天看點

公鍊分析報告 - Libra

Libra 的使命是建立一套簡單的、無國界的貨币和為數十億人服務的金融基礎設施。

  • 2019年6月, 公布白皮書第1版
  • 2019年10月, 成立Libra協會
    • 該協會是一個獨立的會員組織,總部位于瑞士日内瓦。
    • 該協會的目的是為Libra網絡和儲備金協調并提供治理決策的架構
  • Libra testnet 上線并開源
  • 2020年4月, 公布白皮書第2版

本文主要介紹Libra的貨币機制,治理機制以及共識機制, 關于穩定币的介紹另見這篇文章

Libra vs BTC

公鍊分析報告 - Libra

Libra Payment System

現有的區塊鍊系統, 受到其波動性和缺乏可擴充性的阻礙,尚未被主流采用。

Libra 将基于區塊鍊的技術創新的最佳方面(分布式治理,開放通路和安全性)與強大的合規性和監管架構相結合。

  • 安全,可擴充且可靠的區塊鍊作為支付系統的技術骨幹;
  • 由Libra儲備金支援的Libra硬币,其資産由現金或現金等價物以及非常短期的政府證券組成;
    • 儲備金将以1:1的比例支援每種單一貨币的穩定币 (100%儲備金)
  • 獨立的Libra協會及其子公司Libra網絡的治理,負責開發和營運支付系統。
    公鍊分析報告 - Libra
    公鍊分析報告 - Libra

Libra Stablecoin Ecosystem

公鍊分析報告 - Libra
  • Issuance and stabilisation mechanism
    • 治理: 穩定币價值如何穩定的規則
    • 管理實體: 管理穩定币的發行和贖回
    • 可以使用智能合約來管理穩定性機制
  • Transfer mechanism
    • 确定如何驗證交易,誰可以通路穩定币
  • User interface
    • 連接配接DLT的用戶端軟體
    • 指令行終端
    • 錢包
    • 使使用者可以用法币買賣穩定币
  • Use Case
    • 跨境彙款
    • 支付工具
    • 金融服務
  • 網絡參與者分類:
    • 協會或其子公司之一
    • 協會會員
    • 指定經銷商
    • 受管制的虛拟資産服務提供商(“VASP”,包括交易所和托管錢包)
    • 未托管的電子錢包使用者

Libra white paper 2.0

新白皮書增加了大量關于合規方面的設計, 為的是更容易獲得監管準許

  1. 除了錨定多種資産的穩定币外, 還會提供錨定單一貨币的穩定币;

    每種單一貨币穩定币,都将有充分的儲備金支援,儲備金包括現金、現金等價物以及以該貨币計價的非常短期的政府證券。

  2. 通過穩健的合規性架構提高 Libra 支付系統的安全性;

    金融合規性和全網範圍的風險管理以及反洗錢(AML),打擊資助恐怖主義(CFT),制裁合規以及防止非法活動。建立金融情報功能(FIU功能),以幫助支援和維護網絡參與者的營運标準。

  3. 在保持 Libra 主要經濟特性的同時,放棄未來向非許可鍊的過渡(隻有獲得許可的成員才能成為節點)
  4. 在 Libra 儲備金的設計中加入強大的保護措施;

未來

随着央行數字貨币(CBDC)的前景成為現實,對Libra支付系統将能夠更新以支援這些公共部門創新的期望是旨在實作的設計原則。

Libra Block Chain

目标:

  • 能夠擴充到數十億個帳戶,這需要高事務吞吐量,低延遲和高效,高容量的存儲系統。
  • 高度安全,可確定資金和财務資料的安全。
  • 靈活,是以可以推動未來的金融服務創新。

實作:

  • 鍊代碼使用Rust程式設計語言 (Rust: 編譯型語言, 沒有GC)
  • 智能合約 設計并使用Move程式設計語言 (基于Rust)
  • 使用拜占庭容錯(BFT)共識方法。
  • 沒有采用“區塊+鍊”的組織結構

Data Structure

  • 使用RocksDB作為底層的存儲引擎
  • 單一的資料結構,該資料結構記錄了交易的曆史和狀态,而之前的區塊鍊項目将區塊鍊視為交易塊的集合。
    公鍊分析報告 - Libra

Main Module:

公鍊分析報告 - Libra
  • 準入控制(admission control)子產品:Libra的公共API(應用程式接口)接入點,接收用戶端傳來的公開gRPC請求。
  • 記憶體池(mempool):緩存待執行子產品處理的交易。
  • 虛拟機:以編譯好的Move語言程式的位元組碼來處理交易。
  • 執行(execution)子產品:執行已排序好的交易,執行生成新的賬本狀态結果。
  • 存儲(storage)子產品:提供分布式賬本的持久化存儲以及内部運作所需要的資料存儲。
  • 位元組碼驗證器:檢查合約位元組碼中的安全性,包括堆棧、類型、資源以及引用等。· 共識(consensus)子產品:實作LibraBFT共識算法。
  • 密碼學工具(crypto)子產品:實作一些會使用到的密碼學算法,包括哈希、簽名、密鑰生成與檢驗等。
  • Move的中間語言編譯器(Move IR Compiler):将Move編譯的中間語言進一步編譯成虛拟機的位元組碼。
  • 網絡(network)子產品:提供P2P的網絡連接配接功能。

Smart Contract

設計并使用Move程式設計語言,Move旨在防止克隆資産。它啟用了将數字資産限制為與實體資産相同的屬性的“資源類型”:資源隻有一個所有者,隻能使用一次,并且限制了新資源的建立。

對智能合約實施适當的審查和風險控制。首先,隻有協會準許和釋出的智能合約才能與Libra支付系統直接互動。随着時間的推移,協會将探索适當的控制措施,以允許第三方釋出智能合約。

Move語言特點:

  • 基于Rust語言
  • 資源:面向數字資産
    • 資源隻能被轉移、消耗而無法被複制。資源的底層機制保證了數字資産不會因為合約代碼級别的漏洞(bug)而被惡意增發,從程式設計語言層面杜絕了此類問題。
  • 靜态類型:強調安全

共識機制 LibraBFT

  • 基于拜占庭容錯(BFT)
  • 基于分布式共識協定 HotStuff 的基礎上演化而來
  • 具有1/3的容錯性,防止雙花攻擊問題,吞吐量高,穩定性較強
  • Libra還沒有詳細說明如何設計與權益證明共識相關的激勵與經濟模型,例如通貨膨脹率、挖礦獎勵等。

HotStuff 與 PBFT 對比

共識協定 HotStuff 由 VMware Research 等團隊于2018年3月提出,其預印版經過五輪疊代修改,并将于并行與分布計算領域著名的國際會議 PODC 2019上正式發表。

HotStuff 是一個基于主節點(Leader)的拜占庭容錯共識協定

共識協定的目标是在去中心化的網絡中就系統的狀态達成統一的認識,以便所有的(誠實)節點統一從一個狀态遷移到另一個狀态。

  • PBFT 采用了兩輪2/3投票來完成這個目标
  • HotStuff 采用了3輪2/3投票來完成這個目标

HotStuff 特點:

  1. 将 PBFT 的網狀通信網絡拓撲變成了星形通信網絡拓撲,即它每次通信都依靠主節點。
    公鍊分析報告 - Libra
  2. 3輪2/3投票
    • pre-commit 階段
    • commit 階段:
    • decide 階段
    公鍊分析報告 - Libra
  3. 門限簽名
    對于一個(k, n)-門限簽名方案,假定存在一個公鑰,而 n 個簽名者每人都擁有自己的私鑰(分片)。隻要其中至少 k 個簽名者對消息進行部分簽名,那麼由這 k 個部分簽名可以導出對消息的完整簽名,并且這個完整簽名可以由公鑰來驗簽。

    PBFT的一個問題是區塊頭内包含了大量的确認簽名, 使用門限簽名可減少共識協定中簽名的個數.

    在 HotStuff 的三階段确認中,所謂投票,就是其它節點即對某個消息進行門限簽名并發送給主節點。當主節點收到足夠多的投票時會導出完整簽名。主節點向其它節點廣播下一階段消息時将附上這個簽名,供其它節點将驗證。

    公鍊分析報告 - Libra
  4. 共識過程的流水化處理 (與EOS相同機制)

    三個确認階段的行為: 其它節點對某一消息進行投票,主節點合成投票意見并通知給其它節點。這些過程可以統一表示,并采用流水化來處理。 這本質上就是讓下一個視圖的 prepare 階段為目前視圖的 prepare 階段進行确認,即下一個 prepare 階段(隐含地)包含了對目前視圖的 pre-commit 确認,并以此類推。

    公鍊分析報告 - Libra

交易的生命周期

公鍊分析報告 - Libra

Admission Control (AC)

準入控制是驗證器的唯一外部接口。用戶端對驗證器的任何請求都将首先轉到AC。

公鍊分析報告 - Libra

Virtual Machine (VM)

Move虛拟機(VM)驗證并執行以Move位元組碼編寫的事務腳本。

公鍊分析報告 - Libra

Mempool

記憶體池是一個共享緩沖區,其中包含“正在等待”執行的事務。将新事務添加到記憶體池後,該記憶體池将與系統中的其他驗證程式共享此事務。為了減少“共享記憶體池”中的網絡消耗,每個驗證器負責将自己的事務傳遞給其他驗證器。當驗證者從另一個驗證者的記憶體池接收到事務時,該事務将添加到接收者驗證者的記憶體池中。

[外鍊圖檔轉存失敗,源站可能有防盜鍊機制,建議将圖檔儲存下來直接上傳(img-EnfEVguL-1588522347404)(https://developers.libra.org/docs/assets/illustrations/mempool.svg)]

Consensus

共識元件負責通過與網絡中的其他驗證者一起參與共識協定來對交易塊進行排序,并就執行結果達成一緻。

公鍊分析報告 - Libra

Execution

執行的工作是協調一組事務的執行,并保持可以通過共識投票的臨時狀态。

公鍊分析報告 - Libra

Storage

存儲元件将持久存儲已商定的事務塊及其執行結果。

公鍊分析報告 - Libra

參考:

  • Facebook主導的Libra所基于的共識HotStuff是如何工作的?

繼續閱讀