-
bitcoin $85882.489292 USD
2.66% -
ethereum $2726.255136 USD
1.23% -
tether $0.999653 USD
-0.01% -
bnb $776.085808 USD
1.09% -
xrp $1.521475 USD
1.66% -
usd-coin $0.999947 USD
-0.02% -
solana $121.201562 USD
2.45% -
tron $0.334191 USD
-0.95% -
zcash $1376.191162 USD
-3.52% -
hyperliquid $89.815179 USD
0.93% -
dogecoin $0.095724 USD
0.60% -
chainlink $14.345509 USD
0.03% -
monero $548.721371 USD
-0.11% -
cardano $0.253733 USD
0.94% -
unus-sed-leo $8.970136 USD
1.38%
Uniswap V4“闪算”:如何节省gas? (协议技术)
Uniswap V4’s Flash Accounting uses in-memory accumulators to defer balance updates until transaction end—slashing SSTORE/SLOAD ops, cutting gas, and boosting composability.
2026/04/02 07:39
闪存记账机制
1. Flash Accounting 在交换开始和结束时用单个原子账本快照替换多个状态更新。
2. Uniswap V4 不会在复杂的多跳交换期间将中间余额写入存储,而是将所有余额突变推迟到交易的最终确定阶段。
3. 每个池都维护一个本地累加器,用于跟踪增量(存款、取款、费用和协议费用),在结算之前不会触及 EVM 存储。
4. 累加器使用基于堆栈的算术在内存中运行,避免了 SSTORE 操作码,每个操作码的非零到非零写入要花费 20,000 个 Gas。
5. 交易结束时,仅将净增量应用于池的储备余额,从而将每个池交互的存储写入次数从几十次减少到一两次。
Hook 驱动的状态管理
1. Hooks是可定制的链上逻辑模块,在核心池操作之前或之后执行,但它们不会直接修改储备。
2. 挂钩可以触发费用重新分配或流动性重新平衡,而不会触发跨多个存储槽的冗余余额重新计算。
3. 由于钩子在上下文感知隔离中运行,因此它们避免重复从存储中重新读取池状态,而是继承当前累加器值作为参数。
4. 这消除了每次钩子调用多达 15-20 个 SLOAD 操作,每个操作花费 100 个 Gas,这在嵌套或组合交换中尤其有效。
5. 钩子执行路径经过预先验证并编译为优化的跳转目的地,从而减少了 EVM 中的条件分支开销。
单例池架构
1. Uniswap V4 将所有池整合到单个合约实例中,而不是为每个代币对部署单独的合约。
2. 这种设计消除了每个池的部署成本,并消除了数千个流动性场所的冗余字节码重复。
3. 使用槽高效映射键紧密封装存储布局 — 池标识符通过有序令牌地址散列编码为 uint256 键,无需辅助索引结构即可实现 O(1) 查找。
4. Gas 密集型初始化例程(例如费用层验证或刻度位图分配)在全局范围内发生一次,而不是在每个池中发生,从而在所有交易活动中分摊固定开销。
5. 单例模型通过将内部池逻辑保持在同一执行上下文中来减少跨合约调用开销,避免 CALL 操作码和相关的 700-gas 基本成本加上内存扩展惩罚。
无存储写入的费用累积
1. 协议费用和流动性提供者奖励在易失性内存累加器中进行计数,而不是在交换期间进行持久存储。
2. 费用累积是通过累加器内未经检查的加法发生的,绕过溢出检查,除非钩子逻辑明确要求。
3. 在流动性提供者调用collect()之前不会发生存储写入,从而使费用收取成为一种选择加入的低频操作,而不是每次交换的负担。
4. 这种解耦意味着涉及三个池的单个交换可能会为五个不同的 LP 头寸产生费用(所有头寸都在内存中进行链下跟踪),而无需任何 SSTORE。
5. 累加器使用位打包技术在单个 uint256 内存储多个费用组件(例如,协议份额、LP 份额、特定钩子费用),从而保持存储效率。
常见问题解答
问:Flash会计会影响抢先交易阻力吗? Flash 会计不会改变内存池可见性或交易顺序。它保留了与之前版本相同的 MEV 表面,因为累加器增量仅在最终结算时在呼叫数据和事件日志中保持可见。
问:开发人员可以在交易中读取累加器值吗?不会。执行期间累加器内容不会通过公共 getter 公开。只有具有授权访问权限的挂钩才能在其定义的范围内检查或操作它们。
问:Flash Accounting 是否与现有的 Uniswap V3 集成兼容?不是原生的。依赖于实时余额读取或外部预言机源的集成必须进行更新,以查询结算后状态或使用 V4 中引入的新的基于事件的通知模式。
问:快速会计如何与快速贷款互动?它通过消除借款和偿还步骤之间的冗余准备金验证来提高闪电贷款效率。累加器确保整个事务边界的一致性,而不需要中间存储同步。
免责声明:info@kdj.com
所提供的信息并非交易建议。根据本文提供的信息进行的任何投资,kdj.com不承担任何责任。加密货币具有高波动性,强烈建议您深入研究后,谨慎投资!
如您认为本网站上使用的内容侵犯了您的版权,请立即联系我们(info@kdj.com),我们将及时删除。
- 以太坊基金会推出 zkAPI:私人人工智能访问刚刚获得纽约特色
- 2026-10-02 12:45:01
- 以太坊 zkAPI 和隐私保护 API 支付:保密交易的新时代
- 2026-10-02 12:35:01
- Drift DFX 恢复正在进行中:利用 USDT 恢复池的努力,受害者开始领取代币
- 2026-10-02 12:35:01
- SEC 监管逆转:出版商在九十分钟内获悉新闻,而其他出版商则陷入困境
- 2026-10-02 12:40:02
- 美国证券交易委员会探索新的比特币托管选择:国家信托公司加入竞争
- 2026-10-02 12:40:02
- NVIDIA、Ambiq Micro 和 Roundtable 100:弱者与 AI 巨头的故事
- 2026-10-02 08:45:01
相关百科
如何使用Bitget现货网格交易在指定价格范围内买卖?
2026-10-02 03:19:43
了解现货网格交易机制1. 现货网格交易的运作方式是在用户指定的范围内按照预定的价格间隔下一系列限价买卖订单。 2. 当市场价格达到预设水平时,系统自动执行交易,从波动中获取微利,无需人工干预。 3. 每个网格级别代表一个潜在的进入点和一个退出点,具体取决于价格方向和订单类型。 4. 用户在激活前定义...
如何查看MEXC期货订单是否已按触发价格成交?
2026-10-02 13:20:02
了解 MEXC 期货的触发价格执行1. MEXC 期货支持包括止损市价、止损限价和追踪止损类型的条件订单,所有这些订单都依赖于用户定义的触发价格来激活订单提交逻辑。 2. 触发价格不是执行价格——它仅作为基础订单的激活阈值。一旦触发,实际成交量取决于市场流动性和订单类型参数。 3. 对于止损市价订单...
如何以特定的退出价格下达 MEXC 期货限价单?
2026-10-02 05:40:29
了解 MEXC 期货的收盘限价订单1. 平仓限价订单是一种条件订单,专门用于以预定价格水平退出现有头寸,而不开立新头寸。 2. 与市价单或止损市价单不同,该指令要求交易者指定退出方向(多头或空头)以及下单的确切限价。 3. 订单保持挂起状态,直到标记价格达到或超过指定的限价,此时该订单在订单簿上成为...
如何使用 MEXC 限价订单避免在价格飙升期间购买山寨币?
2026-10-02 11:00:12
了解 MEXC 的限价订单1. 限价单指示交易所仅以指定价格或更好的价格执行交易,确保对进场和出场点的控制。 2. 与在当前流动性下立即成交的市价订单不同,限价订单在资产价格达到定义的阈值之前一直处于待处理状态。 3. 在 MEXC,限价买单的下达低于当前市场价格,以避免在波动期间支付过高的价格。 ...
如何一次性设置MEXC期货止损和止盈?
2026-10-01 14:00:10
了解 MEXC 期货订单类型1. MEXC支持永续合约和季度期货合约的条件订单,使交易者能够提前定义精确的入场和出场逻辑。 2. 平台不允许单个订单将止损和止盈作为原子组件嵌入到一条指令中。 3. 交易者必须为每个触发器单独使用“条件订单”界面——一个用于止损,另一个用于止盈——两者在开仓后都链接到...
如何取消未成交的Gate.io合约订单而不平其他仓位?
2026-10-01 19:40:14
Bitcoin 减半机制1. Bitcoin 的协议强制执行固定的发行时间表,其中大约每 210,000 个区块,区块奖励就会减少一半。 2. 该事件大约每四年发生一次,直接减少每个区块新进入流通的 BTC 数量。 3.截至2020年减半,矿工每区块获得6.25 BTC;下一次减少将使其达到 3.1...
如何使用Bitget现货网格交易在指定价格范围内买卖?
2026-10-02 03:19:43
了解现货网格交易机制1. 现货网格交易的运作方式是在用户指定的范围内按照预定的价格间隔下一系列限价买卖订单。 2. 当市场价格达到预设水平时,系统自动执行交易,从波动中获取微利,无需人工干预。 3. 每个网格级别代表一个潜在的进入点和一个退出点,具体取决于价格方向和订单类型。 4. 用户在激活前定义...
如何查看MEXC期货订单是否已按触发价格成交?
2026-10-02 13:20:02
了解 MEXC 期货的触发价格执行1. MEXC 期货支持包括止损市价、止损限价和追踪止损类型的条件订单,所有这些订单都依赖于用户定义的触发价格来激活订单提交逻辑。 2. 触发价格不是执行价格——它仅作为基础订单的激活阈值。一旦触发,实际成交量取决于市场流动性和订单类型参数。 3. 对于止损市价订单...
如何以特定的退出价格下达 MEXC 期货限价单?
2026-10-02 05:40:29
了解 MEXC 期货的收盘限价订单1. 平仓限价订单是一种条件订单,专门用于以预定价格水平退出现有头寸,而不开立新头寸。 2. 与市价单或止损市价单不同,该指令要求交易者指定退出方向(多头或空头)以及下单的确切限价。 3. 订单保持挂起状态,直到标记价格达到或超过指定的限价,此时该订单在订单簿上成为...
如何使用 MEXC 限价订单避免在价格飙升期间购买山寨币?
2026-10-02 11:00:12
了解 MEXC 的限价订单1. 限价单指示交易所仅以指定价格或更好的价格执行交易,确保对进场和出场点的控制。 2. 与在当前流动性下立即成交的市价订单不同,限价订单在资产价格达到定义的阈值之前一直处于待处理状态。 3. 在 MEXC,限价买单的下达低于当前市场价格,以避免在波动期间支付过高的价格。 ...
如何一次性设置MEXC期货止损和止盈?
2026-10-01 14:00:10
了解 MEXC 期货订单类型1. MEXC支持永续合约和季度期货合约的条件订单,使交易者能够提前定义精确的入场和出场逻辑。 2. 平台不允许单个订单将止损和止盈作为原子组件嵌入到一条指令中。 3. 交易者必须为每个触发器单独使用“条件订单”界面——一个用于止损,另一个用于止盈——两者在开仓后都链接到...
如何取消未成交的Gate.io合约订单而不平其他仓位?
2026-10-01 19:40:14
Bitcoin 减半机制1. Bitcoin 的协议强制执行固定的发行时间表,其中大约每 210,000 个区块,区块奖励就会减少一半。 2. 该事件大约每四年发生一次,直接减少每个区块新进入流通的 BTC 数量。 3.截至2020年减半,矿工每区块获得6.25 BTC;下一次减少将使其达到 3.1...
查看所有文章














