老太太被随后赶到的支援人员送往医院时,林舟正蹲在巷口的垃圾堆旁,用镊子夹起一片沾着泥土的银杏叶。这片叶子的形状、叶脉走向,与他在杂物间那个男人卫衣上看到的几乎完全一致,只是边缘多了几个细微的齿痕——像是被某种啮齿类动物咬过。
苏晴正在和对讲机那头的人争执,声音压得很低,但偶尔泄露出的词句还是能听清:“……监控覆盖报告是你们提供的……现在说有盲区重叠?……我不管责任在谁,立刻调附近三个街区的所有民用摄像头数据……”
林舟把银杏叶装进证物袋,站起身时注意到苏晴的手指在微微发抖。不是因为害怕,更像是愤怒或焦虑。他走到她身边,递过去一瓶未开封的矿泉水:“矿物质水,pH值7.3,能稍微缓解神经紧张。”
苏晴愣了一下,接过水却没拧开:“刚才在杂物间抓到的男人叫王磊,无业,有三次盗窃前科。我们查了他的通讯记录,最近一周和一个境外号码联系频繁,但对方用的是虚拟拨号,查不到源头。”
“他拆的那个黑色盒子呢?”林舟看向被技术人员装进防磁箱的设备。
“初步检测是信号干扰器,改装过的民用型号,能屏蔽半径五十米内的所有无线信号。”苏晴的语气带着挫败,“但技术人员说,这东西的功率根本不足以干扰我们的加密对讲机,更像是……故意让我们发现的。”
林舟点点头,这和他刚才的判断一致。从入侵服务器的试探性代码,到刻意留下的轨迹三角形,再到现在这个功率不足的干扰器,对方的每一步都像是在展示线索,却又在关键处留下破绽,仿佛在进行一场信息不对称的智力游戏。
“那个老太太的身份核实了吗?”他问。
“核实了,张桂英,78岁,独居,退休前是市图书馆的古籍管理员。”苏晴调出平板上的资料,“她没有使用过你的小程序,甚至没有智能手机。这推翻了我们之前的推测——目标筛选和小程序无关。”
“不,有关。”林舟指向巷子深处那栋楼的三楼,“张桂英家的阳台正对着一个公交站台,而那个站台是小程序推荐路线里的高频换乘点。她每天早上四点半会到阳台浇花,这个习惯持续了十五年,在社区网格员的记录里能查到。”
苏晴的眼睛亮了一下:“你的意思是,对方不是根据小程序用户筛选目标,而是通过小程序分析高频路线,再锁定路线周边符合特定行为模式的人?”
“概率89.6%。”林舟拿出手机,调出“先知系统”的后台数据,“我刚才同步了公交站台的人流数据,过去三个月,每天凌晨四点半到五点之间,经过那个站台的小程序用户平均为17人。张桂英在阳台的停留时间,恰好覆盖了这个时段。”
他顿了顿,指尖在屏幕上划出一条曲线:“更关键的是,张桂英的侄子在市气象局工作,负责维护城市气象监测网络。而‘先知系统’的天气数据接口,正好对接的是气象局的内网。”
苏晴的呼吸猛地一滞:“对方的真正目标是……”
“不是人,是数据接口。”林舟打断她,“他们在测试我能通过‘先知系统’挖掘到多少信息。从用户轨迹到关联人员,再到数据源头,这是一条完整的信息链。张桂英只是这条链上的一个节点。”
这时,一个穿着白大褂的技术人员跑过来,手里拿着一份检测报告:“苏姐,干扰器里发现了这个。”他递过来一个透明的证物袋,里面装着一张极小的芯片,“表面刻着一串字符,像是某种坐标加密符。”
林舟接过证物袋,对着光仔细看了看。芯片上的字符是由0和1组成的二进制代码,共24位。他拿出手机,打开计算器APP,快速转换后得到一组经纬度:北纬31°14′,东经121°29′——这个位置在黄浦江的江心,距离外滩大约三公里。
“现在是五点四十分。”林舟看了眼时间,“从第一次入侵到现在,对方每一步行动的间隔是47分钟。如果按照这个规律,下一次行动会在六点二十七分。”
苏晴立刻对着对讲机下令:“立刻调派水上警力,封锁黄浦江江心区域,重点排查可疑船只!”
林舟却摇了摇头:“不用。这组坐标是假的。”他指着芯片边缘的磨损痕迹,“加密符的校验位被人为篡改过,真正的坐标应该是北纬31°12′,东经121°31′——那里是市档案馆的新馆地址。”
技术人员立刻用电脑验证,果然如林舟所说。苏晴看向他的眼神里多了些探究:“你怎么确定的?”
“二进制代码的校验规则是固定的,就像数学公式,篡改其中任何一位,结果都会出现可预测的偏差。”林舟把证物袋还给技术人员,“对方知道我能破解,所以故意留了破绽。他们想让我们去档案馆。”
“那我们去不去?”
“去。但不是现在。”林舟走到停在巷口的警车旁,“我们需要先弄清楚,王磊卫衣上的银杏叶和张桂英家附近的银杏树,到底有什么关联。”
他让技术人员调取了张桂英家小区的绿化档案,发现那棵银杏树是十年前移栽的,来自市郊的一个苗圃。而更巧合的是,那个苗圃三年前因为一场火灾被烧毁,负责人在火灾中失踪,至今下落不明。
“火灾原因是电路老化,官方结论是意外。”苏晴看着平板上的档案记录,“但这里有个备注,说火灾现场发现了不明来源的化学残留,当时因为证据不足,没深入调查。”
林舟的手指在屏幕上快速滑动,调出苗圃火灾的新闻报道和现场照片。在一张拍摄于火灾后的航拍图上,他注意到苗圃的仓库位置有一个奇怪的轮廓,像是被人为切割过的圆形。
“把这张图的分辨率调到最高。”他对技术人员说。
图像放大后,那个圆形轮廓变得清晰起来,边缘有规则的齿痕,和银杏叶上的齿痕形状完全吻合。林舟的瞳孔微微收缩:“不是啮齿类动物,是某种机械装置留下的痕迹。”
就在这时,苏晴的对讲机里传来一阵嘈杂的电流声,接着是一个模糊的男声:“苏队,档案馆那边……发现异常……有个工作人员……不见了……”
苏晴的心沉了下去:“什么时候的事?”
“六点十五分左右……监控拍到他走进档案室,然后就没出来过……门窗都是锁着的……”
现在是六点二十分,比林舟预测的时间早了七分钟。林舟看着手机屏幕上的时间,忽然意识到一个被忽略的细节:对方的行动间隔不是47分钟,而是47减去行动次数的平方。第一次间隔47分钟(47-1²),第二次应该是47-2²=43分钟,从五点零七分(张桂英被发现的时间)加上43分钟,正好是六点整——而档案馆的异常是六点十五分被发现的,中间有十五分钟的延迟,说明对方在刻意模糊时间规律。
“那个失踪的工作人员是什么身份?”林舟问。
苏晴对着对讲机确认后,脸色变得更加难看:“他负责管理民国时期的水文档案,而那些档案里,有关于黄浦江航道改造的原始图纸。”
线索突然串联起来:气象局的气象数据、档案馆的水文图纸、黄浦江的坐标……对方的目标似乎和城市的地理信息有关。林舟打开“先知系统”,输入所有已知信息,让系统进行关联分析。三分钟后,系统给出了一个概率最高的推测:对方在寻找某个隐藏在城市地理数据里的秘密,而这个秘密很可能与几十年前的某个工程有关。
“我们去档案馆。”林舟拉开车门,“这次不能再等了。”
警车在早高峰的车流中穿梭,林舟看着窗外掠过的街景,大脑里像有无数齿轮在转动。他试图用逻辑构建对方的行为模型:他们为什么要选择用失踪案来传递信息?为什么执着于几何图形和规律间隔?为什么对城市的老旧数据如此感兴趣?
这些问题像一个个未完成的方程式,缺少关键的变量。
档案馆新馆是一栋现代化的建筑,外墙由玻璃和钢结构组成,看起来像一个巨大的书架。门口已经停了几辆警车,警戒线把围观群众挡在外面。一个穿着制服的年轻警员看到苏晴,立刻迎了上来:“苏队,技术科的人已经进去了,档案室的门是从里面反锁的,没有暴力闯入的痕迹。”
林舟没有跟着苏晴走进主楼,而是绕到档案馆的后侧。那里有一排通风管道,管口边缘有新鲜的划痕。他蹲下身,用手指摸了摸划痕处的金属粉末,放在鼻尖闻了闻——有淡淡的机油味,混合着海水的咸味。
“这里有问题。”他对着跟过来的苏晴说,“通风管道被人动过手脚,而且对方身上有海水的味道,很可能是从江上来的。”
他们跟着技术人员进入通风管道,里面漆黑狭窄,只能匍匐前进。管道壁上有明显的爬行痕迹,还散落着几个微型手电筒。爬了大约五十米,前方出现一丝光亮。
出口在档案室的天花板上方,正对着一个存放档案的金属柜。技术人员打开柜门锁,里面的档案整齐排列着,但最底层的一个抽屉是空的,抽屉底部有一个和苗圃火灾现场相同的圆形齿痕。
“ missing的是1947年的黄浦江航道测绘图。”苏晴看着空抽屉,“这份图纸在官方记录里已经遗失了,没想到还存在这里。”
林舟的目光落在抽屉内侧的标签上,标签边缘有一行极淡的铅笔字,像是用某种特殊的墨水写的,在强光下才能看清:“第三段,73步。”
“第三段指的是什么?”苏晴问。
林舟走到档案室的窗边,看向外面的黄浦江。江面上有几艘货轮正在航行,按照航道划分,从外滩到吴淞口被分为五段,第三段正好是档案馆对面的区域。
“73步……”他在心里默算,“成年人的步长平均是0.75米,73步大约是54.75米。从第三段航道的中心线向江心延伸54.75米,那里是什么位置?”
苏晴立刻用对讲机询问水上警力,得到的回复是:“那个位置有一个废弃的水下电缆桩,是上世纪五十年代的遗留物,上面覆盖着厚厚的淤泥。”
林舟的眼睛亮了:“这才是他们真正的目标。失踪案、干扰器、加密坐标,都是为了让我们帮他们找到这个电缆桩。”
“为什么是我们?”苏晴不解,“他们自己也可以找。”
“因为他们需要‘先知系统’的计算能力。”林舟调出系统后台的运算记录,“从凌晨开始,系统就被一股外部力量引导着,不断分析城市地理数据,而最终指向的,就是那个水下电缆桩。对方在利用我完成他们的计算。”
这时,技术人员在通风管道的出口处发现了一个微型发射器,里面有一张纸条,上面写着:“下午三点,老地方见。带齐你需要的东西。”
“老地方指的是哪里?”苏晴问。
林舟却注意到纸条的纸质很特殊,是用一种罕见的桑皮纸制作的,这种纸在本市只有一家老字号的文房四宝店还在售卖——那家店就在张桂英家小区的隔壁,离那棵银杏树不到一百米。
“他们在循环利用线索。”林舟把纸条折好放进证物袋,“从银杏叶到桑皮纸,从张桂英到档案馆,所有的点都串联成了一个闭环。这不是随机行为,而是经过精密设计的逻辑陷阱。”
苏晴看着他冷静分析的样子,忽然问道:“林先生,你有没有想过,对方为什么这么笃定你能解开这些谜题?他们似乎对你的思维方式了如指掌。”
这个问题让林舟的动作顿了一下。他想起三年前开发“先知系统”时,曾经在一个技术论坛上发表过一篇关于概率预测模型的论文,里面详细阐述了他的逻辑推理方法。那篇论文的匿名评论区里,有一个ID叫“执棋者”的用户,和他进行过长达一周的辩论,对他的理论提出了很多尖锐的质疑,却又在某些关键节点上,给出了恰到好处的提示。
当时他只当是遇到了志同道合的同行,现在想来,那个“执棋者”的思维方式,和现在这个对手惊人地相似。
“也许不是了解,是试探。”林舟的声音低沉了一些,“就像在调试程序,不断输入变量,观察输出结果,直到模型符合预期。”
他看了一眼时间,上午七点三十分。距离下午三点还有七个半小时。在这段时间里,他需要做两件事:一是弄清楚水下电缆桩里藏着什么,二是找出“执棋者”的真实身份。
而他不知道的是,在档案馆对面的一栋写字楼里,一个穿着中山装的男人正站在落地窗前,看着警车驶离档案馆。他手里拿着一个平板电脑,上面显示着林舟的照片,照片下方有一行字:“逻辑链已形成,裂痕出现。”
男人身后,一个穿着黑色西装的助手低声问:“陈科,需要按计划进行下一步吗?”
被称为陈科的男人转过身,正是三天前拜访过林舟的那个男人。他脸上露出一丝意味深长的笑容:“当然。林舟是个优秀的棋手,但他忘了,棋盘上的棋子,有时候也会自己选择走法。”
他拿起桌上的一个银杏叶标本,轻轻放在平板电脑上,正好遮住了林舟照片的眼睛:“让他以为自己掌握了逻辑,这才是最好的陷阱。”
与此同时,林舟正在返回公寓的路上。他打开“先知系统”,输入了那个水下电缆桩的坐标,以及1947年航道测绘图的相关参数。系统开始高速运算,屏幕上的数据流像瀑布般滚动,最终在中央屏幕上形成了一个三维模型——那是一个隐藏在电缆桩内部的密室,里面似乎存放着一个金属盒子。
模型的右下角,有一个极小的红色标记,代表着系统无法解析的未知因素。林舟盯着那个标记,忽然意识到,无论他的逻辑多么严密,计算多么精准,总有一些变量是“先知系统”无法捕捉的——比如人心,比如那些隐藏在理性面具下的欲望与恐惧。
这或许就是对方留给自己的,那条逻辑链上最致命的裂痕。
下午三点整,林舟准时出现在那家老字号文房四宝店门口。阳光透过梧桐树叶的缝隙洒在青石板路上,形成斑驳的光影。他没有带任何设备,只在口袋里放了那片装在证物袋里的银杏叶。
推开门,风铃发出清脆的响声。店里弥漫着墨香和纸张的味道,一个穿着蓝布衫的老人正在柜台后整理毛笔。看到林舟,老人抬起头,露出一个和蔼的笑容:“请问需要点什么?”
“我找‘执棋者’。”林舟说。
老人的笑容没有变化,只是指了指里间的门:“他在里面等你。进去吧,门没锁。”
林舟推开门,里面是一个狭小的房间,墙上挂满了字画。房间中央的桌子旁,坐着一个背对着他的人,正在用桑皮纸写着什么。
“你来了。”那个人转过身,脸上带着一个银色的面具,面具上刻着复杂的几何图案。
“是你入侵了我的服务器,策划了那些失踪案。”林舟的声音很平静,像在陈述一个既定事实。
面具人笑了笑,推过来一张纸:“先看看这个。”
纸上画着一个和之前轨迹相同的等边三角形,三个顶点分别标注着:苗圃、档案馆、水下电缆桩。而在三角形的中心,写着一个名字:周明远。
这个名字让林舟的瞳孔骤然收缩。周明远是他的祖父,一位在1957年失踪的水利工程师,官方记录是在一次勘察中意外落水,尸骨无存。但林舟小时候在祖父的日记里看到过只言片语,说他在黄浦江底发现了“不该存在的东西”。
“你是谁?”林舟的声音第一次出现了波动。
面具人站起身,走到窗边,看着外面的银杏树:“我是在帮你完成你祖父未完成的事。那个水下电缆桩里的盒子,是他当年留下的。里面有关于‘深海计划’的全部资料。”
“深海计划?”
“上世纪四十年代,国民政府联合外国势力,在黄浦江底秘密修建的一个地下工事,后来因为战争被废弃。你祖父发现了这个工事,想公之于众,结果被灭口了。”面具人的声音透过面具传来,带着金属般的冷硬,“那些失踪的人,都是当年参与灭口的人的后代。包括张桂英的侄子,包括档案馆那个工作人员的父亲。”
林舟的大脑像被重锤击中,无数被忽略的细节瞬间清晰:祖父日记里的奇怪符号,和那个圆形齿痕形状相同;苗圃火灾的年份,正好是祖父失踪后的第二十年;“先知系统”的核心参数173,恰好是祖父的生日——1月7日。
原来他的一切,早就被安排进了这场跨越几十年的棋局里。
“你想让我做什么?”林舟问。
“打开那个盒子。”面具人递过来一把黄铜钥匙,钥匙柄上刻着和面具相同的几何图案。

