技術詳解 ao 超並行計算機
導語
AO 實際上是基於存儲的共識範式(SCP,Storage-based Consensus Paradigm)的延伸,後者類似於主權 Rollup ,核心思路是把計算和DA/存儲相解耦,鏈上發布/存儲數據 + 鏈下計算/驗證數據。由於 Arweave 具備極高的數據承載量,基於 AO 和 SCP 架構的 DApp 平台可以極大程度節約數據發布與存儲成本,便於支持一些對吞吐量有較強追求的場景。
在大多數人的既有認知中,Arweave 主打永久存儲概念,長期被各類項目作為存儲層使用。Arweave 曾經的最為人所知的敘事便是:成為永不消失的亞歷山大圖書館,終極目的是保存人類文明的火種。
因此,在 Arweave 的 ao 計算機發布後,Arweave 變身成為並行超級計算機非常出人意料,需要指出的是,Arweave 依然可以被作為存儲層去使用,ao 架構是存儲功能的疊加而非取代關係。
ao 與 SCP 一致,ao 的計算進程可以並行執行,因此可具備高效計算能力。ao 的進程之間可以互聯互通,它們的數據格式保持一致,所有的數據最終都按照 ANS-104 的 Bundle 格式存入 Arweave 主網。每個進程的所有日誌都被完全存儲,最終進程的全息狀態(HolographicState)被留存在了 Arweave 上。
ao 的計算能力結合 Arweave 的永久存儲能力,實際上是一個無審查、無處不在的全球性高併發計算機,在其上,任意類型、任意語言、任意公鏈的 DApp 都可接入 Arweave,暢享比以太坊廉價,但是更高效的去中心化計算服務。
AOS 稍有不同,如果將 ao 理解為計算機架構,那麼 AOS 就是一個操作系統實例。本質上,ao 是一種架構體系,用戶需要和類似 AOS 的操作系統互動才能使用相應的功能,為了論述便利,以下統一用 ao 來指代,但是用戶需要自行注意二者區別。
本文要點:
- Arweave 推出 ao 架構,希望藉此變身為存儲和計算的全能選手,改變目前市場上對其僅有存儲概念認知的現狀;
- Arweave 的 ao 架構是在存儲上的功能疊加,ao 架構具備溝通任意公鏈和 DApp 的潛力;
- ao 相關技術包含分佈式架構 SSI(單系統映像)、Actor Model(erlang 語言並非模型)和 SU/MU/CU 單元組建構成,其中併發和異步是理解 ao 架構的關鍵;
- ao/SCP 擁有巨大的潛力,有望刺激 Arweave 生態的發展,需要觀察"鏈下計算+鏈上存儲"模式對項目的持續吸引力。
技術解讀
讓我們先引入一些前提知識,作為對 ao 的補充。在近期坎昆升級和 EIP-4844 激活後,以太坊的數據存儲問題顯得越來越重要,比如,專門用於存放 Layer2 DA 數據的 blob,並不會永久保留在以太坊網絡中,節點可以自行刪除掉超過時間窗口的 blob 數據,屆時被淘汰的數據就需要另尋一個存儲去處。
雖然有 EthStorage 等基於以太坊的存儲平台,在解決 blob 數據過期淘汰問題,但這並非以太坊原生的解決方案,需要依賴於一些額外設計一些機制。此外,雖然 EIP-4844 可以將數據發布成本極大程度降低,但相比於 Arweave,還是顯得非常高昂。
不同於以太坊,在啟動之初就奔著"亞歷山大圖書館"口號而去的 Arweave,雖然在計算功能上顯得簡陋,但其原生支持數據永存,且成本極低(存儲 1GB 數據約數十美元,與 1 筆以太坊交易的費用持平)。在數據冗餘存儲方面,Arweave 把出塊概率與節點本地數據集的完備性相關聯,如果存儲節點刪除了一些數據,則其成功出塊的概率會降低,而保留數據最多的節點,具備更高的出塊"算力",它們將獲取到更多的獎勵。通過這種方法,Arweave 的激勵系統能保證任意一段歷史數據,能極大概率的被冗餘存儲。
可以說,Arweave 適合作為一個存儲成本極低的去中心化數據存儲與發布層,而 ao 和 SCP 便是基於 AR 的模塊化區塊鏈及 DApp 架構。SCP 的設計模式雖然在理論上,與以太坊 Rollup 等以安全為主的模塊化方案存在較大差異,但在落地簡易度以及與 Web2 平台銜接的難易度上,可行性卻很高 ,因為他從一開始就不打算像 Rollup 那樣,把自己限制在一個狹窄的實現路徑上,想要以一種更寬泛、更開放的框架,將 Web2 平台與 Web3 設施融合起來。
圖源:極客 Web3 《解讀SCP:跳出Rollup定式的去信任化基礎設施範式》
上圖是一個採用 SCP 方案應用 everPay 的原理圖,DA 層採用了 Arweave,即圖中的大圓圈。棕色圓圈是協調者 Coordinator,即執行層,類似於以太坊 Layer2 的排序器,用戶將交易提交至協調者後,協調者會執行運算,並將這些 DA 數據批量提交至 AR 上。
至於檢測者 Detector,有點類似於以太坊 Layer2 的挑戰者/驗證人,他們會從 Arweave 上拉取協調者提交的 DA 數據,對交易結果進行計算或者驗證。檢測者的客戶端是開源的,任何人都可以運行。而守望者 Watchmen,實際上是管理跨鏈系統的多重簽名節點,會對跨鏈請求進行驗證和執行。另外守望者也負責簽署治理提案。
值得強調的是,SCP 這種架構,對於安全性的要求沒有以太坊 Layer2 那麼嚴格,但實際上給採用該架構的項目方提供了更高的自由度、更多的定制化選項,且降低了採用成本,可以說是一種特立獨行、腦洞大開的做法。
圖源:極客 Web3 《解讀SCP:跳出Rollup定式的去信任化基礎設施範式》
刪繁就簡,ao 的框架可以分為三部分 ,分別是:分佈式架構,並行計算功能和通信調度組件三部分,將三者統一起來便是完整的超級計算機功能。
- 分佈式架構,ao 使用單系統映像(SSI,Single-system image)來組織 ao 網絡的去中心化體系。
- 並行計算功能,ao 使用並行計算理論的 Actor Model 理論,來處理高併發環境,並有效結合區塊鏈的相關技術,ao 一詞也是從 Actor Orient 而來(面向 Actor,模仿 OOP 的面向對象一詞)。
- 通信調度組件,ao 設計了 MU/CU/SU 三個關鍵部分,Messenger Units 負責信息傳遞,Scheduler Units 負責進程調度,Compute Units 負責並行的計算進程。
我們來分別解釋下上述各個部分。首先是 SSI 單系統映像,實際上就是一種分佈式架構。比如,各大 Web2 應用背後對應的伺服器系統,基本都是由許多台伺服器節點共同構成的分佈式系統,這些伺服器之間通過特殊的消息傳遞與通訊協議,來確保彼此的狀態、對新增數據的看法是一致的。
但在客戶端/前端層面,用戶感知不到前端背後對應的伺服器是分佈式的,對用戶而言,再龐大的計算機集群也像是一台單一的計算機。這其實就是計算機工程中常提到的"抽象",把複雜的底層組件統一匯總在一起,合併為一個模塊,外界不需要知道這個模塊的內部構造,只需要把輸入信息傳遞給該模塊,就可以得到輸出結果。
前文提及的 SSI 單系統映像,採用了 Arweave 的"廉價去中心化存儲"特性,可以說 ao/SCP 的敘事根基,主要建立在Arweave 相比於其他公鏈的存儲價格優勢,以及相比於傳統 Web2 平台的抗審查性與數據透明度優勢。在 ao 與 SCP 的敘事中,AR 被當作一個巨大的數據公告板與日誌記錄儀,DApp 前端發出的數據會傳遞至 Arweave 網絡中,被大量的 Arweave 節點存儲在分佈式的區塊鏈網絡中。
相對於以太坊等去信任程度更高的主流公鏈網絡,由於 Arweave 上的存儲成本極其低廉,可以更好的支持那些對數據吞吐量有較高追求的應用場景;而不同於傳統 Web2 平台及聯盟鏈,Arweave 網絡的開放性更利於抗審查和數據透明,依附於 AR 的 DApp 要比 Web2 應用更去信任。
比如說,傳統的支付寶也可以被 Web3 化,只要支付寶將接口設計為兼容 ao 協議,支付寶的交互數據將自動上傳到 Arweave 網絡,成為一個 Web3 版本的去信任化"支付寶"。如果是以太坊或者 EVM 系 DApp,也可以對接 ao 接口,將信息格式轉為 ANS-104 格式上傳 Arweave 即可。
與傳統 XX 雲以及封閉式的聯盟鏈不同,任何人或 DApp 項目方只要運行以太坊或 Arweave 等第三方公鏈的節點,就可以通過 P2P 的方式,向多個節點索要並讀取數據,只要 N 個節點中有 1 個願意提供數據,你就能獲取到自己所需要的東西,這歸根結底依賴於網絡的開放性。
從這兩個角度看,ao 和 SCP 這樣的基於 Arweave 的 DApp 架構方案,更像是介於 Web2 和 Web3 之間的一種過渡,以太坊和比特幣等傳統 Web3 平台,以成本和效率為代價,實現了高度的抗審查與去信任,但是難以獲得大規模採用;Web2 平台則犧牲了數據透明和抗審查性,實現了高效率與低成本,但是不能去信任,ao 更像是兩者之間的一種中間形態。
SSI 和客戶端-伺服器架構、三層架構、N 層架構和對等架構等分佈式架構的區別在於透明性上,SSI 可顯著提高系統抽象性和用戶體驗,不過需要注意,SSI 依賴於樂觀同步控制,這要求系統具有較高的同步控制能力,以確保數據的一致性和可靠性,一旦同步控制失敗,可能會導致數據丟失,從而影響 ao 架構的可用性。
另外一個 SSI 的好處是部署速度,SSI 可在單個伺服器上運行多個實例,不需要像微服務架構或容器化技術一樣過度依賴於雲服務或容器化工具,有效降低系統的複雜性和部署成本。
在 ao 的實踐中,分佈式架構的數據同步和備份依賴於 Arweave 網絡,因為 Arweave 的永久存儲特效,理論上任意時間點的數據狀態都有留存,數據不存在丟失或損壞的情況。
不過需要注意,SSI 也會引發新的額外開銷,重點是分佈式節點之間的網絡通信和數據有效同步上,比如,SSI 架構發生故障時,極端情況下只要存在一個正常節點,整個網絡都可正常運行,但是實際上這會引發嚴重的節點安全危機和系統健壯性。
Actor Orient
在簡單介紹完 SSI 架構後,需要深入研究 ao 的並行計算機制的實現方式,區別於中心化伺服器的簡單"堆料",ao 使用 Actor 模型來達到去中心化的高併發效果,並且用戶基本上無感知這是分佈式系統。
ao 架構高效的併發計算能力來自 Actor 模型,Carl Hewitt 于 1973 年定義了 Actor 模型的理論框架,並將 Actor 作為併發計算的原語,有趣的是,當時是為了給人工智能做計算而設計的。
不過實踐上人們可能更熟悉 OOP 等模式,實際上,根據 Oracle 的調研,OOP 是 Actor 的改進版本,但是二者後來的發展漸行漸遠。
Actor 模型定義了一系列系統組件應該如何動作和互動的通用規則,每個 Actor 都是一個獨立的實體,它能夠做出本地決策,並與其他 Actor 進行通信,但是需要注意,Actor 模型強調的是異步、並行和分佈式的特徵。
尤其是異步和並行,這意味著每個組件的狀態並不同步,有可能產生衝突,因此必須特別依賴消息傳遞機制,這也是在 ao 中,重點強調 MU 和 SU 的原因,執行並不困難,難的是安排和調度,以發揮出並行的強大計算能力。
每個 Actor 都是獨立的執行單元,可以自行處理分配的任務,如果對其進行利用,比如確保消息的原子性和一致性後,就是非常強大且靈活的併發模型。
這裡的考慮是區塊鏈中特殊的跨多節點通信需求,比如常見的微服務架構經常會使用節點對節點通信模式,但是基於 RPC 的實現方式會導致多種數據傳遞的複雜和時延,而 ao 架構通過統一的消息傳遞機制 MU,統一分配消息格式,以便於最終的 Arweave 存儲。
和 CSP(ConcurrentSemantics)的各節點同步執行任務模式相比,Actor 最典型的特點是異步執行,為此,ao 不使用常見的共享內存機制,確保各自的獨立性,以更靈活的方式進行跨節點通信。
異步和並行,構成了 Actor 模型在 ao 架構中的高效之源,而為了確保這種效率,MU/SU/CU 被提出並投入使用。
總之,Actor 模型和 Arweave 區塊鏈的結合,搭建出高效信息傳遞下的異步高併發算力模型。
三要件
ao 架構下,無論是 SSI 還是 Actor 模型,都對信息傳遞提出了更高的要求,SU、MU 和 CU 應運而生。
首先理解 ao 的進程,指的是初始化任務時請求對應的計算資源,比如虛擬機和內存等資源,任何任務的流轉,本質上都是通過進程的傳遞來實現的。
無論是 SSI 還是 Actor Model,其間流轉的消息都要符合 ANS-104 的數據標準和格式,由此,任意類型的 DApp 都可互相理解。
在生產符合要求的數據後,MU 會發送消息給在線的 SU,這個過程會持續進行,直至所有的消息都被處理完畢,緊接著需要 SU 接收數據,並將其上傳至 Arweave,用以鏈接 Arweave 的驗證能力。
並且,MU 的處理進程還可以設立付費機制,從而進行定制化的消息處理機制,比如只發送消息但不進行後續動作等。
SU 接收到消息後,CU 會開始接入,CU 是包含多個負責計算的單元,需要注意的是,CU 也是去中心化的算力市場,類似 Akash 一樣,各個 CU 集群會相互競爭,競爭勝出者有權進行計算, CU 會根據請求,響應並提交一份計算結果,這些響應的結果都存儲在 Arweave 上,都可由 Arweave 上原始數據進行驗證。
可以發現,在這種模式下,ao 提供的是一個高效的、競爭性的計算網絡,用戶無需為計算確立共識,只需要確保傳遞的消息符合對應流程即可,這在根本上擺脫了以太坊等為計算有效性所付出的高昂代價。
SCP 和 ao 的結合
首先來討論可驗證性,牢記一個共識,ao 的功能是對可驗證的數據狀態進行呈現,最終可驗證性問題是由 Arweave 上的共識數據保障的,ao 本質上也是一個 scp 應用,此時查詢狀態和返回狀態兩個動作都上鏈到 Arweave 上了,ao/SCP程序會加載到這兩個動作,通過這兩個動作計算出 Mint 和 Slash 結果。
具體來說,基於 SCP 範式,需要把 Mint 和 Slash 的規則寫入索引之中,那麼調用索引數據的節點,自然會計算出 Slash 和 Mint 的結果(數據模型詳見 ao spec)。
在論述完 ao 的技術架構後,下文會針對其應用進行討論,雖然在 ao 發布會後陸續出現原生跨鏈協議 aox、去中心化穩定幣協議 astro 和 Arweave 上的 EVM 兼容項目 AOVM,但是目前都還處於實驗狀態。值得一提的是,目前基於 ao 的應用方興未艾,ao 版本的推特和遊戲已經有很多在開發和測試。
同時,Arweave 生態已有的一些成熟的 SCP 項目,比如 everVision 旗下的 everPay 和 Permaswap 等應用都會進行對應的 ao 化適配與改造,在理論和實踐上,SCP 理論和 ao 也是同源的。
SCP 根植於 Arweave 的存儲能力,可以想像一個永不停止的圖靈紙帶機,SCP 負責將數據上傳至區塊鏈,承擔的是圖靈機的磁帶記錄功能,而狀態機可由 ao 來提供,每一次的狀態變動都可以存儲在 Arweave 之上。
這裡面存在的問題是狀態爆炸,也是困擾以太坊的多年隱疾,而Arweave 不存儲狀態,因此天然不存在狀態爆炸問題,可以永久保存 ao 進程生成的全部數據。
需要注意的是,ao 節點中的數據並不需要計算才能達到共識狀態,理論上,只要相關數據被存儲在Arweave網絡之上,則每一步狀態變動都必須被記錄,因此,更準確的來說,ao 上的數據不需要計算就能寫入網絡,計算也只是數據變動的一部分。
其次,面對經久不衰的區塊鏈三難問題,即任何區塊鏈無法同時解決安全、去中心化和可擴展性問題,SCP 和 ao 的結合基本上可以終結這個困境。
- 安全:Arweave 提供的數據是最大的共識,存儲在 Arweave 的共識數據為應用提供可驗證性;
- 去中心化:ao 帶來了算力的去中心化,任何個人、機構和 NGO 都可以加入和離開 ao 計算網絡,得益於數據共識,離開後的狀態恢復也無比簡單;
- 可擴展性:和以太坊的縱向分層不同,ao 和 SCP 總體上是橫向分塊,無限擴展計算和存儲能力。
基於 ao/SCP 架構,Arweave不 再是一個單純的存儲公鏈,AR+AO 組合起來是一個同時具備存儲和計算功能的去中心化超級計算機,任意 DApp 都可在其上進行部署,並相互之間進行調用。
目前的 ao 也是一種獨特的模塊化架構,即橫向擴展的模塊化,不僅允許 Arweave 網絡上的 Warp 等智能合約,EVM 等機制的智能合約也可以插入 ao 網絡,只需要保持數據的格式一致性即可。
或者這樣說,scp 是基於 Arweave 搭建了全鏈的 Layer2,可以接入任意公鏈和 DApp,而 ao 就是超級版的 SCP,可以將任意公鏈、智能合約和 DApp 變成 ao 的一部分。
DeFi 的另一種可能
在現存的 EVM 體系中,智能合約是一切的核心,鏈上行為本質上就是對智能合約的調度和使用,以最常見的 DEX 交易為例,智能合約會在觸發特定條件時按照規定執行對應操作,比如添加流動性,尋找代幣的合約地址等。
但是必須要注意,此時的合約只是個單線程的進程,無法進行並發的調用,所有交易都會被以太坊排序並確定其是否成功或者被 MEV 抢跑攻擊。
如果使用 ao 架構對 Uniswap 進行改造,則可以創造一個並行的、無休的鏈上交易機器人,ao 版 Uniswap 各進程可以設定為不同的觸發機制,但不會相互干擾,並可利用全部計算資源運行,可以這樣理解,這就是一個 Web2 量化級別的鏈上交易所。Arweave 生態上最大的 DEX 項目------ Permaswap 已經採用該方式適配 ao 原生環境。
ao 的每一個進程都具備 Token 的發行能力,以以太坊為例的話,每一個 ERC-20 代幣的發行過程就是Token Process,只需要按照設定的價格區間進行設置,就可以對交易用戶生成訂單,然後完成代幣的交換過程。
實際上以太坊的代幣轉移和交易無比困難,本質上是不同賬戶餘額進行加減運算,最終導致每一筆交易都需要根據以太坊最新需求進行重複計算,造成大量的冗餘數據沉澱在鏈上。
而 ao 改變了代幣轉移時的計算方式,不同的賬戶之間的代幣轉移,本質上是不同的狀態同步,依賴於 MU 的消息傳遞進程,只需要每個過程都發送到 Arweave 網絡上進行存儲,也就是共識發生在計算之前,那麼最終進行組合性的運算即可劃轉資產,而無需整個網絡參與運算。即 ao 上的每個代幣都是並發的,甚至可以為一個代幣建立無數個子賬本,每個子賬本提供獨立並行的運算能力。
在現有的 ao 設計中,允許自動喚醒特定合約,只需要向節點付費便可使用該進程,隨後該進程會按照設定頻率去計算和執行,得益於 Arweave 的廉價和 ao 的高速,執行頻率可以設定的非常密集。
對於用戶而言,ao 執行的是類似計算機的一種程序,而不是抽象的智能合約,比如,接入 EverID 後的 everPay 對接 ao 網絡,那麼 EverID 操作的是 ao 接口,至於 ao 接口後的程序類型則無關緊要,用戶可同時操作多個公鏈上的 DApp 應用,高度類似於現有互聯網終端的使用邏輯,終端會調用網絡中不同的伺服器,為用戶提供簡潔單一的應用接口。
本質上,這是對現存 DeFi 的一種變革,將用戶的操作邏輯統一於一套交互體系之內,同時保存背後的去中心化程度。
全球超級計算機
除了 DeFi 這種傳統的加密需求外,ao 實際上還打開了反哺傳統 Web2 的能力,其中一個重點是 ML(Machine learning)的可信計算。上文也提到,Carl Hewitt 設計 Actor Model 的初衷就是 AI 計算,恰好讓 ao 和 AI 具備了天生的結合能力。
在以往的 AI 和 Crypto 結合中,機器學習的模型無法順暢上鏈,尤其是 LLM 等參數量極大的模型,但是 ao 不同以往,既然用戶可以自行選擇和定制化 ao 調配的資源,並且可以無準入的使用計算服務,並且計算資源本質上是無限擴展且互相合作的,那麼 ML 上鏈似乎並不是不可能。
和 Akash 等去中心化計算市場相比,ao 的優勢不在於 GPU 集群的數量多寡,而是超大規模並行計算能力,Akash 則需要強信任機制才能組建算力市場。
而 ao 則無需犧牲無準入特性,並且要注意,這一切仍然是基於智能合約去實現的,即鏈上運行,存儲於 Arweave 進行狀態證明,並且得益於超強兼容特性,用戶可以以自己習慣的方式去使用鏈上環境,比如運行 LLM 模型,並且其數據都可以保存在 Arweave 網絡之上,同時可以解決 AI 大模型的算力和數據的去中心化需求。
ao 和現有的去中心化算力平台以及雲計算廠商都不相同,這是第一個去中心化的高併發網絡,可以理解為雲廠商具備了智能合約功能,在以太坊遭遇計算和存儲危機的當下,可以說 Arweave 完成了「去中心化算力就是去中心化數據」的奇妙回環。
更簡單的說,以往價格高昂、遠離大眾的超級計算機,現在來到了每個人身邊,並且沒有任何人可以控制它的開始、運行和結束,只要一個進程開始,只有在智能合約設定終止的條件下才會結束,否則會永久的運行下去。
結語:Arweave 未來
ao 到來之後,疊加 SCP 範式的能力,Arweave 有機率成為永久的存儲和無限的計算之網,但是要注意,目前的 ao 運行節點仍處於測試網狀態,並且依賴於代碼中寫好的懲罰 slash 機制去運作。
理論上的最優不等於現實中的可行,ao 希望成為一個無限延伸的、可實時擴展的計算之網,用戶擁有完全的控制權,但是 Arweave 上的各類生態並不活躍,尤其是主流 DeFi 應用仍舊比較匱乏,不僅少於以太坊,甚至落後於 Filecoin 推出 FVM 的情況。
總體上,ao+SCP+Arweave 確實打開了區塊鏈的另一種可能性,但是這種可能性還需要時間的驗證。