📢 Gate广场 #MBG任务挑战# 发帖赢大奖活动火热开启!
想要瓜分1,000枚MBG?现在就来参与,展示你的洞察与实操,成为MBG推广达人!
💰️ 本期将评选出20位优质发帖用户,每人可轻松获得50枚MBG!
如何参与:
1️⃣ 调研MBG项目
对MBG的基本面、社区治理、发展目标、代币经济模型等方面进行研究,分享你对项目的深度研究。
2️⃣ 参与并分享真实体验
参与MBG相关活动(包括CandyDrop、Launchpool或现货交易),并晒出你的参与截图、收益图或实用教程。可以是收益展示、简明易懂的新手攻略、小窍门,也可以是现货行情点位分析,内容详实优先。
3️⃣ 鼓励带新互动
如果你的帖子吸引到他人参与活动,或者有好友评论“已参与/已交易”,将大幅提升你的获奖概率!
MBG热门活动(帖文需附下列活动链接):
Gate第287期Launchpool:MBG — 质押ETH、MBG即可免费瓜分112,500 MBG,每小时领取奖励!参与攻略见公告:https://www.gate.com/announcements/article/46230
Gate CandyDrop第55期:CandyDrop x MBG — 通过首次交易、交易MBG、邀请好友注册交易即可分187,500 MBG!参与攻略见公告:https://www.gate.com/announcements
多链账户抽象:ERC-4337与原生AA技术对比分析
多链账户抽象:加密基础设施的新方向
2024年7月8日至11日,欧洲规模最大的以太坊年度活动——以太坊社区会议(EthCC)在比利时布鲁塞尔举行。本届会议(EthCC 7)汇聚了超过350名区块链行业一线的意见领袖。一位区块链开发者在会上发表了题为"揭示未来:多链账户抽象解析"的演讲。
演讲重点包括:
账户抽象(AA)的两个核心:签名抽象和支付抽象。前者让用户可选择任意验证机制,后者允许多种交易支付选项,从而提供更安全、便捷的用户体验。
ERC-4337和原生AA在验证和执行阶段的入口点函数设计有所不同。各实现方案在验证交易限制和执行步骤上也各有特点。
在EVM兼容链上实施ERC-4337时,需要注意Rollup设计导致的协议差异,以及地址计算方式的差异,这些细节可能影响L1和L2之间的实现。
账户抽象概述
账户抽象(AA)主要包含两个关键点:
签名抽象:用户可选择任意验证机制,不局限于特定数字签名算法。
支付抽象:用户可使用多种交易支付选项,如用ERC-20代币支付,或由第三方赞助交易。
这种灵活性可提供更安全、优化的用户体验。AA旨在通过多种方式实现这两个核心目标。
ERC-4337简介
目前以太坊协议中的外部拥有账户(EOA)存在一些限制,如固定的签名方法和支付设计。ERC-4337通过引入更灵活的账户管理和交易处理方法来解决这些问题。
主要特点:
userOp结构:用户将userOp结构发送给Bundler,后者收集多个userOp并调用EntryPoint合约的handleOps函数。
EntryPoint合约:类似操作系统处理交易,主要功能包括:
原生AA简介
在原生AA中,每个账户都是一个合约,交易处理机制直接嵌入区块链协议。
不同区块链网络的AA设计:
ERC-4337与原生AA的差异
AA操作系统需要解决:Gas定价、交易排序、入口点函数触发、交易处理流程等问题。
ERC-4337通过Bundler和EntryPoint Contract协同完成这些任务。原生AA中,用户将userOps发送给官方服务器的操作员/排序器。
不同实现的账户合约接口相似,都包含验证、支付、执行三个步骤。ERC-4337和原生AA中,"验证"阶段的入口点函数是固定的,而"执行"阶段只有原生AA的入口点是固定的。
为防止DoS攻击,各实现对验证交易设置了不同限制。如EIP-4337定义了禁用操作码和存储访问限制,zkSync Era则放宽了部分OpCode使用。
zkSync要求确认系统标志才能执行系统调用。ERC-4337和StarkNet的执行阶段没有特殊限制。
ERC-4337区分了192位密钥值和64位随机数值。zkSync和StarkNet采用严格递增的nonce。
ERC-4337在userOp结构中包含initcode字段,用于首次userOp部署账户合约。StarkNet和zkSync则要求用户首笔交易发送给操作员/排序器来部署账户合约。
L1和L2的ERC-4337差异
在EVM兼容链上实施ERC-4337存在两个关键区别:
Rollup设计中,L2需将数据上传至L1以确保安全和结算。相关费用(如L1安全费、blob费用)应包含在预验证Gas中,但确定适当的上传费用是一大挑战。
不同链的地址计算方式存在差异。例如,zkSync ERA的create函数中的地址编码方式与以太坊和OP汇总不同,StarkNet则使用独特的哈希函数计算地址。
值得注意的是,硬分叉中新增的操作码可能导致字节码变化,进而影响账户合约地址的一致性。例如,如果L2链不支持上海硬分叉且编译时未指定EVM版本,push0的引入会改变字节码,即便Solidity代码相同。
请用中文风格帮我针对这个内容生成一个评论