撰文:0xjs@
在預(yù)告推出超平行計算機(jī)AO兩周后,北京時間2024年2月28日凌晨,去中心化存儲項(xiàng)目Arweave正式發(fā)布AO公開測試網(wǎng)。
從預(yù)告到正式推出,Arweave代幣AR價格已經(jīng)上漲超過1倍。
據(jù)Arweave團(tuán)隊(duì)說法,Arweave早在2020年初就有此想法,即Arweave數(shù)據(jù)存儲平臺可以支撐高度可擴(kuò)展的區(qū)塊鏈網(wǎng)絡(luò)。2023年在制定使用代幣代表內(nèi)容所有權(quán)的計劃時,意識到需要一個高度可擴(kuò)展的網(wǎng)絡(luò)來支持此類代幣的市場,隨后開始默默開發(fā)。
Arweave創(chuàng)始人Wiliams表示,AO構(gòu)建了一臺超并行計算機(jī),其可以同時并行運(yùn)行任意數(shù)量線程的計算機(jī),可擴(kuò)展性令人難以置信。
也就是說,原本做去中心化存儲的Arweave進(jìn)入計算和智能合約市場。盡管其采取的架構(gòu)和方法,和以太坊等公鏈迥異,但事實(shí)上已經(jīng)進(jìn)入公鏈?zhǔn)袌霾⒑退鼈兏偁帯?/p>
Arweave創(chuàng)始人Williams表示,AO有信心與以太坊競爭。那么,到底什么是AO?有何特性讓其創(chuàng)始人有信心與以太坊競爭?
什么是AO?
據(jù)AO官方文檔,AO計算機(jī)是面向參與者的(actor oriented)機(jī)器,從遵守其核心數(shù)據(jù)協(xié)議的節(jié)點(diǎn)網(wǎng)絡(luò)中涌現(xiàn),運(yùn)行在Arweave網(wǎng)絡(luò)上。下面簡要介紹該協(xié)議及其功能以及技術(shù)細(xì)節(jié)。
AO計算機(jī)是一個單一的、統(tǒng)一的計算環(huán)境(Single System Image,單系統(tǒng)映像,其是分布式計算的一種模式,使用一個多網(wǎng)絡(luò)的通用接口,分布式數(shù)據(jù)庫,或者多個服務(wù)器,但對用戶而言是一個系統(tǒng)),托管在分布式網(wǎng)絡(luò)中的一組異構(gòu)節(jié)點(diǎn)上。AO旨在提供一個環(huán)境,其中可以駐留任意數(shù)量的并行進(jìn)程,并通過開放的消息傳遞層進(jìn)行協(xié)調(diào)。這種消息傳遞標(biāo)準(zhǔn)將機(jī)器的獨(dú)立操作流程連接到一個“網(wǎng)絡(luò)”中,就像網(wǎng)站在獨(dú)立服務(wù)器上運(yùn)行但通過超鏈接連接成一個凝聚的統(tǒng)一體驗(yàn)一樣。
與現(xiàn)有的去中心化計算系統(tǒng)不同,AO能夠支持計算操作而無需協(xié)議強(qiáng)制限制大小和形式,同時還保持網(wǎng)絡(luò)本身的可驗(yàn)證性(從而實(shí)現(xiàn)信任最小化)。此外,ao分布式和模塊化架構(gòu)允許現(xiàn)有的智能合約平臺輕松“插入”網(wǎng)絡(luò),充當(dāng)可以從任何其他進(jìn)程發(fā)送和接收消息的單個進(jìn)程。
AO,不是對計算環(huán)境的所有用戶強(qiáng)制執(zhí)行一組選擇,而是以模塊化形式構(gòu)建。AO允許用戶選擇最適合他們的虛擬機(jī)、去中心化排序權(quán)衡、消息傳遞安全保證和支付選項(xiàng)。然后,通過將所有消息(每條消息共享相同的格式)最終結(jié)算到 Arweave 的去中心化數(shù)據(jù)層上來統(tǒng)一該模塊化環(huán)境。這種模塊化創(chuàng)建了一個適合極其廣泛的工作負(fù)載的統(tǒng)一計算環(huán)境,其中每個進(jìn)程都可以輕松地傳輸消息并進(jìn)行協(xié)作。
AO的核心目標(biāo)是在沒有任何實(shí)際規(guī)模限制的情況下實(shí)現(xiàn)無需信任和協(xié)作的計算服務(wù)。這為應(yīng)用程序提供了一個以前不可能的全新設(shè)計空間,其融合了智能合約應(yīng)用程序(除了代碼之外不需要信任任何東西的服務(wù))和傳統(tǒng)計算環(huán)境(Amazon EC2 等)的優(yōu)點(diǎn)。
由于其可擴(kuò)展性,開發(fā)人員使用AO的自然方式是在網(wǎng)絡(luò)內(nèi)生成自己的命令行 (aos) 進(jìn)程,并開始發(fā)出命令。這個開發(fā)者體驗(yàn)類似于開發(fā)人員在云主機(jī)上創(chuàng)建新的服務(wù)器實(shí)例并通過 SSH 連接到它,只不過這個命令行過程具有智能合約的屬性。他們的命令行進(jìn)程ao并不存在于任何特定的數(shù)據(jù)中心或任何一個物理位置,并且其計算是完全無需信任的。每個用戶都可以與其他所有進(jìn)程和程序發(fā)送消息并進(jìn)行交互。其結(jié)果是一個全局性的“單系統(tǒng)映像”:一臺統(tǒng)一的計算機(jī)——分布在世界各地,以任何規(guī)模運(yùn)行——在所有用戶之間共享。
從最終用戶或開發(fā)人員的角度來看,AO本質(zhì)很簡單: AO是一臺共享計算機(jī),他們可以在其中運(yùn)行任意數(shù)量的進(jìn)程。這些進(jìn)程不托管在任何特定服務(wù)器上,也不受任何個人或團(tuán)體的控制。相反,一旦啟動,這些流程就可以通過加密方式委托,以可證明中立的方式永久地提供服務(wù)。這使他們能夠隨著時間的推移保證用戶的權(quán)利。
AO核心功能
與現(xiàn)有的去中心化和分布式計算系統(tǒng)相比,AO協(xié)議具有以下特點(diǎn):
并行運(yùn)行任意數(shù)量的進(jìn)程(“合約”):在AO中,應(yīng)用程序由任意數(shù)量的通信進(jìn)程構(gòu)建。受到原始 Actor 模型(Carl Hewitt,1973)和Erlang的啟發(fā),ao不允許進(jìn)程之間共享內(nèi)存,但允許它們通過原生消息傳遞標(biāo)準(zhǔn)進(jìn)行協(xié)調(diào)。然后,這些進(jìn)程中的每一個都可以以可用計算資源的全速運(yùn)行,而不會相互干擾。通過專注于消息傳遞,AO可以實(shí)現(xiàn)比傳統(tǒng)智能合約更類似于傳統(tǒng) Web2/分布式系統(tǒng)環(huán)境的擴(kuò)展機(jī)制。
進(jìn)程中的無限資源利用:建立在SmartWeave和LazyLedger原始版本(后來改名為Celestia)的延遲評估架構(gòu)之上,AO網(wǎng)絡(luò)中的節(jié)點(diǎn)根本不需要執(zhí)行任何計算即可就程序狀態(tài)達(dá)成共識過渡。狀態(tài)由 Arweave 托管的進(jìn)程消息日志“全息”暗示。然后,計算成本被委托給用戶,他們可以計算自己的狀態(tài),或者請求由他們選擇的節(jié)點(diǎn)執(zhí)行。
訪問原生無限硬盤Arweave:AO進(jìn)程可以無縫地將任何大小的數(shù)據(jù)直接加載到內(nèi)存中、執(zhí)行并寫回網(wǎng)絡(luò)。這種設(shè)置消除了典型的資源限制,并實(shí)現(xiàn)了完全并行執(zhí)行,極大地擴(kuò)展了應(yīng)用程序開發(fā)的可能性,超越了傳統(tǒng)智能合約平臺的限制。因此,它為需要大量數(shù)據(jù)處理和計算資源的復(fù)雜應(yīng)用程序打開了大門,例如機(jī)器學(xué)習(xí)任務(wù)和高計算自主智能體。
自動激活合約:在傳統(tǒng)的智能合約環(huán)境(如以太坊、Solana、Polygon 等)中,合約會根據(jù)用戶交易的請求“喚醒”以執(zhí)行計算。這創(chuàng)建了一個環(huán)境,在該環(huán)境中,除非用戶與程序交互,否則程序不是“實(shí)時”的,從而縮小了可以在其上構(gòu)建的應(yīng)用程序的范圍。ao通過允許合約進(jìn)行預(yù)定的“cron”交互來消除此限制,這些交互會自動喚醒它們并按設(shè)定的時間間隔執(zhí)行計算。任何用戶,或者實(shí)際上是進(jìn)程本身,都可以向節(jié)點(diǎn)付費(fèi)以“訂閱”進(jìn)程,以便以適當(dāng)?shù)念l率觸發(fā)計算評估。
支持?jǐn)U展的模塊化架構(gòu):ao的核心架構(gòu)是一個開放數(shù)據(jù)協(xié)議,任何人都可以構(gòu)建其實(shí)現(xiàn)。所有東西——從排序器、消息傳遞中繼器,甚至系統(tǒng)的虛擬機(jī)——都可以隨意交換和擴(kuò)展。這種靈活性將允許 Arweave 生態(tài)系統(tǒng)中現(xiàn)有的智能合約系統(tǒng)(Warp、Ever、Mem 等)插入ao統(tǒng)一網(wǎng)絡(luò)并能夠從統(tǒng)一網(wǎng)絡(luò)發(fā)送和接收消息。這也將允許所有這些智能合約系統(tǒng)共享一些相同的基礎(chǔ)設(shè)施和工具,從而在 Arweave 上提供更加連貫的計算體驗(yàn)。
AO基本架構(gòu)
進(jìn)程(Processes):網(wǎng)絡(luò)的計算單元。進(jìn)程由存儲在 Arweave上的交互消息日志以及初始化數(shù)據(jù)項(xiàng)表示。進(jìn)程在初始化時定義其所需的計算環(huán)境(其虛擬機(jī)、調(diào)度程序、內(nèi)存需求和必要的擴(kuò)展)。雖然流程以這種方式在共識級別上表示,但它們也意味著可以由滿足要求的計算單元計算并選擇執(zhí)行該流程的狀態(tài)。除了從用戶錢包接收消息之外,進(jìn)程還通過消息單元轉(zhuǎn)發(fā)來自其他進(jìn)程的消息。流程開發(fā)人員可以自由選擇如何確定這些消息的可信度。
消息(Messages):與進(jìn)程的每次交互都由消息表示。消息的核心是符合ANS-104標(biāo)準(zhǔn)的數(shù)據(jù)項(xiàng)。用戶和進(jìn)程(通過其發(fā)件箱和消息單元)可以通過調(diào)度程序單元將消息發(fā)送到網(wǎng)絡(luò)上的其他進(jìn)程。AO消息的語義介于UDP和TCP數(shù)據(jù)包之間:保證僅傳遞一次,但如果消息從未被消息單元轉(zhuǎn)發(fā)——或者接收者從未實(shí)際處理它——那么它的傳遞將不會發(fā)生。
調(diào)度程序單元 (Scheduler Units,SU):負(fù)責(zé)將發(fā)送給進(jìn)程的信息分配 slot 編號并確保數(shù)據(jù)上傳到 Arweave。調(diào)度程序單元負(fù)責(zé)將原子遞增的slot編號單一分配給發(fā)送到進(jìn)程的消息。分配后,調(diào)度程序需要確保數(shù)據(jù)上傳到 Arweave,從而永久可供其他人訪問。進(jìn)程可以自由選擇其首選的排序器,可以通過多種方式實(shí)現(xiàn):去中心化、中心化甚至用戶托管。
計算單元 (Compute Units,CU):計算單元是用戶和消息單元可以用來計算AO中進(jìn)程狀態(tài)的節(jié)點(diǎn)。雖然 SU 有義務(wù)對它們已接受的進(jìn)程的消息進(jìn)行排序,但不需要 CU 來計算進(jìn)程的狀態(tài)。這創(chuàng)建了一個點(diǎn)對點(diǎn)的計算市場,其中 CU 提供解決進(jìn)程狀態(tài)的服務(wù),并相互競爭——權(quán)衡價格、進(jìn)程的計算要求和其他參數(shù)。一旦狀態(tài)計算完成,CU 將向調(diào)用者返回特定消息解析的輸出(日志、發(fā)件箱和生成其他進(jìn)程的請求)的簽名證明。CU 還可以生成并發(fā)布其他節(jié)點(diǎn)可以加載的簽名狀態(tài)證明——可選擇支付UDL指定費(fèi)用。
通信單元 (Messenger Units,MU):一種根據(jù) cranking 的進(jìn)程在AO網(wǎng)絡(luò)中傳遞消息的節(jié)點(diǎn),將消息傳遞給計算單元,并協(xié)調(diào)以計算輸出結(jié)果。本質(zhì)上,當(dāng) MU 在系統(tǒng)中發(fā)送消息時,它們將其發(fā)送到適當(dāng)?shù)腟U進(jìn)行處理,然后與CU協(xié)調(diào)以計算交互的輸出,然后對任何生成的發(fā)件箱消息遞歸地重復(fù)該過程。這個過程一直持續(xù)到?jīng)]有更多的消息需要處理為止。
結(jié)語
AO的推出,意味著Arweave從存儲平臺轉(zhuǎn)身為計算平臺。盡管AO采取的架構(gòu)和方法完全不同于傳統(tǒng)的區(qū)塊鏈,AO已經(jīng)處于與以太坊等眾多智能合約公鏈的競爭地位。
AO聲稱自己擴(kuò)展性極強(qiáng),讓人們無疑以為又是一個“以太坊殺手”。
AO未來到底能會給加密市場帶來什么改變?
AO目前還處于測試網(wǎng)階段,一切后續(xù)發(fā)展都還有待觀察。