作者:Eden Network,翻译:金色财经xiaozou
2023年3月1日,ERC-4337上线以太坊主网,增强了智能合约代表用户进行交易的能力。但实际上,到底发生了什么变化?
ERC-4337并没有触及以太坊所依赖的核心共识层,而是添加了一个层,使开发人员有机会从根本上改变用户的链上交互和交易方式。
本文,我们将研究ERC-4337引入的五个主要技术组件,以及它们是如何协同工作执行用户交易的。
ERC-4337标准有五个关键组件值得关注:UserOperation、Bundler、EntryPoint、Aggregator和Paymaster。
1、UserOperation
简单来说:UserOperation捕捉用户的意图和操作,包括与发送方、有效负载和gas费相关的信息。由于它的设计是为了避免更改共识,以太坊团队选择创建一个全新的结构,以获取代表用户发送的交易所包含的全部必要元素。
为了避免混淆,他们特意没有将其称为“交易”。
更具体地说:智能合约钱包现在可以创建叫做UserOperation(userOp)的伪交易对象,代表用户所期望的交易意图,而无需初始化传统交易。
CZ:持有最稀有款ForeverCR7:The GOAT NFT可解锁与C罗会面及训练机会:金色财经报道,Binance首席执行官CZ在社交媒体发文表示,持有最稀有款ForeverCR7:The GOAT NFT可解锁与Cristiano Ronaldo(C罗)会面及一同训练机会,Binance将承担机票与住宿费用。[2023/7/5 22:17:57]
UserOperation不能访问任何在模拟和执行之间可能发生变化的信息,例如当前区块时间、哈希值、区块号等。这是为了确保它的有效性,并且能够为其链上交易执行支付费用。
UserOperation同样只允许访问与发送方地址相关的数据。
与交易类似:UserOperation包含sender、to、calldata、maxFeePerGas、maxPriorityFee、signature和nonce字段。
与交易不同:nonce和signature字段的使用不是由协议定义的,而是由各帐户实现定义的。
UserOperation内存池
简单来说:UserOperation内存池是一个等待网络处理的未执行UserOperations的池。UserOperations被发往UserOperation内存池,而非传统的公共内存池。
更具体地说:UserOperation内存池是任一个UserOperation作为真正交易上链之前的最后一个“停靠站”,然后,称为bundler(下文将详细介绍)的新质押者可以从该内存池里提取各UserOperation,充当了EOA角色,支付gas费并将UserOperations发送到共识层作为交易执行。
Optimism上线 “超级链”Superchain页面:过去2年已为用户节省26.9亿美元链上费用:金色财经报道,Optimism在社交媒体宣布上线以太坊L2 Base“超级链”Superchain页面,Optimism表示过去两年已累计为用户节省了26.9亿美元的费用、15.8年的交易确认等待时间,Superchain建立在OverPowered(OP)Stack上,寻求将原本孤立的L2集成到一个可互操作和可组合的系统中,是一个水平可扩展的链网络,共享安全性、通信层和开源开发堆栈。此外,Coinbase将加入OP Labs,为Optimism Collective使命做出贡献。[2023/2/24 12:26:45]
这是一个专用的高级UserOperation内存池,仅供UserOperations使用,也称为canonical内存池。该内存池遵循并严格执行ERC-4337规则。ERC也允许为UserOperations提供不遵循canonical内存池规则的替代内存池(alt-mempool)。
遵守ERC规则的UserOperations被发送到canonical内存池。那些不遵守ERC规则的可以被发送到其他规则不同的替代内存池。这些替代内存池中的UserOperations仅被发送给该池的参与者。
Bundlers可以通过加入白名单或加入另一个不同ID的替代内存池来应对canonical内存池的异常情况。Bundlers可以自由加入canonical内存池(他们必须无一例外地遵守ERC规则)及替代池。
注:UserOperations内存池的最终版本尚未完全定义,因此预计会有进一步的变化。然而,一个完全去中心化的内存池对于协议的采用和健康来说是必不可少的。
加密货币先驱Brock Pierc澄清:自2015年以来便未与Tether再有关联:10月5日消息,比特币基金会主席、加密货币先驱Brock Pierce澄清了他在Tether中的角色:“我是Tether的主要创始人之一,但我从来都不是公司的董事或主管。我是被动关联的。2015年,我将自己100%的股权转让给了我们的少数合伙人,我没有通过Tether赚一分钱。”(PR Newswire)[2021/10/6 20:07:49]
2、Bundler
简单来说:Bundler充当着它从canonical内存池和替代内存池中所提取的全部UserOperations的EOA的角色,Bundler将UserOperations发送到EntryPoint合约进行验证和完整性检查,然后,最后进入我们在ERC-4337出现之前的世界里所习惯的交易流程。
更具体地说:Bundler是一个专门的操作员,它监听UserOperation内存池和所有内存池,提取多个UserOperations,将它们打包在一起,并将交易包发送给EntryPoint合约执行。这看起来非常像从EOA到智能合约的交易,其中UserOperations的执行就如内部交易。“from”地址将是Bundler,“to”地址将是EntryPoint合约。
Bunders选择将哪些UserOperations对象包含在他们的打包交易中,基于与今天以太坊的区块建设者所使用的类似的价值最大化逻辑。
成为Bundler的经济模型/动机是什么?
交易上链时,Bundler充当“from”地址,正因如此,Bundler将使用ETH为交易包支付gas费。Bundler作为所有单个UserOperation执行的一部分,随后会获得费用补偿。
分析 | 以太坊链上交易量呈上升趋势 ERC20代币应用仍以稳定币为主:据TokenGazer数据分析显示,截止至5月21日17时,以太坊价格为$252.07,交易量为$9,945,881,513,总市值为$26,866,522,161,自19年2月以来,以太坊链上交易量呈现一定上升趋势,新增地址数保持着每日8-9万的速率增长。期货方面,目前目前Bitfinex和BitMEX总多单量统计数据为$163,819,796,总空单量数据为$44,786,779,多空实力对比较为悬殊。目前抵押在Maker上的ETH数量呈现一定下降趋势,这可能与DAI过高的费率存在一定关系。目前ERC20代币总市值约为以太坊总市值的56.40%,而在活跃地址数方面,排名前五的代币为USDC、DAI、TUSD、PAX、ZRX,稳定币应用仍占据较大比例。[2019/5/21]
在接收UserOperation之前,Bundler将模拟它来验证签名,确保UserOperation可以支付费用,并确保UserOperation在模拟和执行时以相同的方式运行。要靠Bundler来避免包含验证失败的UserOperations,避免吸收那些无法支付的gas成本。
注意:在ERC-4337框架中,区块建设者也可以充当Bundlers角色,以提供更强大的执行保证,但这并不是必需的。如果没有这种更强大的执行保证,交易包将被发送到公共池,并且有可能发生抢先交易,导致交易包交易失败。
3、Paymaster
简单来说:Paymaster是一个可选的质押者,可以为其他用户的交易支付费用。为什么?Paymaster可以为以太坊交易带来许多有趣的新功能,例如:
分布式资本宣布正式战略投资区块链创新企业Merculet:分布式资本(FenbushiCapital)宣布正式战略投资区块链创新企业Merculet。基于此次投资和对Merculet的认可,分布式资本管理合伙人沈波也将因此担任项目战略顾问。作为Merculet战略投资者,沈波表示:“分布式商业是未来的大势所趋,它将带动全球企业拥抱新一轮增长红利。我们投资Merculet正是因为我们看到了他们有别于一般的区块链项目,Merculet是以扎实的区块链技术搭建分布式商业的基石,根据我们对未来分布式商业社会的判断,我们认为Merculet项目将会为生态圈的迭代升级带来全新的改变。”[2018/4/14]
应用开发者可以很容易地为他们的用户补贴费用,例如作为一种获客手段。
用户可以使用ERC-20代币或信用卡或其他订阅服务等链下支付方式轻松支付gas费。
更具体地说:ERC-4337流程并没有强制要求必须使用paymaster。UserOperation使用paymaster通常有以下两种选择:
验证Paymaster:这些paymaster提供与链下流程相关联的gas抽象。例如,它可以让用户用信用卡或订阅服务支付交易费用,而不会损害他们的账户托管。
存款Paymaster:这些paymaster提供与链上ERC-20代币相关联的gas抽象。
Paymaster要么必须限制其存储使用,要么必须进行质押。
注:为了防止滥用,系统将降低速度或暂时封禁提交大量无效UserOperations的Paymaster。为了防止实体的“女巫攻击”,全局实体需要在系统中进行质押,这使得拒绝服务(DoS)攻击的成本很高。该质押不会被罚没,可随时提取,但会受延迟限制。不访问全局存储的全局实体例外。
4、Aggregator
简单来说:Aggregator是一类特殊的参与者,利用helper智能合约来处理批量UserOperation签名,并将它们转换成一个签名,也就是将其聚合。
更具体地说:Aggregator是一个受合约帐户信任的helper智能合约,用于验证聚合签名。UserOperations包由Aggregator在单个步骤中进行验证,而不是单独验证每个签名。Aggregator旨在提高大规模交易处理的效率和成本。
当前的现实:ERC-4337的交易量还不够高,不足以显现签名聚合的好处,但交易量正在快速增长,一旦达到临界值,Aggregator就会成为一个关键的利益相关者,促进大规模交易。
压缩的实现过程超出了本文的讨论范围。然而,它已经整合进ERC-4337的设计中。最流行的压缩方法就是使用BLS签名聚合。
从用户的角度来看,他们看不出有任何不同,但是开发人员需要在智能帐户中部署BLS签名逻辑。
5、EntryPoint
简单来说:EntryPoint合约是一个单例合约,验证并执行发送给它的UserOperations包。它检查并确保由bundler发送的提交到链上的所有UserOperations都是真实有效的。
更具体地说:EntryPoint合约是所有符合ERC-4337标准的智能合约钱包必须使用的全局入口点,以便在EVM上进行交易。这一概念类似于单个质押存款合约。
EntryPoint的使用简化了智能合约钱包使用的逻辑,将确保安全所需的更复杂功能推至入口点,而不是钱包本身。其核心目的是防止钱包在进入网络之前进行不必要或未经授权的操作。
EntryPoint序列
下图展示了EntryPoint是如何管理Bundler发送的UserOperation包的。通常有两个阶段,但在使用aggregator的情况下,会增加一个阶段。
EntryPoint序列相对简单,有两个阶段:
如果存在aggregator:
如果没有aggregator:
序列中的每个循环都有自己的角色,如下:
循环1:Aggregator循环
如果一个交易包使用了aggregator,那么EntryPoint会首先检查aggregator。由Entry Point来验证签名。
循环2:验证循环
首先,它会检查合约帐户是否存在。如果不存在,它就会创建一个。
如果没有定义paymaster:序列验证Contract Account在EntryPoint中是否有足够的存款来支付gas费。如果存款充足,它就会为UserOperation付费。
如果定义了paymaster:序列验证paymaster在EntryPoint合约中是否有足够的存款。如果存款充足,那么合约将验证UserOperation。
循环3:执行循环
它使用callData调用合约帐户。
如果定义了paymaster,它将调用paymaster中的自定义费用逻辑。
只有在UserOperation通过序列循环的考验后,才能最终上链。
结论:
虽然为了避免混淆,ERC-4337特意使用了不包含“交易”字眼的用语,但实际上,它可以被视为用户交易上链的替代流程。一旦把所有组成部分连接起来,协议就有能力向现有EOA交易流程引入新的用户意图层。
AA(账户抽象)钱包的用户将把他们的意图传递给UserOperations内存池。Bundlers将这些意图转换为网络可以像以前一样处理的签名交易。
虽然对于开发者来说,这看起来像是一个有额外步骤的“交易”,但对于用户来说,这就是手动输入用户名/密码并将其记在笔记本上以确保安全,或使用OAuth只点击几下就可访问web3应用程序之间的区别。
金色荐读
金色财经 善欧巴
迪新财讯
Chainlink预言机
区块律动BlockBeats
白话区块链
金色早8点
Odaily星球日报
Arcane Labs
欧科云链
作者:区块律动BlockBeats5 月 16 日,硬件钱包制造商 Ledger 发布了其版本更新,本次更新引入了一项名为「Ledger Recover」的服务.
文/StarkWare, 译/金色财经xiaozouStarkWare根据客户优先事项的不同,提供了一系列数据可用性(DA)模式供客户选择.
作者:金色财经0xnaitive2023年以太坊大会EDCON于5月19日至23日在黑山举行。本次EDCON上同期举行的Super Demo得到以太坊基金会和众多以太坊社区的大力支持,而且比赛胜.
图片来源:由无界版图AI工具生成去中心化内容创建是从 web2 移植的拟物化心智模型。Web2 社交应用程序已经为去中心化内容创建提供了条件.
作者:火火 11 月 23 日,ConsenSys 更新关于收集用户IP的声明。声明说当用户在 MetaMask 中使用 Infura 作为默认 RPC (远程过程调用协议Remote Proc.
原文:a16z推文 编译:Azuma 我们很高兴看到 crypto 社区出现了许多令人兴奋的新创意。在接下来的推文中,你将可以找到一些有助于你继续build的开发工具.