以太坊下一步硬分叉升級 Prague/Electra 需同時包含 EIP-3074 及 EIP-5003,兼顧 EOA 遷移和 AA 發展。本文源自 LUKAS SCHOR & SAFE 所著文章,由白話區塊鏈整理、編譯及撰稿。
(前情提要:以太坊下一步:EIP-3074納入布拉格升級,智能合約引入錢包帶來三大改革)
(背景補充:以太坊下個升級「Pectra」有什麼料?質押者救濟機制、錢包用戶體驗..)
以太坊核心開發者已經達成一致共識,計劃將 EIP-3074 納入即將到來的硬分叉升級 Prague/Electra(預計在 2024 年第四季度 /2025 年初)。EIP-3074 允許外部擁有的帳戶(EOA)將其交易能力委託給智慧合約,增強了交易贊助和批量處理等功能。
雖然 EIP-3074 作為一種短期修復措施,旨在改善 EOA 的使用者體驗,但大多數以太坊社群仍然一致認為,最終目標是將所有使用者遷移到智慧帳戶。EIP-3074 對智慧帳戶帶來了一些改進,並成為實現完全 AA(帳戶抽象,也稱為智能合約帳戶)的一個步驟,但它絕對還需要 EIP-5003 的全面支援。
什麼是 EIP-3074?
EIP-3074 修改了以太坊協議,允許外部擁有的帳戶(EOA)將其交易能力委託給智能合約(稱為「呼叫者」),從而實現以下額外功能:
- 贊助交易:DApp 或其他參與方可以贊助交易的燃料費用。
- 批量交易:這允許在同一筆交易中執行兩個或多個合約呼叫。例如,使用者可以在單個交易中呼叫 approve 和 transferFrom。
- 訪問委託:使用者可以將對其 EOA 的控制委託給可能具有不同安全屬性的其他金鑰。例如,使用者可以向其帳戶新增一個每日額度的手機熱錢包金鑰。
這些功能目前只能在智能帳戶上使用,這意味著應用程式必須為 EOA 和智能帳戶構建兩種不同的使用者體驗。
智能合約帳戶(AA)的機會
EIP-3074 主要賦予了 EOAs 更多權力,但它也為智慧帳戶帶來了一些新的有益副作用:
更容易的遷移:藉助賦予 EOAs 更多權力,使用者可以更輕鬆地遷移到智慧帳戶。迄今為止,使用者轉換為智慧帳戶的一個重要挑戰是遷移現有資產的工作量和燃料成本。EIP-3074 允許在單個批量和贊助交易中更平滑地進行遷移。
統一的使用者體驗和開發體驗:DApp 可以構建更好的使用者體驗,而無需排除 EOAs。這大大增加了利用贊助交易和交易批處理的動力,以及圍繞它們的標準。DApp 通常需要調整為更靈活的帳戶邏輯,這將使智慧帳戶功能(如會話金鑰或多籤)更好地適應整體開發框架。
混合帳戶:EOAs 可以將智慧帳戶設定為呼叫者。例如,這將使智慧帳戶能夠控制 EOA,而 EOA 的私鑰仍然保持優勢,並可以禁用安全的控制。這可能導致有趣的新型混合託管用例,或者允許 EOA 使用者在遷移資產之前「測試」智慧帳戶。
EIP-5003:彌合與智慧帳戶之間的差距
儘管 EIP-3074 允許將對 EOA 的控制委託給智慧帳戶,但原始私鑰仍然可以對 EOA 上的任何操作進行授權。這導致 EIP-3074 無法引入任何(安全)功能,例如:
- 多簽名:多重簽名錢包或鏈上多因素認證仍需要智慧帳戶,因為 EIP-3074 的 EOA 始終由原始私鑰控制。
- 恢復:雖然某些恢復方案可能是可行的,但使用 EIP-3074 無法恢復(更改)控制 EOA 的主要私鑰,因此許多恢復方案需要完整的智慧帳戶。
- 量子抗性:最終,我們無論如何都需要將使用者遷移到智慧帳戶,以實現量子抗性,無論是自然遷移還是通過緊急硬分叉。
- 其他功能:拒絕列表、共同簽名者 / 保護者、根據用例要求不同簽名方案的回退處理程式。
有一種可行的遷移路徑被討論,可以彌合這一差距,並允許將現有 EOA 完全遷移到智慧帳戶中:EIP-5003。此升級擴展套件了 EIP-3074,允許在 EOA 地址部署智慧合約程式碼的同時,撤銷原始私鑰的訪問許可權。這樣可以將 EOA 完全轉換為智慧帳戶,同時保留公共地址、不可轉讓的 Token 和聲譽,並在未來的帳戶抽象路線圖中通常保證向前相容性。
然而,對於這種升級路徑的可行性存在一些疑慮,特別是與以下邊際情況相關的問題,即「假定已撤銷的私鑰仍然可以授權對帳戶的操作」:
跨鏈:撤銷的 EOA 金鑰在其他網路上仍然有效,包括未來可能出現的網路。這可能允許任何人通過訪問原始私鑰,在不同的網路上宣告同一帳戶並轉移資產。如果將 EOA 遷移到特定網路上的智慧帳戶,不能假設 EOA 會自動遷移到新網路上。智慧帳戶今天已經面臨類似的問題,無法在新網路上部署,以及狀態更改(金鑰旋轉)無法同步。像金鑰儲存滾動這樣的跨鏈方法可能在一定程度上緩解這個問題。
離鏈簽名:被洩露的金鑰仍然可以在離鏈系統中被濫用,例如 DApp 的登入流程或 permit2 代幣的批准,這些流程會驗證簽名。雖然這些系統可能支援 EIP-1271 等智慧合約簽名標準,但通常只在標準 ecrecover 失敗時才使用它們,這給已撤銷的金鑰可能破壞帳戶留下了空間。
明智的做法是,在 EIP-5003 中,對於已遷移到智慧帳戶的 EOA,始終使 ecrecover(以太坊中的一個函式)失敗。遷移到智慧帳戶應該是對新的身份驗證邏輯的明確和完整的轉移。
EIP-3074 對 AA 是好還是壞?
在過去幾個月裡,社群傾向於將 ERC-4337 作為實現完整 AA 的第一步。它為開發者生態系統的啟動提供了幫助,穩定了規範和打包工具,並創造了一些經驗教訓。隨後計劃在 Layer 2 上實現原生 AA(RIP-7560),並最終在 Layer 1 上引入類似的 EIP。
ERC-4337 最初開始時期望值被誇大了,這有助於吸引動力和吸引開發者。有積極的訊號表明我們接近一個臨界點,主要交易平臺(OKX,Coinbase)和錢包(Trust,Metamask)正在投資支援 ERC-4337。但誇大的期望也意味著不可避免的清醒時刻,即實現完整 AA(通過 RIP-7560 或類似方式)將比最初預期的時間更長,因為目前對於 Layer 2 來說,致力於 RIP-7560 的興趣和緊迫性仍然很小。
而這正是部分社群轉向 EIP-3074 的原因之一。由於將使用者遷移到智慧帳戶似乎還為時過早,一些聲音變得響亮起來,至少在此期間部分修復 EOA 問題。EIP-3074 並不取代 ERC-4337,它們實際上具有相當的協同效應,但它確實將焦點進一步轉移離開 ERC-4337/RIP-7560。
為了實現完整的 AA,我們需要找到將現有 EOA 遷移的方法。由於 EOA 仍然佔據以太坊使用者的大多數,這影響了開發者和團隊的優先事項。這可以通過兩種方式實現:(1)讓使用者手動切換到智慧帳戶,或者(2)實施將 EOA 轉換為智慧帳戶的方式。
包含 EIP-3074 存在著將我們進一步遠離實現完整 AA 的風險。它增強了 EOA,對於(1)起到了消極的作用,同時並沒有真正解決(2)的問題。
沒有 EIP-5003,EIP-3074 目前缺乏實現完整 AA 的明確路徑,並對 AA 的採用產生了負面影響。更重要的是,在下一個硬分叉升級 Prague/Electra 之後,可能不會再有一個為期 2 年的視窗來包含與 AA 相關的升級,因為重點將轉向 verkle 樹。因此,我們應該在 Prague/Electra 升級中包含 EIP-5003,以防止進一步確立 EOA 的地位。
總結
圍繞 EIP-3074 的辯論是以太坊帳戶抽象軌跡的一個關鍵節點。
原始的 AA 路線圖:嘗試應用層的 AA(ERC-4337),通過 L2 展示原生 AA(RIP-7560),最終在 L1 上引入原生 AA。通過遷移交易(EIP-5003,EIP-7377 甚至強制遷移)解決舊版 EOA 問題。這條路徑可能比預期時間長得多,並受到 EOA 的主導地位的阻礙。
我們應該採取的行動是實施 EIP-3074,但同時在布拉格 / 電氣硬分叉中包含 EIP-5003,以實現對智慧帳戶的完整遷移。這樣可以確保不讓遺留使用者被落下,同時又確保他們不會阻礙 AA 的努力。而我們目前計劃要做的事情,也就是最糟糕的情況,是僅實施 EIP-3074,並冒著確立 EOA 的風險,或者至少會嚴重阻礙智慧帳戶的採用。
📍相關報導📍
EIP-3074 後,惡意的簽名會導致以太坊錢包資金被耗盡?開發者親解惑
以太坊安全危機》Delegate:中心化審查疑慮、EOA執行層升級「還要等幾年?」
科普|智能合約錢包什麼時候能普及?一文看懂 ERC-4337