研究報告

Solana如何運作:時鐘,而非共識

大多數區塊鏈把心力都花在就一件事取得共識:發生了什麼事,以及發生的先後順序。 若沒有一個可信賴的時鐘,節點就得不斷互相交換訊息(gossip)直到彼此收斂——而這種通訊正是限制吞吐量的瓶頸所在。阿納托利·雅科文科(Anatoly Yakovenko)在2017年提出的核心賭注是:只要能在共識展開之前,就先為網路賦予一種可驗證的時間感,那麼後續的一切都會變得更快。這個賭注就是歷史證明(Proof of History,PoH),理解它正是理解整條鏈架構的關鍵。

撥開雜訊看訊號:歷史證明(PoH)是加密世界裡最容易被誤解的基礎元件。它不是Solana的共識機制,而是一具時鐘。只要弄懂這一點,整套架構就會豁然開朗。

2017
PoH白皮書 · Yakovenko
~400ms
時槽時長(每位領導者4個時槽)
SHA-256
作為時鐘的雜湊鏈
PoS
透過Tower BFT實現安全性
~710K
理論TPS上限(白皮書)
Monolithic
單一全域狀態,無分片

簡短的歷史

雅科文科從2017年開始構思這套方案,並於2017年11月發布了歷史證明(Proof of History)白皮書。第一個原型的代號是「Loom」——後來為了避免與建立在以太坊上的Loom Network混淆,才改名為Solana(取自聖地牙哥附近一座海濱小鎮的名字)。Solana Labs於2018年正式登記成立。官方宣稱的目標,是要解決所謂的區塊鏈不可能三角——吞吐量、去中心化、安全性——但事實上,早期白皮書通篇最強調的其實只有一個詞:可擴充性。

歷史證明——那具時鐘

以下是這套機制最核心的部分。取一個SHA-256雜湊值,把它的輸出當作下一輪運算的輸入,如此反覆——在單一CPU核心上依序進行數百萬次。由於每一個雜湊值都仰賴前一個而生成,這條鏈因此成為一份可驗證的時間流逝紀錄:若沒有先算出第999,999個雜湊,就不可能算出第一百萬個。把各種事件(交易)標記進這條雜湊流裡,就能得到一份不可竄改、事後也無從否認的排序結果,說明發生了什麼事、大致發生在何時。

這套機制的巧妙之處在於它的不對稱性:這條鏈只能在單一核心上產生(它本質上必須依序運算),卻可以在成千上萬個核心上平行驗證——一張GPU就能一次驗完全部。因此驗證者不必彼此交換訊息來就順序達成共識,只要讀出雜湊鏈目前走到哪裡即可。

有一點值得誠實說明:Solana官方文件把PoH稱作「可驗證延遲函式(Verifiable Delay Function)」。密碼學家對這個嚴格定義有所保留——真正的VDF必須在漸近意義上驗證得比產生得更快,而PoH的驗證其實只是可平行化而已。這是個好用的簡稱,卻不是精確的說法。

Tower BFT——真正的共識層

如果說PoH是時鐘,那麼Tower BFT就是共識層。它是在權益證明(Proof of Stake)之上,疊加PBFT(實用拜占庭容錯演算法,1999年提出)而成的客製化變體。其巧妙之處在於:它把PoH時鐘當作「共識之前」的共用時間參照,讓BFT的逾時機制得以直接寫進帳本,而不必在網路上即時協商。驗證者只需參照PoH時間戳記,而不必來回交換大量訊息——這正是區塊生產得以不必等待前一個區塊的原因。Solana官方文章的標題就直白地寫著「Tower BFT:Solana對PBFT的高效能實作」。

這個網路以約400毫秒一個時槽運作,每位時槽領導者在輪替前會連續拿到四個時槽(約1.6秒)。在任何時刻,都是由單一領導者產生PoH序列,並依據記憶體(RAM)中的狀態為交易排序,而驗證節點則重新執行這些交易並發布已簽章的投票。

Sealevel——Solana為何能平行執行交易

以太坊的EVM是一次執行一筆智能合約呼叫。而Solana的執行環境Sealevel(Solana虛擬機)則不然——原因在於一項精妙的要求:每筆交易都必須事先聲明它要讀取哪些帳戶、要寫入哪些帳戶。 掌握了這張讀寫地圖,排程器就能讓所有可寫入帳戶彼此不重疊的交易,在所有可用核心上同時執行。兩筆互不相關、涉及不同資金池的兌換交易?可以平行處理。兩筆搶著動同一個帳戶的交易?那就只能依序處理。(如今Solana在這方面已不再是唯一的例子——Sui、Aptos、Sei與Monad同樣採用了平行執行環境——但正是Solana率先把「宣告式存取」這套模型大規模落實。)

Gulf Stream與Turbine——網路傳輸的管線

還有兩個部件,讓這樣的吞吐量真正得以實現:

  • Gulf Stream 徹底廢除了記憶體池(mempool)。由於PoH能產生確定性的領導者排程表(所有人提前一個epoch就知道每個時槽輪到誰出塊),用戶端與驗證者可以直接把交易轉發給目前及接下來約2位領導者,而不必投進一個共用的待處理池。交易攜帶的近期區塊雜湊值(blockhash)有效期約為150個時槽(約1分鐘);過期之後交易就會直接被丟棄,而不是排隊等候——因此在Solana上,你得自己建立重試邏輯,同時也不存在可供搶跑(front-run)的公開記憶體池。(接收端已於2022年底從UDP改為QUIC,並採用依質押量加權的服務品質策略。)
  • Turbine 以類似BitTorrent的方式傳播區塊:領導者把一個區塊打散成許多細小的**「碎片(shreds)」**,沿著一棵依質押權重建構的樹狀網路分送下去,而不是向所有人廣播整個區塊。節點收到後再重新組裝回去。Gulf Stream負責交易流向領導者的入口,Turbine則負責區塊從領導者送出的出口。

這一切都建立在單一、整體化的全域狀態之上——沒有分片,也沒有Rollup。Solana選擇向上擴充(更快的硬體加上平行化),而不是向外擴充,換來的回報是原子等級的可組合性:任何程式都能在同一筆交易裡呼叫任何其他程式,不需要跨鏈橋接。

誠實看待效能表現

白皮書裡的數學推算,給出的是在1 Gbps連線下約710,000 TPS的理論上限(1 Gbit/s除以約176位元組的最小交易大小)。但這只是一個理論天花板,不是日常巡航速度——實際世界裡的吞吐量大約落在4,000至4,500 TPS之間。 對於社群媒體上流傳的那些整數說法,應保持懷疑:像「50,000至80,000 TPS」「約800毫秒區塊時間」,以及「三分之二投票即可達成確定性最終性」這類流行說法,都經不起檢驗,我們在此不再重複。

傷痕與修補

這種單一狀態、追求高效能的設計是有代價的:驗證者需要相當硬派的硬體(多核心CPU、128至256GB記憶體、NVMe硬碟、約1Gbps以上頻寬),這墊高了經營驗證節點的門檻,也對去中心化造成壓力。Solana也曾多次停擺——2021年9月那次約17小時的中斷(起因是一場機器人驅動的代幣發售耗盡了系統資源)、2022年的數起事故,以及2024年2月長達數小時的停擺——每一次之後都伴隨著協調一致的重新啟動與強化措施(QUIC、依質押量加權的服務品質、執行環境修補)。

有兩項升級正是針對這些問題而來:

  • Firedancer —— 由Jump Crypto從零打造的一套獨立驗證者用戶端,約94%的程式碼以C語言寫成,並借用了高頻交易領域的並發模型。它的混合形態Frankendancer已在主網測試網(mainnet-beta)上線運作;完整版用戶端尚未達到生產可用的程度。其意義在於用戶端多樣性——終結單一用戶端的風險,避免一個漏洞演變成全網性的事件。
  • Alpenglow —— 下一代共識機制(由Votor與Rotor兩個元件組成),目的在取代Tower BFT的投票機制,把最終性確認時間推向約150毫秒。截至2026年仍在積極測試中;值得留意的是,它同時也降低了PoH在整套技術堆疊裡的角色份量。

結語

Solana是圍繞著一個核心理念層層堆疊起來的一整套一致賭注:先把時間問題解決好,吞吐量自然會跟著到位。 PoH為網路提供時鐘;Tower BFT把這具時鐘轉化為共識;Sealevel讓執行平行化;Gulf Stream與Turbine在沒有記憶體池的情況下搬運資料;而這一切都運行在單一的全域狀態上,而不是分散在多個分片裡。為此付出的代價是去中心化的餘裕——更沉重的節點負擔、更精簡的驗證者陣容,以及一段真實存在的停擺紀錄——這些都是為了追求速度與遠低於一美分的手續費所付出的。這筆交易划不划算,得看Firedancer與Alpenglow能否順利落地才能見真章。但至少,這套架構絕非偶然而來。


資料來源: Solana whitepaper · Proof of History / Tower BFT · Gulf Stream · 8 Innovations (Turbine, Sealevel) · Firedancer (GitHub) · Helius — consensus · Anatoly Yakovenko / history

非財務建議。本文為自動化技術解讀,文中的架構論斷已盡可能對照原始資料來源進行對抗性事實查核。部分數據具有時效性(Firedancer與Alpenglow仍處於逐步推出階段)——在據此做決定之前,請自行查證。

相關內容

更多同類分析