The Libra Blockchain開發(fā)者文檔-(二)Libra協(xié)議:核心概念

對(duì)應(yīng)官方開發(fā)者文檔:https://developers.libra.org/docs/libra-protocol

Libra協(xié)議:核心概念

Libra區(qū)塊鏈?zhǔn)且粋€(gè)通過(guò)加密認(rèn)證的分布式數(shù)據(jù)庫(kù),它基于Libra協(xié)議叛买。本文檔簡(jiǎn)要介紹了Libra協(xié)議中的關(guān)鍵概念胸遇,有關(guān)Libra協(xié)議中所有元素的詳細(xì)說(shuō)明空执,請(qǐng)參閱Libra區(qū)塊鏈技術(shù)白皮書滑频。?

Libra區(qū)塊鏈分布式網(wǎng)絡(luò)由驗(yàn)證器節(jié)點(diǎn)來(lái)維護(hù)橙垢。也稱為驗(yàn)證器豺憔。驗(yàn)證人(驗(yàn)證節(jié)點(diǎn))通過(guò)共同遵守共識(shí)協(xié)議來(lái)促成區(qū)塊鏈中的交易的數(shù)據(jù)的一致驶拱。?

Libra testnet展示了Libra區(qū)塊鏈軟件的早期原型—即Libra Core霜浴。

交易和狀態(tài)

Libra協(xié)議兩個(gè)核心基本概念 - 交易和狀態(tài)。 在任何時(shí)間點(diǎn)蓝纲,區(qū)塊鏈都具有一個(gè)“狀態(tài)”阴孟。狀態(tài)(或稱為分布式賬本狀態(tài))表示鏈上數(shù)據(jù)的當(dāng)前快照。 在執(zhí)行了交易后會(huì)更改區(qū)塊鏈的一個(gè)狀態(tài)税迷。


圖1.1交易狀態(tài)變更.

圖1.1表示執(zhí)行交易時(shí)在Libra區(qū)塊鏈上狀態(tài)的一個(gè)變化永丝。例:在狀態(tài)SN-1時(shí),Alice擁有110Libra Coin箭养,Bob擁有52個(gè)Libra Coin慕嚷。當(dāng)交易(TN)發(fā)生后,區(qū)塊鏈生成一個(gè)新的狀態(tài)毕泌。交易TN(發(fā)送10Libra Coin從Alice到Bob)發(fā)生喝检,狀態(tài)從SN-1到SN『撤海可以看到Alice的Libra Coin減少10挠说,Bob的Libra Coin增加10。新的狀態(tài)(SN)顯示更新后的Libra Coin余額愿题,在圖1.1中可見损俭。

A和B代表區(qū)塊鏈中的Alice和Bob的帳戶。

SN-1表示區(qū)塊鏈中(N-1)的狀態(tài)抠忘。

TN是區(qū)塊鏈上執(zhí)行的第n個(gè)交易撩炊。在圖中例子是外永,TN表示是: “將10個(gè)Libra Coin從Alice的賬戶發(fā)送到Bob的賬戶”崎脉。

F是一個(gè)功能函數(shù)。F始終會(huì)返回一致的初始狀態(tài)或者特定交易后的最終狀態(tài)伯顶。如果區(qū)塊鏈當(dāng)前狀態(tài)是SN-1囚灼,那么在狀態(tài)SN-1上執(zhí)行了交易TN骆膝,最后區(qū)塊鏈的狀態(tài)為SN。

SN是區(qū)塊鏈的第n個(gè)狀態(tài)灶体。 SN是將F應(yīng)用TN中與SN-1后的結(jié)果阅签。

Libra協(xié)議使用Move語(yǔ)言來(lái)實(shí)現(xiàn)功能函數(shù)F的操作。

交易

Libra區(qū)塊鏈的用戶執(zhí)行提交交易來(lái)請(qǐng)求更改分布式賬本的狀態(tài)蝎抽,在區(qū)塊鏈上交易包含如下:

發(fā)送人地址 - 交易發(fā)起人的帳戶地址政钟。

發(fā)送人的公鑰 - 用于簽署交易的私鑰所對(duì)應(yīng)的公鑰。

