AA、zkp、LSDFi 和 RWA 等區塊鏈技術和應用在2023年鬧的沸沸揚揚,前面我們已經介紹了何謂 RWA 以及 RWA 在 Cardano 鏈上的實際應用,今天這期我要來介紹 AA 錢包以及它背後的技術組成和未來發展。
在介紹 AA 錢包前,我們必須先知道什麼是 EOA、CA、MPC 錢包?這些錢包的應用以及現存問題為何?在以太坊網路中,有兩種原生帳戶類型,分別是外部帳戶 (Externary On Accounts,簡稱 EOA) 和合約帳戶 (Contracts Account,簡稱 CA)。
EOA 是由私鑰擁有者擁有的,就像銀行帳戶,私鑰即為銀行卡密碼,有了私鑰,您就可以控制你自己帳戶裡的資金,因不依賴區塊鏈本身,跟以太坊沒有關係,所以稱為外部帳戶。根據私鑰的保存和使用方式, 可分爲 EOA 軟件錢包和 EOA 硬體錢包。軟件錢包能簡單理解為大家常說的熱錢包,例如小狐狸錢包(MetaMask)。而硬體錢包則以實體設備形式存在,是冷錢包的一種,相較熱錢包,冷錢包更為安全。
CA 錢包,又稱智慧合約錢包,是部署到網路上的智慧合約,沒有私鑰,由程式碼控制。利用智慧合約的可程式性,可以實現比 EOA 錢包更複雜的業務操作邏輯。例如,所有的DeFi 協議都由智能合約帳戶控制。
MPC 錢包(Secure Multi-Party Computation)採用多方計算技術,通過將私鑰分片存儲驗證來提高安全性,需要多個分片參與者一起授權交易,才能完成交易動作,實現無私鑰、社交恢複私鑰等功能,大大降低私鑰被盜的風險。與多重簽名錢包相異之處在於運作機制不同,多重簽名錢包需要兩個以上私鑰的驗證 (各方提供一個私鑰)。
EOA 錢包只認私鑰不認人,當你丟失私鑰也就意味著丟失錢包的掌控權,而現有的 EOA錢包技術無法透過電話或信箱復原錢包,導致用戶必須嚴格把關自己的私鑰,但私鑰是由相當複雜的註記詞所構成,導致許多人丟失私鑰。
現在所有的加密貨幣的交易過程,都是採用橢圓曲線數位簽章演算法(ECDSA)來確保交易安全。問題是 ECDSA 的演算法,理論上是可以被量子電腦破解的,一旦被破解,這代表整個加密世界的基礎將被損害,所有的錢包都有被盜用的風險,為了防止未來量子破密威脅,發展非 ECDSA 的演算法是未來錢包要努力的方向。
涉及到鏈上互動,如:轉帳、跨鏈等行動必須要使用該鏈的原生加密貨幣繳納手續費。因此,用戶必須先儲值相應的原生加密貨幣,而這行為增加了操作步驟及學習難度。並且管理如此大量的貨幣,對新手而言不夠友善。
為了保證交易的真實性和有效性,每當進行鏈上操作時,鏈上都需要簽核來確認身分。雖然簽名的目的是為了保護區塊鏈安全性的作法,但當操作量一多只會造成造成困擾。
現有的 EOA 錢包只能做到單一簽核,無法使用多重簽名來降低私鑰被盜的風險。
目前合約帳戶可以有效解決上述 EOA 的所有問題,包含社交恢復、不同的驗證機制、不同的手續費繳納方式、白名單黑名單來避免詐騙等,但合約帳戶最大的問題在於介面、執行方式和驗證方式的不同,導致 CA 無法主動發起交易,必須要有一個 EOA 作為交易發起者,將交易送到 CA 後才能完成交易。
AA(抽象帳戶)是合約帳戶的一種,它整合了現行的合約帳戶(CA)和外部帳戶(EOA)兩種帳戶的優點。與 MPC 對比的話,它具有合約帳戶設計靈活、便於自定義邏輯和始終線上的優勢。而 EIP-4337 就是讓現行的智能合約能有外部帳戶功能的改革方案。下面將介紹 EIP-4337 的運作模式以及它是如何解決上述帳戶的問題。
UserOperation 是 AA 格式下的交易意圖,記錄著這筆交易要做什麼,是與哪個 Dapp互動、要匯款給誰、手續費如何支付等資訊。與傳統交易相異之處在於 UserOperation 只允許存取與寄件者地址相關的資料,隨機數和簽名欄位是由每個帳戶定義的。通過合約代碼可以實現 gas 代付、社交恢復等功能。
UserOperations Mempool 是等待網路處理的 UserOperations 池。這是一個專用的 UserOperations 記憶體池,僅用於 UserOperations,並嚴格遵循並執行 ERC-4337 規則。Bundler 會將每個 UserOperation 從 UserOperation Mempool 中拉出充當 EOA ,支付它們的 Gas 並將其發送到共識層以執行交易。
簡單來說,Bundler 為 AA 的礦工,在接受 UserOperation 之前,Bundlers 會對其進行模擬以驗證簽章是否正確,確保 UserOperation 能夠支付其費用,避免承擔那些無法支付的人的 Gas 成本。在篩選過後,Bundler 會挑選欲驗證的 UserOp,並將挑選的 UserOp 綁在一起組成 Bundle Tx,送到 EntryPoint 進行驗證。
EntryPoint 用於驗證並執行 UserOp,確認 Bundle Tx 是否符合 AA 格式、gas fee 要收多少等,其用途和特點如下:
Paymaster 為 gas fee 的支付方式,用戶可以使用 ERC-20 代幣、信用卡或其他訂閱服務等鏈外支付方式輕鬆支付 gas fee,透過預先進行存款,每當要進行交易的時候,Paymaster 會將你的存款轉成公鏈原生代幣來支付,減少對公鏈原生代幣的依賴(UserOp 將指示如何支付),也可以待交易完成後再付 gas fee。其實 gas fee 的支付方式有許多種,礙於篇幅問題,我這邊只介紹 Paymaster 中最簡單的一種。
Aggregator 是 UserOperation 的聚合器,能實現合併簽名的可能,但目前 ERC-4337 的交易數量尚未達到簽名聚合帶來好處的水平。在達到臨界質量時,聚合器將對可擴展性至關重要,其用途和特點如下:
如果想看對 ERC-4337 數據更詳細的研究,可到此網站:https://0xkofi.com/
隨著 EIP-3074 、EIP-5003 、EIP-5189、EIP-6551 等與 AA 相關改革的推出,能看出社群在極力完善鏈上主體物件以及改造上鏈交易的打包流程,但是以 Polygon 為例,可以發現,直接轉帳是只有一小部分使用者的互動行為,但使用次數卻是最高的,這也印證了只有小部分人找到了適合他們的 AA 使用場景。未來的目標應著重於如何將 AA 普及和大眾化,讓一般人能知道並開始使用此項技術來解決問題。
※ 感謝台大好友謝宗佑以及 mentor 蔡佳誠的幫助,沒有你們就不會有本篇的內容。