集中流动性池把价格轴切成一千多个一格的小区间,LP 把资金挂在自选的价格带上。当兑换把现价推出一格又一格,合约需要立刻回答「下一格有钱的格子在哪」。逐格扫描价格轴在链上贵得离谱,主流实现于是给格子轴装了目录:一张位图。位图本身不存资金,只存「哪些格子被初始化过」的一条条比特位,它是账本的目录页,目录页也有自己的账本和维护成本,本文拆的就是这部分。
结构是两级寻址。第一级位图记录每个二级块的初始化状态——每个二级块对应一个价格区间,块内某一格第一次被初始化时,第一级对应比特被点亮;第二级位图记录块内部三百多个格子的逐一状态。查找从第一级开始:现价所在的格子越界后,合约先在一级图里找到下一个亮着的比特,再进对应的二级图锁定具体的格子,两跳定位,代价与区间总长度无关。这个设计的巧妙处在于便宜:一次初始化的登记要写两级位图各一笔,而后续千百次路过都只读不写。
用户什么时候会为位图付 gas?三个入口最常见。第一次在某价格段挂流动性(初始化格子时点亮两级位图);跨边界兑换(当前块越界后要做两次位图查找,若恰好落在从未初始化的块里,查找扫空的循环会明显变贵);以及清算、取回跨多格时逐格的库存结算。单看每一笔都是分币级成本,但把它们和事件场景对齐就会发现规律:冷门币对的边缘价格带、全新池子的冷启动阶段,位图大面积空白,路过交易反复扫空,单位 gas 比热门池子的核心区贵出一截。行情冲进无人区那一小时的成交失败或 gas 尖峰,一部分原因就在这张目录页太薄。
第二类成本是「账实不符」的异常。格子的状态、两级位图、库存三项本应同步翻转,但异常场景会留下撕裂:格子有余额却未被标记,兑换路过时视而不见,资金原地失联;或者标记亮着而格子实际已空,合约停在该格结算零库存,交易在 gas 耗尽边缘反复失败。修复这类撕裂是公共劳动:清算和压缩函数路过时可以顺手把位图与真实库存对齐,而执行这份劳动的人获得 gas 返还。用户端的症状很好认——同一段兑换在钱包模拟里通过、真实提交时失败或严重超支,八成与路过区段的索引撕裂有关,换起点终点或等待维护交易落块是常规处置。
批量铺格子的省钱顺序是实操中最值钱的小知识。同一区块内,把多个价格带的初始化合并进一次加流动性调用,比拆成多笔分次提交便宜得多:位图与库存的槽位写入在重复触碰同一存储槽时享受退款与优惠,同一交易的后续操作大量复用前一操作已加载的状态。反向纪律同样成立:在冷门池给极宽区间铺格子前,先用钱包的节点模拟看一次真实消耗,把区间从宽到窄试出成本拐点,比按热门池的经验预算要准。老练的做市脚本会把格子维护排进凌晨低 gas 时段,把位图点亮当作给公路铺路灯——先铺路,让白天的成交只付过路费。
最后给这层目录一个恰当的位置。它不决定你的手续费收入、不决定无常损失,是纯粹的管道工程:把「在无限长价格轴上做有限的事」翻译成可支付的 gas 账单。也正因为它平时隐形,异常时的症状很容易被误读成协议故障或行情攻击。一个简单的心智模型够用了:热门区的位图是城市地图,冷门区是荒野,路过荒野的车(交易)永远比路过城区的车贵、也更容易陷车。选价格带、排执行时段、判断异常归因时把地图新旧算进去,你对集中流动性池的 gas 账单就只剩下理解,没有意外。
本文仅为机制说明与信息整理,不构成投资建议,不涉及任何买卖时机判断。参与数字资产相关活动存在协议风险、智能合约风险与市场风险,涉及资产、收益、交易的决定需要你自行评估并承担相应后果,请以协议官方文档与链上事实为准。

发表评论
还没有评论,来说两句吧。
评论区为展示样式,提交不会被处理。