新消息:Account Abstraction (ERC-4337) 已經支援在Mainnet 上使用。
Account Abstraction
華語多譯作賬戶抽象,但我覺得最貼切的形容應該是賬戶自定義。
能做甚麼呢?怎樣運作的?
現在是哪個發展階段?將來有甚麼挑戰?
我將嘗試從信任自定義、支付自定義、EIP-4337結構、現在挑戰等幾個範疇去切入,讓大家有更深入的了解。
個人層面:
不用再要記住24字嘅seed phase,不用再擔心丢去或者被盜用錢包密匙,取而代之後用電郵 / social media 例如Fb Google Twitter / 電話 這些方式去sign in ethereum 或 connect wallet,整個使用體驗會更貼近web2。

那麼,跟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 呢?

就是因為本來以太坊,是沿用傳統保險箱和鎖匙的原理,如果要運行這麼複雜的自定義功能的話,必然牽涉到要off-chain relayers去處理。
那就是說,如果你離開了他們這幾個平台的話,要不錢包用不了,要不這些自定義功能都會被廢武功了。
今次的4337版本 ,因為同時兼具EOA和CA,所以無需要修改以太坊現有的共識機制之餘,亦允許用户以自己的EOA對自己的CA發起交易。




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)

未來挑戰:

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 這兩塊拼圖的基建。

本來zksync Era 是先天已經支持ERC-4337 protocol,所以大家都預計zksync wallet在實現AA會有較大優勢。
但AA 如此一來加速地在Mainnet實現,對整體以太坊錢包的使用體驗來說,實在是一大喜訊。
希望不久將來,我們會看到新錢包有更多優秀面貌,以吸引更多用戶加入。
對於賬戶自定義的分享,就到這裡。
歡迎大家收藏我第一篇的 Mirror NFT。
Twitter:
