原文標題: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 開始於狀態q0∈B,並在狀態qn∈E 結束,則該意圖被視為已實現。
意圖清除:如果B、E、T集合有非空的交叉點,則可以清除一組to,…,tm的意圖,允許使用這些交叉點創建元意圖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 的意圖構成模型帶來了廣義的意圖模型,在隱私限制條件下,這些模型可能在技術上難以解決,因為效率上的取捨會限制可保密的資訊量。
小結
意圖作為一個研究和工程問題,目前是加密技術中一個非常有趣的領域。
意圖領域需要解決的開放式問題:
- 意圖的正式定義
- 除DEX 以外以意圖為中心的應用架構是什麼?
- 在解決任何最佳化問題時,設計隱私與效用之間的取捨時,都要求能夠獲得盡可能多的資訊。如果要實現隱私的意圖,就必須揭露一定程度的資訊才能解決意圖問題。
- 解決意圖問題所需的最基本知識是什麼?
- 如果你要切斷獲取其他知識的途徑,那麼你所要做出的取捨是什麼?
- 如何以一種通用的方式來表達這種隱私與效率之間的取捨。
通用意圖可能過於龐大導致難以解決,而對於以太坊這樣龐大的狀態空間來說,這就會演變成難以解決的問題。這就表明,解決意圖問題最好有一些限制條件,而且在嘗試組合意圖時也應受到限制(當存在共同意圖時)。在我看來,通用意圖在實務上極難實現,而以意圖為中心的架構在本質上將是針對應用的。
雖然這些都是研究問題,但實現意圖的設計選擇也會產生各種工程問題。它可能會導致過度依賴(經許可的)中間商,這就有可能導致基礎設施集中在不同的堆疊中(在UniswapX 的案例中,77% 的交易量是鏈外庫存填充)。它還將鞏固受信中間商的地位,提高參與門檻,扼殺創新,這在MEV 中已經有所體現。任何意圖協議的設計都必須在無權限、隱私、透明和去中心化之間取得平衡。