a16z crypto · First Principles

區塊鏈之前,先有複製狀態機

Barbara Liskov 的故事提醒我們:區塊鏈不是先有代幣才有共識。它接上的是分散式系統幾十年都在處理的問題:多台機器如何在故障、延遲與說謊中保留同一段歷史。

來源:a16z crypto〈Before Blockchains, There Was State Machine Replication〉,2026 年 6 月 19 日發布。

Viewstamped Replication1980 年代,讓一組 replicas 在 primary 故障後換到新 view,繼續保留同一份歷史。
PBFT1990 年代,把故障模型推到惡意節點。系統不再相信單一 replica,而是相信足夠大的群體證明。
Blockchains後來的鏈把這套思路放進開放網路。共識層排序,執行層處理應用。
SCROLL
PART 1

問題一開始不是錢,是「檔案還在不在」

Liskov 進入分散式系統,是因為 1980 年代的網路讓一個普通需求變得困難:檔案與服務分散在不同機器上,使用者希望其中一台電腦壞掉時,資料仍然可用。當時常見想法是讓使用者去 lock 多份副本,避免並行衝突。

她覺得那不是好解法。若安全性仰賴遠端使用者都記得把鎖處理好,整套系統就把可靠性押在人身上。她和學生 Brian Oki 轉而把工作交給 replicas:由一組副本負責接收操作、排列順序、寫進 log,讓服務看起來像一台穩定機器。

從使用者上鎖,改成 replicas 管歷史
舊直覺
使用者鎖住多份副本,避免同時寫入造成衝突。
新焦點
副本群決定操作順序,把每一步寫進共同 log。
後來的語言
這其實就是 ledger。只是當時系統社群更常叫它 log。
PART 2

View change 是把歷史接回去的動作

Viewstamped Replication 的核心不是「多複製幾份」而已。真正困難的是 primary 失效時,其他副本怎麼換到新的 primary,又不丟掉已經達到 commit point 的歷史。新 view 必須把舊 view 裡已經成立的順序帶過去,否則系統就可能重寫過去。

這個設計後來變成許多共識協定都會遇到的基本形狀:平時有一個領頭者負責推進,領頭者不工作時,其他副本啟動另一套程序,選出新的領頭者,並證明已提交歷史被保留下來。區塊鏈讀者熟悉的「同一本帳」概念,在這裡已經有了工程雛形。

Liskov 在訪談裡說,他們當時想的是檔案系統,不是金融帳本;但協定本身其實與應用無關。它保護的是操作歷史。
PART 3

從當機到說謊,成本突然變高

Viewstamped Replication 處理的是 benign failures:機器可能壞掉、停止回應,但不會故意騙人。1990 年代網際網路長大後,惡意攻擊變成真問題。DARPA 徵求處理惡意攻擊的研究,Liskov 的學生 Miguel Castro 提議把 replication 推進到 Byzantine failures。

Practical Byzantine Fault Tolerance 的改變在於,系統不能相信任何單一 replica。副本可能對不同人說不同版本,也可能簽出互相衝突的訊息。解法不是找一台最可信的機器,而是要求足夠多副本形成可檢查的證明。Benign failure 需要 2f + 1;Byzantine failure 需要 3f + 1。

Benign failure節點會當機或延遲。系統需要足夠副本,讓停止工作的節點不拖垮服務。
Byzantine failure節點會說謊。系統需要額外副本與密碼學證明,讓單一謊言不能改寫群體判斷。
PART 4

共識層不在乎上面跑的是什麼服務

訪談裡最接近區塊鏈的一段,是 state machine replication 的抽象。共識層只負責決定「第 25 個操作是什麼」。至於這個操作要套用在檔案系統、資料庫、智慧合約或其他服務,是執行層的事。

這就是現代鏈很自然會採用的分層:共識排序交易,執行環境解讀交易。Ethereum、Solana 等通用鏈看起來是金融與應用平台,但在更底層,它們也像是在實作一個通用的 state machine replication 問題。不同 smart contract 是同一套排序與狀態轉換框架裡的不同應用。

共識與執行分開看
1. 請求使用者或客戶端送出操作。
2. 排序共識層決定操作順序。
3. 執行服務或合約依序套用操作。
4. 歷史所有誠實副本保留同一段狀態變化。
PART 5

區塊鏈讓舊協定等到自己的場景

Liskov 說,他們完成 PBFT 時以為某天會有人使用。Viewstamped Replication 也等了很多年,才在大型系統裡被重新看見。區塊鏈出現後,這些協定的價值變得清楚:當系統管理可轉移價值,而且參與者不一定彼此信任,惡意行為不再是邊緣條件。

這不表示區塊鏈只是 PBFT 的拷貝。Bitcoin 的 permissionless 設定、proof-of-work、proof-of-stake、經濟誘因與開放參與,都把問題改寫了。但它們仍站在同一個問題上:如何讓一群不完全可靠的參與者,同意一段不可隨意分裂或改寫的歷史。

1980sViewstamped Replication 處理副本、primary、view change 與 log。
1990sPBFT 把惡意節點、簽章與群體證明放進 practical protocol。
2009 後區塊鏈把同一本帳放到開放網路與經濟誘因裡。

區塊鏈真正繼承的,不只是密碼學,而是「如何保留同一段歷史」的工程傳統。

從 log 到 ledger,名字變了;核心問題沒有變。

你會從哪裡理解
區塊鏈共識?

選完之後,分享你的觀點

你的觀點

想看更深入的分析?

原始訪談保留 Tim Roughgarden、Barbara Liskov 與 Ittai Abraham 對 modularity、Viewstamped Replication、PBFT、AI 時代系統研究的完整脈絡。

閱讀完整文章 →