WTF is Account Abstraction?

新消息:Account Abstraction (ERC-4337) 已經支援在Mainnet 上使用。

Account Abstraction

華語多譯作賬戶抽象,但我覺得最貼切的形容應該是賬戶自定義。

能做甚麼呢?怎樣運作的?

現在是哪個發展階段?將來有甚麼挑戰?

我將嘗試從信任自定義、支付自定義、EIP-4337結構、現在挑戰等幾個範疇去切入,讓大家有更深入的了解。

個人層面:

不用再要記住24字嘅seed phase,不用再擔心丢去或者被盜用錢包密匙,取而代之後用電郵 / social media 例如Fb Google Twitter / 電話 這些方式去sign in ethereum 或 connect wallet,整個使用體驗會更貼近web2。

post image

那麼,跟web2 帳戶分別在哪裡?

可以自己設定怎樣認證自己身份,而不是把認證權限交給平台決定。

容不著你管 好吧
容不著你管 好吧

Social Recovery (密碼信任自定義)

例如可以指定自己其他 HOT / COLD wallet / 家人或蜜友錢包 / 一些web2的電郵或社交媒體 / 手提電話用的Passkeys / 甚或是已經有你KYC身份的 CEX 都可以係一些認證方案;

商業應用層面,律師行,或由專人打電話來Facetime 驗證核實也都可以。

互相看管大家
互相看管大家

這都是密碼學自定義部份,你亦可以稱之為Multi-party Computation (MPC) Wallet。

支持社交恢復,自然也都支持 Multi-Sig 吧,他們很多時候是孖生兄弟。

再發展下去,你可以隨時按需要自定義那些 Dapp 要用上那種設定的 Multi-Sig;

或者是連接錢包和恢復錢包這兩種不同場景時,所需要的驗證方式。

多簽錢包
多簽錢包

(支付自定義)

可以用穩定幣stable coin來即時兌換及支付gas fee,native token幣價畢竟有時太波動。

另外,亦可以將所有approve, swap, stake 的交易 bundle 打包做一整筆交易處理,讓整個付款流程更流暢快捷。

(可升級自定義)

倘若合約錢包有代碼改動,用戶能親自批准合約升級,當然所有代碼必然是可以公開查閱。

或者,錢包恢復過來後,亦容許用户更改合約錢包public key,即公用地址。以防止錢包公用地址重複被scam。 #upgradeable

商業層面:(支付自定義)

容許由項目方代付gas

例:派消費卷,由政府贊助gas fee,藉此降低普通市民入場使用錢包的技術門檻。

甚至可以做Recurring Payment,例如訂閱付費服務、月繳數據費電費、分期付款等等

因為4337可以容許賬單發起人以智能合約形式發出付款要求;而付款人亦可以自設金額上限。

準時找數啊喂
準時找數啊喂

大家會問,上面講的,

其實和Gnosis Safe、Torus、Argent 這些合約錢包很相似,那為甚麼要升級這一個新的ERC 呢?

post image

就是因為本來以太坊,是沿用傳統保險箱和鎖匙的原理,如果要運行這麼複雜的自定義功能的話,必然牽涉到要off-chain relayers去處理。

那就是說,如果你離開了他們這幾個平台的話,要不錢包用不了,要不這些自定義功能都會被廢武功了。

今次的4337版本 ,因為同時兼具EOA和CA,所以無需要修改以太坊現有的共識機制之餘,亦允許用户以自己的EOA對自己的CA發起交易。

以太坊上的主要兩種賬戶
以太坊上的主要兩種賬戶
時間圖(一)
時間圖(一)
時間圖(二)
時間圖(二)
時間圖(三)
時間圖(三)

ERC-4337 的結構:

ERC-4337 運作原理
ERC-4337 運作原理

1. 用戶操作(UserOperations):包含及提供nonce、gas limit、gas fee、initCode、數據、簽名等信息,讓Entry Point Contract 執行合約。肩負着EOA 發起交易的重任,將其交給 Bundlers。

2. 綁定器(Bundlers)

收集用戶操作並將其提交給Entry Point Contract。這是V神參考了Flashbots 的結構,想要以Decentralized & Permissionless 形式把Bundlers 這基礎建設實踐出來。

3. 入口點(Entry Point)

接收來自綁定器的用戶操作,驗證它們,支付gas fee 並執行合約。主要是是次Open Zeppelin 核實了的部份,作為寫入EVM 的入口合約。

4. 錢包驗證(Wallet Contract)

可以指定它如何批准交易。除ECDSA簽名外,還可自定義使用BLS簽名、JWT身份驗證,甚至支援一些可以抗衡量子計算的簽名算法 (eg. Lamport, Winternitz)

甚至可以將簽名邏輯外判給更高密的加密服務供應商。(例如HSM)

量子電腦攻擊
量子電腦攻擊

未來挑戰:

post image

1)我們這些單純的EOA錢包,暫時還沒有誘因誘使我們放棄EOA錢包上豐富的鏈上數據,而移民到一個全新零活動記錄的AA錢包。

唯一我想到的可能方案是,用舊錢包delegate 給新錢包吧? 這亦需業界繼續討論。

2)Bundlers 是否做到夠分散及 Permissionless,亦取決於未來AA 上的用户量會否足夠,以提供更大經濟誘因吸引更多 Bundlers 一同參與建設,藉此減低惡意行為對整個交易過程的影響。這亦是關鍵所在。

現在支援ERC-4337的應用:

@Stackup_fi 率先佈局了,他們已經有支持 ERC-4337 中Bundlers 的拼圖;

@zerodev_app 則提供支持ERC-4337 合約認證錢包的SDK。

而ERC-4337 提案的其中一位作者@kristofgazso,亦表示他成立了 @pimlicoHQ 以貢獻 ERC-4337 中 Bundlers 及 Paymasters 這兩塊拼圖的基建。

post image

本來zksync Era 是先天已經支持ERC-4337 protocol,所以大家都預計zksync wallet在實現AA會有較大優勢。

但AA 如此一來加速地在Mainnet實現,對整體以太坊錢包的使用體驗來說,實在是一大喜訊。

希望不久將來,我們會看到新錢包有更多優秀面貌,以吸引更多用戶加入。

對於賬戶自定義的分享,就到這裡。

歡迎大家收藏我第一篇的 Mirror NFT。

Twitter:

https://twitter.com/shan_scarlet