程序-該程序包含以下內(nèi)容:?

Move的交易字節(jié)碼腳本樟结。?

腳本中相關(guān)選項(xiàng)养交,對(duì)于點(diǎn)對(duì)點(diǎn)的交易中,輸入包含接收人的信息瓢宦,交易發(fā)送給接收人的金額碎连。?

Move字節(jié)碼模塊可選列表。

Gas價(jià)格(以微Libra/Gas為單位)-發(fā)送方執(zhí)行交易時(shí)所需要支付的Gas金額驮履。Gas是支付的是在區(qū)塊鏈上計(jì)算和存儲(chǔ)的費(fèi)用鱼辙,這個(gè)單位是一個(gè)抽象浮動(dòng)的計(jì)量,沒有具體固定的真實(shí)價(jià)值玫镐。

Gas單位上限 - 允許交易消耗的最大Gas單位限制倒戏。

序號(hào) - 無(wú)符號(hào)整型,必須等于發(fā)送者帳戶下存儲(chǔ)的序列號(hào)摘悴。

到期時(shí)間 - 交易有效截止的時(shí)間峭梳。

簽名 - 發(fā)送人的數(shù)字簽名。

交易腳本是一個(gè)自定義的程序蹂喻,腳本中交易邏輯與Libra區(qū)塊鏈分布式數(shù)據(jù)中的相關(guān)內(nèi)容進(jìn)行交互葱椭。

分布式賬本狀態(tài)

分布式賬本或者稱為L(zhǎng)ibra區(qū)塊鏈的全局狀態(tài)是由區(qū)塊鏈中所有賬戶的狀態(tài)組成,在執(zhí)行交易時(shí)口四,每個(gè)驗(yàn)證節(jié)點(diǎn)必須知道區(qū)塊鏈中的分布式數(shù)據(jù)庫(kù)的最新的全局狀態(tài)孵运。查看數(shù)據(jù)庫(kù)版本狀態(tài)

數(shù)據(jù)庫(kù)版本號(hào)

Libra區(qū)塊鏈中的所有數(shù)據(jù)都保存在分布式節(jié)點(diǎn)的數(shù)據(jù)庫(kù)中蔓彩,那么每個(gè)節(jié)點(diǎn)中都會(huì)有一個(gè)版本號(hào)治笨,版本號(hào)是64位無(wú)符號(hào)型整數(shù),對(duì)應(yīng)系統(tǒng)執(zhí)行的交易數(shù)赤嚼。?

數(shù)據(jù)庫(kù)中的版本號(hào)允許驗(yàn)證者如下操作:

在最新的版本中執(zhí)行交易操作旷赖。

響應(yīng)用戶針對(duì)當(dāng)前版本和之前版本的相關(guān)分布式賬本中歷史記錄的查詢。

賬戶

Libra賬戶包含Move模塊和Move資源(資產(chǎn))更卒。它由賬戶的地址來(lái)標(biāo)識(shí)等孵。這就意味上每個(gè)賬戶的狀態(tài)都包含代碼和數(shù)據(jù):

Move模塊包含代碼(類型和程序聲明),但他們不包含數(shù)據(jù)蹂空。程序中相關(guān)模塊根據(jù)規(guī)則用于更新區(qū)塊鏈的全局狀態(tài)俯萌。

Move資源包含數(shù)據(jù)(資產(chǎn))果录,但是不包含代碼。在區(qū)塊鏈中相關(guān)的資源值都由分布式數(shù)據(jù)庫(kù)中發(fā)布的模塊來(lái)聲明類型咐熙。?

賬戶可以包含任意數(shù)量的Move資源和Move模塊弱恒。

賬戶地址

Libra賬戶的是地址是256位值。用戶使用數(shù)字簽名后來(lái)發(fā)布地址棋恼。賬戶的地址需通過(guò)用戶公鑰Hash加密返弹。用戶(代表用戶或者監(jiān)管的客戶端)要發(fā)送交易要求用戶通過(guò)自己的私鑰簽名后進(jìn)行發(fā)送,?

Libra用戶發(fā)布的地址數(shù)量沒有限制爪飘。申請(qǐng)賬戶需要擁有足夠Libra Coin琉苇,才能支付創(chuàng)建賬戶的費(fèi)用。

