你的交易被「打包」了吗:夹单与束的链上查证 图 1
你的交易被「打包」了吗:夹单与束的链上查证 · 图 1

你在钱包里看到报价还能接受,点下确认,几秒后成交回执上的到手数量却明显缩水。第一反应往往是滑点设大了,但还有一种情况:你的交易被人精心安排在了一个特定位置,前后各有一笔同池交易,价格被人为地推高又砸回。这类行为统称三明治攻击,它依托的不是某个黑客程序,而是公开区块构建的规则本身。查证这件事不需要专业工具,区块浏览器加一点耐心就够了。

先讲机制。出块者从公共内存池收集待处理交易,但越来越多区块并不是按手续费高低简单排序的:搜索者可以把几笔交易捆成一个束提交给构建者,束要么整块进、要么整块不进。夹单的标准结构正是三笔交易捆在一起:第一笔在池子里买入,把价格推上去;第二笔是你的兑换,在高价上继续买入,承受更好的报价错觉;第三笔立刻卖出,把价格砸回来。对你而言结果是同一池子你多付了钱,对搜索者而言价差扣除 gas 就是利润,而且这个结构只在你的交易真实成交时才执行,风险被转嫁得很干净。

查证从区块浏览器开始。找到你那笔兑换交易,记下区块高度。展开这个区块的有序交易列表,重点看你交易前后紧邻的几笔:有没有同一个地址(或同一组地址)先买后卖、买卖的是你同一个交易对的池子?夹单的特征是同块内、同池子、方向刚好相反、间隔极短。如果前面有买入、后面有卖出、且两条腿属于同一地址,被夹的嫌疑就非常直接。再点开两条腿的池子事件,核对该区块内池内价格的先升后降形状,图形会替你说话。

但有两个常见的误判要避开。相邻的同池交易未必是夹单:同一区块里可能只是恰好有人做套利、有人平多仓,方向组合对不上就不成立;合法套利也常表现为前后两笔,区别在于套利者是在多个池子之间抹平价,夹单者只在同一池子一进一出、净头寸归零。所以核净头寸是个好抓手:同一地址在这个池子里一进一出、结束时没有余量,才符合夹单的账目形状。另一个误判是没查到就断定没发生:束的执行记录在部分链上展示不全,私有通道进来的交易不进公共内存池,链上可见性天然有盲区。

量化损失用成交价差。拿你交易的输入输出数量算出实际成交汇率,对比同一区块内池子在你交易前后的价格中值,差值近似就是这次被安排的代价。做几张表积累下来,能看出哪些时段、哪些池子被夹得多,这就是后续调整的原料。

把查证流程固定成习惯,成本会迅速下降:每次成交价与报价偏差超过心理阈值,就调出该区块的交易列表扫一眼前后邻居;每周汇总一次被夹次数与损失估算;月末把估算损失与私有通道、批次撮合的额外成本放进同一张表对比。这份数据同时回答两个平时拍脑袋的问题:滑点参数该收多紧,执行通道值不值得多花钱。链上执行的改进从来不靠感觉,靠的就是这几列能对齐的账。

防御侧顺带理清:把滑点上限设小是最便宜的盾牌,宁可失败重试;大单拆小、分时段执行,降低单块被夹的边际收益;对大额兑换优先走私有提交通道或批次撮合,让搜索者猜不到你的确切落块位置。这些手段的机制差异在于防的是同一件事:让你在区块里的位置不再可预测。查证本身不产生赔付路径,它价值在于帮你改进执行方式。本文机制说明不构成对任何交易方式的推荐,也不构成投资建议。

你的交易被「打包」了吗:夹单与束的链上查证 图 2
你的交易被「打包」了吗:夹单与束的链上查证 · 图 2