撰文:David
前幾個月,關於賬戶抽象和智能合約錢包的討論顯得十分火熱。
隨著以太坊生態的快速發展,實現統一和無縫的用戶體驗變得愈發重要。在以太坊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提出了一種新的交易類型0x04,專門用於”遷移交易”。
用原帖的技術語言來說:
“它將發送賬戶在狀態樹中的code字段設置為代碼存儲中指定代碼的指針。同時,遷移交易也可以直接設置發送賬戶的存儲值。交易中的storage字段將作為鍵值對寫入發送賬戶的存儲樹。另外,代碼存儲使用指針而不是內聯代碼。這麼做的優點是可以重用共享的代碼,減少冗餘,優化狀態樹的大小”。
以上的原描述顯得非常晦澀難懂,對於沒有技術基礎的人來說無法理解。在諮詢了一些技術朋友和公開資料後,我們嘗試簡化所有的技術細節,通過比喻的方式來快速理解EIP-7377:
- EIP-7377提出了一種特殊的交易類型,可以理解為一種“遷移卡”。
- 普通用戶只需要發起這種遷移卡交易,就可以將賬號裡的資產遷移到智能合約錢包。
- 這相當於你原網站中的賬戶,裡面有用戶名、密碼、頭像等信息(你原來的EOA中有幣名、數量、鏈、gas上限等)。但是這個網站的功能不太好,你想完全遷移到另一個新網站。
- 為了方便大家遷移,新網站推出了一種“遷移卡”。你只需要在新網站提交這個“遷移卡”, 那麼你的賬號信息就會自動複製過去,相當於新舊賬戶數據直接對接了。這比一個個手動搬運數據方便多了。
- 同時,為了安全起見,“遷移卡”只能用一次,不允許反复遷移來回刷數據。而且新網站會繼承一些舊網站的驗證規則,所以其他用戶看不出你是新用戶還是老用戶。
這就是EIP-7377在技術上想要實現的效果。利用“遷移交易”這張特殊“卡片”,通過直接操作賬戶代碼和存儲,以一種安全和高效的方式完成EOA到智能合約錢包的平滑遷移。
當然,其具體的遷移對象並不是以上比喻中的用戶名、密碼、頭像,而包含著與加密資產相關的各類信息:
EIP-7377的潛在影響、意義與風險
EIP-7377提出的EOA向智能合約賬戶遷移方案,遠期看將對以太坊生態產生正面影響。我們認為它有望成為推動賬戶抽象實現的關鍵步驟之一。
這種在協議層面支持的平滑遷移方式,可以大大降低用戶遷移到智能合約錢包的難度和路徑依賴。對於Crypto 用戶來說,往往並不精通底層技術,在資產優先的導向下也不會做主動的技術創新。如果底層協議已經支持了”一鍵遷移”,那麼輔以適當的激勵活動和前端界面的友好適配,用戶遷移的意願理論上將大大增加。
然而,我們也應注意這種新功能被用作惡意攻擊的風險。可能想到的惡意手段包括但不限於:
- 釣魚攻擊:製作偽造的遷移交易,然後通過釣魚鏈接欺騙用戶approving 該交易,達到非法轉移資產的目的。
- 惡意代碼植入:黑客可以在遷移過程中通過篡改代碼植入後門,獲取賬戶控制權。
- 重複遷移盜取:利用遷移交易只能執行一次的限制,黑客可以在合法遷移後發起重複的遷移交易,謊稱失敗然後再次讓用戶approve,達到竊取資產的目的。
在加密世界裡,單獨一次協議的升級和革新並不能一蹴而就的實現完整願景。黑暗森林的環境下,協議升級也需要配套相應的審計升級、可信來源驗證、賞金計劃等手段來防範這些威脅,保證遷移交易的安全性。
最後,我們也需要思考:
基礎設施和協議的轉變,需要強大的生態驅動力量。究竟是誰來推動用戶從EOA向智能合約賬戶進行大規模遷移?誰來承擔遷移過程中的技術風險和資產安全?
在崇尚自由和去中心化的加密世界,這類系統升級如何形成共識和合力?
以太坊生態龐大,利益相關方眾多。雖然這一轉變具有正面意義,但也可能遭遇來自不同群體的質疑與阻力。過渡過程的規劃與細節需要審慎設計,以取得社區共識,並確保用戶利益不受損害。
從理想到現實,從設想到執行,路途仍然漫長。