作者:Bastian Wetzel;編譯:深潮TechFlow
事實證明,在Web3 中使用當前的各種系統是一項複雜且耗時的工作。它涉及在不同的基礎設施之間指定執行路徑,這需要全面的理解。因此,用戶在實現最終目標時面臨持續的挫折,並容易受到更複雜的參與者的利用。
這種情況的出現是因為用戶與以太坊進行交互的主流標準方法,需要以特定格式創建和簽署交易,該格式提供了以太坊虛擬機(EVM)執行狀態轉換所需的所有必要信息。
意圖(Intents) 的引入旨在減輕用戶的負擔。本質上,意圖是一組聲明性約束,允許用戶將交易創建委託給專門的第三方參與者網絡,同時保留對過程的完全控制。簡單來說,如果一個交易指定了”如何”執行一個操作,那麼意圖定義了該操作的”期望結果是什麼”。
這種聲明性方法在用戶體驗和效率方面帶來了令人興奮的進步。通過意圖,用戶可以輕鬆地表達他們的期望結果。這與當前的命令式交易形成鮮明對比,其中每個參數都必須由用戶明確指定。
Tx(交易) 對終端用戶來說是一條死胡同
Web3 中當前基於Tx 的方法被證明是複雜的,導致用戶體驗不佳和效率損失,因為用戶被迫在沒有足夠訪問信息或使用複雜執行策略的情況下做出決策。
為了說明這種複雜性,考慮以下場景:您希望與Arbitrum 網絡上的去中心化應用(dApp)進行交互,但您的資金目前存儲在以太坊區塊鏈上:
-
訪問dApp 網站
-
嘗試將您的錢包連接到Arbitrum,但發現沒有可用的資金
-
打開一個新標籤頁,探索將您的資金跨鏈的最佳方法
-
前往跨鏈橋
-
將您的錢包連接到另一個區塊鏈(以太坊)
-
將資金從以太坊轉移到Arbitrum
-
等待跨鏈完成
-
返回原始標籤頁
-
將您的錢包切換回Arbitrum
-
現在,您終於可以使用在Arbitrum 上橋接的資金使用dApp 了。
甚至在用戶有機會與dApp 本身進行交互之前,就已經感到沮喪。在未來百萬個Rollup 的世界中,這些問題變得更加明顯。
那麼,我們如何從命令式範式轉變為聲明式範式呢?為了理解基本原理,讓我首先簡要總結一下基於賬戶抽象的概念(AA)。
賬戶抽像簡要回顧
在以太坊中,有兩種類型的地址:智能合約和外部擁有賬戶(EOA)。
EOA 有能力發起交易,智能合約不行。因此,今天使用的大多數以太坊錢包都是EOA。雖然有智能合約錢包(SCW),如Safe,但它們需要EOA 觸發任何交易,因為智能合約本身無法發起交易。儘管如此,SCW 具有顯著的優勢,因為它們可以執行複雜邏輯,為錢包提供各種新應用,而EOA 僅限於簽名。
為了滿足對SCW 的需求,而不需要單獨的EOA,ERC-4337 引入了一種稱為用戶操作(UserOp)的新型交易類型,並引入了一個名為”Bundlers”的新角色。此外,ERC-1271(用於合約的標準簽名驗證方法)引入了一種標準方法,用於驗證給定合約的簽名是否有效。這些更新改善了SCW 的用戶體驗,為用戶提供了更流暢的流程。具體過程如下:
-
用戶簽署一個UserOp,指定所需的操作。 UserOp 不直接發送到主要內存池,而是多個用戶將其發送到備用內存池。在這裡,執行者和Bundlers 發揮作用,將這些UserOp 捆綁在一起,並將它們作為捆綁包提交給入口合約。然後,該入口合約與智能合約錢包進行通信。
-
一旦SCW 接收到捆綁的UserOp,它經歷一個兩步過程。首先,它執行ValidateOp,這涉及檢查適當的簽名者、訪問控制和速率限制,以確保操作是合法和安全的。驗證成功後,SCW 繼續使用ExecuteOp 函數執行操作。這些操作可能包括轉移資金、執行交換或購買NFT 等任務。
賬戶抽象的一個關鍵優勢是Gas 抽象,它簡化了用戶的Gas 支付過程。這就是支付主體的作用。支付主體合約充當另一個實體。當用戶發送交易時,UserOp 被發送到支付主體合約。支付主體驗證並確保它將支付交易的Gas 成本。它將相應數量的原生Gas 代幣退還給Bundlers,充當退款機制。只有在處理完這筆Gas 支付後,UserOp 才會經過ValidateOp 和ExecuteOp 階段。
支付主體還允許用戶在執行UserOp 之後執行其他操作,提供了進一步的靈活性和控制。通過利用支付主體和Gas 抽象,用戶可以進行交易而無需擔心直接管理Gas 成本,使流程更加流暢和友好。
AA 的一個限制是它無法支持跨鏈付款人。讓我們考慮這樣一個場景:用戶在以太坊網絡上的SCW 上擁有USDC,但希望使用支付主體來支付Arbitrum 網絡上的交易費用。當支付主體在後操作函數期間嘗試將USDC 從用戶轉移到支付主體時,就會出現問題。 USDC 存儲在以太坊上,而支付主體合約位於Arbitrum 上。基本上,賬戶抽象主要設計用於單域使用,並且缺乏在多個鏈上無縫操作的內在能力。
特定於Intents( 意圖) 的應用程序
賬戶抽象通常被簡化為”無需Gas 交易”、”無需助記詞恢復”和可能的”速率限制”。是的,這些功能確實很有趣,但還不夠酷。它們可能無法完全捕捉到AA 真正引人注目的本質。賬戶抽象最引人注目的方面在於其架構,它將錢包轉化為意圖的入口。
那麼,什麼是意圖?
在標準的交易過程中,當驗證者收到交易簽名時,它們會根據特定狀態遵循特定的計算路徑。此外,費用作為激勵,促使驗證者按照這種方式進行操作。然而,使用意圖時情況有所不同。意圖不規定固定的計算路徑,而是允許滿足特定條件的任何路徑。當用戶簽署並共享意圖時,他們授權接收者代表他們選擇計算路徑。這種區別使得意圖更精確地定義為簽名消息,促進從給定起始點開始的一系列狀態轉換。
值得注意的是,單個交易可以包含多個意圖,從而實現重迭意圖的匹配。這顯著提高了Gas 和經濟效率。例如,在由構建者維護的訂單簿中,可以在達到市場之前高效地將兩個訂單相互抵消。此外,意圖允許更靈活的用戶Gas 支付,例如允許第三方贊助Gas 或接受不同代幣的支付。
因此,UserOps 不是意圖,因為它們基本上是Tx。然而,AA 使錢包成為意圖的入口,這是通過智能合約錢包內的驗證邏輯實現的。這種驗證邏輯允許表達和執行與用戶賬戶相關的簡單意圖。然而,SCW 缺乏對全局狀態進行推理的能力。
賬戶抽像在根本上是為了服務於”特定意圖”。在這種情況下,用戶可以通過其SCW 指定和實施簡化的意圖,只要這些意圖滿足某些限制性要求:
-
它們專注於單一領域;
-
它們只使用和執行與用戶賬戶相關的信息;
-
它們涉及Gas 補償。
特定於意圖應用程序的示例
因此,帳戶抽象主要迎合以用戶為中心的目標。然而,還有許多”意圖特定”應用程序的例子可以使用AA 實現,正如Paradigm 所強調的:
-
限價訂單:用戶可以指定只有在他們收到至少200 個Y 代幣時,才能從他們的賬戶中取走100 個X 代幣。
-
Gas 贊助:用戶可以選擇使用USDC 支付交易費用,而不是ETH,並在其賬戶中分配USDC 以支付付款人的Gas 費用。
-
委託:可以以預授權的方式限制與特定賬戶的交互。例如,ETH 可以指定用於購買OpenSea 上列出的NFT,或者特定地址可以限制僅與Uniswap 和Sushiswap 進行交互。
-
交易批處理:用戶可以允許將多個意圖批處理到單個交易中,以提高Gas 效率。
-
聚合器:用戶可以指定使用”最佳”價格或收益進行特定操作。這個意圖可以通過提供在多個場所執行聚合併選擇最佳路徑的證明來實現。
雖然AA 和意圖特定應用程序是重大進展,但它們在多鏈環境中也有其局限性。讓我們考慮這樣一個場景:我擁有ETH,並希望通過利用不同Rollup 上的流動性盡可能多地購買代幣XYZ。使用AA,我可以輕鬆快速地在任何Rollup 上使用我喜歡的DEX 聚合器。然而,挑戰在於我仍然需要手動發現在所有Rollup 上可用的最佳DEX 聚合器。
因此,在多鏈世界中,需要一種全面而靈活的意圖語言,能夠有效地提升擴展性。
通用解決方案
在以意圖為中心的世界中,用戶聲明或簽署他們的偏好,網絡依賴第三方參與者(求解器/ 執行者)代表他們執行這些偏好。
需要強調的是,當前基於交易的方法也允許用戶外包交易,但不同之處在於第三方是誰。現在,應用程序代表用戶構建交易,而且他們這樣做並沒有為獲得最佳結果進行優化。因此,意圖的創新不在於將交易創建外包給第三方,而是增加了一個專門的第三方網絡,可以提供更好的結果。
這可以提高執行效率,因為這些求解器可以集成更多關於其他鏈狀態的信息,而無需與用戶進行通信。
為了說明這一點,讓我們回顧一下我擁有ETH 並且目標是通過利用不同Rollup 之間的流動性購買盡可能多的XYZ 幣的情景。在以意圖為中心的世界中,我可以告知內存池我擁有ETH,並且希望獲得最大可能數量的XYZ 幣。一個高度複雜的求解器,將高效地找到一個解決方案。這些求解器的激勵應該導致相當優化的結果。在這種多鏈環境中,即使是基本任務也變得不切實際,例如一個單一公司運行一個DEX 聚合器來與所有新的Rollup 和領域集成。因此,在這樣的多鏈環境中,特定於意圖的應用缺乏可擴展性。然而,對於意圖而言,一種靈活且通用的語言可以有效地擴展,因為它作為一個無需許可的系統運作。沒有必要讓一家公司充當涵蓋每個鏈的全鏈DEX 聚合器。相反,一組求解器可以競爭為用戶提供服務,其中一些專門用於特定的Rollup 類別,其他一些用於不同的領域。這種方法表明,跨鏈的意圖具有重要的實用性和能力,超越了普通的賬戶抽象,即使對於簡單的用例也是有利的。
表達、傳達和執行意圖的理想基礎設施應該最小化礦工可提取價值(MEV),最大化抗審查性,並針對跨領域交互進行優化。此外,它應該仔細考慮精細用戶意圖傳達和用戶體驗之間的平衡,因為這個決定對意圖協議的架構有重大影響。此外,還有許多未解答的問題,例如如何證明什麼是最優的,跨領域意圖將在哪裡發布,以及求解器將如何確定要搜索什麼。
通用解決方案的示例
雖然這個願景很有前途,但第一步是建立一個意圖層,用戶可以在其中表達他們的意圖,而求解器可以競爭解決這些意圖。像Anoma、SUAVE、Essential 和CoW Protocol 這樣的項目都在爭取成為區塊鏈的意圖層,採用不同的方法。
然而,由於意圖層的概念正在發展,並且其中許多設計原則似乎相互矛盾,因此現在還為時過早來進行比較。建立這樣一個層面面臨著重大挑戰。
Anoma 是一個用於全棧去中心化應用的統一架構。它從頭開始設計,用於涉及無限用戶、發出無限數量意圖的應用,每個意圖的複雜性各不相同。 Anoma 遵循意圖為中心和同質架構/ 異質安全的原則,共同構成了構建去中心化應用的聲明性範式。意圖被提交給意圖傳播節點,它們形成意圖池。撮合器分析這些池,找到可以組合的意圖,當它們組合在一起時可以相互滿足。該協議的狀態機通過作為用戶賬戶上的不變量的有效謂詞,實現了逐步執行和解耦的驗證。 Anoma 使得構建新穎應用變得簡單,這些應用在現有的以太坊(EVM)和類似以太坊的協議上構建起來可能笨重、有限或不可能。
SUAVE 是用於價值表達的統一拍賣協議。 SUAVE 試圖賦予用戶權力,並實現公共區塊鏈的最大去中心化。 SUAVE 將內存池和區塊構建角色從現有的區塊鏈中解耦,並提供了一個高度專業化和去中心化的即插即用替代方案。共享相同的排序層使得加密貨幣保持去中心化,區塊構建者可以捕獲跨領域的MEV,驗證者可以最大化收入,用戶可以進行最佳執行的交易,同時減少對每個領域的經濟集中壓力。 SUAVE 是一個集成環境,促進了在表達、執行和結算偏好方面的去中心化協作。核心概念是偏好,用戶簽署的消息用於表達目標,實現在多個區塊鏈上進行簡單轉賬或複雜序列的功能。求解器競爭提供最佳執行,包括捕獲MEV 和提供去中心化的訂單流價值。
Essential 正在開發一系列產品,推動區塊鏈生態系統從價值提取向意圖滿足的轉變。他們正在創建一種用於表達意圖的領域特定語言(DSL),一種面向意圖的賬戶抽象的以太坊標準,以及一個模塊化的意圖層。 DSL 允許標準化的意圖表達和優化求解,增強了意圖為基礎的應用的組合性和開發性。面向意圖的賬戶抽象標準賦予求解器根據用戶意圖構建有效交易的能力,將意圖功能引入現有的EVM 鏈。模塊化的意圖層確保了僅意圖的架構、聚合的訂單流、MEV 抵抗和跨鏈意圖執行的可能性。 Essential 的使命是賦予用戶權力,消除剝削,促進以用戶為中心和公平的區塊鏈未來。
CoW Protocol 技術為交易者和求解器構建了一個網絡,實現了無需信任和高效的點對點交易。 CoW Protocol 通過將批量拍賣作為一個關鍵概念,將自己獨特地定位為離散時間結算層(如以太坊)的原生交易基礎設施,並為用戶提供公平和可訪問的交易。交易可以直接通過底層的鏈上AMM 進行結算,也可以通過DEX 聚合器進行結算,具體取決於哪個池/ 路徑提供最佳價格。因此,它本質上是Dex Aggregator 的Dex Aggregator。 CoW Protocol 通過Coincidence of Wants(CoWs)實現批量拍賣,以最大化流動性,並在需要時利用所有可用的鏈上流動性。協議不斷運行批量拍賣,因為求解器,即負責找到最優批量結算的各方,競爭解決它。
意圖實驗項目概述
下面的插圖提供了一份非詳盡的意圖實驗項目概述。然而,需要承認的是,不同類別之間可能存在一些重迭,並且這個展示是簡化的。目前引起重大關注的意圖特定應用的典型例子是1inch Fusion 或UniswapX。由於這個領域還很年輕且快速發展,這個插圖可能在短短幾個月內發生很大變化。
結束語
對於最終用戶來說,Web3 中當前基於Tx 的方法被證明是複雜且耗時的。它涉及在各種基礎設施之間指定執行路徑,導致用戶體驗令人沮喪,並可能被更複雜的參與者利用。基於意圖的應用程序提供了從命令式範式到聲明式範式的有希望的轉變,增強了用戶體驗並最小化了MEV。雖然賬戶抽象(AA)和特定意圖的應用程序帶來了令人興奮的進展,但它們也存在一些限制,特別是在多鏈世界中。
為完全以意圖為中心的世界構建一個意圖層面面臨著重大挑戰,因為我們需要克服當前系統的複雜性,並創建一個用戶友好、高效和去中心化的基礎設施來表達和執行意圖。因此,我們離這個範式還有很長的路要走。然而,有幾個項目正在致力於這個努力,我們預計未來會有更多項目湧現。
隨著意圖的採用不斷增長(在ERC4337 的推動下),用戶可能會轉向替代內存池。謹慎管理至關重要,以防止中心化風險和尋租中介機構的崛起。