以 Cowswap、Uniswap、Anoma 等為例,詳解意圖如何優化交易體驗?
原文標題:An Incomplete Primer on Intents 原文作者:0xemperor.eth 編譯:倩雯,ChainCatcher
近期在加密領域的研究討論中,意圖流行起來,各種協議都在利用這一概念,例如 Anoma、Essential 等協議都在借鑒這一概念。
本文旨在對各種觀點進行初步介紹,最後介紹用自然語言表達意圖時意圖解決架構的呈現形式。意圖概念若能成功,則有望在各個層面徹底改變應用架構。
意圖是什麼?
意圖允許用戶指定某些交易條件或偏好,而無需提供準確的消息調用,從而提高靈活性,降低鏈上複雜性。
在"基於意圖的架構及其風險"一文中,對意圖的定義是:意圖是一組聲明性限制,允許用戶將交易創建外包給第三方,而不放棄對交易方的完全控制。
在一期播客中,來自 Anoma 的 Chris Goes 從兩個方面對其進行了定義:意圖指的是"對某些系統狀態偏好的可信承諾"和"對信息流限制的可信承諾"。
關於意圖的一種直觀 理解方式就是 ,意圖基本上 代表 期望的結果。當你表達一個意圖時,你只是定義了你想要的結果,而不是 實現 目標的過程。
比方說,如果你希望用 Tether(USDT)換取 ETH,那麼你就不需要自己管理整個過程------選擇交易所、建立賬戶/簽署交易、處理轉賬(或清理錢包中的加密貨幣灰塵)等,只需提交一份意圖書,表明我想要用 1 個 ETH 換 2000 個 USDT。另一實體(稱為 Solver)會接受你的意圖,並找出實現它的方法。Solver 會處理雜亂無章的細節,努力為你優化最佳結果。
關鍵在於,意圖側重於結果而非過程。用戶定義所需的結果,而其他人通過過程進行實現。意圖可以讓你指定結果,而不用擔心步驟,從而大大簡化了大多數用戶在加密貨幣中使用的交易流程。
更高維度的想法是,用戶可以定義他們想要的東西,而無需指定他們希望從哪些合約開始交易(我們可以稱之為計算路徑或簡單的交易路徑)。用戶還可以表明他們更喜歡某些路徑或合約,從而對此加以限制。
用例
Cowswap
Cowswap 利用分批拍賣(batch auction)作為其核心價格發現機制。Cowswap 不像 AMM 那樣立即執行交易,而是在鏈外匯總訂單並分批結算。這樣就能為一批交易中的所有交易確定統一的結算價格,消除了即時執行模式中常見的搶先交易等問題。分批拍賣還能同時結算許多交易,從而優化 gas 費。 Solver 之間進行公開競爭,提交訂單結算解決方案 , 確保 每批交易的交易 方能夠 利益最大化 。最佳解決方案會確定最終統一價格。總體而言,分批拍賣實現了公平、效率和 MEV 保護,而即時執行的模式則無法實現這一點。
Cowswap 分批拍賣模式的一項關鍵創新是能夠在訂單之間找到需求重合(coincidences of wants,CoW)。CoW 是具有互惠需求的交易之間的直接點對點結算。這種流動性共享意味著無需外部流動性提供商來促進這些交易。CoW 還可同時包含環形交易中的多個資產。通過最大限度地利用 CoW, 分批拍賣 比孤立的資金池能獲得更多的流動性。在 允許的 情況下,結算將利用 CoW,剩餘部分則通過鏈上流動性來執行。將分批拍賣與 CoW 流動性共享相結合,可為交易者提供更優的定價和執行。
CoWswap 模型與意圖模型類似,用戶以限價訂單的形式表達交易意圖,交易意圖會被輸入訂單簿,Solver 利用訂單簿狀態,將它們以環形交易的形式進行匹配,或通過 AMM 進行路由(即用戶只提及價格,不提及計算路徑或他們想要執行的具體位置)。
Uniswap X
Uniswap X 論文提出了一種去中心化交易協議,它使用簽署的鏈外訂單,並通過荷蘭式拍賣進行鏈上結算。用戶簽署訂單,指定輸入/輸出代幣、數量和價格界限等參數。這些訂單會分發給"填單者"(Filler),由他們競爭最佳執行價格。
Uniswap X 建議通過鏈外詢價系統設定初始荷蘭式拍賣價格。用戶可以向填寫者網絡詢價,並對最佳報價提供短暫的獨占期,以激勵誠實的定價,之後訂單進入公開荷蘭式拍賣。
Uniswap X 和 Cowswap 的 相似之處
- 兩者都使用鏈外簽署的訂單,並在鏈上分批匯總和結算。與鏈上訂單相比,這可以節省 gas 費用
- 兩者都旨在促進流動性提供者之間的競爭,找到最佳的執行價格(流動性提供者在 cowswap 中被稱為 Solver,在 uniswapX 中被稱為 Filler)。
- Cowswap 強調使用 CoW 推動直接的點對點交易,而 Uniswap X 則更側重於整合鏈外和鏈上的流動性來源。
- Uniswap X 中的 RFQ(詢價)系統和簽署模式(用戶表達意圖之後讓其他用戶填寫訂單)都類似於意圖架構。
意圖 的 正式定義
用戶只需表達他們的意圖,比如"我想用 X 資產換 Y 資產",Solver 就會找出如何以最佳方式實現該意圖,並在幕後處理所有區塊鏈相關的細節。Solver 給出意圖已實現的證明,可以參與拍賣等機制,以去中心化的方式實現意圖。
該博客探討了一些定義:
第一個模型:意圖 i 被定義為一個元組 (B,E,T) :
- B 表示支持的 "開始" 狀態集。
- E 表示支持的 "結束" 狀態集。
- T 是一組首選的交易序列。
- 狀態轉換函數 s:Q×T → T 通過一系列事務 t 從起始狀態移動到結束狀態。
如果一個意圖通過事務序列 t∈T 開始於狀態 q~0~∈B,並在狀態 q~n~∈E 結束,則該意圖被視為已實現。
意圖清除 :如果 B、E、T 集合有非空的交叉點,則可以清除一組 t~o~,…,t~m~ 的意圖,允許使用這些交叉點創建元意圖 t'。
正如我們前面提到的,意圖由用戶 發出 ,然後由 Solver 解決 ; 無論 它以任何 格式 表示,意圖 對於 Solver 來說都是一個 優化問題。 通俗地說,用戶可能會提出"我想購買價值 4 ETH 的 BTC"這樣的意圖,Solver 通常會找到一個地方來填充或交換這個訂單。但意圖並不止於此;它們還允許 增加 " 盡可能低的滑點 " 和 " 不在 禁止 美國用戶交易的 DEX 上交易 " 等約束條件,而這些約束條件又成為 Solver 必須牢記的額外約束條件。
挑戰包括 :
- 需要簡化意圖表達。
- 特定意圖可能對用戶福利造成影響,例如 DEX 中的零滑點。
- 由於風險或法律原因,執行跟蹤可能需要關注。
目的就是在清楚地捕獲用戶意圖偏好與計算效率和用戶體驗的實際考量之間取得平衡。
這裡還提到了對意圖搜索的拉格朗日解釋。
對我來說,意圖的表述看起來像是馬爾可夫決策過程。不過,馬爾可夫決策過程的狀態轉換是隨機的,而這將是一個具有絕對狀態轉換值的確定性 MDP,可以用值迭代、策略迭代或 MCTS(蒙特卡洛樹搜索)來求解(最後一部分也用於求解 Alphago 中圍棋的部分)。
意圖 可以促進 用戶體驗
意圖可能是鏈上用戶體驗發展的下一個階段。目前鏈上用戶體驗的方式主要圍繞事務層面,用戶在每筆事務上簽名,這也是操作的一部分。因此,鏈上的每一步都是通過事務來表達的。用非常簡單的話說,意圖就是元 事務 ,其中的活動是在非常抽象的層面上表達的 ,由 Solver 來盡力滿足用戶的意圖需求。 這可能包括以 X 的價格購買一些 ETH,想要獲得盡可能好的交易,這既可以在以太坊上的 Uniswap 上以單筆巨額掉期交易的形式進行,也可以在 roll-up 上進行切分,然後買入 ETH(也要計算費用)。
目前 從 USDC 轉換到 ETH 的簡單 掉期交易 包括 用戶 批准代幣的限額、批准代幣類型,然後批准交易,而在以意圖為中心的世界中, 用戶 可以從這些細節中抽象出來,只需執行感興趣的操作即可。在網頁設計中有一條非官方的規則,即執行任何操作都不能超過三次點擊;目前如果用戶要進行掉期交易,他們必須同時選擇代幣,或許還要調整滑點和交易,這對於一次交易來說工作量看起來不大,但是多次重複之後將是導致十分繁瑣的用戶體驗。
Unibot 以一種非常基本的方式,讓人們看到了針對意圖的架構呈現的模式。它剔除了交易中的複雜部分,為交易者提供了簡單易用的用戶體驗,但是也對可能的靈活性會有一些限制。儘管 該 app 據稱 存在密鑰處理方面的風險, 進而可能導致攻擊,但是它在收取稅費的情況下仍具有 穩定的用戶群,這表明加密貨幣 世界裡 用戶體驗 方面的機會尚待發掘。
會話式 意圖 流程
在以意圖為中心的區塊鏈世界中,人工智能該如何介入?意圖識別的概念在自然語言處理領域已經存在了幾十年,並在對話中得到了大量研究。例如,假設用戶訪問旅遊網站並與聊天機器人對話;最初可能是想要預訂航班或查看預訂或狀態,然後用戶會提供各種詳細信息。如果是預訂機票,用戶需要提供目的地、時間、日期和感興趣的機票等級;在某些情況下,用戶可能還需要選擇機場。在這個例子中,用戶的目的就是對話的意圖,而用戶給出的各種細節就是為實現這一意圖而需要填寫的空格/細節(slot)。
對話中的有註釋的對話狀態
意圖識別和細節填充的另一個例子是,當你打算播放一首歌曲時,句子中會出現與歌曲相關的各種空格(細節),如歌曲名稱和歌曲演唱者。
在對話世界中,意圖分類和空格填充是一個非常複雜的問題,因為你的對話可能會跨越多個回合,有時會有全局意圖和局部意圖,你必須跟蹤眾多狀態。每當你使用 Siri 和谷歌助手安排鬧鐘或在日曆或生日中記錄某事時, 其背後就是某種程度的意圖分類與空格填充。
這與區塊鏈有何關係?當我們從一個以交易為中心的世界轉向一個以意圖為中心的世界時,我們如何從意圖到交易的細節還沒有在大眾討論中出現。意圖池和內存池之間的接口並不存在。訪問鏈上模型並使用它們進行意圖識別和 空格 填充為意圖池和 Solver 提供了一種自然語言接口(在我看來,這是最自然的接口)。
其大體思路是在一個鏈上訪問一組模型,將每個意圖還原為一種 DSL(特定領域語言);這種特定領域語言將包括核心意圖(買、賣、橋接、借/貸)等細節,並有地址、大小、 滑點 偏好等其他 細節 (取決於意圖類型)。全局 DSL 允許任何人部署模型,將意圖 簡化為 特定的 DSL。在存在多個此類模型的情況下,將在模型集合中採取票選出的模型。
鏈上模型的可用性有助於我們安全、可證明地開發這個接口,每個意圖/解法的計算證明都可以得到證明。在某些情況下,捕捉各種模型多數投票 的結果 可能會讓我們深入了解意圖是如何被選擇的,在某些 個別 的情況下,甚至可以幫助 Solver 更好地求解這些意圖。
這裡使用的鏈上模型可以是一個標準的深度學習模型,如 BERT,它正是為此目的而訓練的,或者在集合中使用大型語言模型推理;這一細節可能取決於不同的參與者或 Solver。在加密意圖池的情況下,我們需要使用同態加密或私有推理方法來確保數據隱私,同時還能對其進行計算。每個紀元或每隔幾個紀元,都可以在模型為驗證者的鏈上發布一個證明。驗證者可以是人類,也可以是另一個模型,發布關於模型有效性的聲明。無論模型是否能準確處理意圖,最後這部分流程都能確保模型的生命周期得到考慮。有時,當驗證者是成熟的參與者時,該參與者可能會發現模型的缺陷,而這些缺陷可以迅速解決,並用一個更新的模型取代。
如下圖所示,對於 " 用我錢包裡的穩定幣和灰塵 進行 購買 " 這個行動/想法,一旦它進入意圖池,就會通過各種模型並解析為一個 DSL,其中包含各種細節,如意圖、子行動和需要填充的 細節 。 對 DSL 的解析可以盡可能詳細,也可以盡可能抽象;意圖對話可能會持續幾個回合,因為灰塵的閾值可能需要確定。一旦 DSL 就位,Solver 就可以選擇最佳路徑將這些餘額轉換為 ETH,然後將交易傳遞給內存池。
意圖解決模型示例
另一種 DSL 架構 ------ Essential
賬戶抽象將所有賬戶變成智能合約,使以太坊中的賬戶與簽名者分離。然而, 要 實現完全的賬戶抽象需要對以太坊的核心協議進行 重大的調整 。
EIP 4337 采用了一種不同的方法,在不改變共識層的情況下實現賬戶抽象的好處。它引入了"用戶操作"------提交到備用內存池的偽交易,並由"捆綁者"(bundler)將其捆綁到調用 EntryPoint 智能合約的交易中。
這就可以實現社交恢復、以任何代幣支付費用和分批交易等功能。開發人員可以設立適應不同用例的自定義賬戶。通過避免協議變更,EIP 4337 可以更快地為以太坊帶來這些好處。不過,它也引入了新的複雜性和行為者,如捆綁者和支付者。由此產生的多個內存池、激勵機制和透明度 之間的 動態變化 將需要謹慎的管理。
意圖允許用戶指定一個期望的結果,而不是一個具體的操作。 然後,Solver 幫助用戶以最佳方式實現這一結果。然而,目前的實現方式 存在局限,表現出中心化 、缺乏可組合性以及 Solver 之間競爭不足 。
Essential 公司提出的一項 EIP 計劃將改變這種狀況。通過 EIP 4337 等舉措進行賬戶抽象,可以實現基於智能合約的賬戶,而不是傳統的外部擁有賬戶(Externally Owned Accounts,EOA)。這樣用戶可以提交通用意圖而不需要提交單純的交易。意圖代表用戶期望的結果,可由 Solver 再進行補充,以最大限度地提高參與者的滿意度。
EIP 7521 提出了一个框架,以支持不斷發展的意圖標準,而無需不斷升級智能合約錢包。用戶簽署"用戶意圖",指定由哪個"意圖標準"合約來處理該意圖。這些意圖會提交給 EntryPoint 合約,該合約會像 EIP 4337 中那樣處理簽名驗證。用戶意圖內存池與 ERC 4337 內存池同時存在,Solver 處理意圖。
ERC-4337 賬戶抽象下的用戶意圖
Anoma
Anoma 是一種以意圖為中心的架構,其核心是以編程意圖而非事務來構建基礎架構層。意圖是由用戶簽署的表達偏好的部分狀態變化 ,而非完全的狀態變化交易。 這種以意圖為中心的設計實現了去中心化的交易對手方發現和解決。Anoma 正嘗試從命令式(declarative)範式轉向聲明式(imperative)範式。
摘自 Adrian Brink 關於以意圖為中心的應用的演講
用戶廣播意圖,意圖在意圖八卦網絡中傳播。不同的節點可以根據自己的計算資源和想要服務的意圖類型,專門對某些意圖進行傳播。Solver 觀察意圖,並嘗試將兼容的意圖組合成可在鏈上結算的有效交易。交易使用閾值加密技術提交到加密的內存池,因此無法進行搶先交易。Anoma 還有一個部分意圖模型,允許進行意圖組合。
Chris 就意圖x Rollup - Anoma 部分意圖模型發表演講
Anoma 對隱私的關注點在於 " 用戶層面的選擇 " ,即讓用戶可以靈活地披露自己的意圖信息,並選擇要披露的部分。
該架構由多個組件組成。Tiger 執行引擎使用 ZKP 和同態加密技術處理透明、受保護的私有數據。Typhon 是共識算法。編譯器棧包括 Juvix 語言、AnomaVM 和 VampIR。
該架構具有同構(homogeneous)協議和異構(heterogeneous)安全模型。它可以作為獨立的區塊鏈部署,也可以作為 ZK roll-up 或去中心化訂單簿用於實現以太坊上應用程序的去中心化分布。具有不同安全需求的用戶可以利用相同的協議,同時根據自己所需進行安全方面的取捨。
與以交易為中心的模式相比,Anoma 讓構建去中心化應用程序變得更容易。意圖支持運行 rollup、多元易貨交易和私有 DAO 等新應用。總之,Anoma 提供了一個靈活的模塊化架構,可滿足當代去中心化應用的要求。它專注於意圖而非交易,從而解決交易對手方發現和協調的問題,同時保護隱私。
Anoma 有一套獨特的設計理念,將意圖視為"信息流"和"受限/隱私的信息流",並據此做出了架構和設計選擇。這也說明了一個事實,即 Anoma 的意圖構成模型帶來了廣義的意圖模型,在隱私限制條件下,這些模型可能在技術上難以解決,因為效率上的取捨會限制可保密的信息量。
小結
意圖作為一個研究和工程問題,目前是加密技術中一個非常有趣的領域。
意圖領域需要解決的 開放式問題:
l 意圖的正式定義
l 除 DEX 以外以意圖為中心的應用架構是什麼樣?
l 在解決任何優化問題時,設計隱私與效用之間的取捨時,都要求能夠獲得盡可能多的信息。如果要實現隱私的意圖,就必須披露一定量的信息才能解決意圖問題。
l 解決意圖問題所需的最基本知識是什麼?
l 如果要切斷獲取其他知識的途徑,那麼你所要做出的取捨是什麼?
l 如何以一種通用的方式來表述這種隱私與效率之間的取捨。
通用意圖可能過於龐大導致難以解決,而對於以太坊這樣龐大的狀態空間來說,這就會演變為難以解決的問題。這就表明,解決意圖問題最好有一些 限制 條件,而且在嘗試組合意圖時也應受到限制 ( 當存在共同意圖時 ) 。在我看來,通用意圖在實踐中極難實現,而以意圖為中心的架構在本質上將是 針對 應用的。
雖然這些都是研究問題,但實現意圖的設計選擇也會產生各種工程問題。它可能會導致過度依賴(經許可的)中間商,這就有可能導致基礎設施集中在不同的堆棧中(在 UniswapX 的案例中,77% 的交易量是鏈外庫存填充)。它還會鞏固受信中間商的地位,提高參與門檻,扼殺創新,這在 MEV 中已經有所體現。任何 意圖 協議 的 設計都必須在無權限、隱私、透明和去中心化之間取得平衡。