您好,欢迎您来到国盈网!
官网首页 小额贷款 购房贷款 抵押贷款 银行贷款 贷款平台 贷款知识 区块链

国盈网 > 区块链 > ERC-4337:探索账户抽象的五个主要技术组件

ERC-4337:探索账户抽象的五个主要技术组件

区块链 岑岑 本站原创

作者:伊甸园网,小邹译,区块链之家

2023年3月1日,ERC-4337在以太坊主网上线,增强了智能合约代表用户交易的能力。但事实上,什么变了?

ERC-4337:探索账户抽象的五个主要技术组件

ERC-4337并没有触及以太坊所依赖的核心共识层,而是增加了一层,让开发者有机会从根本上改变用户在链条上的互动和交易方式。

在本文中,我们将研究ERC-4337引入的五个主要技术组件,以及它们如何协同工作来执行用户事务。

ERC-4337:探索账户抽象的五个主要技术组件

ERC-4337有五个关键组成部分:用户操作、捆绑器、入口点、聚合器和出纳员。

1、用户操作

简单来说:UserOperation捕捉用户的意图和操作,包括发送方、有效载荷、气费等相关信息。因为它是为了避免改变共识而设计的,所以以太坊团队选择创建一个全新的结构来获取代表用户发送的交易中包含的所有必要元素。

为了避免混淆,他们故意不称之为“交易”。

更具体地说,智能合约钱包现在可以创建一个名为UserOperation(userOp)的伪交易对象,它代表用户的预期交易意图,而无需初始化传统交易。

UserOperation不能访问任何可能在模拟和执行之间改变的信息,例如当前块时间、散列值、块号等。这是为了确保其有效性,并能够支付其连锁交易的执行。

UserOperation也只允许访问与发件人地址相关的数据。

类似于transaction: UserOperation包含sender、to、calldata、maxFeePerGas、maxPriorityFee、signature和nonce字段。

与transaction不同:nonce和signature字段的使用不是由协议定义的,而是由每个帐户的实现定义的。

用户操作内存池

简单来说:UserOperation内存池是一个没有UserOperations的等待网络处理的池。UserOperations被发送到UserOperation内存池,而不是传统的公共内存池。

ERC-4337:探索账户抽象的五个主要技术组件

更具体地说,UserOperation内存池是任何UserOperation作为一个真正的事务结束之前的最后一站。然后,一个名为bundler(下面将详细描述)的新抵押者可以从内存池中提取每个用户操作,扮演EOA的角色,支付燃气费并将用户操作发送到共识层以执行交易。

这是一个专用的高级UserOperation内存池,仅供UserOperations使用,也称为规范内存池。内存池遵循并严格执行ERC-4337规则。ERC还允许用户操作提供不遵循规范内存池规则的替代内存池(alt-mempool)。

符合ERC规则的用户操作被发送到规范内存池。那些不遵守ERC规则的人可以被送到其他具有不同规则的替代内存池中。这些备用内存池中的用户操作只发送给该池中的参与者。

捆绑器可以通过添加白名单或另一个具有不同ID的备选内存池来处理规范内存池的异常情况。Bundlers可以自由加入规范内存池(他们必须毫无例外地遵守ERC规则)和替换内存池。

注意:UserOperations内存池的最终版本还没有完全定义,所以预计会有进一步的变化。然而,一个完全分散的内存池对于协议的采用和健康是必不可少的。

2、Bundler

简而言之:Bundler扮演从规范内存池和备用内存池中提取的所有用户操作的EOA的角色。Bundler向EntryPoint契约发送UserOperations进行验证和完整性检查,然后最终进入ERC-4337出现之前我们在世界上已经习惯的交易流程。

更具体的说:Bundler是一个特殊的操作者,它监听UserOperation内存池和所有内存池,提取多个user operation,打包在一起,将事务包发送到EntryPoint进行契约执行。这看起来非常像从EOA到智能合约的事务,其中UserOperations的执行就像一个内部事务。“发件人”地址将是Bundler,“收件人”地址将是EntryPoint contract。

捆绑商根据价值最大化逻辑选择将哪些UserOperations对象包含在他们的打包事务中,该逻辑类似于今天以太坊的积木搭建者所使用的逻辑。

成为捆绑者的经济模式/动机是什么?

交易上线时,Bundler作为“发件人”地址,这也是Bundler会使用ETH支付交易套餐的燃气费的原因。Bundler作为所有单用户操作执行的一部分,将在以后得到补偿。

在接收到UserOperation之前,Bundler会对其进行模拟以验证签名,确保UserOperation能够支付费用,并确保UserOperation在模拟和执行过程中以相同的方式运行。有必要依靠Bundler来避免包括未通过验证的用户操作,并避免吸收无法支付的天然气费用。

注意:在ERC-4337的框架中,积木式构件还可以扮演捆绑器的角色,提供更强的实现保证,但这不是必须的。如果没有这种更强的执行保证,事务包会被送到公共池,可能会发生抢占式事务,导致事务包事务失败。

