Time:2023-08-01 Click:116
原文作者:David
随着以太坊生态的快速发展,实现统一和无缝的用户体验变得愈发重要。在以太坊 2.0 的路线图中,账户抽象与合并、分片被放在同等重要的位置。
Vitalik Buterin 也曾发推表示智能合约钱包相比 EOA 钱包拥有更佳的用户体验。
对加密老手来说,使用 EOA 钱包已经足够熟练。但从吸引更多新用户的角度看, EOA 钱包在用户界面和理解成本上还存在一定问题:让人摸不着头脑的签名、从哪里搞来 gas 费、"行动=交易"这种硬核逻辑....
因此,社区逐渐形成共识,需要从 EOA 账户向智能合约钱包进行平滑过渡,这也成为一种政治正确。
但 Crypto 圈子里流行的信息,一般都只讲叙事,而不讲如何实现:
假设我们都知道智能合约钱包比 EOA 更好,这条路非常明显,问题是如何走过去?桥在哪里?
更难解决的是路径依赖后的现实问题:我在 EOA 账户里已经有了各类资产,现在你让我迁移到智能合约账户,麻烦不麻烦?
我们该如何有效实现这一转变?用户资产迁移又需要如何简便操作?
这世界上本来没有路,除非有人提前铺了路。
近期,EIP-7377 提案为此提供了一种可能的解决方案。该提案由 Go Ethereum 开发者 Matt Garnett 提出,其目的是添加一种新的交易类型,允许 EOA 账户通过一次性交易将账户永久迁移到智能合约钱包。这为推进以太坊账户抽象提供了一条可行路径。
自 2015 年以来,智能合约钱包就被认为是解决以太坊用户体验问题的重要途径。相比 EOA 账户,智能合约钱包具有更强的可编程性,可以实现复杂的机制设计,提高安全性和用户友好性。
但是由于历史原因,从整体上看,目前以太坊上只有少数用户使用智能合约钱包,大量资产仍存放在 EOA 账户中。这成为推进以太坊发展的障碍。
随着资产的积累,用户无法轻易将 EOA 账户中的所有资产手动迁移到新的智能合约地址,无论从成本还是操作流程来看都非常困难。
因此, EIP-7377 的动机在于通过在协议层面提供从 EOA 向智能合约钱包迁移的机制,来解决这一现实需求,实现平滑过渡。这或许将大大增加存量用户迁移的意愿,以及为增量用户进场时,在账户抽象尚未普及前,提供一种更加实用主义的 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)
然而,我们也应注意这种新功能被用作恶意攻击的风险。可能想到的恶意手段包括但不限于:
钓鱼攻击:制作伪造的迁移交易,然后通过钓鱼链接欺骗用户 approving 该交易,达到非法转移资产的目的。
恶意代码植入:黑客可以在迁移过程中通过篡改代码植入后门,获取账户控制权。
重复迁移盗取:利用迁移交易只能执行一次的限制,黑客可以在合法迁移后发起重复的迁移交易,谎称失败然后再次让用户 approve,达到窃取资产的目的。
在加密世界里,单独一次协议的升级和革新并不能一蹴而就的实现完整愿景。黑暗森林的环境下,协议升级也需要配套相应的审计升级、可信来源验证、赏金计划等手段来防范这些威胁,保证迁移交易的安全性。
最后,我们也需要思考:
基础设施和协议的转变,需要强大的生态驱动力量。究竟是谁来推动用户从 EOA 向智能合约账户进行大规模迁移?谁来承担迁移过程中的技术风险和资产安全?
在崇尚自由和去中心化的加密世界,这类系统升级如何形成共识和合力?
以太坊生态庞大,利益相关方众多。虽然这一转变具有正面意义,但也可能遭遇来自不同群体的质疑与阻力。过渡过程的规划与细节需要审慎设计,以取得社区共识,并确保用户利益不受损害。
从理想到现实,从设想到执行,路途仍然漫长。