從“Diem”系看下一代公鏈正規化

從“Diem”系看下一代公鏈正規化

免責宣告:本文旨在傳遞更多市場資訊,不構成任何投資建議。文章僅代表作者觀點,不代表MarsBit官方立場。

小編:記得關注哦

原文標題:從“Diem”系看下一代公鏈正規化

摘要

公鏈基礎設施一直是加密行業的敘事中心。尤其在技術方面,公鏈一直在共識機制、可程式設計性、可擴充套件性上有所突破。即使如此,公鏈如今仍然存在發展瓶頸,比如效能還無法與Web2基礎設施匹敵,生態應用需求不足等。今年的新公鏈對以上問題都提出了自己的解決方案。2022年上半年,以Cosmos網路為主體,帶領了一批“模組化”和“跨鏈”為話題點的新公鏈。下半年,熱議的新公鏈就是“Diem”系衍生出的三條公鏈:Aptos, Sui, Linera。本篇文章以這三條公鏈為出發點,探討了“Diem”系新公鏈在技術和生態層面的創新及優勢,主要從5個方面分析:

●新Move語言的三大特性及優勢;

● 並行化的解決方案;

● 共識機制的創新及難度;

● 代幣經濟模型的探索式發展;

● 專用型公鏈的可能發展趨勢。

透過分析我們可以得出結論,(1)智慧合約程式語言對安全性、並行化和開發者具有極其重要的作用;(2)並行化是未來公鏈的確定性的正確之路;(3)共識機制大部分基於BFT進行改造,但進步空間可能已到天花板級別;(4)代幣經濟模型一直是公鏈發展的助推劑,如何平衡網路、使用者、驗證者、開發者的關係是新公鏈需要重視的問題;(5)專用型公鏈需要基於應用場景開發技術和提高使用者體驗。從以上結論可以窺見下一代公鏈正規化,尤其是並行化和虛擬機器上,而對於“Diem”系尚未解決的問題,我們可以持續關注它們在技術、代幣經濟、生態上的新進展。

1. 公鏈技術發展概述

公鏈作為加密行業核心的基礎設施,其一舉一動對整個行業具有極大的影響力。公鏈的技術發展都是前3輪牛市的主要敘事,也是在資本和需求推動下的必然結果。公鏈的突破性技術主要表現在三個方面:1。 共識機制;2。 可程式設計性;3。 可擴充套件性。

共識機制方面,我們見證了以比特幣網路為首的PoW鏈的輝煌時期,到以太坊merge之後PoS鏈的新時代。對於比特幣和以太坊來說,PoW機制能夠保證一定的去中心化,但也帶來了資源浪費和低處理效率等問題。2012年誕生的PoS機制,其透過權益記賬的方式解決了PoW能源過度消耗的問題。PoS機制也是大部分新公鏈所採用的共識機制。除了PoS之外,為了提高出塊效率和維護網路的安全性,也誕生了其它創新的共識機制,比如Solana的PoH以及Avalanche的雪崩共識。

可程式設計性是指以智慧合約打造區塊鏈的應用層。由於比特幣網路的指令碼語言是非圖靈完備的,導致其無法構建複雜應用。以太坊使用虛擬機器和Solidity程式語言實現了智慧合約。這也是上一個牛市的根本原因之一。但由於Solidity不支援併發,安全性低等缺陷,也有很多區塊鏈開始使用Rust或者構建新的程式語言,例如Move,提供更為安全、友好、擴充套件性強的開發語言。

在可擴充套件性方面,區塊鏈一直受到不可能三角問題的掣肘。解決這個問題的關鍵在於模組化。模組化是將系統分解為多個單獨子模組的工具,這些子模組可以隨意剝離和重新組裝。這裡的模組化包含了兩個概念:公鏈的模組化框架和工具,以及模組化公鏈。區塊鏈的三層框架模型有結算層、執行層和資料可用性層。基於模組化框架,已經有團隊完成了這些模組化工具和元件的研發並廣泛用於現有的公鏈建設開發中,包括Cosmos和Polkadot生態。而模組化分離的實現路徑主要有三種形式:(1)共享安全;(2)Layer2執行層;(3)資料可用性層的分離。這些也是目前公鏈在擴容技術的主流方向。

2. 公鏈發展瓶頸

雖然公鏈技術一直在不斷髮展,但當下公鏈的主要問題還是效能不足,與web2的基礎設施還有一定的差距。公鏈效能不足會帶來兩個嚴重問題:1。 限制了生態應用發展上限;2。 帶來很差的使用者體驗,這主要體現在部分公鏈短時期的擁堵和手續費高昂。效能不足在執行層的體現是EVM只能序列,無法實現多筆交易的併發執行,直接限制了鏈上資料吞吐量,解決方法就是平行計算。平行計算在web2中已經是非常成熟的技術,而在區塊鏈領域才剛剛起步。除了平行計算之外,以太坊把部分執行層的功能交給了Layer2。

效能在共識層的體現是共識達成的效率、經濟性及安全性,這主要是演算法決定的。目前,大部分公鏈選擇PoS共識,所以效率主要指節點之間的通訊次數和達成最終確定性的時間。在分散式系統中達成共識是一個經典課題,遠遠早於區塊鏈的誕生,所以其發展已經有很多成果,比如PBFT、HotStuff、DUMBO、Algorand,這些在理論上都能實現比較高的TPS。創新的共識機制和最終確定性演算法對建設公鏈來說是非常具有挑戰性的工作,超越前人已是很難,而在其上進行的改進是否能夠實現指數級別的效能提升猶未可知。

