EIP-7377:EOA迁移到智能合约钱包之前的最佳解决方案,推广账户抽象化

'EIP-7377:EOA迁移到智能合约钱包的最佳解决方案,推广账户抽象化'

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到智能合约钱包的平滑迁移。

当然,其具体的迁移对象并不是以上比喻中的用户名、密码、头像,而包含着与加密资产相关的各类信息。

EIP-7377的潜在影响、意义与风险

EIP-7377提出的EOA向智能合约账户迁移方案,远期看将对以太坊生态产生正面影响。我们认为它有望成为推动账户抽象实现的关键步骤之一。

这种在协议层面支持的平滑迁移方式,可以大大降低用户迁移到智能合约钱包的难度和路径依赖。对于 Crypto 用户来说,往往并不精通底层技术,在资产优先的导向下也不会做主动的技术创新。如果底层协议已经支持了”一键迁移”,那么辅以适当的激励活动和前端界面的友好适配,用户迁移的意愿理论上将大大增加。

然而,我们也应注意这种新功能被用作恶意攻击的风险。可能想到的恶意手段包括但不限于:

  1. 钓鱼攻击:制作伪造的迁移交易,然后通过钓鱼链接欺骗用户 approving 该交易,达到非法转移资产的目的。
  2. 恶意代码植入:黑客可以在迁移过程中通过篡改代码植入后门,获取账户控制权。
  3. 重复迁移盗取:利用迁移交易只能执行一次的限制,黑客可以在合法迁移后发起重复的迁移交易,谎称失败然后再次让用户 approve,达到窃取资产的目的。

在加密世界里,单独一次协议的升级和革新并不能一蹴而就的实现完整愿景。黑暗森林的环境下,协议升级也需要配套相应的审计升级、可信来源验证、赏金计划等手段来防范这些威胁,保证迁移交易的安全性。

最后,我们也需要思考:

基础设施和协议的转变,需要强大的生态驱动力量。究竟是谁来推动用户从EOA向智能合约账户进行大规模迁移?谁来承担迁移过程中的技术风险和资产安全?

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

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

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