三個視角理解AO 的顛覆性創新

作者:0xmiddle

可以把AO 理解為無限分片,無限擴容的網路。每個Process 都是一個分片。

AO 不是傳統意義上的區塊鏈。它反常規、反常識的設計,容易讓剛剛了解AO 的研究者在某些關節陷入困惑,尤其是研究者試圖用傳統區塊鏈的架構框定AO 時:

1. 非PoS, 非PoW,AO 所說的「全像共識」究竟是什麼樣的共識機制呢?

2. 沒有哈希鏈,甚至沒有區塊,AO 是如何保證資料不可變?

3. 沒有一個協調中樞, AO 如何保證全域狀態的一致性?

4. 沒有冗餘計算機制,誰來保證計算的可靠性?計算出錯怎麼辦?

5. 沒有共享安全性,如何確保Process 之間的互通性?

我將透過3個視角,用區塊鏈中大家已經熟悉的概念,幫助大家從已知穿越到未知,把未知變成已知,在感性層面理解AO。

分片視角

經過以太坊2.0 、波卡、Near 等公鏈的教育,大家應該對」分片「不陌生。

分片的概念:在區塊鏈中,分片是一種提高網路擴展性的解決方案,透過將網路拆分成多個分片,每個分片獨立驗證和處理交易,並產生自己的區塊,從而提升整體網路效率。分片內可以實現同步互操作,分片之間則透過一定的通訊協定實現異步互通。

Polkadot 是最典型的分片架構。在Polkadot 中,每個平行鏈都是一個分片,平行鏈獨立收集打包自己的區塊鏈,並由中繼鏈隨機分配一個驗證者小組來驗證。平行鏈之間統一的XCM 訊息格式來進行通信,實現互通。

AO 的極致分片

用分片的視角來看,AO 可以理解為一種極致的「分片」:每個Process 都是一個分片。想像一下,如果以太坊的每個智慧合約都運行在一個單獨的分片上會是什麼樣子呢?沒錯,這就是AO。每個Process 都是獨立的,Process 之間的呼叫則是依賴訊息驅動,以完全非同步的方式進行。

模組化視角

但我們發現一個關鍵,在Polkadot 的設計中,存在一個“中繼鏈”,在ETH2.0 中也有“信標鏈”,他們的作用是作為統一的共識層,提供共享安全性。統一共識層要負責對所有分片以及分片之間的訊息傳遞提供直接或間接的驗證服務。而AO 似乎沒有這個元件,那麼AO 的共識層是如何設計的呢?

AO 的共識層其實是Arweave。以模組化的視角理解,AO 可以理解為是Arweave 的L2,以Arweave 為L1 的Rollup,AO 網路運行過程中所產生的所有訊息的日誌都會被上傳到Arweave 永久存儲,也就是說,在Arweave 上有一份AO 網路運作的不可變的記錄。那你可能會問,Arweave 是去中心化儲存平台,並不具備太多運算能力。 Arweave 是如何驗證AO 網路上傳上來的資料呢?

答案是:Arweave 不驗證,AO 網路本身會有樂觀仲裁機制。 Arweave 對於AO 網路上傳上來的消息資料來者不拒,每個訊息都會攜帶它的發出者process id,及運行它的CU(計算單元) 的簽名,也會帶有為它排序的SU(排序單元) 的簽名。當爭議發生時,可以依賴Arweave 上不可變的訊息記錄,引入更多的節點進行重新運算,以創建正確的分叉,捨棄原有的錯誤分叉,並在正確的分叉中罰沒出錯CU 或SU 的押金。這裡要注意,MU 只負責收集Process 的待發訊息,傳遞給SU,是無信任的,不需要押金,也不涉及罰沒。

AO 非常像是以Arweave 為L1 的Optimistic Rollup,只是驗證挑戰過程並不在L1 上發生,而是在AO 網路本身當中發生。

不過這裡還是有個問題,不可能每一筆訊息都等待Arweave 上收錄之後,才去確認,實際上Arweave 的最終確定性形成時間要超過半個小時。所以AO 自己會有一個軟共識層,就像以太坊的Rollups 自己有軟共識層,大多數交易不會等L1 確認,就會上帳。

AO 中的Process 其實是自主決定驗證強度的。

作為訊息接收方的Process 要決定是否要等Arweave 確認後再處理該訊息,還是在軟共識層確認後即處理該訊息,即便在軟共識層確認環節,Process 也可以採取彈性的策略,可以是單個CU 確認後即處理,也可以由多個CU 冗餘確認,並進行交叉驗證後再處理,冗餘度也是由Process 決定。

在實際應用中,驗證強度往往與交易的金額有關,例如

小額交易,採用快速驗證策略,單點確認後即處理

中等額度交易,根據具體額度,採取不同冗餘度的多點確認後處理的策略

大額交易,則採取謹慎驗證策略,在Arweave 網路確認後再處理

這就是AO 所說的「全息共識」+「彈性驗證」的模式,透過將「可驗證性」和「驗證」行為本身解耦,AO 對共識問題採取了完全不同於傳統區塊鏈做法,消息驗證的責任也不在網路本身,而是在接收方Process 本身,或者說在應用程式開發者。

正是因為採取了這樣的共識模型,AO 才有可能採取「極致分片」的無樞紐、無限擴展模型。

當然,彈性驗證導致了不同的Process 的驗證強度不同,在複雜的互通中,可能導致信任鏈斷裂,一個較長的呼叫鏈中的個別環節失敗,會導致整體交易的失敗或錯誤,事實上,在AO 測試網階段,這樣的問題已經有所揭露。我認為,AO 應該會為所有驗證任務設定一個最低驗證強度的標準,讓我們拭目以待AO 即將到來的正式網會有什麼樣的新設計。

資源視角

在傳統區塊鏈系統中,資源被抽象化為“區塊空間”,區塊空間可以被理解為節點提供的儲存、計算和傳輸資源的集合,並透過鏈上區塊有機結合,為鏈上應用提供運行的載體。區塊空間是一種有限的資源,在傳統區塊鏈中,不同的應用程式需要爭奪區塊空間,並為其付費,而節點則透過這種付費來獲利。

AO 中沒有區塊的概念,也自然沒有「區塊空間」的概念。但和其他鏈上的智能合約一樣,AO 上的每個Process 在運行時,也需要消耗資源,它需要節點來臨時存儲交易和狀態數據,也需要節點消耗計算資源,為其執行計算任務,其發出的訊息,需要MU 和SU 傳送到目標Process 那裡。

在AO 中,節點分為三類,CU(計算單元)、MU(訊息單元)、SU(排序單元),其中CU 是承載計算任務的核心。 MU 和SU 則承載通訊任務。當一個process 需要和其他process 互動時,會產生一條訊息,儲存在出站佇列,運行該process 的CU 會簽名該訊息,MU 從出站隊列出提取該訊息,並提交給SU,SU 給訊息賦予一個唯一的序號,並上傳到Arweave 永久儲存。然後MU 再將訊息傳遞到目標process 的入站隊列,訊息投遞完成。可以把MU 理解為訊息的收集者和投遞者,SU 理解為訊息的排序者、上傳者。

至於儲存資源,AO 網路中的MU 只需儲存運算所需的臨時數據,在計算完成後即可丟棄。負責永久儲存的是Arweave,Arweave 雖然無法水平擴展,但其儲存效能的天花板極高,AO 網路的儲存需求,在可預見的未來,還無法觸及Arweave 的天花板。

我們發現AO 網路中的運算資源、傳輸資源、儲存資源都是解耦的,除了Arweave 提供的統一儲存資源外,運算資源和傳輸資源都可以各自水平擴展,沒有任何限制。

越多的、越高性能的CU 節點加入網絡,網絡就會擁有更高的算力,就可以支撐更多的Process 運行;同樣,越多的,越高性能的MU、SU 節點加入網絡,網絡的傳輸效率就越快。也就是說,AO 中的「區塊空間」可以不斷被創造。對於應用程式而言,既可以購買開放市場中的公共的CU 、MU、SU 節點服務,也完全可以自己運行私有節點來為自己的應用程式服務。如果應用程式的業務擴張,則完全可以透過擴容自己的節點來提升效能,正如Web2 應用所做的那樣。這在傳統區塊鏈上是無法想像的。

在資源的定價層面,AO 可以透過供需來靈活調節,從而使得資源的供給可以根據需求伸縮。這種調節會非常靈敏,節點的加入和退出可以非常快速的進行。我們再回頭看以太坊,則會發現,當資源需求急劇上升時,大家除了忍受高昂的Gas 費之外,別無他法,因為以太坊無法透過擴充節點數來提高其性能。

總結

以上,我們透過大多數加密研究者熟知的概念入手,例如「分片」、「模組化」、「Rollup」、「區塊空間」等,切入到AO 的原理和機制中,幫助大家了解AO是如何透過顛覆式的創新,做到幾乎無限擴容的。

現在回過頭來看開頭的幾個問題,你是否已了然呢?

1. 非PoS, 非PoW,AO 所說的「全像共識」究竟是什麼樣的共識機制呢?

AO 的共識機制,其實是一種接近Op Rollup 的設計。在硬共識層面依賴Arweave,在軟共識層面,每個Process 可以自主決定驗證強度,自主決定由多少個CU 節點進行冗餘計算。

2. 沒有哈希鏈,甚至沒有區塊,AO 如何保證資料不可變?

上傳到在Arweave 上的DA 資料是不可變的,為AO 上的所有運算和傳輸過程提供可驗證性。 AO 本身沒有必要限定單位時間內的處理容量,因此不需要設定區塊。 “哈希鏈”和“區塊”,這些用來保證資料不可變的結構,Arweave 鏈是有的。

3. 沒有一個協調中樞, AO 如何保證全域狀態的一致性?

每個Process 都是獨立“分片”,獨立管理其交易和狀態,Process 透過訊息驅動的方式來互動。因此並不需要全局狀態的一致性。 Arweave 的永久儲存提供了全局可驗證性和歷史回溯能力,結合樂觀挑戰機制,可用於爭議解決。

4. 沒有冗餘計算機制,誰來保證計算的可靠性?計算出錯怎麼辦?

AO 沒有全域強制的冗餘電腦制,每個Process 可以自行決定如何驗證發送的每個message 的可靠性。如果計算出錯,可以透過樂觀挑戰的形式發現和修正。

5. 沒有共享安全性,如何確保Process 之間的互通性?

Process 需要自行管理每個與之互通的Process 的授信,可對不同安全等級的Process 採用不同等級的驗證強度。對於呼叫鏈比較複雜的互通,為了避免信任鏈斷裂所帶來的較高的糾錯成本,AO 可能會有一個最低限度的驗證強度要求。

Total
0
Shares
Related Posts