🎉【Gate 3000万纪念】晒出我的Gate时刻,解锁限量好礼!
Gate用户突破3000万!这不仅是数字,更是我们共同的故事。
还记得第一次开通账号的激动,抢购成功的喜悦,或陪伴你的Gate周边吗?
📸 参与 #我的Gate时刻# ,在Gate广场晒出你的故事,一起见证下一个3000万!
✅ 参与方式:
1️⃣ 带话题 #我的Gate时刻# ,发布包含Gate元素的照片或视频
2️⃣ 搭配你的Gate故事、祝福或感言更佳
3️⃣ 分享至Twitter(X)可参与浏览量前10额外奖励
推特回链请填表单:https://www.gate.com/questionnaire/6872
🎁 独家奖励:
🏆 创意大奖(3名):Gate × F1红牛联名赛车模型一辆
👕 共创纪念奖(10名): 国际米兰同款球员卫衣
🥇 参与奖(50名):Gate 品牌抱枕
📣 分享奖(10名):Twitter前10浏览量,送Gate × 国米小夜灯!
*海外用户红牛联名赛车折合为 $200 合约体验券,国米同款球衣折合为 $50 合约体验券,国米小夜灯折合为 $30 合约体验券,品牌抱枕折合为 $20 合约体验券发放
🧠 创意提示:不限元素内容风格,晒图带有如Gate logo、Gate色彩、周边产品、GT图案、活动纪念品、活动现场图等均可参与!
活动截止于7月25日 24:00 UTC+8
3
以太坊The Splurge阶段: EVM优化、账户抽象和EIP-1559升级展望
以太坊协议的可能未来(六):The Splurge
以太坊协议设计中有许多"细节"对其成功至关重要。实际上,约一半的内容涉及不同类型的EVM改进,其余部分则由各种小众主题构成,这就是"繁荣"的意义所在。
繁荣:关键目标
EVM改进
解决了什么问题?
目前的EVM难以进行静态分析,这使得创建高效实现、正式验证代码和进行进一步扩展变得困难。此外,EVM的效率较低,难以实现许多形式的高级密码学,除非通过预编译显式支持。
它是什么,如何运作?
当前EVM改进路线图的第一步是EVM对象格式(EOF),计划在下一个硬分叉中纳入。EOF是一系列EIP,指定了一个新的EVM代码版本,具有许多独特的特征,最显著的是:
旧式合约将继续存在并可创建,尽管最终可能会逐步弃用旧式合约(甚至可能强制转换为EOF代码)。新式合约将受益于EOF带来的效率提升——首先是通过子例程特性稍微缩小的字节码,随后则是EOF特定的新功能或减少的gas成本。
在引入EOF后,进一步的升级变得更加容易,目前发展最完善的是EVM模块算术扩展(EVM-MAX)。EVM-MAX创建了一组专门针对模运算的新操作,并将其放置在一个无法通过其他操作码访问的新内存空间中,这使得使用诸如Montgomery乘法等优化成为可能。
一个较新的想法是将EVM-MAX与单指令多数据(SIMD)特性结合,SIMD作为以太坊的一个理念已经存在很长时间,最早由Greg Colvin的EIP-616提出。SIMD可用于加速许多形式的密码学,包括哈希函数、32位STARKs和基于格的密码学,EVM-MAX和SIMD的结合使得这两种性能导向的扩展成为自然的配对。
现有研究链接
剩下的工作及权衡
目前,EOF计划在下一个硬分叉中纳入。尽管总是有可能在最后一刻移除它——之前的硬分叉中曾有功能被临时移除,但这样做将面临很大挑战。移除EOF意味着未来对EVM的任何升级都需在没有EOF的情况下进行,虽然可以做到,但可能更困难。
EVM的主要权衡在于L1复杂性与基础设施复杂性,EOF是需要添加到EVM实现中的大量代码,静态代码检查也相对复杂。然而,作为交换,我们可以简化高级语言、简化EVM实现以及其他好处。可以说,优先考虑以太坊L1持续改进的路线图应包括并建立在EOF之上。
需要做的一项重要工作是实现类似EVM-MAX加SIMD的功能,并对各种加密操作的gas消耗进行基准测试。
如何与路线图的其他部分交互?
L1调整其EVM使得L2也能更容易地进行相应调整,如果二者不进行同步调整,可能会造成不兼容,带来不利影响。此外,EVM-MAX和SIMD可以降低许多证明系统的gas成本,从而使L2更加高效。它还使得通过用可以执行相同任务的EVM代码替代更多的预编译变得更加容易,可能不会大幅影响效率。
账户抽象
解决了什么问题?
目前,交易只能通过一种方式进行验证:ECDSA签名。最初,账户抽象旨在超越这一点,允许账户的验证逻辑为任意的EVM代码。这可以启用一系列应用:
允许隐私协议在没有中继的情况下工作,显著降低其复杂性,并消除一个关键的中央依赖点
自2015年账户抽象提出以来,其目标也扩展到了包括大量"便利目标",例如,某个没有ETH但拥有一些ERC20的账户能够用ERC20支付gas。
MPC(多方计算)是一种已有40年历史的技术,用于将密钥分成多个部分并存储在多个设备上,利用密码学技术生成签名,而无需直接组合这些密钥部分。
EIP-7702是计划在下一个硬分叉中引入的一项提案,EIP-7702是对提供账户抽象便利性以惠及所有用户(包括EOA用户)的日益认识的结果,旨在在短期内改善所有用户的体验,并避免分裂成两个生态系统。
该工作始于EIP-3074,并最终形成EIP-7702。EIP-7702将账户抽象的"便利功能"提供给所有用户,包括今天的EOA(外部拥有账户,即受ECDSA签名控制的账户)。
它是什么,如何运作?
账户抽象的核心是简单的:允许智能合约发起交易,而不仅仅是EOA。整个复杂性来自于以一种对维护去中心化网络友好的方式实现这一点,并防范拒绝服务攻击。
一个典型的关键挑战是多重失效问题:
如果有1000个账户的验证函数都依赖于某个单一值S,并且当前值S使得内存池中的交易都是有效的,那么有一个单一交易翻转S的值可能会使内存池中的所有其他交易失效。这使得攻击者能够以极低的成本向内存池发送垃圾交易,从而堵塞网络节点的资源。
经过多年的努力,旨在扩展功能的同时限制拒绝服务(DoS)风险,最终得出了实现"理想账户抽象"的解决方案:ERC-4337。
ERC-4337的工作原理是将用户操作的处理分为两个阶段:验证和执行。所有验证首先被处理,所有执行随后被处理。在内存池中,只有当用户操作的验证阶段只涉及其自身账户并且不读取环境变量时,才会被接受。这可以防止多重失效攻击。此外,对验证步骤也强制实施严格的gas限制。
ERC-4337被设计为一种额外协议标准(ERC),因为在当时以太坊客户端开发者专注于合并(Merge),没有额外的精力来处理其他功能。这就是为什么ERC-4337使用了名为用户操作的对象,而不是常规交易。然而,最近我们意识到需要将其中至少部分内容写入协议中。
两个关键原因如下:
此外,ERC-4337还扩展了两个功能:
现有研究链接
剩下的工作及权衡
目前主要需要解决的是如何将账户抽象完全引入协议,最近受到欢迎的写入协议账户抽象EIP是EIP-7701,该提案在EOF之上实现账户抽象。一个账户可以拥有一个单独的代码部分用于验证,如果账户设置了该代码部分,则该代码将在来自该账户的交易的验证步骤中执行。
这种方法的迷人之处在于,它清晰地表明了本地账户抽象的两种等效视角:
如果我们从对验证期间可执行代码复杂性设定严格界限开始——不允许访问外部状态,甚至在初期设定的gas限制也低到对量子抗性或隐私保护应用无效——那么这种方法的安全性就非常明确:只是将ECDSA验证替换为需要相似时间的EVM代码执行。
然而,随着时间的推移,我们需要放宽这些界限,因为允许隐私保护应用在没有中继的情况下工作,以及量子抗性都是非常重要的。为此,我们需要找到更灵活地解决拒绝服务(DoS)风险的方法,而不要求验证步骤必须极度简约。
主要的权衡似乎是"快速写入一种让较少人满意的方案"与"等待更长时间,可能获得更理想的解决方案",理想的方法可能是某种混合方法。一种混合方法是更快地写入一些用例,并留出更多时间来探索其他用例。另一种方法是在L2上首先部署更雄心勃勃的账户抽象版本。然而,这面临的挑战是,L2团队需要对采用提案的工作充满信心,才能愿意进行实施,尤其是要确保L1和/或其他L2未来能够采用兼容的方案。
我们还需要明确考虑的另一个应用是密钥存储账户,这