|
Facebook在2019年揭示了其在加密貨幣層面點(diǎn)野心。19年6月,F(xiàn)acebook突然宣布了自己的發(fā)幣計(jì)劃,Libra。其目的是想要打造一個(gè)屬于“the internet of money”的時(shí)代。Facebook希望借助Libra去服務(wù)全球萬千用戶,讓所有人享受電子支付帶來的便利。關(guān)于Libra的爭議和各種政策層面分析層出不窮,但是從技術(shù)層面該如何理解Libra,似乎并沒有非常多的討論。媒體和分析師更喜歡用奪人眼球的角度去看待Libra,得出了很多“怪異”的預(yù)測和結(jié)論。拋開這些繁雜的概念和爭議,本文希望從技術(shù)角度去理解Libra所構(gòu)建的區(qū)塊鏈?zhǔn)澜?。全部資料來源于Libra項(xiàng)目白皮書,另外目前Libra還在開發(fā)過程中,討論僅限于白皮書中已經(jīng)披露的技術(shù)細(xì)節(jié)。 Libra Blockchain 初窺Libra要構(gòu)建一個(gè)“全新的”加密貨幣系統(tǒng),其目標(biāo)是要做到:
在設(shè)計(jì)上,Libra借鑒了當(dāng)前市場上已有的區(qū)塊鏈系統(tǒng),選擇了三個(gè)重要的技術(shù)方向:
Libra Reserve有新意的地方是Libra Reserve的發(fā)幣機(jī)制。 在傳統(tǒng)的數(shù)字加密貨幣系統(tǒng)中,如比特幣,數(shù)字貨幣往往是被“憑空”挖掘出來的。這種加密貨幣的“發(fā)行”行為是一種純粹的“體內(nèi)循環(huán)”的激勵(lì)機(jī)制,其發(fā)幣的動(dòng)機(jī)是為了維持該加密貨幣系統(tǒng)的運(yùn)轉(zhuǎn)(激勵(lì)礦工為用戶的交易做驗(yàn)證、打包和執(zhí)行等工作)。 這些加密貨幣的背后并沒有和實(shí)體資產(chǎn)有任何的錨定關(guān)系,也沒有組織和機(jī)構(gòu)宣布過對這些加密貨幣的剛性對付。而Libra Reserve則描繪了一個(gè)不一樣“發(fā)幣”機(jī)制:首先,Libra的投資者和用戶需要使用法幣從Libra協(xié)會(huì)手中“購買”Libra代幣,當(dāng)有1塊錢的法幣被Libra協(xié)會(huì)“收儲(chǔ)”之后,才會(huì)有等價(jià)1塊錢的Libra代幣被“發(fā)行”出來(原諒我使用“收儲(chǔ)”這個(gè)詞,實(shí)在沒有想到更好的動(dòng)詞去描述這個(gè)動(dòng)作)。 Libra協(xié)會(huì)會(huì)去集中管理這些“收儲(chǔ)”的法幣,并使用這些法幣去做高安全、低收益的投資,例如投資各種主權(quán)基金。這些投資的收益大部分會(huì)用來支持Libra生態(tài)的運(yùn)轉(zhuǎn)。看起來這似乎更像是一個(gè)“世界銀行”,用戶可以把各種法幣“儲(chǔ)蓄”到Libra上,然后在Libra的的支付網(wǎng)絡(luò)上使用Libra代幣去做交易,或者通過Libra授權(quán)經(jīng)銷商把代幣兌換成法幣。個(gè)人認(rèn)為這種發(fā)幣機(jī)制更多的是金融層面的概念,本文不再做更多討論,其帶來的影響和利弊還是留給專業(yè)人士去探討。而從技術(shù)角度去看,這里實(shí)在沒有什么好解釋的,既沒有比特幣“挖礦”過程的艱辛,也不涉及復(fù)雜的執(zhí)行過程。 Libra 的設(shè)計(jì)Libra在設(shè)計(jì)上把自己的主要結(jié)構(gòu)定義成一個(gè)“可信”數(shù)據(jù)庫(a cryptographically authenticated database,不知道該如何翻譯),然后通過Libra協(xié)議在這個(gè)數(shù)據(jù)庫上維護(hù)了一個(gè)全局狀態(tài)統(tǒng)一的總賬本。Cryptographically Authenticated的意思是說這個(gè)數(shù)據(jù)庫中保存的數(shù)據(jù)都是經(jīng)過密碼學(xué)驗(yàn)證過的,可以保證數(shù)據(jù)的真實(shí)可靠。而在網(wǎng)絡(luò)結(jié)構(gòu)上,Libra有兩類節(jié)點(diǎn):用戶節(jié)點(diǎn)(Client)和驗(yàn)證節(jié)點(diǎn)(Validator)。如下圖,client可以提交或查詢交易,Validator則負(fù)責(zé)根據(jù)Libra協(xié)議去處理這些交易并維護(hù)賬本的更新。 Transactions and StatesState(狀態(tài))指賬本中某個(gè)數(shù)據(jù)的狀態(tài)(值),在不同的時(shí)間節(jié)點(diǎn)上,數(shù)據(jù)可能有不同的狀態(tài)。Trasaction(交易)指一個(gè)去改變某些數(shù)據(jù)狀態(tài)的指令。比如:
另外,Libra網(wǎng)絡(luò)還維護(hù)了一個(gè)Ledger State,這里面存儲(chǔ)了賬戶地址和賬戶數(shù)據(jù)之間的映射。 Transaction 模型一個(gè)Transaction由下列內(nèi)容組成:
乍一看和很多傳統(tǒng)區(qū)塊鏈系統(tǒng)(以太坊)的Transaction模型類似,比較獨(dú)特的地方有兩處:Program和Sequence number。
Account 模型Libra中的賬戶模型和以太坊類似,從邏輯上看,賬戶是一個(gè)擁有兩類資源的一個(gè)集合:Move Mouldes(程序代碼)和Move Resources(數(shù)據(jù))。Mouldes存儲(chǔ)的是Move語言字節(jié)碼,即智能合約的代碼,這些代碼可以去訪問或更新Resouces中的數(shù)據(jù)。Resouces存儲(chǔ)是是數(shù)據(jù)部分,賬戶擁有的Libra Coin也是存儲(chǔ)在Resource中。賬戶的地址Address是一個(gè)256bit的值。前面提到,Libra網(wǎng)絡(luò)通過一個(gè) Versioned Database在討論這個(gè)部分之前,先說一點(diǎn)題外話。雖然Libra把自己稱之為Libra Blockchian,然而Libra似乎并沒有引入?yún)^(qū)塊的鏈?zhǔn)剑˙lock chain)結(jié)構(gòu),僅在共識(shí)協(xié)議的實(shí)現(xiàn)上引入了“區(qū)塊”的概念作為共識(shí)算法的“優(yōu)化”手段。這并不奇怪,實(shí)際上業(yè)界已經(jīng)意識(shí)到Blockchian這個(gè)詞并不能代表這一類系統(tǒng)的核心特性,很多學(xué)者和分析師更愿意用分布式賬本技術(shù)(Distributed Ledger Technology,DLT )來稱呼這一類技術(shù)。這類系統(tǒng)的核心是在對等的分布式環(huán)境下維護(hù)一個(gè)全網(wǎng)狀態(tài)統(tǒng)一的賬本,至于是不是基于區(qū)塊鏈機(jī)制實(shí)現(xiàn)的,并不重要?;氐絍ersioned Database,Libra定義了一個(gè)基于version的三元組存儲(chǔ)在這個(gè)數(shù)據(jù)庫中:對于每一個(gè)Version i,數(shù)據(jù)庫中存儲(chǔ)了這樣的一個(gè)三元組 一筆交易的執(zhí)行過程當(dāng)一筆交易請求提交到Validator上之后,會(huì)觸發(fā)一系列的處理過程。本文以“Alice向Bob轉(zhuǎn)賬10Libra”為例來詳解這個(gè)過程。 構(gòu)造交易首先,Alice需要在本地構(gòu)造這個(gè)交易,就像填一張“支票”一樣,如下圖。 Validator 的工作Libra在Validator上劃分出了多個(gè)邏輯組件,不同的組件負(fù)責(zé)不同的操作,這些組件包括:
后面會(huì)結(jié)合下圖去解釋一個(gè)交易的執(zhí)行過程 接受交易
在 Validator 之間共享交易信息
打包提議
執(zhí)行區(qū)塊中的交易
Commit 區(qū)塊
小結(jié)從基本的設(shè)計(jì)結(jié)構(gòu)和流程上,Libra似乎沒有給世界帶來什么特別大的驚喜。Libra Reserve的發(fā)幣機(jī)制是一個(gè)特色,但更多的是金融層面的創(chuàng)新。在后續(xù)的文章中,我們會(huì)再看一下Libra的Move語言、性能和共識(shí)算法的等相關(guān)內(nèi)容。 參考資料:
作者信息: |
|
|