資料層包含資料儲存、賬戶和交易的實現及安全的功能。比特幣網路的每個節點都為全節點,儲存了所有的區塊資料,是目前最安全和最去中心化的區塊鏈網路。這種帶來的妥協就是每秒只能處理7筆交易,區塊大小為1M。而以太坊具有合約層和應用層,其區塊需要的空間更大。這是以太坊目前所面臨的棘手問題。雖然Layer2的Rollup方案能夠實現對資料的壓縮,但隨著應用規模的增大,需要上傳的資料量也加大。目前討論較多的解決方案有兩種:1。把資料層的部分功能剝離到其它公鏈,例如資料可用性放在celestia解決;2。 實現鏈上擴容,即分片,分片技術的實現難度很大。

除此之外,受區塊鏈不可能三角的約束,在發展性能的同時,安全性會受到威脅。公鏈的安全性問題主要有兩個方面:1。 節點;2。 智慧合約。節點數量不足、去中心化程度不夠,網路就很容易受到攻擊。而智慧合約方面的安全性,更涉及到區塊鏈的底層,需要考慮程式語言和虛擬機器等方面。

生態應用方面,大部分公鏈並沒有形成自己獨有的應用或者壟斷。使用者也是基於獎勵多少在不同鏈上來回切換,實際靠應用本身留存的使用者只有以太坊。這種現象在牛熊轉換中格外明顯,熊市階段資金更偏向於待在以太坊網路上。剩餘其它公鏈的優勢在於有完整的生態應用和較低的鏈上手續費。

從“Diem”系看下一代公鏈正規化

3. Diem新公鏈模式

新公鏈為了提高效能採用的創新技術幾乎都是從共識機制、可程式設計性和可擴充套件性三個方面出發。最受關注的新公鏈專案無疑是從折戟專案Diem中孕育出的新專案:Aptos、Sui以及Linera。它們在程式語言、共識演算法、模組化架構以及交易並行化思路均做出相應創新,試圖在效能和安全方面更上一層樓。研究這三條新公鏈,我們也能從中窺見未來新一代公鏈正規化。

3.1智慧合約的安全革命

區塊鏈世界中,程式語言作為定義計算機程式的形式語言,是實現系統一切功能和目標的基礎載體。繼Solidity、Rust語言後,從Diem中孕育的新一代程式語言Move因超新公鏈專案Aptos、Sui的強勢亮相又重回聚光燈下,一度被譽為最適合區塊鏈的語言。Move的再度出場似乎正暗示著,新語言的敘事正在成為公鏈競爭的新戰場。下圖簡要地對比了三種程式語言的特點。我們也詳細闡述了Move語言在安全、並行化、開發友好性的創新之處。

從“Diem”系看下一代公鏈正規化

(1)安全性

Move在資產安全性上的表現優於以往的程式語言,很大程度上是因為它站在前人的肩膀上作出了針對性的改進。在火幣研究院過去的報告《Move:innovations and opportunities》中,我們曾對這些安全特性有過專門的探討,這裡我們只對關鍵要點進行概括。

Move從語言設計、虛擬機器、合約呼叫方式和合約具體執行幾個層面為智慧合約提供了全方位的安全保障,Move專門為數字資產定義了新的resource型別來和其它資料區分開,並結合了Module的強資料抽象特性保證資產不會憑空產生、任意複製或隱式丟棄,極大提高了安全性;同時,Move語言被設計為只支援靜態呼叫,所有的合約執行路徑都能在編譯的時候確定,並進行充分分析和驗證,從而提前揭露一些安全漏洞,降低系統執行時出現宕機的機率;最後,它還引入形式化驗證工具,極大降低人工審計程式碼安全的成本。

(2)並行處理

眾所周知,solidity語言是不支援併發處理的,Move則力求從底層對該特性做出改變。由於它為數字資產做出了專門定義,從資料型別上將它與普通數值區分開來,透過對各種resource定義不同的屬性又能夠有效地幫助識別“獨立”的交易,再結合多執行緒執行引擎,使得交易資料能夠被同時執行和處理,極大的提升了系統執行效率。

(3)開發友好性

從目前的市場反饋上看,Move 對開發者非常友好,其宗旨就是降低開發者的安全門檻,使合約開發者可以專注於業務邏輯;與此同時,Move由Rust和Solidity演進而來,捨棄了兩者設計中不必要的“糟粕”,複雜度相對較低,因此整體開發者遷移成本並不算高。據Move實踐者透露,對有Rust、Solidity程式設計經驗的開發者而言,上手Move的時間大概只需花費1–2天;對無智慧合約程式設計基礎的開發者而言,從零學習Move也大致只需要1–2周。

Aptos和Sui都繼承了Move的核心特性。但基於各自的特點有一些改進,但均保留了Move 的安全性和靈活性,但優化了儲存和地址機制,從而提高了網路效能並減少了交易確認時間。具體如下:

3.1.1 錦上添花:引入介面卡層,全面奠基並行化

我們以資料所有權為例進行說明,Aptos的資料是儲存在所有者賬戶中的,即所有者擁有完全控制權,賬戶是基本儲存空間。這無疑是Move原生ownership系統的直接應用,很好地體現了使用者交易的本質就是資產所有權的轉移。

除此之外,Aptos也根據自身專案特點做出了一些特殊設計。它引入了介面卡層(adapter layer)的概念來擴充套件了核心 MoveVM 的附加功能,其中包括透過 Block-STM 實現的並行性,無需使用者輸入即可併發執行事務,用於在帳戶中大規模儲存、儲存金鑰的表,以及解耦的細粒度儲存(fine grained storage)在帳戶中的資料量會影響與帳戶相關的交易的Gas Fee。

3.1.2 別具一格:移除全域性儲存,降低交易延遲

Move公鏈雙子星的另一位即是Sui。相比於Aptos對Move的繼承性,Sui對Move的核心功能進行了一些修改,尤其是在全域性儲存運算子和索引屬性(key ablility)方面。具體不同點體現在以下幾點:

