EIP-2938:账户抽象September 4 th, 2020 时间又过了两年,ETH 2.0 的 Phase 0 已经启动,而账户抽象也被重新提上议程。出乎意料的是,该提案建议在 ETH 1.x 上首先实现。 简单来说,账户抽象的目标是让智能合约成为顶级的账户类型,而非受限制的必须由外部账户调用的账户,这样智能合约账户就可以主动发起事务并支付手续费。这个目标与 EIP-86 已经有了很大区别,当时的提案希望彻底消灭外部账户,或者说将所有的外部账户都变成合约账户,而此提案仍然保留了外部账户的存在。 以太坊当前的事务合法性只通过三个参数判断:ECDSA 签名、自增 nonce 和账户余额,因此节点非常容易判断一笔事务的合法性。然而,这势必造成了很多限制。EIP-2938 实现后,以下场景可以主动实现:
目前,以上用户场景也可以通过间接的方式实现。该提案认为这种方式在技术和经济上都不高效。 EIP-2938 分为单租户和多租户两个阶段,顾名思义,其区别在于账户的拥有者是单个用户还是多个(不特定的)用户。在单租户阶段能满足 (1)、(2) 和 (5) 场景的需求,而只有在多租户阶段 (3) 和 (4) 才能实现。多租户阶段的技术方案仍未成型。有关 EIP-2938 的更多内容,可以参考 Status 发表,以太坊爱好者翻译的文章 [6]。 代价是什么?——硬币的两面毫无疑问,假设账户抽象成功部署,可以带来新的功能特性,但也一定有取舍,不可能得到美好的东西,但不付出什么代价。过去五年的讨论给了我们足够的经验,其负面影响甚至由于其复杂性而难以分析。尽管如此,本文将试图系统讨论其潜在收获和代价,以便读者公允地判断。「账户抽象的收获」参考了核心开发者 Peep an EIP 文档 [7]。 账户抽象的收获
|