a16z crypto · First Principles

區塊鏈不是從零發明的

Barbara Liskov 的訪談把區塊鏈拉回一個更老的問題:一群機器分散在網路上,有些會故障,有些甚至會說謊,還能不能同意同一段歷史?

來源:a16z crypto〈Before Blockchains, There Was State Machine Replication〉,Tim Roughgarden、Ittai Abraham 訪問 Barbara Liskov,2026-06-19。

Viewstamped Replication1980 年代把「primary 壞掉後如何換人、又不丟掉已承諾的歷史」做成可用協定。
PBFT1990 年代面對惡意節點與會說謊的 primary,把 Byzantine fault tolerance 推向實作。
State machine replication今天的 Ethereum、Solana 等鏈,某種程度就是這個一般問題的具體實作。
SCROLL
PART 1

區塊鏈的底層,不是「幣」,而是「歷史順序」。

訪談開場問的是分散式系統的老問題:當程式分散在不同節點,透過網路溝通,而且節點會失敗時,系統要怎麼繼續可靠運作?Liskov 早期從 CLU、Argus、抽象資料型別與交易開始,關心的是大型程式如何被拆成可推理的模組。進到分散式系統後,多了一個問題:跨節點的計算要嘛完整發生,要嘛完全沒有影響。

這個問題後來在區塊鏈裡變成更熟悉的語言:誰先發生、誰後發生、哪一筆交易已經進入共同歷史。Roughgarden 在訪談裡指出,今天教區塊鏈執行時,常會用物件導向與狀態互動當心智模型。Liskov 的研究脈絡正好說明,這不是巧合。

同一個問題,三種說法
大型程式
模組、規格、局部正確性
分散式系統
節點失敗、交易、複本一致
區塊鏈
共識、排序、共同帳本
PART 2

Viewstamped Replication 解的,是 primary 壞掉後怎麼換人。

兩階段提交有一個問題。若負責協調的 primary 在關鍵時刻壞掉,整個協定可能停住。Liskov 把這段稱為 embarrassing pause,也就是脆弱窗口。Viewstamped Replication 的貢獻,是讓備份節點在 primary 看起來不工作時,能進入新的 view,選出新的 primary,並保證前一個 view 裡已經到達 commit point 的歷史不會消失。

她在訪談裡說,當時他們想到的是 log,不是今天的 ledger。可是從今天回頭看,這就是共同歷史的雛形。節點可以換人,歷史不能改寫。系統可以重啟,已經被承諾的順序不能消失。

1. primaryprimary 告訴 backups 下一步要做什麼。
2. view changeprimary 看起來失效,backups 啟動新 view,換另一個 replica 當 primary。
3. history已經 commit 的歷史帶入新 view,避免換人後出現另一段版本。
PART 3

PBFT 把問題升級:節點不是只會壞掉,它可能會說謊。

Viewstamped Replication 面對的是 benign failures:機器要嘛正常,要嘛沉默。網路進入 1990 年代後,DARPA 開始關心惡意攻擊。Miguel Castro 帶著這個題目找 Liskov,PBFT 因此誕生。這次 primary 不只是可能失效,它可能刻意傳不同訊息給不同 replica。

PBFT 的核心直覺是:不要相信單一節點,只相信足夠大的群體。Liskov 在訪談裡說,證明某一步真的發生,需要 2f + 1 個簽名訊息共同說同一件事。系統因此需要 3f + 1 個 replica,才能容忍 f 個會說謊的節點。

2f + 1面對一般失敗時,足以讓系統在 f 個節點失效下維持進度。
3f + 1面對 Byzantine failures 時,還要抵抗說謊、分裂訊息與惡意 primary。
「你永遠不相信單一 replica。你只相信一群 replica,而且那群必須夠大,能證明這就是真的發生過的事。」
PART 4

今天的鏈,是 state machine replication 的大型實驗場。

Roughgarden 在後段把問題說穿:Ethereum、Solana 這類 Turing complete blockchain protocols,幾乎就是一般化 state machine replication 問題的具體實作。它們不是為某一個應用寫死,而是先建立一個可複製、可排序、可驗證的狀態機,再讓每個 smart contract 成為其中的特殊案例。

這也解釋為什麼共識與執行要分層。共識層不需要理解每個 operation 的業務含義,它要決定的是順序。operation number 25 是什麼、誰排在誰前面、哪個結果被所有節點承認。執行層再處理該操作對狀態造成的影響。

區塊鏈的兩層拆法
Consensus
決定共同順序
Execution
依序套用操作
State
產生所有節點可驗證的同一結果
PART 5

AI 讓老問題回來了:規格、驗證與大型系統設計。

訪談最後談到 AI。Liskov 沒把 AI 描述成研究的終點。她說,AI 底下有大量系統研究問題,尤其是當 AI 能替你寫小程式時,使用者更需要規格與驗證工具,確認程式是否真的正確。

這跟她早年教「如何建造大型程式」的課程相連:設計、模組化、規格與驗證。未來的工程師可能少寫某個 for loop,卻更需要在高一層管理程式如何被產生、如何被檢查、如何被放進可靠系統裡。

區塊鏈最重要的不是把帳本放到網路上,而是在不完美的網路裡,讓一群機器同意同一段歷史。

讀完這集,你會用哪個角度看區塊鏈?

這不是測驗。選一個你最想帶走的心智模型。

你的觀點

想看更深入的脈絡?

a16z crypto 原始影片包含 Barbara Liskov 對 CLU、Argus、Viewstamped Replication、PBFT 與 AI 時代系統研究的完整訪談脈絡。

觀看原始影片 → 打開 a16z crypto 頻道 →

本頁為繁體中文互動閱讀整理,來源以 a16z crypto YouTube 原始影片為準。