文章作者:Cookies Research
區塊鏈的共識機制負責驗證交易的有效性,並將它們以準確的順序添加到區塊鏈中。根據選擇的共識機制,驗證和排序過程的效率不同,從而導致不同程度的吞吐量。在區塊鏈領域,Solana是一條高效能鏈,具有400毫秒的區塊時間,每秒交易數(TPS)平均在2,000到3,000之間,理論上的峰值TPS為65,000(供參考,以太坊的TPS大約為12)。
本文旨在突顯Solana中發揮關鍵作用、有助於其高吞吐量的兩個架構,即其委託權益證明(DPoS)共識機制和歷史證明(PoH)機制。
1. 傳統共識機制
讓我們從了解區塊鏈的一個關鍵瓶頸開始:可拓展性。
分散式區塊鏈網路中的每個節點都有自己的內部時鐘,它按照這個本地系統時鐘運行。當發生交易時,節點將根據這個本機系統時鐘為交易添加時間戳記。
下面圖片是展示節點內部的時鐘:
最終確認或拒絕交易的時間戳記也將根據這個本地系統區塊進行。在傳統的共識機制(例如工作量證明PoW和權益證明PoS)中,所有的節點需要相互溝通,以協調彼此的本地時鐘,以確保它們在處理交易時對時間的理解是一致的。節點之間的通訊有助於建立一個共同的時間基準,以確保整個網路對時間的認知是一致的,從而協調交易的順序和確認。
對於一個分散式區塊鏈,有成千上萬個節點分佈在全球各地,節點之間的本地系統時鐘存在差異是不可避免的,導致交易的時間戳在不同節點之間不一致。當節點需要就發生了哪些交易以及這些交易在區塊中的順序達成共識時,這就成為一個問題。這稱為時間戳同步問題,當網路透過增加節點數量來增強去中心化時,這個問題會變得更加嚴重和複雜。
最終,這為惡意攻擊創造了一條可能的路徑。時間上的差異使惡意行為者能夠廣播類似於真實時間戳的虛假交易,試圖掌控網路。為防止交易的操縱,需要花費大量的時間和處理能力來驗證時間戳記的準確性。這有可能導致區塊確認的延遲,甚至區塊被拒絕(因為節點可能投票認為區塊無效,原因是具有不同的時間戳記)。
2. 什麼是歷史證明(PoH)
歷史證明(PoH)在Solana中用來證明交易被正確地按順序排列,而這可以由網路中的驗證者輕鬆驗證。
與第一節提到的節點各自擁有其獨立時鐘的情況相反,PoH可以被視為一個全域區塊,所有節點都使用它來驗證兩個事件之間時間的流逝。透過這個全域時鐘,節點查看相同的交易歷史記錄,摒棄了對交易順序可能存在的任何分歧。這使得共識可以迅速達成,大大縮短了交易被驗證並添加到區塊鏈的時間。
PoH依賴一種加密方法,以建立交易的連續、按時間順序的記錄。讓我們深入了解一下。
3. 對PoH 的技術深入探討
每個交易都經過SHA-256 處理,這是一種以其能夠接受任何輸入並產生唯一、不可預測輸出而聞名的加密雜湊函數。當一個交易被哈希時,其輸出成為下一個交易哈希的輸入。這個過程在哈希輸出中建立了交易的內建順序,形成了一個長而連續的鏈。
PoH(歷史證明)利用了可驗證延遲函數(VDF),它在區塊鏈中驗證時間流逝的重要性。 VDF是計算密集型的函數,不僅依賴先前的哈希,還包含經過的時間。這個機制讓Solana以加密的方式展示真實時間已經過去,產生連續的輸出。因此,存在清晰、可驗證的交易順序,確保了一致的事件時間軸。驗證者因此可以輕鬆驗證經過的時間有多長,進一步增強了網路的可信度。
在Solana中使用PoH(歷史證明)增加了一個強大的安全和完整性層。篡改哈希鏈的任何部分都會需要重新計算所有後續的哈希,這是一項努力密集型的工作,可保護網路免受更改的影響。
PoH(歷史證明)顯著減少了驗證者每個區塊需要處理的資訊量。透過使用交易最新狀態的哈希版本,區塊確認時間被大幅縮短。當驗證者(或複製節點)收到一個區塊時,PoH(歷史證明)序列為它們提供了一個具有加密可靠的交易順序,他們可以在無需重新驗證的情況下信任。這種效率對於加快共識機制至關重要,因為網路可以迅速選擇並轉移到下一個驗證者進行區塊驗證。
4. 委託權益證明(DPoS)
在更了解PoH 的基礎上,本節將解釋PoH 如何在Solana 的共識機制中(DPoS)得到應用。
在DPoS 中,每個抵押了$SOL 的驗證者都能夠參與網路治理——對區塊的有效性進行投票,決定是否將其添加到區塊鏈中。不願直接參與權益證明過程的$SOL 持有者(包括您和我)可以將其代幣委託給其他驗證者,從而有效地使它們成為委託人。這個委託過程將委託人的投票權(與他們擁有的$SOL 數量成比例)分配給這些驗證者。作為抵押$SOL 的回報,委託人將獲得區塊獎勵的一部分。
DPoS系統的運作原則是,具有較大權益的節點更有可能被選擇來驗證交易並將其添加到區塊鏈中,獲得區塊獎勵的機會鼓勵節點保持高水準的效能和完整性。
在了解了DPoS和PoH兩者之後,讓我們將這些知識結合起來,概述一下在Solana上典型的區塊確認是什麼樣的。
5. Solana 共識機制的高層概述
1. 領導節點的選擇:領導節點負責產生PoH 序列(歷史證明排序交易)並建立區塊。
這個選擇過程是基於節點的權益權重的,這個權重透過代幣持有人委託給它們而增加。領導角色將在驗證者之間輪換。
2. 為交易新增時間戳記:領導節點將接收交易,並使用PoH 為它們新增時間戳,形成交易順序。
3. 區塊創建:透過來自PoH 的序列,領導節點隨後開始創建一個區塊。
4. 區塊傳播:新創建的區塊將被發送到複製節點(分散式網路中的其他驗證者)。
5. 交易有效性驗證,複製節點將驗證以下兩個組成部分:
a. 交易順序:使用PoH 序列驗證交易是否以正確順序排列。由於它是一個全域時鐘,這種驗證不需要節點之間的往返通訊(與常見的共識機制如PoW 和PoS 不同)。
b. 交易成效:檢查交易是否符合網路規則且有效。
6. 區塊最終化:在驗證了交易順序和有效性之後,該區塊將被添加到區塊鏈中。然後將選擇下一個領導節點,整個過程重新開始。
結論
Solana一直不懈努力改進其區塊鏈架構,最近的發展包括QUIC、權益加權的QoS和本地化費用市場。此外,生態系統期待透過Firedancer的推出顯著提高其效率。值得關注的是,Solana獨特的架構-OPOS(僅限Solana)可能會帶來新的用例。