(1)移除全域性儲存運算子

在原生Move語言中,使用者可以透過move_to,move_from等全域性儲存運算子來直接訪問和呼叫module和resource。當新物件被建立時,資料通常會直接儲存到相應的鏈上地址中。但是,考慮到鏈上的儲存空間資源十分有限,Sui移除了全域性儲存運算子,將新建立的資產或模組儲存到特定的Sui storage中。因此,當用戶需要訪問系統中的某個物件時,不能依靠Move原本的全域性儲存操作來直接獲取,必須先透過Sui將物件傳遞出來,再進行訪問。

(2)為物件設定ID

Move中的物件可以被新增索引(key)屬性,以鍵值形式儲存在資料結構中。不過,由於Sui移除了全域性儲存功能,它為帶有key屬性的物件做出了細微調整。當物件可以被索引時,它必須擁有關鍵欄位 — — ID。ID包括兩個方面,object ID和 sequence number,透過建立ID給當前交易的內容和記錄交易建立了多少物件的計數器應用抗衝突雜湊函式建立從而保證資產的唯一性。

(3)構建不同物件型別

Sui有三種物件型別為並行化和共識機制提供了準備:

●可以讀取、寫入、傳輸、銷燬;(共享物件)這種物件涉及智慧合約

●只能讀取/寫入(單所有者物件),類似於單純的轉賬。

●只能讀取(不可變物件)

3.2 並行化的必然之路

目前主流的區塊鏈大多采用EVM作為執行引擎。在處理交易時,EVM 一次執行一個交易,將所有其他交易處於暫停狀態,直到這個交易執行完成,並更新區塊鏈狀態,再按順序執行下一個交易。這種按順序執行是網路吞吐量的主要瓶頸之一。

如何破解這個難題呢?除了使用更先進的硬體來加快執行速度以外,主要的方法就是平行計算。現代計算機的發展過程中也曾出現過類似的現象。在20年前,計算機的CPU大多隻有1個核心,而現在4核、8核甚至更多核心的CPU隨處可見。透過更多核心進行平行計算,計算機的處理能力才獲得了持續的提升。

並行化計算(parallel computing)是指,在並行機上,將一個應用分解成多個子任務,分配給不同的處理器,各個處理器之間相互協同,並行地執行子任務,從而達到加快求解速度,或者解決更大規模的問題的目的。在區塊鏈中,並行執行交易是要打破交易順序執行的正規化,透過簡化交易的操作、排序、依賴性等聯絡來同時執行不相關的交易從而提升系統的吞吐量。並行機就是區塊鏈的驗證者/節點。

平行計算除了可以提升效能以外,還可以降低節點的成本,從而提升系統的去中心化程度。因為如果要達到同樣的效能,卻不採取並行化計算的話,就需要用到效能更強的單核CPU,這條路線的成本更高,而且不符合計算機科學發展的規律。Aptos和Sui都借鑑了並行化計算的思想。

3.2.1 並行化第一槍:交易分類,多執行緒同步執行

Aptos的設計思路是把不相關的交易區分開並依靠先進的執行引擎和硬體同時執行。這種思路更接近目前的區塊鏈的執行方式,具體做法主要有以下3條:

● 最簡單的情況:同時在不同的執行緒中執行在資料和賬戶上沒有重疊衝突的交易。比如同時執行Alice向Bob轉賬100個XYZ token,Charles向Edward轉賬50個 UVW token這兩個交易。

●稍複雜的情況:如果有同時對同一個資料或賬戶的操作,先並行執行交易,然後以正確的順序結算可能衝突的能讓狀態產生變化的行為delta writes,以確保確定性的結果。比如Alice連續向Bob和Charles轉賬同一種token,先並行執行2筆轉賬,再檢查Alice賬戶的總體變化情況是否合理。如果餘額不足,則重新執行在前面的一條交易。

●高階的操作:交易可以跨一個或多個區塊重新排序,以最佳化執行的併發性。比如某個地址連續獲得收款或者是轉賬,這些轉賬可以被分配在多個區塊中。這樣可能會造成某些使用者的交易延遲確認,但是從整體上來看,它讓其他交易更大限度地實現了併發,提升了網路整體的效能。

Aptos採用了Block-STM(Software Transactional Memory)並行執行引擎來執行交易。它在同一個CPU上的不同核心上同時執行不相關的交易,透過對交易實現多指令流和多資料流,最大程度上提高並行度。

Aptos白皮書展示了Block-STM併發控制的效能測試,可以看到在10k個賬戶競爭的情況下,32執行緒情況下可以達到16萬的TPS,並行執行的優勢在大量賬戶的競爭交易空間時得到體現。

從“Diem”系看下一代公鏈正規化

此外,我們對比一下Aptos,以太坊,Solana在並行執行上的異同。主要觀點引用自The Anti-Ape的文章《Ethereum -> Solana -> Aptos: the high-performance competition is on》。本文會用更通俗的語言表達。

以太坊虛擬機器(EVM)是單執行緒的,沒有並行化處理,它只能利用一個CPU核心來按順序處理交易。注意不要把EVM的CPU核心與以太坊顯示卡(GPU)礦機混淆了,EVM的CPU處理的是使用者的交易,如轉賬、智慧合約呼叫;礦機的GPU處理的是ETHASH這個加密運算,爭奪POW挖礦的記賬權。

Solana為了追求更快的效能,用4096個GPU核心來處理交易。在交易的相關性很弱時,這個設計可以讓Solana獲得非常高的吞吐量。不過它有一個隱患,對於在邏輯上本來就有順序的交易,它會喪失並行執行的能力。比如鑄造NFT的交易就無法在4096個核心上同時進行。因為NFT有總數量限制,每個NFT還有自己的編號,同時鑄造會導致重複,所以必須按順序處理。這讓Solana的4000多個GPU形同虛設,無法發揮並行執行的優勢;而GPU的效能又弱於CPU,這讓網路效能嚴重下降,甚至會導致Solana網路中斷。

