昨天提到了比特幣的 PoW、以太坊的 PoS 以及其底層的 Gasper,由 GHOST-LMD(負責分叉鏈的選擇),以及 Casper FFG(區塊最終性確認)兩個部分組成。
昨天沒提到的是,採用 Gasper 對以太坊又有什麼好處呢?Day 4 時提到以太坊的長期發展目標,The Surge 的部分希望能擴容以太坊網路。其中一個重要技術是接下來幾天我們將會提到的分片(Sharding)。
在 PoS 網路中,區塊的驗證者是由系統(Beacon chain)隨機分配。當未來以太坊轉向分片網路後,系統就能將驗證者自然、輕易的分配到多個分片鏈上各自進行驗證。
傳統 PoW 網路則因其算力競爭的特性,難以自然地實現分片網路。
傳統共識機制的瓶頸在於「時間同步」,分散式節點間需要大量溝通以同步時間。
以比特幣為例,儘管沒有時間同步,但其透過算力競爭的方式,也導致出塊時間變得十分緩慢。
以太坊的部分,則是透過一個固定 12 秒的 Slot 進行時間同步,使得出塊時間固定就是約 12 秒。
從以上兩個例子能看到,分散式系統內的時間同步,以及如何達成共識機制,都會顯著影響整個區塊鏈網路的吞吐量與 TPS。
Solana 為了解決時間同步的問題,並提升吞吐量、TPS,引入了一個特殊的 PoH(Proof of History)機制。但是,別會錯意了,Solana 基本上還是個基於 PoS 的區塊鏈網路。
PoH 可以想像成是一個執行在 Block Proposer 上的時鐘,會持續生成一個 timestamp,每次有交易被提交到 Proposer 的 Mempool 時,就會把交易與 timestamp 合併在一起,以確保交易之間的先後順序。
因此,Solana 不需要定義一個同步的 Slot 時間,在節點間達成時間上的共識,所以能大幅提升網路的吞吐量。
具體而言,這個時鐘是一個可驗證延遲函數(VDF, Verifiable Delay Function),以 H(x) 表示。
H(x) 會對輸入 x 進行加密雜湊運算,產生 h0, h1, h2, ... 的與時間有關的序列。其中,h_i = H(h_{i-1})。
當交易被提交到 Proposer,在 Solana 中又被稱為 Leader,的 Mempool 後,交易與 VDF 的當前狀態 h_x 會被綁定:
P = F(Leader signature, Tx, h_x)
其中,P 是綁定後的結果,而 VDF 產生的下個狀態則會是 h_{i+1} = H(P)。
因此,Solana 的任何驗證節點收到交易後,會有 Tx 與 P,因此可以驗證 P 是否由 Leader 簽章,並且與 VDF 狀態 h_i 正確綁定。
DPoS(Delegated PoS)是委託權益證明的意思。白話來說,相當於間接選舉。TRON 上面的原生代幣是 TRX,質押一定數量 TRX 的節點能獲得 TRON Power,投票給他們信任的候選人。最後,排名前 27 名的候選人成為「超級代表」,相當於 Ethereum 上的驗證者。
超級代表進行驗證,獲得獎勵後會部分分配給當初的選民,而代表表現不佳(如離線或作惡),也會被替換。
TRON DPoS 的方式,讓全力集中於 27 個超級代表上,儘管去中心化程度與安全性下降,但明顯看得出,由於只要在 27 個人之間達成共識,溝通的成本與延遲都能大幅下降,使得整體網路的吞吐量與 TPS 能有顯著提升。
相較於 Solana,我覺得是目標相同(高吞吐量、TPS),但做法截然不同的兩種路線。Solana 透過密碼學的方式,維持去中心化程度,提升吞吐量;而 TRON 則是更工程或實際的路線,以簡化流程、更加中心化的方式,提升吞吐量。
其實還有很多有趣的共識機制可以討論,如 PoS 的其他變形(LPoS, NPoS)、Avalanche 的雪崩共識(Snow Consensus)、IOTA 的 DAG 能夠討論,但礙於篇幅,本文只介紹 Solana 與 Tron 的例子。
這幾天深入研究共識機制的部分,就發現其實非常有趣,背後與分散式系統這門研究領域息息相關。相關的 Term 如 Paxos、Raft、BFT、pBFT 也都是值得好幾篇文章深入探討的內容。