證明

Libra區(qū)塊鏈中所有的數(shù)據(jù)都以數(shù)據(jù)庫(kù)副本的模式存儲(chǔ)在各個(gè)節(jié)點(diǎn)中悦施,存儲(chǔ)用于記錄相關(guān)交易及交易函數(shù)執(zhí)行后結(jié)果以及整體區(qū)塊鏈的全局狀態(tài)并扇,區(qū)塊鏈上執(zhí)行的交易數(shù)據(jù)通過(guò)不斷增長(zhǎng)的Merkle交易樹來(lái)保存,通過(guò)Merkle樹中“葉”附加至樹上抡诞。

證明(驗(yàn)證)是一種驗(yàn)證Libra區(qū)塊鏈中數(shù)據(jù)真實(shí)性的方式穷蛹。

存儲(chǔ)在區(qū)塊鏈上的每個(gè)操作都進(jìn)行加密驗(yàn)證處理,結(jié)果驗(yàn)證也保證了沒有數(shù)據(jù)被省略(刪除)昼汗。例如:如果客戶端從賬戶查詢最新的幾個(gè)交易肴熏,那么驗(yàn)證查詢響應(yīng)時(shí)沒有交易被省略。

在區(qū)塊鏈中顷窒,客戶端無(wú)條件信任它從其他節(jié)點(diǎn)過(guò)來(lái)的接收的數(shù)據(jù)蛙吏。客戶端可以查詢賬戶余額鞋吉,可以請(qǐng)求是否處理了特定的交易鸦做,等等。和其他的Merkle樹一樣谓着,分布式賬本歷史記錄中可提供特定交易的O(logn)-sized(大衅糜铡)的證明,其中n是處理的交易的總數(shù)赊锚。

驗(yàn)證器節(jié)點(diǎn)

Libra區(qū)塊鏈的客戶端創(chuàng)建建議治筒,并將他們提交到驗(yàn)證器節(jié)點(diǎn)。驗(yàn)證器節(jié)點(diǎn)(和其他驗(yàn)證器節(jié)點(diǎn)一起)運(yùn)行共識(shí)協(xié)議舷蒲,執(zhí)行交易耸袜,并將交易和執(zhí)行結(jié)果存儲(chǔ)在區(qū)塊鏈中。驗(yàn)證器節(jié)點(diǎn)將決定篩選那些交易通過(guò)何種順序添加到區(qū)塊鏈中牲平。


圖1.2驗(yàn)證器的邏輯組件圖

驗(yàn)證器節(jié)點(diǎn)包含以下邏輯組件:

準(zhǔn)入控制(AC)

準(zhǔn)入控制是驗(yàn)證器節(jié)點(diǎn)的唯一的外部接口堤框。客戶端向驗(yàn)證器節(jié)點(diǎn)發(fā)出的任何請(qǐng)求都首先進(jìn)入AC。

AC對(duì)請(qǐng)求進(jìn)行初始的檢查胰锌,以保護(hù)驗(yàn)證器節(jié)點(diǎn)的其他部分免受損壞或被高頻輸入攻擊。

內(nèi)存池

內(nèi)存池作為一個(gè)緩沖區(qū)藐窄,用于保存“等待”執(zhí)行的交易资昧。

當(dāng)新的交易添加到驗(yàn)證器節(jié)點(diǎn)內(nèi)存池中,該驗(yàn)證器節(jié)點(diǎn)的內(nèi)存池與系統(tǒng)中其他驗(yàn)證器共同處理該交易荆忍。

共識(shí)

網(wǎng)絡(luò)中的驗(yàn)證器節(jié)點(diǎn)通過(guò)共識(shí)組件對(duì)交易數(shù)據(jù)塊進(jìn)行處理格带,且通過(guò)共識(shí)協(xié)議協(xié)商,達(dá)成執(zhí)行結(jié)果一致刹枉。

執(zhí)行

執(zhí)行組件利用虛擬機(jī)(VM)來(lái)執(zhí)行交易操作叽唱。

