在近期以太坊創始人Vitalik發布的最新以太坊路線圖的第六階段Splurge中,最新納入的ERC-4337成為了目前賬戶抽象(Account Abstraction)的主要實現方案。

賬號為什麼重要?因為任何web2用戶進入web3的時候,遇到的第一層阻力便是保存私鑰或者助記詞,還會面對私鑰可能丟失而未知,面對釣魚網站的盜簽而無法判斷,甚至上億美元的鏈橋被盜也因私鑰問題而發生,因此實現更好的以太坊賬戶體系,一直以來都是以太坊網絡對於衝擊千萬量級用戶的瓶頸問題

而如果你想要對以太坊以及區塊鏈底層基礎設施的迭代進程進入深度了解,你也必須要對賬戶抽像這一完整概念原理有著絕對深刻的理解,而賬戶抽象方案的演變史這七年的迭代之路,本份研報將用近萬字為你全景呈現,強烈建議準備好咖啡用心閱讀。

本文將嘗試從2015年起的首個AA提案出發,系統性地整理目前為止所有EIP提案主要內容並綜合評價各方案的優缺點,回顧歷程,很多提案已經早已處於停滯甚至僅僅是草稿的階段,為抽絲剝繭探索邏輯脈絡,

本文將10個EIP提案依據其優化的模板環節來劃分出三大路徑:改造鏈上交易類型、改造鏈上主體對象、改造上鍊交易打包過程型

由於內容涉及非常廣泛且涉及以太坊原理層知識較多,筆者會更多分析其方案的邏輯而非技術的細節,也將盡力陳訴表達和翻譯原意,如有疏漏歡迎評論區留言討論。

1、背景

最近以太坊創始人V神更新了ETH 發展路線圖,其中第六階段Splurge的目標是:修復一切(fix everything else)。

在以太坊虛擬機(EVM)中很多東西需要進行優化,比如說VDF將會讓鏈上產生真正的隨機數,而這次路線圖中最重要的是賬戶抽象AA的核心提案EIP-4337成為實現路徑。

這些優化的核心是可通過社交網絡可直接恢復錢包、項目方幫用戶墊付Gas 費、支持USDT等作為Gas支付方式等功能。就是這些功能將助力以太坊打破千萬用戶的核心關卡,沒有這些改變,以太坊是絕對無法突破用戶習慣的門檻。

以太坊賬戶抽象萬字研報(上):拆解 10 個相關 EIP 提案與衝擊千萬級日活用戶瓶頸的七年之路

1.1、為什麼現有賬戶體係是千萬用戶的瓶頸?

目前在以太坊中有兩種賬戶,分別為外部賬戶(EOA) 和合約賬戶(Contract Account)。外部賬戶的所有權簽名權理論上是同一個體單位持有的。

簡單來講,持有私鑰的人不只擁有這個賬戶的「所有權」,同時還有權利「簽名轉移所有資產」。

當前以太坊上所有權和簽名權是一體的,這樣的外部賬戶設計可能會衍伸出一些值得討論的問題:

  1. 私鑰難保護:用戶失去私鑰(遺失、黑客攻擊)意味著失去所有資產。

  2. 簽名算法少:原生協議在驗證交易上只能使用ECDSA 簽名和驗簽算法。

  3. 簽名權限高:無原生多簽(多簽只能通過智能合約實現協作),單簽即可執行任意操作。

  4. 交易手續費只能通過ETH支付,並不支持批量交易。

  5. 交易隱私洩露:一對一交易容易分析賬戶持有者的隱私信息。

其次單純的合約錢包也有一定問題:

  • 對合約錢包的操作必須由EOA發起(實質是調用合約),每筆交易將多消耗21000Gas。

    (當前以太坊交易的驗證方式是固定的,只有持有了有效的ECDSA 簽名、Nonce 值和足夠的賬戶餘額,一筆交易才算有效)。

  • 需要EOA有足夠的ETH來支付Gas(管理兩個賬戶),或者依靠Relayer支付Gas(導致中心化)。

