🎉 #Gate Alpha 第三届积分狂欢节 & ES Launchpool# 联合推广任务上线!
本次活动总奖池:1,250 枚 ES
任务目标:推广 Eclipse($ES)Launchpool 和 Alpha 第11期 $ES 专场
📄 详情参考:
Launchpool 公告:https://www.gate.com/zh/announcements/article/46134
Alpha 第11期公告:https://www.gate.com/zh/announcements/article/46137
🧩【任务内容】
请围绕 Launchpool 和 Alpha 第11期 活动进行内容创作,并晒出参与截图。
📸【参与方式】
1️⃣ 带上Tag #Gate Alpha 第三届积分狂欢节 & ES Launchpool# 发帖
2️⃣ 晒出以下任一截图:
Launchpool 质押截图(BTC / ETH / ES)
Alpha 交易页面截图(交易 ES)
3️⃣ 发布图文内容,可参考以下方向(≥60字):
简介 ES/Eclipse 项目亮点、代币机制等基本信息
分享你对 ES 项目的观点、前景判断、挖矿体验等
分析 Launchpool 挖矿 或 Alpha 积分玩法的策略和收益对比
🎁【奖励说明】
评选内容质量最优的 10 位 Launchpool/Gate
多链账户抽象: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代码相同。
请用中文风格帮我针对这个内容生成一个评论