賬戶抽象的真正落地仍需要一定的時間,但這將是為未來新用戶降低門檻、提高使用體驗的必經之路。
賬戶抽象的真正落地仍需要一定的時間,但這將是為未來新用戶降低門檻、提高使用體驗的必經之路。
賬戶抽象的真正落地仍需要一定的時間,但這將是為未來新用戶降低門檻、提高使用體驗的必經之路。
賬戶抽象的真正落地仍需要一定的時間,但這將是為未來新用戶降低門檻、提高使用體驗的必經之路。
一級標題
一級標題
正文
在討論賬戶抽象的具體意義之前,我們可以先拆解開來,分別理解什麼是“賬戶”和“抽象”。
二級標題
二級標題
二級標題
二級標題

抽象
二級標題
以一個更現實具體的例子來理解抽象化:小汽車玩具和樂高積木。一個小汽車玩具的結構是特殊的、具體的,由四個輪子和車身等一系列特殊的零部件組成。若你想有一個小卡車玩具甚至是飛機玩具,則需要重新購買新的玩具。而樂高積木則是更抽象的,更一般化的,他將玩具高度抽象化為了立方體、球形等一般的積木模塊,玩家可以用這些積木搭建任何玩具形態。
二級標題
二級標題
二級標題
賬戶抽象
賬戶抽象則是指要將以太坊的賬戶進行一般化,去除特殊性。在前文中我們也提到,以太坊擁有兩種賬戶類型,EOA和CA各有自身的特性,其中EOA是更”頂層”的賬戶,任何交易都只能依賴EOA發起並支付ETH作為gas,且EOA僅能使用ECDSA簽名方案,由特定的Secp 256 k 1 橢圓加密算法實現。但EOA不直接支持代碼邏輯。支持代碼邏輯的CA需要由EOA進行部署和發起交易。
這一切都是以太坊底層的特殊的強制設計。而賬戶抽象的目的就是希望使以太坊的賬戶一般化,使其擁有更高的自由度,拓展賬戶的可能性。針對賬戶的特殊性進行一般化就可以提取出以下幾個賬戶抽象的關鍵:
交易抽象:賬戶都可以發起交易;gas支付自定義
一級標題
一級標題
一級標題
賬戶抽象的發展歷程—— 從激進到溫和直至過渡到終態

關於抽象化的探討,早在2015 年以太坊網絡正式發布後的幾個月就已經開始,直到今年10 月仍有新提案提出。我們按時間順序梳理賬戶抽象相關的EIP,以一窺賬戶抽象的不同解決方案及發展。
在此,將賬戶抽象方案的發展分為3 個階段:
ERC標準的賬戶抽象方案是對底層代碼更改慢、影響大、兼容性差的妥協。這樣溫和的方式有助於賬戶抽象的概念傳播,讓賬戶抽像先從理想的討論中先落實到可實踐的現實中,並在實踐中循序漸進,不斷改進完善與改進現有方案的缺憾。
二級標題

二級標題
二級標題
EIP-101
過去-激進改革
從相關提案首次提出開始,對於賬戶抽象的解決方案一直都是對共識層進行直接變更的暴力改革方案,並在該階段的一次次提案中不斷完善。
方案簡介:
2015 年底,以太坊創始人Vitalik在EIP-101 中首次提出了抽象化。該提案中Vitalik討論了對Serenity中的賬戶體系的抽象化設計,將賬戶從4 個字段簡化為僅code和storage兩個字段,ETH都被存儲在一個代幣合約中,保留映射用戶餘額的地址列表;交易從8 個字段簡化為了4 個字段,極大程度地進行了賬戶和交易的抽象化。
優勢:
用戶自定義安全模式,使用其他加密算法保護賬戶安全
ETH和其他ERC 20 代幣可以被平等地對待
降低了自定義賬戶功能(比如多簽)的間接性。
EIP-86
問題與現狀:
該提案對賬戶體系進行了大刀闊斧的改動,存在兼容問題以及安全隱患,因此在當時暫時被擱置至分片後,目前已是stagnant狀態。
方案簡介:
2017 年,Vitalik提出EIP-86 ,對交易來源以及簽名進行抽象,再次對底層代碼進行激進的變更。該提案中允許用戶創建能夠使用任何簽名和nonce檢查機制的賬戶合約。在該方案中有一個entry point合約,任何人都可以通過這個合約發送交易,賬戶合約接收來自entry point的數據並對簽名進行檢查,正確則向礦工進行gas支付。該方案是對賬戶抽象的準備,使用戶可以自定義簽名算法,不再強制使用以太坊硬編碼的ECDSA和默認的nonce機制;同時gas是在驗證簽名正確後才由合約賬戶支付。
優勢:
多簽:每一位多簽人不需要都擁有ETH,包含多簽信息的交易可以直接發送到多簽賬戶,由多簽賬戶直接支付
環簽名混幣:環簽名指簽名首尾銜接形成一個環形,因此無法判斷起始點。 n名用戶向合約發送相通數量的代幣,再使用環簽名的方式取出相同數量的代幣。但由於提取代幣需要準備gas,在該階段存在暴露風險。因此通過該提案,gas可以從提取的代幣中直接支付,保障了該場景下的隱私性。
自定義密碼學:用戶可以使用Lamport等量子安全的簽名方式保障賬戶安全
自定義非密碼學功能:例如設置交易過期時間等
問題與現狀:
新的交易類型沒有交易發送方(都是entry point),破壞了哈希唯一性。對基於哈希唯一性的協議操作不可兼容
無gas支付的必要性不足,目前通過代理合約也可以實現,只是成本會稍高一些
礦工挖礦策略會受到極大程度影響
EIP-859
新的交易類型保留了nonce、gasprice、value等字段且被設置為0 ,缺乏代碼優雅性
因此,基於這些問題,該提案最終被暫緩引入,目前也是stagnant狀態。
方案簡介:
該提案引入了新的交易類型和新的操作碼,在交易中仍然強制保留了nonce字段,維持了交易哈希唯一性。引入paygas操作碼進行gas支付,並作為驗證部分交易和執行部分交易的邏輯分界。
優勢:
自定義簽名機制Customized signature scheme
延續了交易哈希唯一性Maintains transaction hash uniqueness
可以支持更複雜的驗證情景並節省gas,比如在代幣ICO時,有1 萬筆交易同時參與,但代幣上線僅至支持前5000 筆,按照現有邏輯所有一萬筆交易都會被打包上鏈,而在該提案下,合約可以設置後5000 筆不被包含進區塊上鍊,從而節省gas消耗名,減少無效的垃圾交易。
Cannot use ERC 20 s to pay for gas
問題與現狀:
EIP-1014
不能支持使用ERC-20 代幣支付gas
實際上該提案一直並未形成確定性的草案,僅僅停留在討論階段。此提案也在多次以太坊開發者會議上進行了討論,但由於不夠成熟,且當時升級所包含的內容已經很多了,因此該提案也被永久擱置。
方案簡介:
該提案並未直接提及賬戶抽象,但卻與賬戶抽象發展息息相關。該提案介紹了一種在實際部署合約地址之前,可以預先計算合約地址的方法,並在部署合約地址之前可以先向該地址發送資產,在使用該合約地址進行第一筆交易的時候,再進行部署。
優勢:
節省了成本:用戶可以在支付gas部署合約之前,提前計算合約地址
多鏈合約地址一致:合約地址需要部署後才存在,因此不像EOA可以直接實現多鏈一致;通過該操作碼中的salt參數,合約地址也可以實現多鏈一致
EIP-1271
現狀:
該提案最終通過,為智能合約錢包的發展奠定了重要基礎。
方案簡介:
該提案提供了一套驗證代表合約賬戶的簽名是否有效的標準。這使得合約賬戶能夠像EOA一樣進行簽名驗證。
優勢:
該提案作為已經確定的ERC標準,開發者們可以自願採用。這為未來合約賬戶的推廣和普及打下了良好的基礎,只要dapp願意支持合約地址簽名,簡單在協議中增加EIP-1271 的代碼即可。
EIP-2938
現狀:
該提案已經最終通過,已經有實際應用,如opensea支持authereum合約錢包進行簽名登陸。
方案簡介:
2020 年,Vitalik聯合多人提出了更完善的賬戶抽象解決方案。相較於之前的賬戶抽象目標將賬戶類型統一為1 種合約賬戶,EIP-2938 提案中仍然保持現有的EOA和合約賬戶兩種,但接納合約作為頂層賬戶,使其可以支付交易gas以及發起交易執行過程。
該提案中定義了一種新的類型的transaction:Account Abstraction transactions,並引入了兩個opcode:Nonce和PAYGAS。這一改進仍然需要對以太坊的底層代碼進行變更。
EIP-2938 還對該解決方案實施進行了規劃並闡述了具體的應用場景。賬戶抽像被分為了兩個層級:首先是實現單租戶賬戶抽象,然後再拓展至多租戶賬戶抽象。
優勢及場景:
單租戶Single-tenant
自定義使用除ECDSA以外的簽名驗證方式(比如BLS,post-quantum)
增加多簽驗證、社交恢復等合約錢包功能
使用ERC-20 代幣支付gas。
多租戶Multi-tenant
隱私:比如tornado cash這樣的保留隱私的場景下,賬戶不再需要準備gas費用而暴露隱私。
雖然該方案更加詳盡,但對多租戶階段的技術方案仍未成型。且該方案被認為在技術及經濟上都不夠高效,因此也沒有進入最終階段。
二級標題
二級標題
二級標題
EIP 4337
當下-溫和變更
以太坊開發者們專注於以太坊的合併與分片,直接進行底層協議變更的方案難以推進,以Vitalik為代表的開發者們,不得不妥協,提出了相對更溫和的、間接的替代方案。
方案簡介:
該提案是首個不需要對以太坊底層代碼進行變更的賬戶抽象提案。在ERC-4337 中,引入了一個UserOperation對象。用戶將UserOperation 對象發送到單獨的內存池中。 Bundler 將這些對像打包成一個交易,對一個Entry Point 合約進行調用,然後該交易就被納入一個區塊中。
優勢:
自定義簽名算法:支持ECDSA之外的簽名算法
功能自定義:通過合約代碼可以實現gas代付、社交恢復等功能
問題及現狀:
不可升級:用戶需要將資產和活動轉移至新地址以支持該標準
Gas開銷更大:引入的user operation會帶來更高的gas消耗
EIP-5189
兼容問題:現有的某些dapp或協議可能禁止了與合約賬戶的交互
儘管有諸多實際的問題,但Vitalik希望在短期內先大力支持ERC-4337 ,在實踐的過程中研究更優的方案,並不斷對其進行完善和改進。在實現了大規模的推廣後,形成共識與規模效應,將有利於促使現有應用做出更改,支持合約賬戶的交互和支持ERC-1271 的合約簽名標準。目前,EIP 4337 仍然處於Draft狀態,等待繼續推進至下一階段。
方案簡介:
該提案是改造交易打包過程的ERC提案,同樣不需要對底層代碼進行改動。該提案引入了一個endorser的角色,合約錢包的開發者定義endorser合約,從而幫助確認提交的元交易的質量,幫助bundler確定該交易是否該留在mempool中。該提案將賬戶抽象為bundler帶來的風險轉移至錢包開發者,希望開發者負責編碼、部署endorser合約。
優勢:
該提案目前剛形成草案,尚在早期階段。
二級標題
二級標題
二級標題
EIP-3074
未來-強制實施
Vitalik在提到,希望在推行ERC-4337 的過程中,不斷再推出新的提案對ERC-4337 的缺憾進行完善,比如實現EOA向合約地址的升級,以及gas費用的優化。可能的路徑將從自願採用到廣泛普及,再到最終實施強制轉換,達成以太坊賬戶類型統一為一種的終極目標。
方案簡介:
EIP 3074 的提出實際早於EIP 4337 ,它沒有引入新的交易類型,而是引入了AUTH和AUTHCALL兩個操作碼,允許將EOA控制權委託給智能合約,這讓所有的EOA可以擁有智能合約錢包的功能。
優勢:
代付gas:gas費用可以由另一個賬戶支付,不持有ETH的地址也可以發送代幣。
批量交易:通過單個調用發送多筆交易,降低了交易費用
EIP-5003
問題及現狀:
該提案需要對以太坊代碼進行更改,計劃是在上海昇級階段進行實施,目前由於各種安全性的不確定,仍然在review階段進行審查。
方案簡介:
該提案是對EIP 3074 的拓展提案,再引入了新的操作碼AUTHUSURP,允許被授權地址設置授權地址的代碼,實現EOA向合約賬戶的升級。
現狀:
二級標題
Layer 2 ?
二級標題
此外,在Layer 2 相較於以太坊主網來說往往有更低的gas費用,對於部署就需要支付gas 的智能合約賬戶來說,用戶體驗會更好,成本更低廉。
一級標題
一級標題
賬戶抽象,意味著未來的賬戶都將擁有合約賬戶的類似功能。在賬戶抽像在共識與底層代碼全面實現之前,目前已經有一些智能合約錢包產品(Smart Contract Wallet-SCW),看到了合約賬戶的優勢,正在為用戶提供EOA賬戶體係以外的選擇。
圖片描述


賬戶抽象概念項目對比
二級標題
二級標題
二級標題
賬戶抽像有必要嗎?
MetaMask這樣傳統的EOA錢包一直飽受用戶體驗差的詬病,用戶需要自己妥善管理私鑰或是助記詞,承擔私鑰洩漏風險。這也使得進入web3世界的第一步就有著相當高的門檻。
近期,許多擁有大量用戶和流量的web2公司都在嘗試向web3進行拓展,例如Reddit面向用戶發行了reddit NFT,輕而易舉地帶來了遠超Opensea現有用戶體量的新用戶。在NFT鑄造流程的引導上,reddit竭盡所能地降低用戶的理解門檻,模糊了關於地址、私鑰、NFT等複雜的概念。
如果採用無私鑰的合約錢包,就能從根本上消除門檻,為大體量的web2用戶提供一種更好地進入web3的渠道。
但,安全性、無私鑰的體驗必須要通過賬戶抽像或合約地址才能實現嗎?
並不。
第一類選擇是目前大多交易所採用的託管型錢包,即私鑰並不是掌握在用戶自己手中,而是由交易所代表用戶持有並管理資產,用戶無法全盤掌握自己的資金。這樣的託管型錢包能極大程度地降低用戶門檻,但也存在相應的信任風險。近期FTX的突然爆雷,讓用戶意識到,託管的資產可能被挪用,看似強大的機構也可能崩塌。只有將資產的控制權完全掌握在自己的手中才是最安全的選擇。 Not your key, not your coins。
還有一類錢包應用了一種叫做多方安全計算(Multi-Party Compution - MPC)的技術,同樣可以實現部分合約錢包想要達成的安全性、無私鑰的用戶體驗。
一般來說MPC大多使用的是門限簽名(TSS- Threshold Signature Scheme)的方法,簡單來說就是將私鑰碎片化,並將碎片交由去中心化的網絡進行計算和加密。需要進行私鑰簽名時,則將碎片拼接起來形成完整的私鑰,通過分散控制權的方式避免了單點失敗的安全問題。這種方式介於自託管和託管之間,可以被稱為半託管型錢包。