上訴的約束讓普通用戶很難使用以太坊:

  • 首先,使用以太坊上的任何應用,用戶都必須持有以太(並承擔以太價格波動的風險)。

  • 其次,用戶需要處理複雜的費用邏輯,Gas price、Gas limit、事務阻塞這些概念對用戶來說過於復雜。

  • 最後,雖然許多區塊鏈錢包或應用試圖通過產品優化提高用戶體驗,但它們的實際效果甚微。

破局之道在於實現賬戶抽象,將所有權(Owner)和簽名權(Signer)解耦(Decoupling),從而才能逐個解決上述問題,那為什麼可以解決、將會用怎樣的方式來實現解耦合,就讓我們回顧這7年AA歷史來一同探索吧。

1.2、抽象賬戶的根本目的

從Web2邁入Web3的人很難去接受高風險的私鑰管理方法,所以他們想當然地認為以太坊賬戶抽像多年的實驗是為了取消私鑰,但是現在在去中心化的領域是不存在免費的信任,身份驗證必須基於密碼學證明,所以無論哪種提案都是需要管理某種私鑰。雖然大家終究有自己管理私鑰的束縛和責任,但是通過智能合約也有辦法實現體驗上的折中。

而實現體驗上的折中,首要打破的就是目前賬戶權限的過於集中,即是要實現所有權(Owner)簽名權(Signer)的解耦(decouple)。

1.3、抽象賬戶的歷史路徑

整體的改造方式按針對的對像或者環節可以分成3種大方向

  1. 改造鏈上交易類型(EIP-101、EIP-86、EIP-859、EIP-2718)

  2. 改造鏈上主體對象(EIP-2938、EIP-3074、EIP-3607、EIP-5003)

  3. 改造上鍊交易打包過程(EIP-4337、EIP-5189)

回溯達成這樣的目標的歷程

以太坊一開始是通過EIP-86、EIP-101、EIP-859等增加新的交易類型來區分外部賬戶和合約賬戶,但是他們發現這樣的改動實在太龐大了,其複雜性不亞於合併這樣的共識算法的轉移。一旦以太坊更改交易類型,就配套地要修改底層簽名驗簽算法,這既要考慮礦工是否接受新的類型幫助其上鍊,且收益不能低於普通交易(否則礦工沒有動機去做驗證),還要考慮賬戶地址管理、衝突、往前往後兼容等等問題。

而在這七年的研究過程中,大量信息和想法並未被放棄而是被繼承起來繼續發揚。

  1. 通過EIP-86/208:合約地址需要與外部賬戶進行區分,所以合約地址要能定制、要能防碰撞,所以有了EIP-1014和EIP-2470的落地。

  2. 通過EIP-859:首次出現了交易中附帶合約初始化代碼,如果沒有合約地址就現場部署一個,成為EIP-4337的基礎功能。

  3. 通過EIP-2718:讓未來的以太坊可以兼容任何新提出的交易類型而無需太照顧往前兼容性的歷史包袱。

  4. 通過EIP-2938:明確總結了合約賬戶的各類優勢,社交恢復、密鑰輪換、自定義身份驗證算法、元交易等等,讓合約賬戶慢慢深入人心。

最終共識集中在兩條路徑上即:

  1. 讓現行的外部賬戶有智能合約的功能(EIP-3074系列)。

  2. 讓現行的智能合約有外部賬戶的功能(EIP-4337系列)。

如今EIP-4337納入路線圖也宣告這兩條路徑中以太坊最終做出了決定。

2、下一代賬戶的最佳形態是什麼?

空間有多大?可以用數字來說話:

  • 外部賬戶賬戶數:以太坊總交易中出現的from 地址去重數後約為1.5 億。

  • SCW/A賬戶數:使用頭部兩個產品Gnosis Safe 和Argent 的數據合計為15萬。

筆者認為後續的用戶將會接觸的賬戶形態是兩段式的,區分鏈下密鑰管理與鏈上賬戶主體。

