-
bitcoin $77206.799877 USD
-0.54% -
ethereum $2480.536928 USD
-1.49% -
tether $0.999766 USD
0.02% -
bnb $717.768301 USD
-0.81% -
xrp $1.398854 USD
0.93% -
usd-coin $0.999946 USD
0.01% -
solana $100.783952 USD
-0.71% -
tron $0.337610 USD
-0.52% -
hyperliquid $79.006439 USD
-1.08% -
zcash $1143.411926 USD
0.63% -
dogecoin $0.082676 USD
-1.89% -
monero $513.505414 USD
1.54% -
chainlink $11.403390 USD
-0.09% -
unus-sed-leo $8.960483 USD
-0.02% -
cardano $0.204348 USD
-2.23%
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),我们将及时删除。
- 美国检察官在伊朗石油案进展中追查 6100 万美元 USDT
- 2026-09-16 08:45:01
- 解读“数字资产税收确定性法案”:解密加密税法案、加密货币挖矿税和洗售
- 2026-09-16 08:50:02
- 比特币链上数据、BIS 研究、传输数据盲点:揭开加密指标的“嘈杂”现实
- 2026-09-16 08:55:01
- 比特币 ETF 流入、流出和黄金:来自纽约市的流沙报告
- 2026-09-16 00:35:01
- BAE Altcoin Hamlesi:阿联酋的数字身份雪崩
- 2026-09-15 16:35:02
- 比特币、以太坊和加密货币定位:驾驭分歧和弹性的市场
- 2026-09-15 13:05:01
相关百科
如何在OKX上查看BTC永续资金?
2026-09-12 19:19:43
OKX BTC 永续合约的资金费率机制1. BTC-USDT 永续合约资金费率在 UTC 00:00、08:00 和 16:00 每八小时计算一次,自 2025 年 6 月 15 日起,TUSDT 永续合约的计算时间改为每两小时计算一次,但 BTC-USDT 的计算时间保持不变。 2. 资金来源于永...
如何停止 OKX 交易机器人?
2026-09-15 17:20:06
终止 OKX 交易机器人会话1. 通过 OKX Web UI 或部署机器人的自定义仪表板访问机器人的控制界面。 2. 找到活动会话标识符 — 这显示为与正在运行的实例关联的唯一字母数字字符串。 3. 如果使用 python-okx SDK,请执行stop_bot()方法,确保在关闭之前取消所有挂单。...
如何在 OKX 上设置 DCA 机器人?
2026-09-16 10:59:57
了解加密货币交易中的 DCA 策略1. 平均成本法是一种严格的投资方法,无论价格波动如何,都会定期购买固定数量的加密货币。 2. 这种方法可以减轻情绪化决策,并减少波动引起的计时错误的风险。 3、在OKX上,DCA执行依赖API集成来触发订单,无需人工干预。 4. 该策略不保证利润,但历史上平滑了整...
如何平掉部分 OKX 期货头寸?
2026-09-10 10:39:39
了解部分平仓机制1. OKX 期货合约支持通过标准下单进行部分平仓,而不是通过专用的“部分平仓”API 端点。 2. 头寸规模减少仅由提交的订单数量决定——不需要特殊标志或参数。 3、用户必须保证其下单数量不超过当前持仓规模;超过会触发错误响应,代码为 51000。 4. 对于部分平仓,市价单和限价...
如何为OKX仓位添加保证金?
2026-09-10 07:20:15
市场波动模式1. 自 2022 年第三季度以来,Bitcoin 超过 68% 的交易日在 24 小时窗口内价格波动超过 15%。 2. 在流动性较低的时期,尤其是在 02:00–06:00 UTC 期间,以太坊始终表现出比 BTC 更高的日内波动性。 3. 稳定币脱钩事件(例如 2023 年 3 月...
OKX合约如何更改保证金模式?
2026-09-09 00:00:07
了解保证金模式基础知识1. 保证金模式决定了 OKX 期货交易中抵押品如何在各个仓位之间分配。 2.逐仓保证金为每个仓位分配专用抵押品,限制每笔交易的风险敞口。 3. 全仓保证金共享所有未平仓头寸的可用账户余额,提高资金效率。 4. 选择直接影响强平价格计算和保证金利用率指标。 5. 用户在持有未平...
如何在OKX上查看BTC永续资金?
2026-09-12 19:19:43
OKX BTC 永续合约的资金费率机制1. BTC-USDT 永续合约资金费率在 UTC 00:00、08:00 和 16:00 每八小时计算一次,自 2025 年 6 月 15 日起,TUSDT 永续合约的计算时间改为每两小时计算一次,但 BTC-USDT 的计算时间保持不变。 2. 资金来源于永...
如何停止 OKX 交易机器人?
2026-09-15 17:20:06
终止 OKX 交易机器人会话1. 通过 OKX Web UI 或部署机器人的自定义仪表板访问机器人的控制界面。 2. 找到活动会话标识符 — 这显示为与正在运行的实例关联的唯一字母数字字符串。 3. 如果使用 python-okx SDK,请执行stop_bot()方法,确保在关闭之前取消所有挂单。...
如何在 OKX 上设置 DCA 机器人?
2026-09-16 10:59:57
了解加密货币交易中的 DCA 策略1. 平均成本法是一种严格的投资方法,无论价格波动如何,都会定期购买固定数量的加密货币。 2. 这种方法可以减轻情绪化决策,并减少波动引起的计时错误的风险。 3、在OKX上,DCA执行依赖API集成来触发订单,无需人工干预。 4. 该策略不保证利润,但历史上平滑了整...
如何平掉部分 OKX 期货头寸?
2026-09-10 10:39:39
了解部分平仓机制1. OKX 期货合约支持通过标准下单进行部分平仓,而不是通过专用的“部分平仓”API 端点。 2. 头寸规模减少仅由提交的订单数量决定——不需要特殊标志或参数。 3、用户必须保证其下单数量不超过当前持仓规模;超过会触发错误响应,代码为 51000。 4. 对于部分平仓,市价单和限价...
如何为OKX仓位添加保证金?
2026-09-10 07:20:15
市场波动模式1. 自 2022 年第三季度以来,Bitcoin 超过 68% 的交易日在 24 小时窗口内价格波动超过 15%。 2. 在流动性较低的时期,尤其是在 02:00–06:00 UTC 期间,以太坊始终表现出比 BTC 更高的日内波动性。 3. 稳定币脱钩事件(例如 2023 年 3 月...
OKX合约如何更改保证金模式?
2026-09-09 00:00:07
了解保证金模式基础知识1. 保证金模式决定了 OKX 期货交易中抵押品如何在各个仓位之间分配。 2.逐仓保证金为每个仓位分配专用抵押品,限制每笔交易的风险敞口。 3. 全仓保证金共享所有未平仓头寸的可用账户余额,提高资金效率。 4. 选择直接影响强平价格计算和保证金利用率指标。 5. 用户在持有未平...
查看所有文章