這個邏輯和多簽錢包有一定的相似度,但區別在於,多簽錢包每一位多簽人都提供完整的私鑰簽名控制合約賬戶;而TSS的驗證過程只涉及一個私鑰,且是鏈下的,與智能合約並無直接關聯。
現在也存在很多優秀的MPC錢包產品,比如To B的Safeheron以及To C的Bitizen。
MPC也可以實現無私鑰等功能,且MPC可以基於EOA,在使用上似乎更便宜,兼容性也更好。 MPC技術不僅僅適用於EVM鏈,其他非EVM的賬戶也可以適用。那麼,基於無私鑰等目的的合約錢包,或是賬戶抽像是否真的必要呢?

可以看出,Vitalik希望在協議層面上進行賬戶抽象,以實現賬戶簽名算法能夠自定義的目標。以太坊目前強制的ECDSA簽名算法並不是最優的選擇,MPC不過是在基於ECDSA的一種局部的安全方案。而實現賬戶抽像後,則可以根據技術的發展,直接使用更先進、更安全的簽名算法(比如抗量子的)。
二級標題
二級標題
二級標題
賬戶抽象錢包的究極形態
賬戶抽象普及並達成共識後,合約賬戶的兼容性、經濟性都將得到提升。在此,我們也對這類產品的終態,對其能提供的功能和適用的場景進行樂觀地預測或者說是期待,我們認為可能會包括以下功能和應用場景:
無私鑰:用戶無需再保管助記詞或私鑰;可以通過生物驗證、設備驗證等多種驗證方式
賬戶恢復:可以通過生物識別、社交驗證等方式進行賬戶恢復
無gas交互:用戶可以使用交易中涉及的ERC-20 代幣進行gas支付,或直接指定固定的賬戶進行支付,而無需提前準備ETH作為gas;或在交易失敗時無需支付gas費用
自定義安全機制:可以隨著密碼學的發展,選擇更優的安全機制
隱私性:基於環簽名等方式實現的更有效的鏈上隱私性
賬戶臨時託管:用戶可以設置管理方、時常、交互等要求,將賬戶託管給他人進行管理,達到時間或要求後自動收回。
賬戶抵押/交易:賬戶內包含資產及積累的鏈上信用歷史,賬戶本身可以在鏈上市場進行直接的抵押、交易
賬戶權限限制和分割:可以許可給他人部分賬戶權限,比如僅能使用賬戶內的NFT而不能使用代幣
自定義工作流:設置自動的觸發點和流程。比如A賬戶餘額每比1 Eth多出0.5 ETH時,就自動將多餘的0.5 ETH轉入B賬戶,B賬戶在某個token達到一定價格時,就自動將ETH swap成某token……
賬戶分類管理系統:用戶在不同場景下使用專用的賬戶,擁有一個更合理的賬戶管理體系。比如某個賬戶作為gas賬戶僅存放ETH,其他所有賬戶的交互都由gas賬戶進行支付;某個賬戶僅存放藍籌NFT,不會被輕易動用;某個賬戶作為遊戲專用賬戶
一級標題
一級標題
一級標題
結語:
賬戶抽象的落地值得所有人的期待。因為這不僅會幫助鏈上用戶數量大幅增長,賬戶抽像給開發者帶來的高度自由度更是會解決目前賬戶系統的痛點,並誕生新的應用、玩法、和想像空間。


