第7节:AA(Account Abstract)钱包

概述

  1. Account Abstraction Part 1: You Could Have Invented Account Abstraction
  2. Account Abstraction Part 2: Sponsoring Transactions Using Paymasters
  3. Account Abstraction Part 3: Account Abstraction Part 3: Wallet Creation
  4. Account Abstraction Part 4: Account Abstraction Part 4: Aggregate Signatures
  5. 官方代码实现:点击查看
  6. V神最初介绍:点击查看
  7. 重要科普文章:点击查看
  8. AA钱包的EIP(EIP-4337):点击查看

Architecture

image-20230929135826125

几个概念

智能合约钱包

  1. Smart Contract Wallet:智能合约账户由其代码控制:通过对代码的编写,可以实现任意逻辑。
  2. EOA:EOA 钱包是由私钥控制的区块链上的地址,即通过私钥,用户可以从所述地址签发交易。
  3. 重要补充:智能合约钱包可以被编译成与 EOA 完全一样的体验(只有一个签名密钥,不可升级等),但反之则不行。

账户抽象

Account Abstraction:省略账户体系中的不必要细节,减少复杂性,提高有效性,并且为有价值的功能提供基础。

账户抽象的实现有两种方案:

  1. 在不修改区块链底层核心协议情况下实现(ERC-4337,近期将有望跑通)
  2. 通过对底层修改而实现(EIP-3074,EVM 内将是中长期计划/ Starkware/ zksync 上已近乎完成)

主流产品

  1. 无私钥&助记词体验,社交找回(e.g. Argent,Unipass)
  2. 批量交易(e.g. Gnosis Safe)
  3. 纯链上游戏中,无需多次签名(Session Key)

AA钱包几个问题

1. 使用AA钱包有哪些好处?

  1. 简化账户管理:使用 AA 钱包,你可以使用单个钱包地址管理多个以太坊账户。这可以帮助简化账户管理并减少遗失资金的风险。
  2. 提高安全性:AA 钱包通常是以智能合约的形式实现的,可以提供多因素认证、交易确认和基于角色的访问控制等额外的安全功能。
  3. 增强功能:由于 AA 钱包是以智能合约的形式实现的,它们可以提供超出简单账户管理的额外功能。例如,一些 AA 钱包包括对去中心化金融(DeFi)协议、代币兑换和其他高级功能的支持。
  4. 降低交易费用:通过将多个以太坊账户合并到单个 AA 钱包中,你可以减少管理资金所需的交易次数,从而有助于降低交易费用。
  5. 更好的隐私:AA 钱包可以提供比传统钱包更好的隐私,因为它们不会将你的个别以太坊地址暴露给公众。相反,你的交易将通过 AA 钱包地址路由,有助于保持你在以太坊网络上的活动

2. 账户抽象(AA)是什么意思?

  1. “账户抽象”(Account Abstract,简称AA)钱包一词来自于该钱包使用一个抽象账户来管理多个以太坊账户。换句话说,AA钱包通过将多个账户抽象成一个单一实体来抽象管理多个账户的复杂性。
  2. 这个术语最初是由Gnosis Safe团队引入的,他们在以太坊上开发了其中一种最早的AA钱包。 Gnosis Safe AA钱包允许用户使用单个钱包地址管理多个以太坊账户,并提供额外的安全功能,例如多因素认证、交易确认和基于角色的访问控制。
  3. “账户抽象”这个术语反映了该钱包抽象管理多个账户的核心功能。这可以帮助简化账户管理并减少遗失资金的风险。总的来说,“账户抽象”是一个描述性的名称,准确反映了这种类型的智能合约钱包的核心功能。

3. 使用AA钱包,用户必须持有一个EOA吗?

使用AA钱包的过程中,用户需要至少拥有一个EOA账户,这是因为EOA账户是与以太坊网络的交互必须的账户。EOA账户用于在链上进行交易签名,并用于与链上节点进行通信。在使用AA钱包时,用户可以将其多个EOA账户的私钥添加到AA钱包中进行管理,并使用AA钱包的功能进行交易、发送和接收以太币等操作。因此,AA钱包实际上是一个基于智能合约的多签钱包,需要至少一个EOA账户才能进行操作。

4. 压缩交易可以带来哪些益处?

Image

源码解析

// TODO

选读

  1. https://mp.weixin.qq.com/s/ZQAVSPHmRCGwtniuItT57w
  2. https://mp.weixin.qq.com/s/e1qJTKZqFvJuS12g8O6Xmw
  3. https://hackmd.io/@s0lness/BJUb16Yo9
  4. 【1】https://en.wikipedia.org/wiki/Abstraction_(computer_science)
  5. 【2】https://hackmd.io/@erc4337
  6. 【3】https://twitter.com/lordOfAFew/status/1519057227834818561
  7. 【4】https://deadman.me/
  8. 【5】https ://www.notion.so/33c8008e033d4040b9438edf5225c580
  9. 【6】https://www.stackup.sh
  10. 【7】https://www.candidewallet.com
  11. 【8】https://twitter.com/soulwallet_eth
  12. 【9】https://nethermind.io/
  13. 【10】https://github.com/NethermindEth/nethermind/tree/master/src/Nethermind/Nethermind.AccountAbstraction
  14. 【11】https://github.com/NethermindEth/mev-aa-geth
  15. 【12】https://twitter.com/infinitism8
  16. 【14】https://github.com/stackupfinance/stackup/blob/main/apps/contracts/contracts/entrypoint/EntryPoint.sol
  17. 【15】https://www.biconomy.io/
  18. https://mp.weixin.qq.com/s/SVQ-PQ0qf0-2kBII5U9zdg