在鏈下密鑰管理側,採用體驗最佳的MPC(多方安全計算)+TSS(門限簽名方案) ,尤其是2/2,2/3都會是兼容吻合監管需求和便捷使用使用需求的參數方案。

  • 在2/2模式下,項目方持有1,用戶持有1,在任何一方不同意的情況下至少資金不會丟失,適用於未來需要監管的場景(團隊金庫私鑰管理等)。

  • 在2/3模式下,項目方持有1,用戶持有2,用戶可以在兩台終端上分別管理分片密鑰,日常本地+項目方持有的分片結合簽名,即使項目方跑路,用戶也可自己恢復。

在鏈上賬戶主體側,會採用可升級的智能合約模式,這時會有多種功能點進行展開:

  • 自定義簽名算法:如Multisig Verification、Schnorr sigs、BLS sigs、Quantum-resistant sigs (eg Lamport, Winternitz),效果上是從密碼學即天然支持多簽、門限等。

  • 多筆交易進行打包:礦工可以簽名聚合多筆交易的數據,只需確保都能執行成功即可。這效果是在交易量足夠多就可以拉低平均的Gas 消耗。

  • 社交恢復更換私鑰:如果某天一個人的微信被盜號,即使全部錢被轉走,裡面的好友列表和聊天記錄都可恢復,也依舊能使用原賬號因為SBT 靈魂代幣不會丟失。

  • 可升級與去中心化:合約本身是可設計升級、可以更改所有權的,在鏈上的賬戶主體也自然是無人託管且完全去中心化的。

  • 元交易與多幣支付:用戶即可在合約錢包裡用其他Token 的轉賬來支付礦工Gas,從而無需先充值原生代幣來做手續費。

  • 抗DoS與量子攻擊:防惡意礦工阻塞系統以及密鑰爆破。

  • 針對套利者的優點:實現賬戶抽象之後,由於可以在賬戶權限驗證階段進行價格判斷,套利者無需為失敗的套利行為進行付費,鏈上也不會包含失敗的套利事務,可以有效提高鏈的可擴展性

但是AA通過EIP-4337實現,也有不少風險問題:

  • 節點的驗證過程會更加複雜,這樣會給節點增加很多無用的計算負擔,從而抗DoS攻擊的風險提升。

  • 因為合約的調度,所以Gas消費會比EOA賬號直接簽名交易更高,需要用到類似NFT聚合器一樣的降低原理。

  • 以太坊賬戶抽象(AA)七年之路相關EIP特性概覽圖

以太坊賬戶抽象萬字研報(上):拆解 10 個相關 EIP 提案與衝擊千萬級日活用戶瓶頸的七年之路

未盡內容:

賬戶抽象(AA)相關EIP 提案解讀

  1. EIP-101:貨幣與加密抽象——2015/11/15

  2. EIP-86/208:交易來源和簽名的抽象——2017/02/10

  3. EIP-859:主鏈賬戶抽象(AA)——2018/01/30

  4. EIP-2718:新交易類型的包裝信封——2020/06/13

  5. EIP-2938:賬戶抽象(AA)標準——2020-10-15

  6. EIP-3074:增加AUTH 和AUTHCALL 操作碼——2020/10/15

  7. EIP-3607:讓外部賬戶地址不可部署合約——2021/06/10

  8. EIP-4337:用交易內存池實現賬戶抽象——2021/09/29

  9. EIP-5003:使用AUTHUSURP 將代碼插入到外部賬戶——2022/02/26

  10. EIP-5189:通過背書來操作賬戶抽象——2022/06/29

Q&A:

1、現在有哪些錢包是遵循EIP-4337實現的?

2、以太坊為什麼選擇EIP-4337而不是EIP-3074?

3、賬戶抽像中抽象的到底是什麼?

4、如果有足夠好的MPC+TSS方案,不需要助記詞,安全性也有保障,那還需要合約錢包嗎?

5、自定義簽名算法的好處是什麼?

6、EIP-4337仍然依賴於EOA賬戶簽名,真的能給用戶體驗帶來質的飛躍嗎?

7、EIP-4337下一步的改進方向有哪些?