您好,登錄后才能下訂單哦!
本文小編為大家詳細介紹“Libra協議的關鍵概念是什么”,內容詳細,步驟清晰,細節處理妥當,希望這篇“Libra協議的關鍵概念是什么”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學習新知識吧。
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區塊鏈中的交易包含如下信息:
交易發送人的賬戶地址
發送人公鑰-與用于簽署交易的私鑰相對應的公鑰
程序:
移動字節碼的交易腳本
腳本輸入的可選列表。對于點對點交易,輸入包含有關接收者和轉移到接收者的金額的信息。
要發布的移動字節碼模塊的可選列表。
Gas價格:發送方愿意為執行交易而為每單位Gas支付的金額。Gas是一種支付計算和存儲費用的方式。Gas單位是對計算的抽象度量,沒有固有的實際值。
最大Gas數目:允許交易消耗的最大Gas量。
序列號:一個無符號整數,必須等于在發件人帳戶下存儲的序列號。
到期時間:交易停止有效的時間。
簽名:發送者的數字簽名。
交易腳本是一個任意程序,可對交易邏輯進行編碼并與在Libra區塊鏈的分布式數據庫中發布的資源進行交互。
Libra的賬本狀態由區塊鏈中所有帳戶的狀態組成。為了執行交易,每個驗證者必須知道最新版本的區塊鏈分布式數據庫的全局狀態。
Libra區塊鏈中的所有數據都保存在單版本的分布式數據庫中。 版本號是一個無符號的64位整數,與系統已執行的事務數相對應。
版本數據庫允許驗證者執行以下操作:
針對最新版本的賬本狀態執行事務。
響應客戶有關當前和以前版本賬本歷史記錄的查詢。
Libra帳戶包括Move modules和Move resources。它由帳戶地址來標記的。這實質上意味著每個帳戶的狀態都由代碼和數據組成:
Move modules包含代碼(類型和過程聲明),但它們不包含數據。模塊用來對用于更新區塊鏈全局狀態的規則進行編碼。
Move resources包含數據,但沒有代碼。每個資源值都有在區塊鏈分布式數據庫中發布的模塊中聲明的類型。
一個帳戶可以包含任意數量的Move modules和Move resources。
Libra帳戶的地址為256位值。在公鑰私鑰體系中,帳戶地址是用戶公鑰的加密哈希。要簽署從其帳戶地址發送的交易,用戶(或代表該用戶的托管客戶端)必須使用與該帳戶相對應的私鑰。
Libra用戶可以創建的賬戶可以是無限的,但是要創建帳戶地址,需要從擁有住夠Libra幣的帳戶發送交易用來支付帳戶創建費用。
Libra區塊鏈中的所有數據都存儲在一個單版本的分布式數據庫中。該存儲用于持久存儲已確定的交易塊及其執行結果。這些數據是以不斷增長的Merkle樹來實現的。如果有需要,我會在后面的文章中講解什么是Merkle樹,這里我們只要知道對于在區塊鏈上執行的每筆交易,都會以葉子節點的形式附加到樹上。
Proof是一種驗證Libra區塊鏈中數據真實性的方法。
存儲在區塊鏈上的每個操作都可以進行密碼驗證,并且沒有數據被遺漏。例如,如果客戶從一個帳戶中查詢了最近的n筆交易,則Proof將驗證查詢響應中沒有遺漏任何交易。
在區塊鏈中,客戶端不需要信任從其接收數據的實體。客戶可以查詢帳戶余額,詢問是否處理了特定交易,等等。與其他Merkle樹一樣,賬本的歷史記錄可以提供特定交易對象的Proof。
在區塊鏈系統中,驗證節點是一個非常關鍵的組件,通常來說驗證節點運行共識協議(與其他驗證者節點一起),執行交易,并將交易和執行結果存儲在區塊鏈中。 驗證者節點決定將哪些交易添加到區塊鏈中,并以什么順序添加。Libra區塊鏈的客戶創建交易并將其提交到驗證者節點。
驗證器節點包含以下邏輯組件:
Admission Control (AC)
準入控制是驗證程序節點的唯一外部接口。客戶端對驗證者節點的任何請求都首先轉到AC。
AC對請求執行初始檢查,以保護驗證器節點的其他部分不受損壞或輸入量大的影響。
Mempool
Mempool是一個緩沖區,用于保存正在等待執行的交易。
將新交易添加到驗證程序節點的內存池后,此驗證程序節點的內存池將與系統中其他驗證程序的內存池共享此交易。
共識
共識組件負責通過與網絡中的其他驗證器節點一起參與共識協議來對交易塊進行排序并就執行結果達成一致。
執行
執行組件利用虛擬機(VM)執行事務。
執行工作的任務是協調一系列交易的執行,并保持可以通過共識投票的臨時狀態。
執行保持執行結果的內存表示形式,直到共識將塊提交給分布式數據庫為止。
虛擬機(VM)
AC和Mempool使用VM組件對事務執行驗證檢查。
VM用于運行事務中包含的程序并確定結果。
上圖是驗證節點的示意圖。
讀到這里,這篇“Libra協議的關鍵概念是什么”文章已經介紹完畢,想要掌握這篇文章的知識點還需要大家自己動手實踐使用過才能領會,如果想了解更多相關內容的文章,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。