作者: Blockpunk @ Trustless Labs
審閱:0xmiddle
來源:內容公會- 投研
💡編者薦語:
在區塊鏈的世界裡,去中心化計算是一塊難以到達的應許之地。以太幣等傳統智慧合約平台受限於高昂的運算成本和有限的擴展能力,而新一代運算架構正試圖打破這種限制。 AO 和ICP 便是目前最具代表性的兩個範式,一個以模組化解耦、無限擴展為核心,一個強調結構化管理、高度安全性。
本文作者Blockpunk 老師是Trustless Labs 研究員,也是ICP 生態的OG,曾創建ICP League 孵化器,長期耕耘技術與開發者社區,對AO 也有著積極的關注和深刻的理解。如果你對區塊鏈的未來充滿好奇,想知道AI 時代真正可驗證、去中心化的運算平台會是什麼樣子,或者你正在尋找新的公鏈敘事和投資機會,這篇文章絕對值得一讀。它不僅對AO 和ICP 的核心機制、共識模型、擴展能力進行了詳細解析,還深入探討了它們在安全性、去中心化程度以及未來潛力上的對比。
在這個風雲變幻的加密產業,誰才是真正的「世界電腦」?這場競爭的結果,或許將決定Web3 的未來。閱讀本文,搶先一步了解去中心化運算的最新格局!
與AI 結合已成為當今加密世界的熱門趨勢,無數的AI Agent 開始發行、持有和交易加密貨幣。新應用的爆發,伴隨著對新的基礎設施的需求,可驗證且去中心化的AI 計算基礎設施顯得尤為重要。然而,以ETH 為代表的智慧合約平台與以Akash、IO 為代表的去中心化算力平台,都無法同時滿足可驗證的與去中心化這兩個需求。
在2024 年,知名去中心化儲存協定Arweave 的團隊宣布了AO 架構,這是一個去中心化的通用運算網絡,支援快速低成本的擴容,因此能運行許多對運算要求較高的工作,例如AI Agent 的推理過程。 AO 上的計算資源被AO 的消息傳輸規則有機地統合在一起,基於Arweave 的全息共識,不可篡改地記錄請求的調用順序與內容,這讓任何人都可以通過重新計算來獲得正確狀態,在樂觀的安全保證下,這實現了計算的可驗證性。
AO 的運算網路不再對全部計算過程進行共識,這保證了網路的靈活性與極高的效率;其中的進程(可視為「智慧合約」)以Actor 模型運行,透過訊息進行交互,而不需要維護一個共享的狀態資料。在聽起來與DFINITY 的網路電腦ICP 的設計有些類似,ICP 透過一種將運算資源結構化的子網路來實現類似的目標。開發者經常將兩者進行類比。本文將主要比較這兩種協議。
共識計算與通用計算
ICP 與AO 的思路,都是透過將共識與計算內容解耦,來實現計算的靈活擴容,從而提供更低廉的計算,處理更複雜的問題。與之相對的是傳統的智能合約網絡,以Ethereum 為代表,整個網絡的所有計算節點,都共享一個共同的狀態內存,任何改變狀態的計算都需要網絡中所有節點同時進行重複運算,從而達成共識。在這種全冗餘的設計下,共識的唯一性得到保證,但計算的成本是非常高的,並且難以擴展網路的運算能力,僅能用於處理高價值業務。即使是在Solana 等高效能公鏈,也很難以負擔AI 這樣的密集運算需求。
AO 與ICP 作為通用計算網絡中,並不存在一個全局共享的狀態內存,因此不再需要對改變狀態的運算過程本身進行共識,僅對交易/請求的執行順序進行共識,然後再對計算結果進行驗證。基於對節點虛擬機器安全的樂觀假設,只要輸入的請求內容和順序一致,最終的狀態也會一致。智能合約(在ICP 中被稱為“容器”,在AO 中被稱為“進程”)的狀態變更的計算就可以在多個節點上同時並行的進行,而不要求所有的節點都只在同一時間計算完全相同的任務。這大大降低了運算的成本,也增加了擴容的能力,因此可以支援更多複雜業務,甚至AI 模型的去中心化運作。 AO 與ICP 都號稱“無限擴容”,其中的差異我們將在後面比較。
由於網路不再共同維護一個大的公共的狀態數據,每個智能合約被視為可以單獨地處理事務,智能合約之間通過訊息進行交互,這個過程是異步的。因此去中心化的通用運算網路往往採用Actor 的程式設計模型,這使得其相比ETH 等智慧合約平台,合約業務間的可組合性較差,這為DeFi 帶來了一定困難,不過依然可以使用特定的業務程式設計規格來解決。例如AO 網路上的FusionFi Protocol,透過統一的」票據-結算「模型,來規範DeFi 業務邏輯,實現互通性。在AO 生態尚處於早期的階段,這樣的協議可以說是頗具前瞻性。
AO 的實作方式
AO 建立在Arweave 永久儲存網路的基礎上,透過一個新的節點網路運作。其節點分為三個群組,分別是訊息單元MG、計算單元CU 與調度單元SU。
AO 網路中智慧合約被稱為“進程”,是一組可執行的程式碼,被上傳到Arweave 中永久保存。
當使用者需要與進程互動時,可簽署並發送請求。 AO 規範了訊息的格式,訊息被AO 的訊息單元MU 接受,驗證簽章並轉發給調度單元SU。 SU 不斷接收請求,為每個訊息賦予一個唯一編號,然後將結果上傳至Arweave 網絡, Arweave 網路會對交易順序完成共識。交易順序的共識完成後,任務被指派給計算單元CU。 CU 進行具體的計算,改變狀態值,將結果返給MU,最終轉發給用戶,或作為下一個進程的請求再進入SU。
SU 可以看作AO 與AR 共識層的連接點,而CU 則是一個去中心化的算力網絡,可見AO 網絡中的共識與計算資源是完全解耦的,因此只要有更多、更高性能的節點加入CU 組,整個AO 就將獲得更強的運算能力,能支持更多的進程數與更複雜的進程可以保持靈活的運行能力。
那麼,如何保證其計算結果的可驗證性呢? AO 選擇了經濟學的方式,CU 與SU 節點需要質押一定AO 資產,CU 透過計算性能、價格等因素競爭,透過提供算力賺取收益。
由於所有的請求都被記錄在Arweave 共識中,任何人都可以透過溯源這一筆的請求,復原出整個進程的狀態變化情況,一旦發現惡意攻擊或計算錯誤的情況,可以向AO 網路發起挑戰,透過引入更多CU 節點重複計算得出正確結果。出錯節點質押的AO 會被罰沒。 Arweave 並不會驗證AO 網路中運行的進程的狀態,而只是忠實的記錄交易,Arweave 並沒有計算能力,挑戰的過程是在AO 網路中進行的。 AO 上的進程,可以看作一條擁有自主共識的“主權鏈”,而Arweave 可以視為其DA (數據可用性)層。
AO 賦予了開發者完全的彈性,開發者可以自由選擇CU 市場中的節點,客製化運行程式的虛擬機,甚至是進程內部的共識機制。
ICP 的實作方式
與AO 依照資源解耦出多個節點組不同,ICP 底層使用了較一致的資料中心節點,提供了多子網路的結構化資源,從下到上依序為:資料中心、節點、子網路和軟體容器。
ICP 網路的最底層是一系列分散的資料中心,資料中心運行ICP 的用戶端程序,這會根據效能虛擬化出一系列具備標準運算資源的節點。 這些節點被ICP 的核心治理代碼NNS 隨機組合在一起,形成一個子網路。節點在子網下處理運算任務,達成共識,生產並傳播區塊。子網路內部的節點透過優化互動的BFT 進行共識。
ICP 網路中同時存在多個子網,一組節點只運行一個子網,並維護內部共識,不同的子網間以相同速率並行產出區塊,子網間可以透過跨子網請求互動。
在不同的子網路中,節點資源被抽象化為一個個“容器”,業務在容器中運行,子網並沒有一個大的共享狀態,容器僅維護自己的狀態,且存在最大容量限制(受到wasm 虛擬機限制),子網的區塊中也不會記錄網路中容器的狀態。
在同一子網路下,計算任務是在所有節點上以冗餘的方式運行,但在不同的子網間則以並行的方式運行。當網路需要擴容時,ICP 的核心治理系統NNS 會動態增加和合併子網,來滿足使用需求。
AO vs ICP
AO 與ICP 都是圍繞著Actor 的訊息傳遞模型建構的,這是並發分散式運算網路的典型框架,同時都預設使用了WebAssembly 作為執行虛擬機器。
與傳統區塊鏈不同,AO 與ICP 都沒有數據和鏈的概念。因此在Actor 模型下,預設虛擬機器運作的結果一定是確定性的,那麼系統只需要保證交易請求的一致性,就可以實現進程內狀態值的一致性。多個Actor 可以並行運行,這給了擴展提供了巨大空間,因此計算成本足以低到運行AI 這類通用計算。
但在整體的設計哲學上,AO 卻與ICP 站在完全的兩面。
結構化vs 模組化
ICP 的設計想法更像是傳統的網路模型,將資源自資料中心的底層抽像到一個個固定的服務中,這包括了熱儲存、運算和傳輸的資源;而AO 是使用了對加密開發者更熟悉的模組化設計,將傳輸、共識驗證、計算、儲存等資源完全分離,並由此區分出多個節點組。
因此,對於ICP 來說,對網路中節點的硬體需求是非常高的,因為需要滿足系統共識的最小需求。
開發者必須接受統一標準的程式託管服務,有關服務的資源都被約束在一個個容器中,例如當前容器的最大可用記憶體就是4GB,這也限制了一些應用程式的出現,例如運行較大規模的AI 模型。
ICP 也嘗試透過創造不同的有特色的子網來提供多樣的需求,但這就離不開DFINITY 基金會的整體規劃和發展。
而對AO 來說,CU 更像是一個自由的算力市場,開發者可以根據需求與價格偏好,選擇使用節點的規格和數量。因此,開發者幾乎可以在AO 上運行任意進程。同時,這對節點的參與者來說也更友好,CU、MU 也可以實現單獨擴容,去中心化程度較高。
AO 的模組化程度較高,支援虛擬機器、交易排序模型、訊息傳遞模型與支付方式的自定義,因此如果開發者需要一個隱私的運算環境,可以選擇TEE 環境的CU,而不用等待AO 官方開發。模組化帶來更多彈性,也降低了一些開發者進入的成本。
安全性
ICP 依靠子網路運行,進程託管在子網路上時,計算過程會在所有的子網路節點上執行,狀態的驗證由所有的子網路節點之間的改進BFT 共識完成。雖然製造了一定的冗餘,但進程的安全性與子網路完全保持一致。
在子網路內部,當兩個行程互相呼叫時,如進程B 的輸入是進程A 的輸出,就不需要考慮額外的安全性問題,只有在跨兩個子網路時,才需要考慮兩個子網路間的安全性差異。目前一個子網路的節點數量在13-34 之間,其最終確定性形成時間為2秒。
在AO 中,計算的過程被委託給開發者在市場上選擇的CU 們。在安全性上,AO 選了更代幣經濟學的方案,要求CU 節點必須質押$AO,預設計算的結果是可信的。 AO 將所有的請求都經過共識記錄在Arweave 上,因此任何人都可以讀取公開的記錄,透過一步步重複計算來檢驗當前狀態的正確性。如果出現問題,可以在市場上選擇更多CU 參與計算,獲得一個更準確的共識,併罰沒出錯CU 的質押。
這讓共識與計算的完全解綁,讓AO 獲得了遠優於ICP 的擴展性與靈活性,在無需驗證的情況下,開發者甚至可以在自己的本地設備上計算,只需要將命令通過SU 上傳Arweave 即可。
但這也為進程間的互相呼叫帶來的問題,因為不同的進程可能處於不同的安全保證下,例如進程B 有9 個CU 進行冗餘計算,而進程A 只有一台CU 在運行,那麼要進程B 接受來自進程A 的請求,就要考慮進程A 是否會傳輸錯誤的結果。因此進程間的互動就是受到安全性的影響。這也導致最終確定性形成時間較長,可能需要等待Arweave 長達半小時的確認週期。解決方法是設定一個最低的CU 數量與標準,同時對不同價值的交易,要求不同的最終確認時間。
不過AO 還具備一個ICP 不具備的優勢,即具備一個包含所有交易歷史的永續存儲,任何人都可以重播出任一時刻的狀態,雖然AO 沒有傳統的區塊與鏈的模型,但這也更符合加密中的人人可驗證的思想;但在ICP 中,子網節點只負責計算並對結果共識,並不會存儲每一次信息將會無跡可尋,雖然ICP 的開發者自發性地建立了一系列記錄呼叫記錄的帳本容器,但對於加密開發者來說還是比較難以接受。
去中心化程度ICP 的去中心化程度一直受到詬病,節點的註冊、子網的創建與合併等系統級工作,都需要一個被稱為「NNS」的治理系統決定。 ICP 持有者需要透過質押參與NNS,同時為了實現多副本下的通用運算能力,對節點的硬體需求也非常高。這帶來了極高的參與門檻。因此,ICP 的新功能、新特性的實現,依賴於新子網的退出,這必須透過NNS 的治理,更進一步說,必須依靠掌握大量投票權的DFINITY 基金會推動。
而AO 徹底解耦的思路,將更多權利交還給了開發者,一個獨立的進程,就可以看作一個獨立子網,一條主權L2,開發者只需要支付費用即可。模組化設計也方便開發者引入新功能。對於節點提供者來說,參與的成本相比ICP 也更低。
最後
世界計算機的理想是偉大的,但並沒有一個最優的解法。 ICP 具有更好的安全性,並能做到快速的最終性,但係統更為複雜,受到更多限制,並且在部分設計上很難取得加密開發者的認可;AO 高度解耦的設計,讓擴展變的更加容易,同時提供了更多的靈活度,這將受到開發者的喜愛,但也存在安全性上的複雜度。
讓我們從一個發展的角度來看,在風雲變幻的加密世界中,一種範式很難長時間裡保持絕對優勢,即使是ETH 也是如此(Solana迎頭趕上),只有更加解耦和模組化,以便於替換,才能在挑戰中快速進化,適應環境,存活下來。 AO 作為後來者,將成為去中心化通用計算,特別是AI 領域的強力競爭者。