執(zhí)行主要工作是協(xié)調(diào)一個(gè)交易塊的執(zhí)行,并維持在最終達(dá)成一致狀態(tài)前的一個(gè)過(guò)渡狀態(tài)微宝。

執(zhí)行過(guò)程中的執(zhí)行結(jié)果在內(nèi)存中顯示棺亭,直到共識(shí)將塊提交到分布式數(shù)據(jù)庫(kù)中。

虛擬機(jī)(VM)

AC和內(nèi)存池使用虛擬機(jī)組件對(duì)交易執(zhí)行驗(yàn)證檢查蟋软。

虛擬機(jī)用于運(yùn)行交易中的程序代碼镶摘,并確定執(zhí)行后的結(jié)果。

存儲(chǔ)

存儲(chǔ)用于保存最終交易數(shù)據(jù)塊和執(zhí)行的結(jié)果岳守。

存儲(chǔ)每個(gè)驗(yàn)證器和其他組件交互的信息凄敢,請(qǐng)參閱交易的生命周期

參考

歡迎頁(yè)

我的第一筆交易?- 指導(dǎo)您使用Libra CLI客戶端在Libra區(qū)塊鏈上執(zhí)行您的第一筆交易湿痢。

Move入門?- Move新區(qū)塊鏈編程語(yǔ)言涝缝。

交易的生命周期?- 提供交易提交和執(zhí)行時(shí)“幕后”發(fā)生的事情。

Libra核心概述?- Libra核心組件的概念和實(shí)現(xiàn)細(xì)節(jié)譬重。

CLI指南?- 列出Libra CLI客戶端的命令及其用法拒逮。

Libra 詞匯表?- 提供Libra術(shù)語(yǔ)的快速參考。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末臀规,一起剝皮案震驚了整個(gè)濱河市消恍,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌以现,老刑警劉巖狠怨,帶你破解...
    沈念sama閱讀 218,858評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異邑遏,居然都是意外死亡佣赖,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,372評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門记盒,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)憎蛤,“玉大人,你說(shuō)我怎么就攤上這事×┟剩” “怎么了萎胰?”我有些...
    開封第一講書人閱讀 165,282評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)棚辽。 經(jīng)常有香客問(wèn)我技竟,道長(zhǎng),這世上最難降的妖魔是什么屈藐? 我笑而不...
    開封第一講書人閱讀 58,842評(píng)論 1 295
  • 正文 為了忘掉前任榔组,我火速辦了婚禮,結(jié)果婚禮上联逻,老公的妹妹穿的比我還像新娘搓扯。我一直安慰自己,他們只是感情好包归,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,857評(píng)論 6 392
  • 文/花漫 我一把揭開白布锨推。 她就那樣靜靜地躺著,像睡著了一般公壤。 火紅的嫁衣襯著肌膚如雪爱态。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,679評(píng)論 1 305
  • 那天境钟,我揣著相機(jī)與錄音锦担,去河邊找鬼。 笑死慨削,一個(gè)胖子當(dāng)著我的面吹牛洞渔,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播缚态,決...
    沈念sama閱讀 40,406評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼磁椒,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了玫芦?” 一聲冷哼從身側(cè)響起浆熔,我...
    開封第一講書人閱讀 39,311評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎桥帆,沒想到半個(gè)月后医增,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,767評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡老虫,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,945評(píng)論 3 336
  • 正文 我和宋清朗相戀三年叶骨,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片祈匙。...
    茶點(diǎn)故事閱讀 40,090評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡忽刽,死狀恐怖天揖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情跪帝,我是刑警寧澤今膊,帶...
    沈念sama閱讀 35,785評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站伞剑,受9級(jí)特大地震影響斑唬,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜纸泄,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,420評(píng)論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望腰素。 院中可真熱鬧聘裁,春花似錦、人聲如沸弓千。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,988評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)洋访。三九已至镣陕,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間姻政,已是汗流浹背呆抑。 一陣腳步聲響...
    開封第一講書人閱讀 33,101評(píng)論 1 271
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留汁展,地道東北人鹊碍。 一個(gè)月前我還...
    沈念sama閱讀 48,298評(píng)論 3 372
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像食绿,于是被迫代替她去往敵國(guó)和親侈咕。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,033評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容