區塊鏈的底層,不是「幣」,而是「歷史順序」。
訪談開場問的是分散式系統的老問題:當程式分散在不同節點,透過網路溝通,而且節點會失敗時,系統要怎麼繼續可靠運作?Liskov 早期從 CLU、Argus、抽象資料型別與交易開始,關心的是大型程式如何被拆成可推理的模組。進到分散式系統後,多了一個問題:跨節點的計算要嘛完整發生,要嘛完全沒有影響。
這個問題後來在區塊鏈裡變成更熟悉的語言:誰先發生、誰後發生、哪一筆交易已經進入共同歷史。Roughgarden 在訪談裡指出,今天教區塊鏈執行時,常會用物件導向與狀態互動當心智模型。Liskov 的研究脈絡正好說明,這不是巧合。
模組、規格、局部正確性
節點失敗、交易、複本一致
共識、排序、共同帳本
Viewstamped Replication 解的,是 primary 壞掉後怎麼換人。
兩階段提交有一個問題。若負責協調的 primary 在關鍵時刻壞掉,整個協定可能停住。Liskov 把這段稱為 embarrassing pause,也就是脆弱窗口。Viewstamped Replication 的貢獻,是讓備份節點在 primary 看起來不工作時,能進入新的 view,選出新的 primary,並保證前一個 view 裡已經到達 commit point 的歷史不會消失。
她在訪談裡說,當時他們想到的是 log,不是今天的 ledger。可是從今天回頭看,這就是共同歷史的雛形。節點可以換人,歷史不能改寫。系統可以重啟,已經被承諾的順序不能消失。
PBFT 把問題升級:節點不是只會壞掉,它可能會說謊。
Viewstamped Replication 面對的是 benign failures:機器要嘛正常,要嘛沉默。網路進入 1990 年代後,DARPA 開始關心惡意攻擊。Miguel Castro 帶著這個題目找 Liskov,PBFT 因此誕生。這次 primary 不只是可能失效,它可能刻意傳不同訊息給不同 replica。
PBFT 的核心直覺是:不要相信單一節點,只相信足夠大的群體。Liskov 在訪談裡說,證明某一步真的發生,需要 2f + 1 個簽名訊息共同說同一件事。系統因此需要 3f + 1 個 replica,才能容忍 f 個會說謊的節點。
今天的鏈,是 state machine replication 的大型實驗場。
Roughgarden 在後段把問題說穿:Ethereum、Solana 這類 Turing complete blockchain protocols,幾乎就是一般化 state machine replication 問題的具體實作。它們不是為某一個應用寫死,而是先建立一個可複製、可排序、可驗證的狀態機,再讓每個 smart contract 成為其中的特殊案例。
這也解釋為什麼共識與執行要分層。共識層不需要理解每個 operation 的業務含義,它要決定的是順序。operation number 25 是什麼、誰排在誰前面、哪個結果被所有節點承認。執行層再處理該操作對狀態造成的影響。
決定共同順序
依序套用操作
產生所有節點可驗證的同一結果
AI 讓老問題回來了:規格、驗證與大型系統設計。
訪談最後談到 AI。Liskov 沒把 AI 描述成研究的終點。她說,AI 底下有大量系統研究問題,尤其是當 AI 能替你寫小程式時,使用者更需要規格與驗證工具,確認程式是否真的正確。
這跟她早年教「如何建造大型程式」的課程相連:設計、模組化、規格與驗證。未來的工程師可能少寫某個 for loop,卻更需要在高一層管理程式如何被產生、如何被檢查、如何被放進可靠系統裡。
區塊鏈最重要的不是把帳本放到網路上,而是在不完美的網路裡,讓一群機器同意同一段歷史。
讀完這集,你會用哪個角度看區塊鏈?
這不是測驗。選一個你最想帶走的心智模型。
想看更深入的脈絡?
a16z crypto 原始影片包含 Barbara Liskov 對 CLU、Argus、Viewstamped Replication、PBFT 與 AI 時代系統研究的完整訪談脈絡。
觀看原始影片 → 打開 a16z crypto 頻道 →本頁為繁體中文互動閱讀整理,來源以 a16z crypto YouTube 原始影片為準。
喜歡這種分析嗎?
區塊勢每週深入拆解一個
你該知道的科技趨勢
從穩定幣、AI 代理人到平台策略,用台灣讀者看得懂的語言,把複雜的產業變局說清楚。
免費訂閱區塊勢 →也可以直接付費支持,解鎖每週完整文章