没问。”
“因为他不需要问。”陈路说。“他手上那张图已经至少有十七行是对的。第十七行他能对出来,说明前十六行他都对过了,全对。图是全的。他今天来不是来补图的。他是来验图的。”
顾远又看了一眼窗台上那两片黄叶子。那盆绿萝是三年前项目组刚搬进来时林序放的。三年里没人专门浇过水——只是谁想起来就往里倒一点喝剩的水。它活到了现在。
“数据结构拓扑可以从外部推演。”他说,还是在看那两片叶子。“只要收集到的数据碎片够多——从第一次评估会的摘要数据,到这次沟通我们亲口说出的校验逻辑——碎片之间有结构关系。结构关系可以反向推导拓扑。就像看一栋楼的窗户位置,能推出里面有几层。”
“推导的条件是有人有足够的耐心,把碎片拼在正确的位置上。”周启明从机柜边走开,在屋里踱了两步。步子不大,避开了地上的线缆——那些线缆用不同颜色的扎带捆着,红色是电源,蓝色是数据,黄色是备用。走了两年,线路的走向已经刻进他的脚步习惯里。“三不原则保护了这场沟通不在档案里留下痕迹。但他今天回去以后,会在自己的合规记录里写:‘到访项目组备用机房,核实技术数据十七项。’这个记录不在我们档案里,但在他那边。我们没法引用,没法反证,没法在正式会议上说‘他当时问过’——因为正式渠道里这场会没存在过。”
他把保温杯的盖子拧开,喝了一口水。水是早上倒的,已经完全凉了。
“信息不对称本身在加深。方向反了。不是他们知道得比我们少。是我们不知道他们知道了多少。”
那天晚上,女分析师没有打电话。
周启明的手机在七点四十二分响了一声。短信。
四个字。
“他叫程久。”
没有标点。没有上下款。没有前因后果。
周启明把手机放在桌上,屏幕朝上。四个人围着那张旧桌子——顾远站在窗边,外面已经黑了,窗玻璃上映着机房的日光灯和他自己的脸。伊琳坐在空杯子后面,杯底那圈咖啡渍已经彻底干成了深褐色。陈路在白板前没走,手指无意识地在板擦的毛毡面上来回蹭。林序的本子摊开在膝盖上,笔帽咬出了两道印子——不是伊琳那支,是他自己的。
伊琳先开口:“这是她第一次给具体人名。”
“名字不同于代号。不同于职务。名字是让另一个人被找到的凭据。”周启明说。他的手指按在手机屏幕上,把那四个字遮住了三个,只露出一个“程”。“委员会里姓程的人至少有三个。但‘程久’——一个年轻人,戴银色细框眼镜,不开口,只对图,对完十七行一个多余的问题都没有。他今天下午已经站在我们的机房里了。她不是提前告诉我们他要来。她是等到他来过之后,才给了名字。”
“因为来过之前,她不确定他是不是那个人。”伊琳把杯子转了一圈。杯底在桌上刮出很轻的摩擦声。“她今天可能也在场。不在备用机房——在走廊里,在楼下,在某个她能看见他而他看不见她的位置。她看见他走进来,看见他带着终端,看见他走出去。然后她确定了:‘这个人就是程久。’才给了名字。”
顾远从窗边走回白板前。窗玻璃上的人影跟着消失。他在“非正式沟通”下面加了一行字:
“第一个人名出现。程久。”
写完,他回头看了一眼手机屏幕上的四个字。
“名字是最小的信任凭证。她想告诉我们什么。”
“她想告诉我们——来的人是合规审查组的。不是秘书处的。”林序翻着笔记本。他的手指沿着下午记的那几行字往下移,停在“带了图来的”那一行。“合规审查组可以查有没有违规。也可以查有没有人能找出违规。她把他的名字告诉我们,等于把专业领域告诉我们。一个数据合规审查组的年轻技术员,带着拓扑图来对校验逻辑。”
“他在找不吻合。”陈路开口了。他的视线从白板上移开,转向顾远。“十七道题全答对了。他没有赞许。没有表情。没有追问第十八个。他在找漏洞,一个都没找到。这反而是他带回去的最大的信号——顾远给出的不是随便能抓到把柄的技术文档。”
备用机房里重新沉默下来。风扇声还在,均匀的嗡鸣,和每天一样。日光灯管的镇流器发出轻微的电流声,频率比风扇高,更尖。
林序在日志里逐条整理了陈路复述的十七行对应关系。不是技术细节——他不记校验脚本版本号和阈值参数——他记的是互动的结构。问了几个问题,每个问题属于哪一类,回答的速度有没有变化,靠墙的人在第几个回答之后开始了规律性的划屏动作。他数了。第一次划屏发生在陈路回答第一个问题时——“核心区每四十八小时一次完整校验,缓冲带每七十二小时一次