简介

本系列文章由四篇文章构成,这篇文章是系列的第一篇。该系列的内容为:

账户分两类:EOA和合约账户。它们都可以承接资金,发送交易。使用合约账户承载资金,而不使用EOA来承载资金,其好处是多方面的。一方面,资金使用的灵活性得到提高,因为资金如何挪动,受合约逻辑控制,用户可以自己定制所需逻辑,例如使用多签来控制资产,还可以指定特定的签名体系。另一方面,提高了资金安全性,私钥和资产不再强绑定,丢失了私钥,资产仍然在合约中,仍可以通过合约里预设的逻辑进行补救,例如更换操作私钥等。

为了鼓励大家使用合约钱包,EIP-4337提出了合约钱包的一个框架,提取出了gas支付的逻辑。用户可以开发自己的合约钱包,并接入到框架中。用户可以:

本文先从框架的角度梳理AA的运行原理,然后是从源码角度进行分析,实现AA需要对部分关键细节有所了解。此外,简单起见,Paymaster和Aggregator的内容不在本文中,会放在后续章节中专门讲解。

系统结构

系统中包括如下角色: