Jameson Lopp關於“Libra區塊鏈”的思考

摘要:我讀過的任何內容都沒有讓我相信這個系統會抵制審查制度。

Jameson Lopp關於“Libra區塊鏈”的思考


相比於Facebook昨日公佈的Libra白皮書,一同公佈的還有Libra技術文檔白皮書。

而在今日,比特幣開發者、專業密碼朋克Jameson Lopp 對這一份包含53位作者,長達26頁的技術文檔進行了研究分析。其從邏輯數據模型、執行交易、身份驗證、數據結構存儲、LibraBFT、性能等多方面對Libra技術文檔進行了拆分概述。

以下為Jameson Lopp對Libra技術文檔的思考解讀:

摘要

“Libra協議允許來自不同機構的一組副本(稱為驗證器)共同維護可編程資源的數據庫。”

系統將由一系列權威以自上而下的方式控制。然而,請注意,該數據庫是針對“可編程資源”而不是數字貨幣。

“這些資源由公鑰加密認證的不同用戶帳戶擁有,並遵守這些資源的開發人員指定的自定義規則。”

使用諸如“資源”之類的通用詞語使我懷疑這不僅僅是一個穩定幣。

“交易基於預定的合約。在未來的版本中,用戶將使用一種名為Move的新編程語言來定義智能合約。我們使用Move來定義區塊鏈的核心機制,比如代幣和驗證器成員資格。”

使用自定義構建的智能合約語言會導致很多問題,比如該語言的特性有多豐富,以及該系統對合約的強大程度。對於開發人員的友好程度以及Libra在多大程度上能夠保護智能合約開發人員免於陷入困境,也會有一些問題。

“這些核心機制能夠創建一種獨特的治理機制,該機制建立在早期現有機構的穩定性和聲譽的基礎上,但隨著時間的推移會過渡到完全開放的系統。”

聽起來Libra協會將是一個可以通過投票和某種聲譽來發展自己的聯盟。

1.簡介

“這一生態系統將提供一種新的全球貨幣——Libra貨幣——將由一系列銀行存款和高質量中央銀行的國債全額支持。”

Libra是一個通用的加密資產協議,其第一個資產將是一個穩定幣。

“隨著時間的推移,Libra的會員資格將完全開放,並且僅基於Libra的會員持有量。”

聽起來很像POS。顯然,他們的計劃是在5年後開放會員資格,並希望他們在那時能夠找到POS……我預計他們會遇到和以太坊一樣的問題!

“該協會發表的報告概述了向無許可制度轉變的路線圖。”

我很確定這將是分佈式網絡從許可到無許可過渡的第一個世界。也許網絡作為一個整體可以切換到PoS,但為了維護穩定的peg / basket,一些實體必須保持與傳統金融體系的橋樑暢通。這將是一個通過Libra協會持續集中控制的點。

“驗證者輪流推動接受交易的過程。當驗證器充當領導者時,它向其他驗證器提議交易,包括客戶端直接提交給它的交易和通過其他驗證器間接提交的交易。所有驗證器都執行交易,並形成一個包含新分類帳歷史記錄的經過身份驗證的數據結構。作為共識協議的一部分,驗證器對該數據結構的驗證器進行投票。”

這聽起來像是Practical Byzantine Fault Tolerance(拜占庭式的實用容錯算法)——這是一種已有20年曆史的老算法。但他們可能做了一些調整。我們在白皮書的第5節中瞭解到,它被稱為LibraBFT,是HotStuff協商一致協議的變體。

“作為在版本i上提交交易Ti的一部分,共識協議在版本i上輸出數據庫的完整狀態的簽名(包括它的整個歷史記錄),以便對來自客戶機的查詢的響應進行身份驗證。”

這主要是因為它意味著新驗證器應該能夠加入網絡並快速同步,而不必重播區塊鏈的整個歷史記錄,前提是它們信任現有的驗證器。

2.邏輯數據模型

“Libra協議使用基於帳戶的數據模型來編碼分類帳狀態。”

從數據結構的角度來看,Libra更像以太坊或Ripple,而不是比特幣。由於基於輸出的歷史記錄的簡單性,UTXO模型有其優點和缺點,比如更好的隱私性和更健壯的交易歷史記錄。但是處理複雜的智能合約可能會更加困難。因此,賬戶模式是有意義的,Facebook不太可能關心隱私,而它確實對智能合約感興趣。

“Libra的協議並不會將賬戶和真實身份相聯繫。用戶可以通過生成多個密鑰來自由創建多個帳戶。由同一用戶控制的帳戶彼此之間沒有內在的鏈接。該方案以比特幣和以太坊為例,為用戶提供假名。”

同時,我也想知道Libra的穩定幣的資產情況是否也是如此…觀察這個系統對於想要構建更隱私保護的應用程序的開發人員是很有趣的。

“每個資源都有一個模塊聲明的類型。資源類型是名義類型,由類型的名稱和資源聲明模塊的名稱和地址組成。”

聽起來人們可以生成一個地址,只要每個資產都有一個惟一的名稱,該地址就可以分配任意數量的資產。

“執行交易Ti將生成一個新的分類賬狀態Si,並且執行狀態代碼、gas usage和事件列表。”

那麼現在我們知道如何通過類似於以太坊的資源成本系統來保護系統免受資源耗盡攻擊。

“在分類賬的歷史上其實沒有交易的概念。”

有趣的是,Libra協議中沒有實際的區塊鏈數據結構——區塊更多的是一個虛擬/邏輯結構,用於協調系統狀態的已確認快照。現在這一節的第一句話更有意義了:

“Libra區塊鏈中的所有數據都存儲在單個版本控制的數據庫中。版本號是一個無符號的64位整數,對應於系統執行的交易數。”

我所熟悉的每個加密資產網絡在非常高的層次上都以相同的方式工作:存在系統狀態,然後執行交易,實際上是一個狀態轉換功能,然後存在新的系統狀態。

將成批交易放入容器(塊)的目的是為了進行訂購/加蓋時間戳。這對於通過動態多方成員簽名(驗證者可以自由地加入和離開網絡)驗證數據的無許可網絡非常重要。由於Libra運行的是一個經過許可的系統,所以它可以使用一個更高效的一致性算法,而不需要批處理事務,因為事務歷史記錄被重寫的可能性很小。

“在Libra協議的初始版本中,只有一小部分Move功能可供用戶使用。雖然Move用於定義核心系統概念,例如Libra貨幣,但是用戶無法發佈聲明自己的資源類型的自定義模塊。在向用戶公開之前,這種方法允許移動語言和工具鏈變得成熟——這是由實現核心系統組件的經驗決定的。這種方法還避免了事務執行和數據存儲方面的可擴展性挑戰,而事務執行和數據存儲是通用智能合約平臺所固有的。”

這聽起來非常類似於前面提到的“開放驗證器成員資格”計劃。似乎Facebook並沒有解決Ethereum多年來一直在努力解決的任何一個大問題。

“為了管理對計算能力的需求,Libra協議收取以Libra幣計價的交易費用。”

有趣的是,聽起來Libra的幣實際上是協議的原生單位,就像ETH是以太坊的原生單位一樣。這就導致了更多關於天秤座假名性質的問題;你可以在沒有AML/KYC的情況下獲得幣嗎?如果沒有,那麼你似乎無法匿名使用系統的任何功能。通過閱讀Calibra wallet,它將需要AML/KYC,因此我想知道最終是否會有進入不受嚴格控制的系統中。

“該系統的設計目的是在正常運行期間,當有足夠的容量時,費用較低。”

這確實很模糊,並引發了許多問題——什麼是低收費?什麼是正常操作?什麼是足夠的容量?

3.執行交易

“區塊鏈的核心邏輯的很多部分都是用Move定義的,包括gas費用的扣除。為了避免循環,VM在執行這些核心組件時禁用了gas計量。”

這聽起來相當危險,但作者指出,核心組件必須以防禦性方式編寫,以防止DoS攻擊。

“Move的關鍵特性是能夠定義自定義的資源類型。Move類型系統為資源提供了特殊的安全保障。資源永遠不能複製,只能移動。這些保證由Move VM靜態強制執行。這使得我們可以用移動語言將Libra幣表示為一種資源類型”

這就澄清了之前的問題:Libra幣是否像ETH或BTC一樣是天生的資產。我希望這些幣只是默認的/唯一的資源類型。

“Move的基於堆棧的字節碼比高級源代碼的指令更少。此外,每個指令都有簡單的語義,可以通過更少的atomic步驟來表達。這減少了Libra協議的規範佔用空間,並且更容易發現實現錯誤。”

這聽起來是經過深思熟慮的;希望這意味著他們的腳本語言的安全性將比Ethereum得到更好的審查。

4.經過身份驗證的數據結構和存儲

“Libra協議使用一個Merkle tree為分類帳歷史提供一個經過驗證的數據結構。具體來說,分類帳歷史使用Merkle tree累加器方法來形成Merkle tree,這也提供了高效的附加操作。”

我們再一次看到“Libra區塊鏈”實際上不是區塊鏈。這個協議看起來設計得很好,但是當分類帳歷史的數據結構是一組有簽名的分類帳狀態時,他們卻一直稱它為區塊鏈,這真的很奇怪。驗證者正在為每個分類帳狀態做出承諾,所有的歷史分類帳狀態也在Merkle tree中被承諾,但是我還沒有看到任何形成鏈的數據的反向鏈表,更不用說形成區塊了。

“帳戶的驗證器是此序列化表示的哈希值。注意,這種表示需要在對帳戶進行任何修改之後,對整個帳戶重新計算身份驗證器。該操作的代價是O(n),其中n是完整帳戶的字節表示長度。”

如果沒有對給定帳戶存儲的數據量進行限制,那麼聽起來就像DoS向量。

“我們預計,隨著系統的使用,最終與帳戶相關的存儲增長可能會成為一個問題。正如Gas鼓勵負責任的使用一樣。對於計算資源,我們希望可能需要類似的基於rent的存儲機制。我們正在評估一系列最適合生態系統的基於rent的機制的方法。”

另一個未解決的問題。迫不及待地想說“the rent is too damn high!!”

“為了允許客戶端同步到新配置,epoch期間和epoch之後的一段時間內的投票權都必須保持誠實。離線時間超過此期間的客戶機需要使用一些外部數據源重新同步,以獲得它們信任的檢查點。”

目前尚不清楚“這個時期”有多長,但如果一個epoch不到一天,我猜它也不到一天。似乎這個共識協議不夠強大,參與者可能會離開並重新加入他們希望的網絡。

5.LibraBFT

“LibraBFT假設一組3f + 1的投票分佈在一組驗證器中,這些驗證器可能是誠實的,也可能是拜占庭式的。LibraBFT仍然是安全的,當最多f票由拜占庭驗證員控制時,它可以防止雙重開銷和分叉等攻擊。”

就像PBFT一樣,這種一致算法可以容忍33%的驗證器不誠實。HotStuff修改聽起來經過深思熟慮:

1、通過讓驗證員對區塊的狀態(而不僅僅是事務序列)進行簽名來抵制非決定性錯誤。

2、一個發出明確超時信號的pacemaker,驗證器依賴於其中的仲裁來進入下一輪——這應該可以提高活性。

3、無法預測的領導人選舉機制,以限制DoS攻擊領導人。

4、聚合簽名保留簽署仲裁證書的身份驗證器,以對塊接受進行投票。

6.網絡

“Libra協議中的每個驗證器都維護著系統的完整成員關係視圖,並直接連接到需要與之通信的任何驗證器。不能直接連接的驗證器被認為屬於系統所能容忍的拜占庭式故障的範圍。”

這將需要大量的工作,以便將系統擴展到超過數百個驗證器。

7、Libra核心實施

“Libra區塊鏈的安全性取決於驗證器、Move程序和Move VM的正確實現。解決Libra核心的這些問題是一個正在進行的工作。”