Aptos融合了二者的思路,用8核16執行緒CPU實現平行計算,既透過多執行緒提升了交易的併發性,又能用效能更高的CPU應對順序執行的交易。

從“Diem”系看下一代公鏈正規化

那以太坊能不能透過提升CPU的配置,比如也用16執行緒的CPU來實現並行化處理呢?很可惜,不行。因為EVM的設計中CPU就只有1個執行緒,只有對EVM做出改進,才能發揮出CPU更多執行緒的計算能力。以太坊的夢想是分片+layer2,同樣能夠達到高效能。Aptos也有在未來引入分片的想法,如果能夠順利實現,實現支付寶在雙11高峰時期每秒50萬筆的的超高吞吐量也不是不可能。

3.2.2 火力全開:交易進一步細分,依託DAG提升併發性

Sui在平行計算的思路上與Aptos類似,但Sui有更多的細節改進支援資料的並行化處理。首先,它放棄了區塊鏈傳統的鏈式結構,採用了DAG(有向無環圖)的資料結構。而DAG先天就具有的高併發性特點。其次,Sui在Move語言的資源屬性上,再把資源細分為不同的物件,以物件為中心進行並行化處理。這兩點配合起來,讓Sui實現了高併發和高效能。

在Sui改進的Move語言裡,可以把物件理解為像鈔票一樣的資產。每個物件都有一個屬性列表,包括其所有者的地址(或共享所有權屬性)、讀/寫屬性、可轉移性屬性、dapp/遊戲內的功能等。大多數簡單的轉賬只需要更改特定物件的所有者屬性,比如Alice給Bob轉賬100個USDT,只需要把這100個USDT的所有者從Alice改成Bob。這些不相關的交易都可以同時處理。它們的順序在DAG的資料結構上會自然呈現,全域性有一個總排序。

DAG資料結構可以允許在同一時間內,網路中出現很多個分支鏈條,而不只是一條單一的鏈條。只要每個分支都能對應的物件的來龍去脈說清楚(驗證),節點只需要驗證交易,無需多輪通訊對某交易進行投票。這樣就可以在單位時間內實現更多交易的併發,也能減輕驗證者在共識過程的負擔。

Sui在測試階段的效能同樣優秀。今年3月,在Macbook Pro(8核M1晶片)上執行的未最佳化單核執行的Sui Authority節點的TPS達到了12萬。若增加CPU的核心數量,TPS還能線性提升。

3.2.3 兩種並行化方案的對比

Aptos和Sui的並行化處理的設計有什麼區別呢?下面我們舉例對比Ethereum、Aptos和Sui在並行化上的異同。假設每個網路是一個城市,這個城市有8個旅遊景點。使用者提交交易就像是坐飛機來到了這個城市,交易得到了確認就是乘客從飛機場到達了目的地。

Ethereum的做法是用一輛大巴車裝載乘客,車子坐滿為止。大巴車會圍著這8個景點繞一圈,逐次放下所有乘客。

從“Diem”系看下一代公鏈正規化

Aptos的做法是設定8輛大巴車,去不同地點的乘客分別乘坐不同的大巴,這樣就不用先去別的地方了。而且由於硬體的進步,Aptos大巴的速度比Ethereum大巴更快,就更節省時間。

從“Diem”系看下一代公鏈正規化

Sui的做法是設定很多個計程車載客口,乘客上了計程車就直接發車,連等大巴車坐滿再發車的時間都省掉了。很多出租車一起跑當然更快,但是也有負面作用。Sui 中的所有交易仍然需要足夠多數量的驗證者的簽名才能寫入賬本。與 Aptos 相比,Sui的領導驗證者需要收集其他驗證者對每個交易的簽名,這帶來了額外的工作量;而 Aptos 的領導驗證者只收集提議的區塊的簽名。Sui的額外的工作負載可能會抵消一部分的吞吐量和延遲優勢。

從“Diem”系看下一代公鏈正規化

Aptos和Sui的兩種思路都是可行的,下面簡單比較它們的優缺點。

從“Diem”系看下一代公鏈正規化

至於這兩種方式更好,在未來更有前途,目前不需要判斷。第一是因為它們還都在測試網階段(如果本文寫作過程中Aptos主網上線了,也才上線不久),還需要讓網路執行更長時間,取得更多的實際資料再做評價。第二是因為現在鏈上活動整體非常冷清,它們宣稱的處理能力完全足以應付。如果能夠不出現經常性的宕機事故,它們都比現在的高效能公鏈更加優秀。

最後我們還要關注到一點:並行化計算並不是有了多個核心,將交易分門別類處理就能解決所有問題了。Aptos、Sui和未來的其他公鏈絕不只是一個支付網路,它們也要執行很多dApp和智慧合約。現有的智慧合約只適合於序列執行,比如AMM、NFT鑄造。而未來要發揮出平行計算的威力,就需要智慧合約在演算法上更符合平行計算的特點。開發者們需要對現有的智慧合約進行改造,或者重新編寫一批新的。其中包含巨大的工作量,更關鍵的是思維的轉換。我們需要等待一段時間才能看到並行化計算公鏈的完全崛起,這件事一旦發生,可能極大推動行業的發展,並帶來徹底的正規化轉變。

3.3 共識演算法的天花板

在共識演算法上的創新實際上是非常困難的。最早的是BFT共識,BFT適用於分散式系統中如何達成共識的問題,尤其是在節點可能故障和作惡情況下。關於BFT最早的討論是在1982年。BFT的問題在於需要進行多輪通訊,通訊開銷與節點個數的平方成正比。比特幣網路採用中本聰共識,它有兩個特點:(1)透過工作量證明(算力時間+成本)限制網路中的提案數量;(2)最長鏈原則保證機率上的最終確定性和安全性(經濟博弈制約攻擊者)。中本聰共識需要極高的成本、礦機效能、節點保持線上才能維持網路運轉。

