对账户抽象的一点儿理解

0x01 账户抽象(AA)与智能合约钱包有啥不同?

最核心的差别在于是否可以直接从智能合约发送交易。对 “直接”这个词的理解很关键。
账户抽象的目标是让智能合约账户和 EOA 账户一样作为交易的发起方。在账户抽象实现前,这样是不可能的。目前智能合约钱包的实现基本上都需要依赖一个 EOA 账户:

  • 当我们创建一个智能合约钱包时,仍然需要先创建一个 EOA 账户,通过 EOA 账户调用钱包智能合约。
  • 为了达到屏蔽 EOA 账户的效果,就不能让 EOA 账户支付 gas 费,这样就依赖元交易(meta-transaction) 来达到这样的效果,而元交易往往依赖一个比较中心化的 relay 服务来转发交易。

而有了账户抽象,我们通过智能合约发送交易的过程就像现在 EOA 账户直接唤起 metamask 发送交易的过程类似,不再需要 meta-transaction 那一套了。

0x02 为啥使用账户抽象就不需要 EOA 账户了呢

  • 首先,我们要明白:私钥≠EOA。虽然每个私钥都有一个相应的 EOA,但私钥本身就是一个可以签名的密钥。典型的账户抽象钱包会像 MetaMask 一样存储和保护私钥,并使用私钥为智能合约账户签署交易。这个私钥对应的 EOA,其存在的意义仅用作验证签名的公钥。
  • 其次,由于账户抽象使交易能够通过智能合约进行验证,验证逻辑可以是任意的,技术上是有可能不用私钥而用其它的方式对交易进行验证的。

0x03 MPC 与账户抽象的关系

使用 MPC,你实际上拥有一个“虚拟私钥”,而无需将其存储在某个地方,这比必须写下 12 个单词的助记词的有了很大的改进。

账户抽象更多是关于当你发送交易时会发生什么—谁支付 gas?哪些代币用于支付 gas?谁签署交易?所有这些都可以用账户抽象给抽象掉,而带来更多样的实现和更丰富的体验。

所以,可以简单理解为:

  • MPC 提升了私钥管理体验。
  • 账户抽象提升交易体验。
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容