公鏈分析報告 - Libra

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

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

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

Libra vs BTC

在這裏插入圖片描述

Libra Payment System

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

Libra 將基於區塊鏈的技術創新的最佳方面(分佈式治理,開放訪問和安全性)與強大的合規性和監管框架相結合。

  • 安全,可擴展且可靠的區塊鏈作爲支付系統的技術骨幹;

  • 由Libra儲備金支持的Libra硬幣,其資產由現金或現金等價物以及非常短期的政府證券組成;

    • 儲備金將以1:1的比例支持每種單一貨幣的穩定幣 (100%儲備金)
  • 獨立的Libra協會及其子公司Libra網絡的治理,負責開發和運營支付系統。

    在這裏插入圖片描述

    在這裏插入圖片描述

Libra Stablecoin Ecosystem

在這裏插入圖片描述

  • 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作爲底層的存儲引擎

  • 單一的數據結構,該數據結構記錄了交易的歷史和狀態,而之前的區塊鏈項目將區塊鏈視爲交易塊的集合。

    在這裏插入圖片描述

Main Module:

在這裏插入圖片描述

  • 准入控制(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 的網狀通信網絡拓撲變成了星形通信網絡拓撲,即它每次通信都依靠主節點。
    在這裏插入圖片描述

  2. 3輪2/3投票

    • pre-commit 階段
    • commit 階段:
    • decide 階段

    在這裏插入圖片描述

  3. 門限簽名

    對於一個(k, n)-門限簽名方案,假定存在一個公鑰,而 n 個簽名者每人都擁有自己的私鑰(分片)。只要其中至少 k 個簽名者對消息進行部分簽名,那麼由這 k 個部分簽名可以導出對消息的完整簽名,並且這個完整簽名可以由公鑰來驗籤。

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

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

    在這裏插入圖片描述

  4. 共識過程的流水化處理 (與EOS相同機制)

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

    在這裏插入圖片描述

交易的生命週期

在這裏插入圖片描述

Admission Control (AC)

准入控制是驗證器的唯一外部接口。客戶端對驗證器的任何請求都將首先轉到AC。
在這裏插入圖片描述

Virtual Machine (VM)

Move虛擬機(VM)驗證並執行以Move字節碼編寫的事務腳本。
在這裏插入圖片描述

Mempool

內存池是一個共享緩衝區,其中包含“正在等待”執行的事務。將新事務添加到內存池後,該內存池將與系統中的其他驗證程序共享此事務。爲了減少“共享內存池”中的網絡消耗,每個驗證器負責將自己的事務傳遞給其他驗證器。當驗證者從另一個驗證者的內存池接收到事務時,該事務將添加到接收者驗證者的內存池中。
[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-EnfEVguL-1588522347404)(https://developers.libra.org/docs/assets/illustrations/mempool.svg)]

Consensus

共識組件負責通過與網絡中的其他驗證者一起參與共識協議來對交易塊進行排序,並就執行結果達成一致。
在這裏插入圖片描述

Execution

執行的工作是協調一組事務的執行,並保持可以通過共識投票的臨時狀態。
在這裏插入圖片描述

Storage

存儲組件將持久存儲已商定的事務塊及其執行結果。
在這裏插入圖片描述

參考:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章