原文作者:David 編譯:深潮TechFlow
前幾個月,關於賬戶抽象和智能合約錢包的討論顯得十分火熱。
隨著以太坊生態的快速發展,實現統一和無縫的用戶體驗變得愈發重要。在以太坊 2.0 的路線圖中,賬戶抽象與合併、分片被放在同等重要的位置。
Vitalik Buterin 也曾發推表示智能合約錢包相比 EOA 錢包擁有更佳的用戶體驗。
對加密老手來說,使用 EOA 錢包已經足夠熟練。但從吸引更多新用戶的角度看, EOA 錢包在用戶界面和理解成本上還存在一定問題:讓人摸不著頭腦的簽名、從哪裡搞來 gas 費、”行動=交易”這種硬核邏輯….
因此,社區逐漸形成共識,需要從 EOA 賬戶向智能合約錢包進行平滑過渡,這也成為一種政治正確。
但 Crypto 圈子裡流行的信息,一般都只講敘事,而不講如何實現:
假設我們都知道智能合約錢包比 EOA 更好,這條路非常明顯,問題是如何走過去?橋在哪裡?
更難解決的是路徑依賴後的現實問題:我在 EOA 賬戶裡已經有了各類資產,現在你讓我遷移到智能合約賬戶,麻煩不麻煩?
我們該如何有效實現這一轉變?用戶資產遷移又需要如何簡便操作?
這世界上本來沒有路,除非有人提前鋪了路。
近期,EIP-7377 提案為此提供了一種可能的解決方案。該提案由 Go Ethereum 開發者 Matt Garnett 提出,其目的是添加一種新的交易類型,允許 EOA 賬戶通過一次性交易將賬戶永久遷移到智能合約錢包。這為推進以太坊賬戶抽象提供了一條可行路徑。
EIP-7377 提案的動機
自 2015 年以來,智能合約錢包就被認為是解決以太坊用戶體驗問題的重要途徑。相比 EOA 賬戶,智能合約錢包具有更強的可編程性,可以實現複雜的機制設計,提高安全性和用戶友好性。
但是由於歷史原因,從整體上看,目前以太坊上只有少數用戶使用智能合約錢包,大量資產仍存放在 EOA 賬戶中。這成為推進以太坊發展的障礙。
隨著資產的積累,用戶無法輕易將 EOA 賬戶中的所有資產手動遷移到新的智能合約地址,無論從成本還是操作流程來看都非常困難。
因此, EIP-7377 的動機在於通過在協議層面提供從 EOA 向智能合約錢包遷移的機制,來解決這一現實需求,實現平滑過渡。這或許將大大增加存量用戶遷移的意願,以及為增量用戶進場時,在賬戶抽象尚未普及前,提供一種更加實用主義的 EOA 過渡方案。
EIP-7377 技術實現的通俗解釋
那麼,這個提案具體是如何實現 EOA 向智能合約錢包轉移的呢?
在技術論壇的原貼中,作者進行了簡要的說明:
這個摘要的大致意思是,EIP-7377 提出了一種新的交易類型0x 04,專門用於”遷移交易”。
用原帖的技術語言來說:
“它將發送賬戶在狀態樹中的 code 字段設置為代碼存儲中指定代碼的指針。同時,遷移交易也可以直接設置發送賬戶的存儲值。交易中的 storage 字段將作為鍵值對寫入發送賬戶的存儲樹。另外,代碼存儲使用指針而不是內聯代碼。這麼做的優點是可以重用共享的代碼,減少冗餘,優化狀態樹的大小”。
以上的原描述顯得非常晦澀難懂,對於沒有技術基礎的人來說無法理解。在諮詢了一些技術朋友和公開資料後,我們嘗試簡化所有的技術細節,通過比喻的方式來快速理解EIP-7377:
-
EIP-7377 提出了一種特殊的交易類型,可以理解為一種“遷移卡”。
-
普通用戶只需要發起這種遷移卡交易,就可以將賬號裡的資產遷移到智能合約錢包。
-
這相當於你原網站中的賬戶,裡面有用戶名、密碼、頭像等信息(你原來的 EOA 中有幣名、數量、鏈、gas 上限等)。但是這個網站的功能不太好,你想完全遷移到另一個新網站。
-
為了方便大家遷移,新網站推出了一種“遷移卡”。你只需要在新網站提交這個“遷移卡”, 那麼你的賬號信息就會自動複製過去,相當於新舊賬戶數據直接對接了。這比一個個手動搬運數據方便多了。
-
同時,為了安全起見,“遷移卡”只能用一次,不允許反复遷移來回刷數據。而且新網站會繼承一些舊網站的驗證規則,所以其他用戶看不出你是新用戶還是老用戶。
這就是 EIP-7377 在技術上想要實現的效果。利用“遷移交易”這張特殊“卡片”,通過直接操作賬戶代碼和存儲,以一種安全和高效的方式完成 EOA 到智能合約錢包的平滑遷移。
當然,其具體的遷移對象並不是以上比喻中的用戶名、密碼、頭像,而包含著與加密資產相關的各類信息:
(注:由於非技術背景,筆者無法完全理解該提案中的全部內容。也請各位技術大佬做進一步的指正和補充。原帖地址:https://eips.ethereum.org/EIPS/eip-7377?ref=newsletter.ether.fm)
EIP-7377 的潛在影響、意義與風險
EIP-7377 提出的 EOA 向智能合約賬戶遷移方案,遠期看將對以太坊生態產生正面影響。我們認為它有望成為推動賬戶抽象實現的關鍵步驟之一。
這種在協議層面支持的平滑遷移方式,可以大大降低用戶遷移到智能合約錢包的難度和路徑依賴。對於Crypto 用戶來說,往往並不精通底層技術,在資產優先的導向下也不會做主動的技術創新。如果底層協議已經支持了”一鍵遷移”,那麼輔以適當的激勵活動和前端界面的友好適配,用戶遷移的意願理論上將大大增加。
然而,我們也應注意這種新功能被用作惡意攻擊的風險。可能想到的惡意手段包括但不限於:
-
釣魚攻擊:製作偽造的遷移交易,然後通過釣魚鏈接欺騙用戶approving 該交易,達到非法轉移資產的目的。
-
惡意代碼植入:黑客可以在遷移過程中通過篡改代碼植入後門,獲取賬戶控制權。
-
重複遷移盜取:利用遷移交易只能執行一次的限制,黑客可以在合法遷移後發起重複的遷移交易,謊稱失敗然後再次讓用戶approve,達到竊取資產的目的。
在加密世界裡,單獨一次協議的升級和革新並不能一蹴而就的實現完整願景。黑暗森林的環境下,協議升級也需要配套相應的審計升級、可信來源驗證、賞金計劃等手段來防範這些威脅,保證遷移交易的安全性。
最後,我們也需要思考:
基礎設施和協議的轉變,需要強大的生態驅動力量。究竟是誰來推動用戶從 EOA 向智能合約賬戶進行大規模遷移?誰來承擔遷移過程中的技術風險和資產安全?
在崇尚自由和去中心化的加密世界,這類系統升級如何形成共識和合力?
以太坊生態龐大,利益相關方眾多。雖然這一轉變具有正面意義,但也可能遭遇來自不同群體的質疑與阻力。過渡過程的規劃與細節需要審慎設計,以取得社區共識,並確保用戶利益不受損害。
從理想到現實、從設想到執行,路途仍然漫長。