在共識機制上,有三個創新專案值得一說。第一個是Solana的PoH(Proof of History)共識。這種共識建立了一個全網一致的時鐘,交易事件可以按自身的時鐘進行排序,保證賬本的一致性。PoH共識確實給Solana的效能帶來了突破,其TPS能達到2000–3000。但由於駭客可以預測並因此攻擊下一個區塊生產者,因此PoH在安全性上稍顯不足。第二個是Avalanche的雪崩共識,測試網能夠達到4500TPS的效能。雪崩共識是BFT的一種,但它沒有Leader節點,節點之間地位平等,每個節點隨機抽樣周圍的節點形成自己的結果,最後整個系統會在極短的時間內達成共識。第三個是Tendermint共識,它也是屬於BFT的改進版,適用於部分同步網路,具有兩階段投票,每輪投票都會有超時時間,Tendermint共識的創新之處在於簡化了Leader的切換過程,但犧牲了時間。可以看出,目前流行的共識演算法大部分是在BFT的基礎上進行演化,比如HotStaff、Polkadot的GRANDPA。

評判一個共識協議的好壞,可以用三個指標:安全性(safety)、活性(liveness)、響應性(responsiveness)。這裡對這三個指標進行解釋:

●安全性:所有誠實的驗證者會確認提案和執行。例如比特幣網路利用演算法來確保網路不易被攻擊。

● 活性:網路中一直會有提案產生。這部分包括Leader節點如何切換、超時時間如何定義等。

● 響應性:區塊的確認時間只與網路延遲有關,節點始終會響應共識。比如Tendermint共識,需要等待固定時間出塊,即使網路狀態好的情況下,所以其響應性並不是很好。

Diem的共識是基於HotStuff共識建立的,這是一個三階段投票的BFT共識,每輪投票節點之間無需通訊,只需要向主節點提交自己的投票結果即可。DiemBFT共識做了多個細節改進,其中之一是增加了記憶體池,相當於增加了一個實際的儲存層,這與Solana類似。這一改動極大的提高了系統的效能。這也在Aptos和Sui中得到了繼承。而Sui是在DiemBFT的基礎上創造了Narwhal和Tusk兩種機制,讓系統能夠在非同步的網路環境下快速達成共識。下面是這兩個共識的分析。

3.3.1 區塊結構的根本性改變

Aptos共識機制直接延續了DiemBFT。DiemBFT對共識節點的投票權力進行了重配置機制,每個驗證者的投票權並不相等,需要根據權益加權,這與它的質押代幣數量成正比。同時,DiemBFT透過共享的記憶體池協議彼此共享交易資訊,然後按回合輪次進行投票,這與HotStuff類似。

Aptos的共識過程和內容與一般的區塊鏈有些區別。它的交易傳播與共識階段是分離的,驗證者只需要對交易的元資料(metadata)達成共識。這也就意味著,Aptos的區塊裡只有交易元資料,沒有實際的交易資料。這與傳統的區塊結構有很大不同,如下圖所示。

從“Diem”系看下一代公鏈正規化

下面具體看看如何達成共識。

驗證者收集交易並自行驗證後,將一定數量或一段時間內的交易打包成一個批次,在驗證者網路中不斷地相互傳輸這樣的批次。驗證者分發交易批次後不能篡改,其他驗證者接受並存儲這個批次,同時在批次的摘要上簽名並將簽名反饋給它。當有2f+1個(加權計算,f是錯誤驗證者的權重)驗證者在批次摘要上簽名後,系統生成一個可用性證明(PoAv)。PoAv保證了至少有f+1(假設f個錯誤驗證者在上一步提交了簽名,但是他們後來刪除了這些交易,那麼至少有f+1個誠實驗證者還保留了交易)份權重的誠實驗證者已經儲存了這一批交易,因此所有誠實的驗證者都能在執行前檢索到它,於是區塊中可以不用包含實際的交易。提議區塊的節點只需要排序和打包幾個批次的元資料,再加上它們的PoAv即可形成一個區塊。其他驗證者驗證了PoAv和區塊元資料標準(如提案時間戳、區塊到期時間)後,可以投票決定這個區塊是否合法。

從“Diem”系看下一代公鏈正規化

Aptos把在共識階段對頻寬的需求均勻分配到了更長的時段,可以在非常低的頻寬下進行共識(因為共識過程需要傳輸的資料量小,僅有區塊元資料和PoAv),從而實現交易高吞吐量和最小化延遲。DiemBFT V4的共識速度很快,一般的共識只需要兩次網路往返,全網往返時間通常小於300 毫秒。自2019 年以來,DiemBFTv4 已經在多次迭代中經過了數十個運營商節點和多錢包生態系統的廣泛測試,又經過Aptos共3期測試網的測試,其穩定性應該也有保證。

3.3.2 DAG結構與BFT共識的組合

Sui的共識機制作為其最大的亮點,無論是在創新性和解決效能問題上都有所突破。Aptos和Sui雖都是在HotStuff BFT上做的變體,但Sui改造了DiemBFT中的交易記憶體池,讓交易廣播直接在記憶體池中進行。同時,採用了一個名為Tusk的全域性隨機硬幣,實現了非同步共識。共識使得Sui具有更快的交易速度、低延遲、更好的可擴充套件性。共識的創新使Sui在效能上比Aptos表現更優。

(1)DAG結構的併發優勢

Sui沒有區塊的概念,而是一個個事務,節點對事務的“頂點”進行投票,“頂點”類似於Merkle tree的根,包含之前相關聯事務的引用。Sui結合了物件型別分類和DAG的優勢,創造了更快的交易確認。節點在DAG中無需達成共識,但為了防止雙花,網路也需要節點參與交易的驗證和簽名,這裡需要結合一些簡單的共識機制完成。DAG在這裡有兩個優勢:

● 為並行化創造條件:DAG作為一類資料結構,其與區塊鏈結合,可以解決效率問題。因為鏈式結構使整個網路只能存在一條鏈,導致出塊無法併發執行,引入DAG結構後,網路中可以並行打包多個區塊。

● 因果順序加快共識過程:在Sui中,事務的因果順序是很重要的一個特點,它類似於區塊中的Merkle Root,是DAG結構的主幹,也是共識投票的參考證明。

從“Diem”系看下一代公鏈正規化

(2)當DAG遇到BFT

Sui採用PoS機制,Sui的共識機制圍繞以上三種物件展開,是混合協議,即DAG+BFT。關於這種共識已經有多家公司開始實施,包括Aptos、Celo、Somelier,但具體實現方案不同。Sui針對單所有者物件採用DAG+BFT一致性廣播,把交易確認的環節直接下放給交易本身,這無需驗證者進行區塊排序和打包。普通的DAG需要一個total order 總排序,節點在本地記憶體池找到物件的依賴路徑就可以驗證,即找到與該物件相關的之前發生的所有事件,包括簽名、時間戳、雜湊值進行驗證即可。

對共享物件,Sui採用BFT的變體為Narwhal+Tusk,Narwhal構建了記憶體池,Tusk是一個選取領導節點的隨機硬幣演算法,這類似於Alogrand的可驗證隨機數,為了使Sui在非同步網路下進行,這裡不對這個演算法做過多描述。Sui利用DAG結構在記憶體池中進行因果排序,並進行可靠傳播,節點把最高級別的“頂點”提交到領導節點,並進行BFT共識。

(3)共識過程

Sui的共識機制中有兩類角色:Client和Authorities。Client相當於不參與共識的全節點,它們蒐集交易反饋給主節點,根據共識形成交易證書和最終的效果證書。Authorities的作用是參與共識的節點,需要對交易進行驗證並進行簽名。簽名的交易將會返還給client,client蒐集簽名事務並形成交易證書(DAG過程)。Client相當於全節點客戶端,其完成的交易證書會被髮送回Authorities,如果交易涉及到共享物件,則需要進行BFT共識。Authorities即為驗證者節點,需要對交易達成共識。對於不需要達成共識的單所有者物件交易,Authorities也需對交易簽名。共享物件的事務處理會稍顯複雜。節點需要對該物件和與其相關的物件進行排序,然後執行事務並彙總簽名,形成執行證書。一旦共識節點的簽名數達到了法定人數(2/3),即達到最終性,client可以蒐集執行證書並建立效果證書。

從“Diem”系看下一代公鏈正規化

(4)Narwhal構建的記憶體池

DiemBFT對Hotstuff進行了很多變動,其中一個就是添加了記憶體池,Hotstuff沒有儲存。Narwhal的記憶體池與DiemBFT有所不同,Diem的記憶體池僅僅用來做交易池共享以及週期性的傳送。而Narwhal把交易的廣播放在了記憶體池進行,相當於將網路通訊層與共識邏輯分離。節點僅對提案雜湊值進行排序和投票。這帶來了兩個好處:

l 能夠讓共識層更快的去完成共識的工作,廣播的工作不佔用共識的通訊通道,記憶體池直接完成了區塊的廣播;

l 實現了線性擴充套件,節點可以增加硬體提高效能,而Narwhal能夠讓效能呈線性提升(類似於分片)。每個驗證者都可以水平擴充套件自身並透過增加更多的算力,增加其交易吞吐量。

從Aptos和Sui這兩個Diem系新公鏈看出,目前對共識機制的研究已經可以獲得很好的效果,其創新還是在經典的共識基礎之上完成,主要有分為兩個方向:1。 更換區塊結構和內容格式,使其更加輕量化地參與共識過程;2。 利用各種方式推進並行化,尤其是在交易排序和廣播上。而在未來,共識機制的演化大機率也是基於HotStuff的,畢竟其機制的成熟性。還有一個就是記憶體池,作為一個儲存等待執行的交易緩衝區,其功能會被進一步完善。

3.4 盡顯博弈論的經濟模型

代幣經濟模型在區塊鏈專案中的地位越來越重要,好的代幣經濟能夠給本身有極大技術優勢的專案帶來加成。代幣經濟每一個引數的設定和修改都會給專案和社群帶來極大的影響力。對一個公鏈來說,衡量代幣經濟模型的好壞主要從兩個方面看:(1)是否能夠捕獲更多的經濟價值;(2)是否能夠平衡網路、使用者、開發者和驗證者(礦工)四者之間的關係。做好這兩方面是很難的,很多成熟的專案要麼遲遲不發代幣或者一直在改進自己的代幣經濟。

Diem系的新公鏈中,也只有Sui給出了自己的代幣經濟,其實更多的是對經濟模型的探討。Sui的代幣經濟中,gas fee包含了交易費用和儲存費用,其特點有兩個方面:(1)沿襲了以太坊經濟模型的優勢;(2)提出了一種新的儲存費用解決方案。

從“Diem”系看下一代公鏈正規化

(1)gas fee

與以太坊類似,使用者在支付前需要設定gas limit,即最大gas的預算。執行時會直到達到預算,如果預算用盡,將中止。此外,Sui也採取EIP1559的方案,協議會制定基本的費用(以每個$Sui的gas單位計價),該費用會在每個epoch臨界時期進行演算法調整(在每一個epoch開始時,要求驗證者提交他們願意處理交易的最低價格,協議會將2/3比例的價格設定為每個epoch的參考gas價格。提交低價格以及以低價處理了交易的驗證者,會得到更高的獎勵,相應也有懲罰),交易傳送者還可以包括一個可選的小費(以$Sui計價)

Gas fee=(GasUsed * BaseFee)+Tip

Gas fee包含了算力費用和儲存費用,Gas price在Sui網路中應該是比較低的。驗證者在提交gas price時,兩個關鍵力量影響他們的報價:計算規則激勵驗證者遵守在gas調查期間提交的報價,而分配規則激勵驗證者提交低gas價格。

(2)儲存費用

使用者也需要預先計算和支付儲存費用。這種方式與gas fee類似,也是為了防止一些無效儲存事務帶來的網路擁堵和潛在的攻擊行為。使用者必須為當前執行和未來儲存支付費用。但費用模型難以計算,儲存的需求不可估計,成本就變得不穩定。

為解決這個問題,Sui引入了儲存基金的概念,用於重新分配過去的交易費用給未來的驗證者。當鏈上需求高時,可以使用儲存基金作為補貼給驗證者。儲存基金的三個特徵:1。 基金由過去的交易支付;2。 儲存基金是會放入財庫,產生收益,收益用來獎勵驗證者。基金的收益方式是,驗證者可以借用儲存基金,基金獲得委託人收益;3。 儲存基金的機制激勵使用者可以選擇刪除以前儲存的資料,以獲得儲存費折扣;4。 儲存基金不歸委託人所有。

儲存費用的經濟模型是繼filecoin後的一次新嘗試,filecoin需要使用者自己找到合適的礦工來儲存資料。Sui雖然還存在一些問題,比如,可能在利益驅動下,運營節點會試圖刪除老資料,也無法確定節點是否真的會按照協議儲存資料。但後續官方應該會根據網路情況進行調整。

Sui的代幣經濟主要是放在gas fee模型的構建上,還有驗證者的質押獎勵、如何進行鏈上治理,如何激勵協議和開發者都是很重要的方面,我們可以期待Aptos和Sui對這些機制的完善。作為一個通用型公鏈,鏈上儲存功能有一定的存在價值,建立一個合理的儲存費用機制能夠解決兩個難題:1。 提高代幣經濟捕獲能力;2。 緩解鏈上儲存壓力。未來公鏈的代幣經濟發展方向也是類似:1。 為驗證者/礦工提供可持續性的商業模式;2。 治理方面能夠靈活的參與鏈上活動,捕獲協議的價值;3。 更為嚴謹的gas fee模型;4。 賦予代幣更多的應用場景,包括與鏈上演算法穩定幣的掛鉤。

3.5 Linera的專用型公鏈之路

隨著Cosmos和Avalanche多鏈生態網路的發展,越來越多的公鏈選擇專用型道路,或者一個擁有足夠多使用者的應用直接建立公鏈。例如dydx,WAX等。雖然專用型公鏈在效能上要求不高,但更注重其應用場景和使用者增長。

在Diem系公鏈中,Linera更偏向於專用型公鏈發展。Linera主要的應用場景是支付,聯通現實世界與web3世界,其可能真正繼承了Facebook Diem的支付夢想和技術精髓。基於這類場景,Linera在技術上需要滿足:

(1)低延遲

Linera創始人Mathieu認為市場對於低延遲區塊鏈是有很強的需求性的,越來越多的Dapp需要低延遲來即時響應使用者的操作,比如:零售支付、遊戲應用程式的小額支付、自營交易以及區塊鏈之間的連線等。

由於記憶體池的消耗和驗證者之間的複雜協調,目前區塊鏈中的確認時間通常仍然需要幾秒鐘。不同於Aptos和Sui,為了滿足低延遲的硬需求,Linera完全移除記憶體池並最大限度地減少驗證者之間的互動,這樣可以大大加快支付等簡單操作的速度。Linera 區塊鏈希望大多數基於帳戶的操作能夠在幾分之一秒內得到確認。

(2)Linear Scale(線性擴充套件)

Linear Scale是來自於Web2的技術思想,2000年左右網際網路行業出現了“線性擴充套件”的水平擴充套件,根據實時吞吐量來動態提供資料庫資源,動態增加更多的處理節點(硬體),來使企業不必擔心網站在遭遇高併發時宕機,或在平時閒置資源。

目前的區塊鏈優先考慮“順序”執行模型,允許使用者賬戶和智慧合約在一系列交易中進行任意互動,但順序執行阻礙了(縱向)線性擴充套件。Linera 專案將開發和推廣適用於線性擴充套件的新執行模型,對不同使用者帳戶的操作將在不同的執行執行緒中同時執行。透過這種方式,始終可以透過向每個驗證器新增新的處理單元來擴充套件執行。

Linera繼承自FastPay和Zef協議,很大可能將成為一條低延遲、高交易確認的可以比肩Web2網際網路支付的支付鏈,而且很有可能還會繼承Zef協議的匿名支付特性。而FastPay 可以部署在多種環境中,可以以獨立的方式用作原生代幣和加密貨幣的結算層;或者成為另一種加密貨幣的側鏈,或作為已建立的實時總結算系統(RTGS)一側的高效能結算層來結演算法定零售支付。未來Linera不僅可以作為支付鏈,很可能還可以作為其他公鏈的支付側鏈,或嵌入其他Web2網際網路產品內提供去中心化即時支付服務。

專用型公鏈往往可以比通用型公鏈獲得更好的互動體驗和更高的安全性,比如:dYdX宣佈脫離Starkware,而去選擇基於Cosmos SDK開發一條新鏈,或許不久的未來Rollup就可以滿足dYdX作為期貨交易DEX對交易流暢度的高要求,但即便Rollup效能提高到了夠用的水平,相比於和上百個dAPP爭奪一個區塊空間,獨自享用一條專屬區塊鏈可以使交易體驗更好,也可以有很多辦法提高區塊的安全性。未來Linera作為專用型公鏈,鏈上的應用專案少、區塊中的交易以支付訂單為主,在這樣簡單、專注的環境中Linera很可能將會獲得比Aptos和Sui具有更低的交易延遲、更高的交易確認和更高級別的安全性。

4. 下一代新公鏈正規化探討

從以上對Diem系新公鏈的分析中可以看到,公鏈技術的創新是主要的敘事主體。而在生態方面,經過調研,Diem系新公鏈的生態發展主要從兩個方面入手:1。 降低使用者使用門檻,這可以從錢包應用看出,使用者直接用郵箱即可註冊;2。 吸引開發者,基於Move語言,方便開發人員為應用建立各種工具和框架。Diem系公鏈給區塊鏈的基礎設施帶來了新的氣象:(1)更大的公鏈競爭壓力,這體現在技術和效能上,公鏈開始不僅僅靠大機構、大人物的背書,而是靠技術團隊和背景;(2)技術和運營並行,這一點可以從Aptos看出,從資本的青睞,到生態應用的迅速支援。但還是有一些問題沒有解決,比如公鏈護城河問題,如何真正給去中心化使用者提供需求。

從Diem系公鏈出發,我們可以看到下一代公鏈的發展形態:

(1)並行化是未來公鏈的新正規化

平行計算只是小幅度提升了硬體的要求,礦工/驗證者完全可以接受這個成本的提升,不會嚴重影響去中心化程度。但是並行化計算會大幅度提升區塊鏈的整體效能和系統的穩定性,增大了不可能三角的面積。同時,基於共識的創新會很難。4年內的新公鏈在效能上應該會以Aptos和Sui為標杆,超過它們幾乎很難。在生態應用上,AMM和NFT鑄造的並行化升級可能是下一輪牛市的必備條件。AMM是DeFi的基礎,NFT可能會在更多使用場景中發揮作用,牛市的來臨必然會伴隨著交易和其他各類應用的繁榮,它們的效能不能成為卡點。

(2)虛擬機器的演進

EVM是鏈節點為智慧合約創造的一個隔離的、可確定的沙盒環境,多個合約程式是執行在同一個程序內的不同的虛擬機器沙箱中。這意味著以太坊合約之間的呼叫是同一個程序內不同的智慧合約虛擬機器之間的呼叫,安全依賴於智慧合約虛擬機器之間的隔離。

從“Diem”系看下一代公鏈正規化

而Move虛擬機器支援並行執行。合約之間的呼叫被集中放置在一個沙盒中,在這種架構下,合約的狀態的安全性主要要透過程式語言內部的安全性進行隔離,即基於Move的每一筆資產都具有原生稀缺性,是獨一無二的,並且擁有對應的訪問控制屬性,而非依賴虛擬機器進行隔離。

從“Diem”系看下一代公鏈正規化

(3)專用型公鏈的嘗試

目前一些有足夠使用者的應用還是會有成立新鏈的想法。比如金融類dydx。一些專用型公鏈可能也會解決一些技術問題,比如 celestia提供了Layer2的資料可用性層。這些新正規化大部分從技術角度出發,但技術離不開整個基礎設施的發展,都有一定的週期性。除此之外,宏觀經濟是否支援資本持續為區塊鏈行業底層技術的發展,也是限制公鏈的一大因素。而各個國家對加密行業監管嚴格,是否也是對開發者、節點、隱私類公鏈的一種威脅,也是成為影響未來公鍊形式的一個原因。

參考資料

1。 Ethereum -> Solana -> Aptos: the high-performance competition is on, https://antiape。substack。com/p/cf40447d-d674-4454-9e09-f003517de6de?s=r

2。 Announcing Sui, https://medium。com/mysten-labs/announcing-sui-1f339fa0af08

3。 https://www。defidaonews。com/article/6775866

4。 Built for Speed: Under the Hoods of Aptos and Sui, https://medium。com/amber-group/built-for-speed-under-the-hoods-of-aptos-and-sui-3f0ae5410f6d

5。 How Sui Move differs from Core Move, https://docs。sui。io/learn/sui-move-diffs

6。 Move on Aptos, https://aptos。dev/guides/move-guides/move-on-aptos/

7。 Move: A Language With Programmable Resources, https://diem-developers-components。netlify。app/papers/diem-move-a-language-with-programmable-resources/2020-05-26。pdf

8。 https://jolestar。com/why-move-1/

9。 Linera, https://linera。io/

10。 LibraBFT, https://tokens-economy。gitbook。io/consensus/chain-based-pbft-and-bft-based-proof-of-stake/librabft

11。 FastPay: High-Performance Byzantine Fault Tolerant Settlement, https://arxiv。org/pdf/2003。11506。pdf

12。 Introducing Linera: Bringing web2 performance and reliability to web3, https://medium。com/@linera/introducing-linera-bdb809735552

13。 Zef: Low-latency, Scalable, Private Payments, https://static1。squarespace。com/static/62d6e9b8bf6051136f934527/t/630b0ec13ee5da4defbb6b8c/1661669058381/zef。pdf

14。 Narwhal and Tusk: A DAG-based Mempool and Efficient BFT Consensus, https://arxiv。org/pdf/2105。11827。pdf

15。 DAG Meets BFT — The Next Generation of BFT Consensus, https://decentralizedthoughts。github。io/2022-06-28-DAG-meets-BFT/

16。 Sui whitepaper, https://github。com/MystenLabs/sui/blob/main/doc/paper/sui。pdf

17。 Sui tokenomics, https://github。com/MystenLabs/sui/blob/main/doc/paper/tokenomics。pdf