雖然他們在Rust中編寫了實現,但這似乎是性能和安全性的良好開端,但這部分內容已經基本總結完畢。

8、性能

“我們期待Libra協議的首次推出,以支持1000次支付計算。每秒1000次支付交易,並且在提交和提交的交易之間有10秒的最終時間。由於只有100個左右的驗證器並且它們都直接相互連接,因此10秒的“區塊時間”聽起來可行。”

最小節點要求:

40 Mbps Internet connection

1 commodity CPU

16 TB SSD

之前有一些參考文獻要求保持驗證器從頭開始執行初始同步的能力,而不是信任來自其他驗證器的簽名狀態。我預計,如果Libra得到充分利用,那麼執行這樣的同步將很快變得非常不切實際,因此節點安全模型將高度依賴於信任驗證器。

9、用Move實施Libra生態系統政策

“Libra幣儲備是實現保值的關鍵機制。通過儲備,每枚幣都有一套穩定的流動資產作為後盾。Libra幣合同允許協會在需求增加時鑄造新幣,並在需求合同時銷燬它們。該協會不制定貨幣政策。它只能根據授權經銷商的要求鑄造和銷燬幣。用戶不必擔心這種關聯會導致通脹或貨幣貶值:要鑄造新幣,必須有相應的法定存款準備金。”

但是現在我們討論的是網絡外部的事件。如白皮書前面所述,網絡無法執行使用網絡狀態外部數據輸入的腳本。因此,上面這段話中“can”和“must”的修飾語肯定是指Libra的協會政策或合同義務,而Libra的社交網絡並不知道這些。

“一致性算法依賴於驗證器集管理Move模塊來維護當前的驗證器集並管理驗證器之間的投票分配。最初,Libra 區塊鏈僅向創始成員授予選票。”

假設驗證器對驗證器集的更改進行投票,這聽起來會導致類似於我們在POS系統中看到的問題——遠程攻擊。如果創始成員的私鑰的閾值受到損害,攻擊者是否可以從創世塊中編寫一個新的分類帳歷史記錄嗎?如果是,其他節點會接受嗎?目前尚不清楚共識協議是否允許重寫舊狀態或僅僅是附加狀態。

“我們計劃逐步過渡到POS”

如果他們能解決未解決的問題。

突出的問題:

治理是如何工作的

我們可以看到Libra協會是一個由成員組成的委員會,需要2/3的絕對多數人才能做出改變。他們是唯一被允許鑄造或銷燬Libra幣的人,但如果有足夠的共識,他們可以做出任何他們想要的改變。

是否需要AML / KYC?

顯然不是在協議級別,但Calibra錢包聲明所有用戶將通過政府發佈驗證ID。這聽起來就像Calibra錢包將是至少一段時間內唯一可用的錢包,所以目前還不清楚如果開發人員和用戶可以在Libra上運行應用程序的網絡,不遵守相同的標準口徑。

什麼是低費用?什麼是正常操作?什麼是足夠的容量?

Calibra 錢包FAQ承諾收費低,但這似乎與在高負載時底層協議的操作相沖突。

“交易費用將是低成本和透明的,特別是如果你是國際匯款。Calibra將削減費用,以幫助人們保留更多的錢。”

Libra真的會對開發者開放嗎?

根據實現無許可共識的計劃:

“Libra區塊鏈將向所有人開放——任何消費者、開發者或企業都可以使用Libra網絡,在其基礎上構建產品,並通過他們的服務增加價值。開放獲取確保了進入和創新的低門檻,並鼓勵有利於消費者的健康競爭。”

我懷疑開發人員能夠在這個平臺上運行他們夢寐以求的任何技術上有效的應用程序。我讀過的任何內容都沒有讓我相信這個系統會抵制審查制度,但只有時間會證明!

作者:Jameson Lopp 比特幣開發者、專業密碼朋克

技術文檔鏈接:https://developers.libra.org/docs/assets/papers/the-libra-blockchain.pdf

編譯:共享財經馬明 責編:共享財經Neo


分享到:


相關文章: