以太坊上的通用經濟抽象
以太坊愛好者(ID:ethfans)以太坊愛好者(ID:ethfans)以太坊愛好者(ID:ethfans)
在Astro 錢包(最近已被Coinbase 收購)過去兩年的大部分時間裡,我們都在研究各種形式的經濟抽象(economic abstraction)。我們想要和區塊鏈行業中更多的同仁分享我們的發現,希望可以為dApp 如今所面臨的諸多用戶體驗問題提供一些指導。
定義
定義
定義
一級標題
定義
讓我們舉幾個例子來進一步闡明它的意思:
二級標題
用戶想要轉移USDC,但苦於錢包中沒有ETH 來支付交易手續費。
二級標題
二級標題
組成
通常來說,區塊鏈協議需要依賴特定的基礎代幣(如以太幣)來保障網絡的安全性。一些協議以為只要支持用任意token 來支付手續費,就能實現手續費抽象了,但這並不適合絕大多數協議。在下文的實現部分,我們將討論如何在一個類似以太坊的協議上建構手續費抽象。
一級標題
一級標題
二級標題
實現
二級標題
二級標題
基礎構建模塊
如今的絕大部分智能合約錢包都採用Gas 中繼器來實現手續費委託。用戶無需直接往其智能合約錢包中打入以太幣用於支付交易手續費,而可以通過簽名消息來完成交易的中繼(中繼器會將該消息打包進交易中,然後作為發送方發送該筆交易)。由於用戶的賬戶實際上是智能合約,因此只要錢包能夠驗證該合約調用,以上兩種方式都行之有效。
二級標題
多操作交易—— 即在單筆交易內完成多個原子函數調用。
二級標題
二級標題
實現手續費抽象
利用多操作交易,我們可以在標準的Gas 中繼器架構上再建構一層消息傳輸協議,從而實現手續費抽象。下面我們通過一個簡單的案例來說明該協議如何擴展錢包以提供額外的功能。
第0 步:客戶端錢包想要發送一筆由一組操作[1…n] 組合而成的交易。
第1 步:客戶端錢包通知Gas 中繼器它想要發送哪筆交易,以及想要用何種資產支付交易手續費。
第4 步:這筆最終由操作[1…n+1] 組合而成的交易連同簽過名的報價消息被發回給中繼器。
二級標題
第5 步:中繼器驗證交易和報價消息,然後將該交易發送至區塊鏈上。
二級標題
一旦有了多操作交易的加持,實現代幣抽像也就輕而易舉了,關鍵的難點在於交易分析。客戶端錢包需要能夠分析潛在的交易,以便知道在執行交易中的操作時會花費(或收到)哪些資產,花費多少(或收到多少)。
一級標題
我們在Astro 中建構了一個改良版的以太坊節點,從而可以運行上述的分析,但由於這在很大程度上是一個工程挑戰而非算法挑戰,因此我們將它留給讀者朋友們做練習。
一級標題
一級標題
合體吧!
現在我們已經同時實現了手續費和代幣抽象,而二者合體就能實現經濟抽象了!


