一文读懂EIP-7377:从EOA迁移到智能合约钱包的铺路者
原文作者: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 提出了一种新的交易类型0x 04,专门用于"迁移交易"。
用原帖的技术语言来说:
"它将发送账户在状态树中的 code 字段设置为代码存储中指定代码的指针。同时,迁移交易也可以直接设置发送账户的存储值。交易中的 storage 字段将作为键值对写入发送账户的存储树。另外,代码存储使用指针而不是内联代码。这么做的优点是可以重用共享的代码,减少冗余,优化状态树的大小"。
以上的原描述显得非常晦涩难懂,对于没有技术基础的人来说无法理解。在咨询了一些技术朋友和公开资料后,我们尝试简化所有的技术细节,通过比喻的方式来快速理解 EIP-7377:
-
EIP-7377 提出了一种特殊的交易类型,可以理解为一种“迁移卡”。
-
普通用户只需要发起这种迁移卡交易,就可以将账号里的资产迁移到智能合约钱包。
-
这相当于你原网站中的账户,里面有用户名、密码、头像等信息(你原来的 EOA 中有币名、数量、链、gas 上限等)。但是这个网站的功能不太好,你想完全迁移到另一个新网站。
-
为了方便大家迁移,新网站推出了一种“迁移卡”。你只需要在新网站提交这个“迁移卡”, 那么你的账号信息就会自动复制过去,相当于新旧账户数据直接对接了。这比一个个手动搬运数据方便多了。
-
同时,为了安全起见,“迁移卡”只能用一次,不允许反复迁移来回刷数据。而且新网站会继承一些旧网站的验证规则,所以其他用户看不出你是新用户还是老用户。
这就是 EIP-7377 在技术上想要实现的效果。利用“迁移交易”这张特殊“卡片”,通过直接操作账户代码和存储,以一种安全和高效的方式完成 EOA 到智能合约钱包的平滑迁移。
当然,其具体的迁移对象并不是以上比喻中的用户名、密码、头像,而包含着与加密资产相关的各类信息:
(注:由于非技术背景,笔者无法完全理解该提案中的全部内容。也请各位技术大佬做进一步的指正和补充。
EIP-7377 的潜在影响、意义与风险
EIP-7377 提出的 EOA 向智能合约账户迁移方案,远期看将对以太坊生态产生正面影响。我们认为它有望成为推动账户抽象实现的关键步骤之一。
这种在协议层面支持的平滑迁移方式,可以大大降低用户迁移到智能合约钱包的难度和路径依赖。对于 Crypto 用户来说,往往并不精通底层技术,在资产优先的导向下也不会做主动的技术创新。如果底层协议已经支持了"一键迁移”,那么辅以适当的激励活动和前端界面的友好适配,用户迁移的意愿理论上将大大增加。
然而,我们也应注意这种新功能被用作恶意攻击的风险。可能想到的恶意手段包括但不限于:
-
钓鱼攻击:制作伪造的迁移交易,然后通过钓鱼链接欺骗用户 approving 该交易,达到非法转移资产的目的。
-
恶意代码植入:黑客可以在迁移过程中通过篡改代码植入后门,获取账户控制权。
-
重复迁移盗取:利用迁移交易只能执行一次的限制,黑客可以在合法迁移后发起重复的迁移交易,谎称失败然后再次让用户 approve,达到窃取资产的目的。
在加密世界里,单独一次协议的升级和革新并不能一蹴而就的实现完整愿景。黑暗森林的环境下,协议升级也需要配套相应的审计升级、可信来源验证、赏金计划等手段来防范这些威胁,保证迁移交易的安全性。
最后,我们也需要思考:
基础设施和协议的转变,需要强大的生态驱动力量。究竟是谁来推动用户从 EOA 向智能合约账户进行大规模迁移?谁来承担迁移过程中的技术风险和资产安全?
在崇尚自由和去中心化的加密世界,这类系统升级如何形成共识和合力?
以太坊生态庞大,利益相关方众多。虽然这一转变具有正面意义,但也可能遭遇来自不同群体的质疑与阻力。过渡过程的规划与细节需要审慎设计,以取得社区共识,并确保用户利益不受损害。
从理想到现实,从设想到执行,路途仍然漫长。
Bitcoin Price Consolidates Below Resistance, Are Dips Still Supported?
Bitcoin Price Consolidates Below Resistance, Are Dips Still Supported?
XRP, Solana, Cardano, Shiba Inu Making Up for Lost Time as Big Whale Transaction Spikes Pop Up
XRP, Solana, Cardano, Shiba Inu Making Up for Lost Time as Big Whale Transaction Spikes Pop Up
Justin Sun suspected to have purchased $160m in Ethereum
Justin Sun suspected to have purchased $160m in Ethereum