EIP-7377:从 EOA 迁移到智能合约钱包的铺路者
2023-07-28 18:28
深潮TechFlow
2023-07-28 18:28
订阅此专栏
收藏此文章
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 提出了一种新的交易类型 0x04,专门用于"迁移交易"。


用原帖的技术语言来说:


「它将发送账户在状态树中的 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 向智能合约账户进行大规模迁移?谁来承担迁移过程中的技术风险和资产安全?


在崇尚自由和去中心化的加密世界,这类系统升级如何形成共识和合力?


以太坊生态庞大,利益相关方众多。虽然这一转变具有正面意义,但也可能遭遇来自不同群体的质疑与阻力。过渡过程的规划与细节需要审慎设计,以取得社区共识,并确保用户利益不受损害。


从理想到现实,从设想到执行,路途仍然漫长。

【免责声明】市场有风险,投资需谨慎。本文不构成投资建议,用户应考虑本文中的任何意见、观点或结论是否符合其特定状况。据此投资,责任自负。

深潮TechFlow
数据请求中
查看更多

推荐专栏

数据请求中
在 App 打开