Libra教程之 Libra協議的關鍵概念

2022-01-10 11:26:21 字數 1802 閱讀 3823

版本資料庫

賬戶賬戶位址

proof

驗證節點

儲存libra協議是libra區塊鏈的基礎,本文主要講解libra協議的一些關鍵概念。

我們知道區塊鏈也可以叫分布式賬本,它主要的作用就是儲存各種交易。而為了便於查詢和提公升效率,現代的區塊鏈都會引入狀態的概念,來代表某時刻鏈上資料的當前快照。

交易會改變相應的狀態,如下圖所示:

上圖描述了執行交易發生時libra區塊鏈相應的狀態改變。

其中t是交易,s是狀態,為了便於描述,我們假設每個交易和狀態是一一對應的,t1對應s1,t2對應s2,tn對應sn。隨著時間的推移n的值不斷變大。

假設在sn-1狀態時我們有兩個使用者a和b,a擁有110lbr,b擁有52lbr。接下來會進行乙個交易tn,將a擁有的10lbr轉給b。

這裡會使用乙個確定函式f(sn-1,tn)=sn 來獲得最新的sn。

確定函式的意思是:對於特定的初始狀態和特定的交易,f始終返回相同的最終狀態。

這個函式f在libra中是使用move語言來實現的。在後面的文章中我們會詳細介紹move語言。

交易記錄著賬號之間的資訊傳遞,是區塊鏈的重要資訊,每個區塊都是由乙個個交易組成的。 libra區塊鏈中的交易包含如下資訊:

交易指令碼是乙個任意程式,可對交易邏輯進行編碼並與在libra區塊鏈的分布式資料庫中發布的資源進行互動。

libra的賬本狀態由區塊鏈中所有帳戶的狀態組成。為了執行交易,每個驗證者必須知道最新版本的區塊鏈分布式資料庫的全域性狀態。

libra區塊鏈中的所有資料都儲存在單版本的分布式資料庫中。 版本號是乙個無符號的64位整數,與系統已執行的事務數相對應。

版本資料庫允許驗證者執行以下操作:

乙個帳戶可以包含任意數量的move modules和move resources。

libra帳戶的位址為256位值。在公鑰私鑰體系中,帳戶位址是使用者公鑰的加密雜湊。要簽署從其帳戶位址傳送的交易,使用者(或代表該使用者的託管客戶端)必須使用與該帳戶相對應的私鑰。

libra使用者可以建立的賬戶可以是無限的,但是要建立帳戶位址,需要從擁有住夠libra幣的帳戶傳送交易用來支付帳戶建立費用。

libra區塊鏈中的所有資料都儲存在乙個單版本的分布式資料庫中。該儲存用於持久儲存已確定的交易塊及其執行結果。這些資料是以不斷增長的merkle樹來實現的。如果有需要,我會在後面的文章中講解什麼是merkle樹,這裡我們只要知道對於在區塊鏈上執行的每筆交易,都會以葉子節點的形式附加到樹上。

proof是一種驗證libra區塊鏈中資料真實性的方法。

儲存在區塊鏈上的每個操作都可以進行密碼驗證,並且沒有資料被遺漏。例如,如果客戶從乙個帳戶中查詢了最近的n筆交易,則proof將驗證查詢響應中沒有遺漏任何交易。

在區塊鏈中,客戶端不需要信任從其接收資料的實體。客戶可以查詢帳戶餘額,詢問是否處理了特定交易,等等。與其他merkle樹一樣,賬本的歷史記錄可以提供特定交易物件的proof。

在區塊鏈系統中,驗證節點是乙個非常關鍵的元件,通常來說驗證節點執行共識協議(與其他驗證者節點一起),執行交易,並將交易和執行結果儲存在區塊鏈中。 驗證者節點決定將哪些交易新增到區塊鏈中,並以什麼順序新增。libra區塊鏈的客戶建立交易並將其提交到驗證者節點。

驗證器節點包含以下邏輯元件:

上圖是驗證節點的示意圖。

儲存用於持久儲存已確定的交易塊及其執行結果。

更多教程請參考 flydean的部落格

Libra協議 關鍵概念

libra區塊鏈是乙個加密認證的分布式賬本,它主要基於libra協議。libra區塊鏈由分布式網路中的驗證者節點維護。驗證者通過共識協議來維護區塊鏈上的交易達成一致。libra測試網就是libra core的原型的示例。libra協議的核心有兩個概念,分別是交易和狀態。在任何時刻,區塊鏈都有乙個 狀...

Libra教程之 資料結構和儲存

前面的文章我們知道,libra會把所有的資料都儲存在賬本中。為了方便業務邏輯和資料的校驗,這個儲存是以特定的資料結構來實現的,這裡我們叫做驗證的資料結構。驗證的資料結構是通過merkle樹來實現的。如果大家熟悉其他的區塊鏈的話,大家可能知道merkle樹由於其特殊的結構,被用在大多數區塊鏈中。下面我...

Libra基礎知識

核心特徵 核心概念 libra專案構建 admission control admission control 是乙個對外的介面,任何的乙個client 發起的request,都會首先進入admission control 這個節點。ac 這個模組是對client request 做乙個初始的檢查,...