林昼盯着那行“影子侧补回请求进入待封存状态”,没有立刻说话。
屏幕上那串回声编号还在闪,像一排被人强行按进水里的针,表面安静,底下却还在往外冒细小的气泡。公开栏前的人群已经不再只是围观,他们开始低声交换刚才那几条新提示的含义。有人第一次听懂了“回声取证”四个字背后的重量,脸色发白;也有人只是皱着眉,像在想一件更朴素的事。
这地方,原来不是看见了就算数。
看见之后,还会有人借着看见继续往里钻。
“把回声编号和转供链的历史账一起对。”林昼开口,声音不高,却把控制室里所有人的注意力重新拽了回来,“我不信他们只是为了补回公开页。公开页只是壳,真正要补的,是壳后面那条供血线。”
周工立刻把另一组台账调出来。屏幕切换的一瞬,原本整齐的列表忽然变得凌厉起来,像一张被摊开的旧网,线上挂满了不同颜色的标记。
转供链。
分散收款。
回流补点。
镜像回填。
每一个词单独看都像中性的流程,连在一起却像一根越拉越紧的绳,把人和钱一起往同一个方向拖。
“转供链不是今天才开始的。”周工盯着汇总页,手指顺着一条条时间戳往下滑,“它和回声缓存、b侧请求其实是并行的。前面那些动作,是为了让现场能跑;而转供链,是为了让跑出去的东西最后还能回来。”
“回来?”纪检联络员冷笑了一声,“回来给谁?”
林昼没接这句。他的视线落在几条被系统自动归并的收款轨迹上。
这些轨迹本来散在不同主体、不同批次、不同业务名义里,白天像正常经营,夜里像临时调拨,彼此之间几乎没有明显关联。可当系统把它们和回声编号、镜像提交、补核验请求串起来后,所有线头都指向同一个位置。
不是某个账号。
也不是某台设备。
而是一个归集点。
“看这条。”林昼点开其中一行,“‘供应备付’进来后,分了三段转出去,最后都回到同一个结算池。池子名字换过四次,接口名换过六次,外层看起来像不同业务,实质上都在往同一口井里倒水。”
周工迅速放大图层,几秒后,归集路径被一条粗线勾了出来。
粗线末端没有显示常规名称,而是一个不断变更的内部代号。
第一次叫“临时缓冲池”。
第二次叫“节拍承接仓”。
第三次叫“回填总口”。
第四次,干脆只剩一个字母缩写。
“他们在故意抹去归集点的固定名字。”周工说,“每换一次名,就把前一次的痕迹切断一次。前面能查到转供,后面就查不到落点。”
林昼的目光一点点冷下去。
“可账不会因为改名就自己消失。”他说,“只要它还得回到某个地方结算,就一定有归集动作。动作有时间,有权限,有入口。名字可以换,归集点不能一直换。”
大厅那边忽然传来一阵细微的骚动。
林昼抬眼看去,只见公开栏前多了几个人,手里都拿着刚打印出来的纸。其中一个中年男人没看别的,只盯着那行“影子侧请求待比对”,半天才问出一句:“这是不是说明,我们之前交进去的东西,最后都被转到别处去了?”
没人立刻回答。
那种沉默并不尖锐,却比任何回答都更沉。
有人点开了服务台内侧的发放说明,低声念出“转供链之后的归集点”几个字,像在确认自己是不是理解错了。可页面上的每一条新标识都在提醒他们,这不是误解。
这是有人提前把出口修好了。
“现在的问题变了。”林昼把那几条轨迹重新收拢,“以前我们是追着转供链跑,像追一条四处拆散的蛇。现在蛇已经跑过去了,前面只剩下归集点。只要把归集点钉住,后面的所有转出、回填、补核验,都会自己暴露。”
纪检联络员皱眉:“可归集点如果是动态的呢?他们既然能改名,也能换壳。”
“换壳可以。”林昼说,“换规则不行。转供链跑得再快,最后都得有一个统一的结算口。就像风再大,水最后也要落回井里。我们要找的不是壳,是井口。”
周工突然抬头:“等等。”
他把一条刚抓取到的异常日志拖出来,脸上的表情一下子变得极冷。
“公开页的补核验请求又被触发了,但这次不是镜像侧发起的,是归集点反向发起的。”
林昼眼神一沉。
屏幕上,新的请求行慢慢展开,像一张从暗处递出来的纸。