纽维斯特在倒计时中变得像一座被按下了静音键的城市。
凯伦从沃克大厦四十六层的窗户望出去,街道上的车流比平时少了一半。那些仍然在路上行驶的车辆开得很慢,司机们似乎同时失去了赶路的理由。人行道上有行人,但他们不再看手机——不是不想看,而是不敢看。联邦司法广场的直播仍然在每一个屏幕上播放着,三个名字,两个小时的倒计时,一个无法关闭的窗口。人们走在街上,像在一条随时可能断裂的绳索上保持着平衡。
“证人网络的所有证据包已经准备就绪,”玛雅的声音从会议电话里传来,带着轻微的电流噪音,“二十三份独立验证报告,覆盖了从3.7版本偏差数据到广场投票日志的所有内容。每一个文件都附带了数字签名和时间戳,无法被篡改。只要你们发出信号,我们可以同时向全球十七个新闻机构的加密频道推送。”
“先不要推。”凯伦从窗口转过身。办公室里除了艾伦和艾琳,还多了一个人——一位头发灰白的黑人女性,戴着一副厚重的黑框眼镜,面前摊着一台布满贴纸的老旧笔记本电脑。她是艾伦从附近大学连夜请来的独立密码学教授,莉迪亚·柯尔博士。她已经花了将近一个小时检查莫林那份源代码文件中的那一段神秘程序指令。
“柯尔博士,”凯伦说,“你有什么发现?”
莉迪亚推了推眼镜,把笔记本电脑转向众人。屏幕上显示着一段被反编译的底层代码,密密麻麻的汇编语言中间穿插着她用红色字体做的注释。
“这段程序不是莫林写的,也不是纽拉科技开发团队中任何一个人写的。我对比了预警系统所有版本的代码库,这段指令的风格与其他所有代码都不一致。它的编写者不使用纽拉科技的标准注释格式,也不遵循团队约定的变量命名规范。但它对预警系统底层架构的理解,比任何开发文档都更深入。”
“什么意思?”
“意思是,写这段代码的人可能根本不在开发团队里,”莉迪亚把屏幕翻回自己面前,用手指沿着屏幕上一行十六进制数据慢慢滑动,“但他——或者她——对预警系统的了解程度,几乎等同于系统的原始设计者本人。他知道每一个模块的通信协议,知道每一个数据库的存储结构,知道每一段安全认证的绕过方式。他甚至知道克罗斯的豁免名单在数据库中的具体位置,并且设计了一套自动修复机制来防止那个位置被人为清空。”
“这需要什么样的专业背景?”艾伦问。
“顶尖的系统安全专家。不只是在纽拉科技内部算顶尖,是在全球范围内都排得上号的那种水平。”莉迪亚停了一下,然后补充道,“或者——预警系统的共同设计者。”
办公室里忽然变得很安静。凯伦感到自己的手开始发麻,一种从指尖蔓延到手臂的麻木感。
共同设计者。她忽然意识到一个她从来没有想过的问题:预警系统的核心算法,是谁和莫林一起写的?
莫林是首席算法工程师。莫洛伊是数据部门主管。克罗斯是项目决策者。但一个深度学习模型的复杂程度远超一个人能独立完成的范围。通常来说,至少需要一个两人以上的核心架构团队。莫林在信里从未提过他的搭档。纽拉科技的公开文件中,预警系统的发明人名单上只有三个名字——多米尼克·克罗斯、贾斯汀·莫洛伊、维克托·莫林。但莫林的个人技术报告里,有几处措辞使用了“我们”而不是“我”。凯伦之前以为那只是学术写作的习惯。现在她开始怀疑,那是一种有意无意的暗示——另一个人存在过,但被从名单上抹去了。
“他的名字被删了。”凯伦说。不是疑问句。
“从名单上。”艾琳低声接话。“和那七十六个豁免者一起被删了。不是豁免。是消除。他留下的不是免疫,而是这道自动修复程序——他不能阻止自己的消失,但他可以让真相无法被消除。也许这就是为什么莫林直到最后都不知道他的身份。也许连莫林都不知道。”
“但克罗斯知道。”凯伦的声音变得更低。她拿起手机,拨通了艾伦之前安排的一条专门线路。线路的另一端连着联邦调查局的行动中心。
“技术组能查到预警系统的原始设计文档吗?不是最终存档版,是最早的提案阶段文档——项目立项之前的东西。”
电话那头传来敲击键盘的声音。“查到了。预警系统的项目在十二年前以代号‘透视镜’首次提出。发起人名单上有十二个名字,其中包括当时的纽维斯特大学数据科学研究所的三名研究人员。项目转为企业内部开发后,学术合作被终止,外部研究人员被从名单上移除。剩下三个名字留在最终专利文件上。”
“那三个被移除的研究人员是谁?”
键盘声停了。然后重新响起,速度更快。
“第一个是数据伦理学家,项目转为企业内部后主动退出。第二个是社会学家,一年后以个人原因离职。第三个——第三个是计算神经科学博士,研究领域是递归神经网络的行为预测建模。在项目转为内部的同一天,他的合同被终止。所有与他相关的研究成果被标注为‘纽拉科技独家知识产权’。他的名字是——”
凯伦屏住了呼吸。
“——塞巴斯蒂安·韦斯特。合同终止后,他搬到了纽维斯特东区。三年前——也就是预警系统正式交付政府的同一年——他的名字出现在一份地方医院的死亡证明上。死因是心力衰竭,终年四十一岁。”
“三年前。”艾琳的声音几乎听不见。“莫林也是在同一年离职的。也是在那一年,预警系统正式上线。”
凯伦按下电话的静音键,面向办公室里其他三个人。她的眼睛没有看任何人,而是盯着窗外的灰色天际线。
“塞巴斯蒂安·韦斯特。他在临死前写了一段代码,藏在预警系统的最底层。这道代码每天自动检查豁免名单是否完整,如果被删除就自动恢复。他用了生命中最后的力气,确保那七十六个幽灵永远无法被完全抹去。他不是在保护克罗斯——他是在把克罗斯和他的同伙焊在历史的底座上。因为只要豁免名单还在,编号偏移就还在。只要编号偏移还在,任何一个足够细心的人都能发现真相。他给自己设计的不是安全网,是定时炸弹。他预设了这一天——在未来的某个时刻,会有人打开系统最底层的日志,发现这段无法溯源的指令,然后开始问问题。”
“今天我们开始问了。”艾琳说。
艾伦站起来,走到窗前。他的侧脸在窗外散射的灰色天光中显得格外清晰,每一道纹路都像地图上的等高线。窗外,联邦司法广场方向的屏幕正在倒计时。距离两小时截止还有一小时四十七分钟。
“我们现在手上有编号偏移的数据,有莫林的录音,有莫洛伊的血,有证人的证据包,还有塞巴斯蒂安留下的自动修复程序的源代码。法律上,这些足以申请一份紧急司法披露令——要求纽拉科技开放预警系统的完整服务器日志,包括被克罗斯手动删除的训练数据集原始记录。”
“法官会在一个小时内签发吗?”凯伦问。
“不会。”艾伦的回答没有任何犹豫。“联邦法院的紧急动议流程至少需要四十八小时。而且任何对纽拉科技不利的司法令状,都需要提前通知对方律师。克罗斯的律师团有足够的时间在令状生效前销毁证据。”
“那就绕过法院。”凯伦拿起桌上那台笔记本电脑,屏幕上还显示着莫林最后那封邮件的草稿——那封他从未发出的、写给“所有愿意相信真相的人”的信。“克罗斯喜欢在广场上直播。那我们也用直播。用广场屏幕,用证人网络,用一切可以同步传输信号的方式。我们把所有证据——编号偏移、莫林录音、塞巴斯蒂安的程序、莫洛伊的设计文档——打包成一个问题。一个克罗斯无法用任何语言敷衍过去的问题。”
“问题是‘你的系统编号是多少’。”艾琳重复了凯伦在B2机房说过的那个问题。
“对。”凯伦说。“这是一个不可能作弊的问题。系统编号在预警系统启动的同一毫秒被分配,被写入不可篡改的日志。你可以删除训练数据,可以修改预测概率,可以匿名化清洗一切——但你无法修改系统编号。因为系统编号一旦被修改,所有后续编号的偏移值都会变化。而偏移值一旦变化,就会暴露编号在何时被何人篡改。编号偏移本身就是一张无法伪造的时间戳。任何人如果宣称自己的系统编号是X,而X减去他的注册顺序不等于76,那他就是骗子。如果等于76,那他就是那七十六个人之一。克罗斯不可能同时给出一个不等于76又不等于0的系统编号。如果他不给——沉默就是供词。”
办公室里再次陷入沉默。然后莉迪亚·柯尔忽然开口,声音沙哑但清晰。
“我可以帮你们做一件事。我用四个小时拆解了预警系统的通讯协议。广场屏幕的外部控制接口仍然被正义猎犬掌握,但内部系统有一个弱点——屏幕需要接收来自中央服务器的数据流才能实时更新名单。如果你们能物理接入中央服务器,我可以给你们插入一段伪装成系统更新的广播指令,在广场屏幕上显示任何你们想要的内容。时间不长,最多三分钟。三分钟后正义猎犬会发现并切断信号。”
“三分钟够了。”凯伦说。“物理接入中央服务器——我们现在已经有了。莫林在B2数据中心留下的物理接口还在。虽然存储阵列烧了,但服务器主板仍然可以通过备用电源运转。他留的接口可以直接连接到中央服务器的通讯主缆。”
“但是克罗斯知道我们在B2做了什么,”艾琳说,“他会派人封锁那个入口。”
“他会的。”凯伦合上笔记本电脑,站起来走到窗边。她的影子被窗外灰蒙蒙的光拉得很长,投射在会议室对面的白板上。白板上还有她昨天写上去的庭审时间表,那些字在阴影的遮盖下只剩下半行——“纽拉科技诉埃克曼资本案,原定开庭日期——今天。”
原定开庭日期就是今天。
但法庭不会开庭了。纽维斯特联邦法院在上午发布了紧急通知,因为广场事件和全城安全警报,所有庭审被无限期延期。这个世界已经不再在法庭里解决争议了。它现在在广场的大屏幕上解决争议,在手机投票按钮上解决争议,在狙击步枪的瞄准镜里解决争议。
“我们还有一个选择。”凯伦慢慢说,眼睛仍然望着窗外。
“什么选择?”
“多米尼克·克罗斯今天原本应该出现在法庭上,因为纽拉科技诉埃克曼资本案的开庭公告仍然有效。法官没有撤销案件,只是延期。作为纽拉科技的首席执行官,他今天应该和他的律师团一起准备应诉。而他的律师——是我。至少在几个小时内,他还没有把我从代理律师名单上移除。我仍然有权以律师身份进入纽拉科技的任何办公区域,包括顶层行政套房。”
艾伦转过身看着她。“你要去见他?”
“我要去给他送达一份紧急法律意见书。这是律师-客户特权范围内的合法行为。我不能代表他接受任何东西,但我可以向他提出一个建议——作为他的律师,我建议他立即主动公开预警系统的完整豁免名单,以避免更严重的法律后果。”
“他会直接把你赶出来。”
“他当然会。但他不会赶在我递给他那份法律意见书之前。因为他想看到我手里还有什么牌。他一直都想看到。”凯伦从口袋里掏出那个从莫林公寓带出来的牛皮纸信封。信封里现在不止有莫林的信,还有莫洛伊被血浸透的设计文档,以及她刚刚在沃克大厦打印机里打出来的法律意见书草稿。最后一页仍然留着空白,末尾只有一行字:“签名:______。”
“这是莫林给所有人的信,”她把信封放在桌上,“莫洛伊用血签了他的名字。我需要克罗斯也签——不是用笔,是用系统编号。当他在意见书上写下他的系统编号时,编号偏移就会暴露他是第七十六个幽灵之一。”
“他不会签的。”
“他不需要签。他只需要拒绝——拒绝的时刻,他的脸会被直播。”
凯伦把笔记本电脑包挎上肩膀,走向门口。她的步伐比过去两天里任何时候都更平稳,像一个人在走过独木桥的中段时终于不再往下看。她按了电梯按钮,然后回头对艾伦和艾琳说了一句话。
“莉迪亚在中央服务器那边做准备。艾伦负责保护她。艾琳——”
“我跟你去。”艾琳已经站了起来,把她的平板电脑夹在腋下。
“艾琳,你是被广场屏幕公开标记的人。如果你走进纽拉科技大楼,你会——”
“我会在克罗斯自己的大楼里,站在他的办公室地毯上,让他当面告诉我他为什么选了百分之六十二,”艾琳的声音平静得像冬天结冰的湖面,“这是我从看到名单那天起就想做的事。你不能替我完成。”
凯伦看着她,然后点了点头。
电梯门在两人面前滑开。她们走进电梯,门关上,楼层数字开始向下跳动。透过电梯的玻璃壁,她们看到纽维斯特在倒计时中缓缓沉入傍晚前的最后一段灰色光线。联邦司法广场的屏幕在远处跳动着三个名字和不断减少的数字。城市的街道上,有人站在电子公告牌前不肯离开,有人蹲在路边掩面哭泣,有人继续用粉笔在柏油路面上写着——“我的评分是______。”
没有人填上那个数字。因为没有人知道自己的数字是什么。而恐惧最深的根源,不是知道,而是不知道。
电梯到达底层大厅。凯伦和艾琳走出大门,纽维斯特的风从港口方向吹过来,裹挟着潮湿的冷意和远处救护车的警笛声。她们穿过街道,朝着那栋巨大的玻璃方尖碑走去。大楼的LED屏幕仍然在闪烁——“预见未来,保护现在”。但在两小时倒计时归零的时候,如果她们失败,这行广告语将被一句更简短的话永久覆盖——一句多米尼克·克罗斯为整个城市提前写好的墓志铭。
凯伦迈上纽拉科技总部大楼前的台阶,推开玻璃旋转门。大厅里空荡荡的,只有前台的灯还亮着。那个之前给她刷过通行证的保安已经不在岗位上了,取而代之的是一个穿着深灰色套装的女人——四十岁出头,短发,戴着一副粗框眼镜,双手交叠放在桌面上,像是在等一个早就约好的会面。
凯伦认出她。是玛雅·林德奎斯特。但玛雅不应该在这里——她应该在证人网络的加密频道的另一端,在某个安全屋或地下室里,和剩下二十二名证人一起协调证据发布。
“玛雅?”艾琳也愣住了。
玛雅站起来。她的脸上没有凯伦预想中的紧张或惊喜。只有一种深深的、被消耗殆尽的疲惫。
“我不是玛雅,”她说,“我是她的姐姐。伊娃·林德奎斯特。玛雅在两个小时前失联了。她最后的信号是从纽拉科技大楼三十七层——数据架构部——发出的。我到她住处找她时发现了这个。”
她从桌下取出一个平板电脑。屏幕上是一条未发出的草稿信息,收件人是凯伦·沃斯。信息内容只有一句话:
“凯伦——伯格曼并不是因为发出了调查数据才死的。他是因为发现了塞巴斯蒂安·韦斯特不是死于心力衰竭。——M”
凯伦盯着屏幕上那行字,感到世界的声音在一瞬间全部消失了。
塞巴斯蒂安·韦斯特不是死于心力衰竭。
那个写出了自动修复程序的男人,那个在临死前把真相嵌入系统最底层的计算神经科学家,他的死亡证明上写着“心力衰竭”,但伯格曼发现了真相,然后伯格曼死了。莫林发现了塞巴斯蒂安的代码,但他不知道塞巴斯蒂安是谁——然后莫林也死了。莫洛伊在广场上被处决,因为他即将说出那个永远无法修正的人。
现在玛雅也失联了。在纽拉科技三十七层——数据架构部。莫洛伊生前的办公室旁边。那个曾经属于塞巴斯蒂安·韦斯特、然后被从组织结构图上永久抹掉的楼层。
“顶层套房,”凯伦转向艾琳,“克罗斯在等我。他一直在等我。他知道我从B2出来后会来找他。这不是我在靠近他——是他把我拉向了他。”
她转身朝电梯走去。身后,伊娃·林德奎斯特的声音追上来——
“她还留了一句话给你们。她说如果她失联了,请你们继续完成莫林没做完的事。”
电梯门打开。凯伦和艾琳走进去。三十七层。然后是顶层套房。
电梯开始上升。数字在屏幕上跳动。外面,城市的倒计时也在跳动。两个节奏,两套数字,正在以不同的速度向同一个终点逼近。


暂无评论,来抢沙发吧!