3、财务主管

简单来说:Paymaster是一个可选的出质人,可以为其他用户的交易进行支付。为什么?Paymaster可以给以太坊交易带来很多有趣的新功能,比如:

例如,应用程序开发人员可以很容易地补贴他们的用户,作为获得客户的一种手段。

用户可以通过使用ERC 20代币或信用卡或其他订阅服务轻松支付煤气费。

更具体地说,ERC-4337流程并不要求使用paymaster。使用paymaster时,UserOperation通常有以下两种选择:

验证出纳员:这些出纳员提供与离线过程相关的gas抽象。例如,它允许用户用信用卡或订阅服务支付交易费用,而不会损害他们的账户托管。

存款出纳员:这些出纳员提供与链条上的ERC-20代币相关的气体抽取。

出纳员必须限制其存储使用或抵押。

注意:为了防止滥用,系统会减缓或暂时禁止提交大量无效用户操作的Paymaster。为了防止实体的“女巫攻击”,需要在系统中对全球实体进行质押,这使得拒绝服务(DoS)攻击的成本非常高。质押物不会被没收,可以随时撤回,但会受到延迟的限制。不访问全局存储的全局实体的例外。

4、聚合器

简单来说:聚合器是一种特殊的参与者,它使用helper smart contract来处理批量UserOperation签名,并将其转换为一个签名,即聚合它们。

更具体地说,Aggregator是契约帐户信任的助手智能契约,用于验证聚合签名。聚合器在一个步骤中验证UserOperations包,而不是单独验证每个签名。聚合器旨在提高大规模事务处理的效率和成本。

目前的现实:ERC-4337的交易量还不够高,不足以显示签名聚合的好处,但交易量正在快速增长。一旦达到临界值,聚合者将成为关键利益相关者,推动大规模交易。

压缩的实现超出了本文的范围。然而,它已经被集成到ERC-4337的设计中。最流行的压缩方法是使用BLS签名聚合。

从用户的角度来看,他们看不到任何区别,但开发人员需要在智能帐户中部署BLS签名逻辑。

5、入口

简单来说:EntryPoint契约是一个singleton契约,它验证并执行发送给它的UserOperations包。它检查并确保由bundler发送并提交给链的所有用户操作都是真实有效的。

更具体地说,EntryPoint契约是所有符合ERC-4337标准的智能契约钱包必须使用的全球入口点,以便在EVM上进行交易。这个概念类似于单个质押存款合同。

EntryPoint的使用简化了智能合约钱包的逻辑,将保障安全所需的更复杂的功能推给了入口点,而不是钱包本身。其核心目的是防止钱包在入网前被不必要或未经授权的操作。

入口点序列

下图显示了EntryPoint如何管理Bundler发送的UserOperation包。通常有两个阶段,但在使用聚合器的情况下,将添加一个额外的阶段。

ERC-4337:探索账户抽象的五个主要技术组件

入口点序列相对简单,有两个阶段:

如果有聚合器:

ERC-4337:探索账户抽象的五个主要技术组件

不带聚合器:

ERC-4337:探索账户抽象的五个主要技术组件

序列中的每个循环都有自己的角色,如下所示:

循环1:聚合器循环

如果在事务包中使用了聚合器,那么EntryPoint将首先检查聚合器。入口点验证签名。

循环2:验证循环

首先,它检查合同帐户是否存在。如果不存在,它会创建一个。

如果未定义paymaster:该序列验证合同帐户在入口点中是否有足够的存款来支付燃气费。如果有足够的存款,它将支付用户操作。

如果定义了paymaster:序列验证paymaster在入口点合同中是否有足够的存款。如果有足够的押金,合同将验证用户操作。

循环3:执行循环

它使用callData调用合同帐户。

如果定义了paymaster,它将调用paymaster中的自定义费用逻辑。

只有在UserOperation通过了序列循环的测试后,它才能最终结束。

ERC-4337:探索账户抽象的五个主要技术组件

结论:

为了避免混淆,ERC-4337故意使用不含“交易”一词的术语,但实际上,这可以视为用户交易缠绕的替代过程。一旦所有组件都连接起来,该协议就能够在现有的EOA交易过程中引入一个新的用户意图层。

AA钱包的用户将把他们的意图传递给UserOperations内存池。捆绑商将这些意图转换成网络可以像以前一样处理的签名交易。

虽然对开发人员来说这看起来像是一个额外步骤的“事务”,但对用户来说,这是手动输入用户名/密码并将其记在笔记本上以确保安全,或者使用OAuth只需点击几下就可以访问web3应用程序的区别。

温馨提示:注:内容来源均采集于互联网,不要轻信任何,后果自负,本站不承担任何责任。若本站收录的信息无意侵犯了贵司版权,请给我们来信(j7hr0a@163.com),我们会及时处理和回复。

原文地址"ERC-4337:探索账户抽象的五个主要技术组件":http://www.guoyinggangguan.com/qkl/147978.html

微信扫描二维码关注官方微信
▲长按图片识别二维码