淺談賬戶抽象:如何對現在的錢包進行降維打擊?

作者:北辰

原文:《賬戶抽象方案會重塑錢包賽道,就像移動支付取代現金和信用卡

crypto行業在過去的大半年裡很少冒出新事物,但最近一兩個月以來,已經開始湧現一些值得討論的新概念/技術了,它們將會共同塑造下一輪牛市的敘事。

ERC-4337標准定義的「賬戶抽象」絕對算是一個,未來的大部分交互場景也許是由智能合約錢包來完成,而不是今天的外部錢包。

由於「賬戶抽象」(Account Abstraction)是對以太坊上兩種類型賬戶的改進方案,因此我們討論「賬戶抽象」的優勢,就必須先確定在此之前的不足。

以太坊有兩種類型的賬戶——外部賬戶(externally-owned account,EOA)和合約賬戶,二者在功能上都可以接收、持有和發送token,以及和智能合約交互,但形態不同。

外部賬戶就是我們現在常見的錢包所提供的賬戶。創建外部賬戶時,會生成公鑰和私鑰的密鑰對,然後該賬戶在鏈上的每一步交互都需要用私鑰從外部來簽名。也就是說,誰控制了私鑰,誰就控制了這個賬戶。

所以外部賬戶的操作就很麻煩,而且還不能離線授權,限制了很多應用場景(比如止盈止損,除非是把資產打給協議的賬戶才可以代勞)。毫不誇張地說,限制Web2用戶遷移到Web3最大的也是第一個攔路虎就是外部賬戶。

以太坊上還有另一種形態的賬戶,那就是存儲在鏈上並由代碼自動執行的合約賬戶,理論上就不用再每一步都簽名確認了,可實際上它的執行邏輯決定了它不能在鏈上發起交易(只能響應)……除非以太坊改動共識層。

所以以太坊社區用合約賬戶取代外部賬戶的想法一直擱置到今年,直到ERC-4337標準的推出。

ERC-4337標準並沒有改變以太坊的共識層,但可以讓合約賬戶像外部賬戶那樣發起交易,而且由於是賬戶本身就是一個智能合約,因此還有很多可自定義的權限,例如項目方空投時直接給用戶付Gas費,甚至Gas費本身也可以支持各種token。

很難用三言兩語介紹清楚ERC-4337標準是怎麼做到的,所以這裡就用比喻來形象(但不夠準確)地加以說明——讓合約賬戶偽裝外部賬戶去發起交易。

我們現在所使用的外部賬戶發起交易的流程是:

先向節點發送一組指令(主要是描述這比交易的接收者、數量、允許最大Gas、簽名等),節點收到指令後會判定該指令是否有效(餘額夠不夠,簽名對不對),如有效就添加到區塊鏈上。

有時指令太多,節點處理不過來,就把它們放到內存池排隊等候(基本是按Gas費多少來安排順序的)。

ERC-4337標準就是把內存池這個底層功能給複製到合約上,這樣就可以跟外部賬戶一樣發起交易了。當然這個內存池是另外的內存池,節點運行的是專用代碼,有專用的接口。

那麼可以發起交易的合約賬戶,跟本來就可以發起交易的外部賬戶相比有什麼優勢呢?

Vitalik Buterin總結的優勢有可以添加任意簽名和隨機數驗證邏輯、可以更改公鑰或升級代碼、可以為執行步驟添加自定義邏輯等。這裡再用一個形象(但不夠準確)的比喻來加以說明——讓管理賬戶就跟管理DeFi協議一樣靈活。

對普通用戶而言,終於可以像使用支付寶、微信錢包那樣去使用鏈上錢包了,包括且不限於免密支付、社交恢復、代付、掛失凍結等。

可以預見,賬戶抽象方案未來會取代外部賬戶方案成為錢包賽道主流,就像移動支付取代現金和信用卡那樣不可阻擋。只是「未來」會有多久?

這個問題背後是一系列具體的問題,例如如何兼容現有的dApp、合約推進難度如何等等,不出意外的話一定會出意外。

推薦閱讀:《 “卷上加卷”:Rollup時代的賬戶抽象解決方案》、《 賬戶抽象與EIP-4337 :如何改善以太坊的用戶體驗?