第十九章 协议Zero
黑暗持续了七秒。
第八秒,顾长河的手在柜台下面摸到了什么。一声沉闷的机械响动——是那种老式闸刀开关被拉下的声音。天花板上亮起了一盏应急灯,不是LED的冷白色,而是蓄电池供电的旧式荧光灯管,发出嗡嗡的低频噪音,光线惨淡,像是从太平间里借来的。
书店重新浮现在这片惨白的光里。书架、煤炉、柜台、蹲在柜台上的陈皮——一切都还在,但颜色都被洗掉了,只剩下灰和白,以及煤炉映在墙上的那一小片暗红。
“别碰任何电子设备。”顾长河的声音压得很低,“协议Zero不是系统原生的。那段代码是引导层里埋的东西,周卫国没写,我也没见过。但我知道它是什么。”
林默站在原地,右手重新按在内袋位置,然后意识到碎片A和E已经不在身上了——它们在柜台上,就在顾长河的手边。两枚金属芯片在荧光灯下泛着死灰色的光。
“你知道什么?”
“协议Zero是天网原始设计团队另外两个人写的。”顾长河的手指在碎片C终端的键盘上快速敲击,屏幕虽然灭了,但键盘本身似乎还在工作——林默注意到顾长河的指法不是盲打,而是在按某种特定的节奏,像是在输入一组机械密码,“那两个人在天网上线第二年同时死亡。官方记录是车祸。周卫国不相信。”
“他们写的引导层——”
“引导层不是后门。引导层本身就是门。”顾长河打断他,“那两个人把协议Zero写进了固件的最底层。触发条件不是时间,不是任务,而是——碎片A、E、C同时出现在同一个物理坐标内。”
林默的瞳孔收缩了一下。
碎片A和E他贴身带了五天。碎片C在旧书店放了十七年。他今天把它们带到这里,三枚碎片第一次聚齐——正好触发了协议Zero。
这不是巧合。这是设计。
六十秒倒计时。林默不知道已经过去了多少秒。
魏建国从门边绕到柜台侧面,动作很轻,几乎没有声音。他当过三年卧底,知道什么时候该说话,什么时候该变成一件家具。此刻他选择了后者,但他的右手已经伸进了外套内侧——林默知道那里有什么。
小陈抱着笔记本电脑蹲在书架之间的过道里,屏幕的蓝光打在他的脸上,让他看起来比实际上更年轻,也更害怕。但他的手指没有停,正在扫描附近的无线信号。
“有一个广播信号。”小陈的声音绷得很紧,“从街对面那栋楼的楼顶发出来的。信号频率——跟天网系统提示的加密频道一致。林哥,这不是远程激活。有人在附近。”
街对面。
林默在脑中飞速回溯进入书店前的画面。石臼街是一条老街,对面是一排六层的旧居民楼,外立面是水泥抹灰,窗台上堆着杂物,几户人家的厨房亮着灯。楼顶有没有天线?他当时没注意。
“倒计时还剩多少?”
“不知道。”顾长河说,“协议Zero不是系统任务,它不经过任务分发层。它是直接写入引导层的硬件中断指令。没有提示,没有进度条。六十秒一到——”
他停下来,看着林默。荧光灯管在他老式黑框眼镜的镜片上投下两团白色的光斑,遮住了他的眼睛。
“——会怎么样?”
“你父亲的死是什么样,就会怎么样。”
煤炉里的蜂窝煤又炸了一声。陈皮从柜台上跳下来,弓着背,浑身的毛竖起来,发出一声林默从未听过的低吼——不是对陌生人那种威胁的嘶叫,而是更深沉的,带着恐惧的呜咽。
它在往后退。退到墙角,缩在煤炉旁边,尾巴夹在两腿之间。
橘猫感知危险的能力,林默在天枢会议室见过。当时观察员刚站起来,陈皮就炸了毛。现在它比那天更害怕。
倒计时,大约还剩四十秒。或者三十秒。
林默强迫自己不去数。数秒会让人慌,慌会让人犯错。他把注意力拉回到眼前的信息上——三枚碎片聚齐触发了协议Zero。协议Zero来自引导层。引导层的编写者已死。协议Zero的目的是什么?
清除。
十七个宿主。P04激活后,系统一直在通过任务引导他收集碎片。暴雨夜的隐藏任务让他见到老周。宏达仓库让他发现母亲被抓。天枢会议室让他得到根密钥的线索。每一步都在推着他往前走,推着三枚碎片往一起靠近。
如果系统真正想要的,从来不是让他收集碎片,而是让三枚碎片在某个时刻、某个地点聚齐呢?
如果整个“收集碎片以重写系统”的线索,本身就是引导层预设的陷阱呢?
林默的脊背窜过一阵凉意。
“顾长河。”他说,“引导层是谁写的?”
“两个人。一个叫韩松,一个叫孟庆国。”顾长河的手指终于停下了。键盘发出一声细微的咔嗒,像是什么机械结构被触发了,“韩松是嵌入式系统专家,写底层驱动。孟庆国做安全协议——自毁、容错、数据清除,全部是他设计的。周卫国负责应用层和内核层,不碰引导层。天网上线第二年,韩松和孟庆国一起去格尔木做外场测试,车翻进了山谷。两个人都没回来。”
“尸体呢?”
“烧了。运回来的只有两盒骨灰。”
太干净了。林默想。所有能解释协议Zero的人都死了,死在一场干净利落的“意外”里,连尸骨都不剩。五年前天网脱离控制,同样是“意外”。老周从不相信系统失控——他说失控本身是实验的一部分。如果从韩松和孟庆国死亡的那一刻起,实验就已经开始了呢?
如果天网从底层设计上,就不是为了治理城市,而是为了执行协议Zero呢?
倒计时,可能还剩二十秒。
“小陈。”林默没有回头,“那个广播信号,能黑进去吗?”
“加密频道的协议跟天网内核层一致,我需要至少十五分钟——”
“没有十五分钟。”
“我知道。”小陈的声音已经开始发颤,但他的手指没有停,“我正在试。信号源是一台便携式中继设备,型号应该是军用级的,加密强度比民用频段高出三个数量级。我……”
他停了一秒。
“林哥,信号里有一个明文帧。不是加密的,是直接广播的。”
“什么内容?”
“一串数字。重复发送。20231127。”
林默的手指猛地攥紧。20231127。那是他接到暴雨夜激活短信的日期。不是今年的日期——是去年的。去年十一月二十七日,天网系统第一次向他的手机推送任务提示。他当时以为是垃圾短信,删掉了。然后第二天又来了一条,第三天也是。直到他停下来,读了那条短信的内容——
“你看见了吗?”
一年前的十一月二十七日。天网从那天开始盯上了他。
而老周的计划,也是从那天开始真正启动的——因为如果天网锁定了林默,就意味着老周二十年前的伏笔终于被触发了。
“那个信号不是系统发的。”林默说,“是老周。”
书店里所有人都看着他。
“老周已经死了。”魏建国说。这句话他说得很轻,像是在陈述一个他自己也不完全相信的事实。
“老周死了。”林默点头,“但他在死之前设置了这个触发器。碎片A被读取、P04激活七十二小时未被回收、有人来找那本杂志——三条死亡条件全部满足之后,下一步的触发就自动开始。他不是在给我留线索。他是在给我留武器。”
他转向顾长河,“你刚才按的是什么?”
顾长河把手从键盘上移开。柜台的侧面弹出了一个林默从未注意过的抽屉——不是木头的,是金属的,嵌在柜台里面,表面刷着和木头一样的漆,伪装得天衣无缝。抽屉里躺着一部老式手机,诺基亚6150,外壳是深蓝色的,屏幕只有两行文字显示,天线粗得像一根手指。
手机屏幕亮着。上面只有一行字:
“输入密码。”
“老周留下的。”顾长河说,“十七年前他把这部手机锁在这个抽屉里,跟我说过一句话——如果有一天三枚碎片聚齐,如果那一天店里停电,如果陈皮缩在墙角不敢动,就把这部手机拿出来。”
“密码是多少?”
“他没有告诉我。”
林默盯着那部诺基亚手机。两行文字显示,一行是“输入密码”,另一行是闪烁的光标。键盘是实体按键,数字键已经磨得发亮,显然被人按过无数次。
倒计时。也许还剩十秒。也许五秒。
他需要密码。
不是碎片C的密码——顾长河已经说了,碎片C的密码是“你儿子的生日”。那是林长河设的。但这部手机是老周设的。老周不会用别人的生日做密码。
林默闭上眼睛,把五天来的所有碎片在脑中高速排列。
老周的遗言:系统不是敌人也不是朋友,是一件武器。
碎片A里的验证问题:橘子。
老周留给魏建国的上海表。
张德胜转述的最后一句:对不住。把你卷进来。
天枢表决器里的签名段:Z.W。
赵怀民说的话:老周当年提出过一个理论——系统不存在失控,只存在被错误定义的边界。
碎片E的编号:E-0000。零号。最高权限。他把自己写进了自毁协议的最底层。
把自己写进了自毁协议。
林默睁开眼睛。
他在手机键盘上按了四个数字。
0-0-0-0。
屏幕闪了一下。那行字变了——
“协议Zero,终止。备用节点,关闭。天网引导层版本号3.1.7,签名:ZW。”
然后,天花板上的荧光灯闪了两下,熄灭了。
但这一次不是完全的黑暗。煤炉的红光还在。柜台上的碎片C终端屏幕重新亮起来,命令行界面上,光标在左上角安静地闪烁。小陈的笔记本电脑屏幕也从蓝屏恢复,显示着正常的桌面。
街对面那栋楼顶的信号消失了。
陈皮从墙角慢慢走出来,尾巴还是夹着,但它没有再发出那种恐惧的呜咽。它跳上柜台,在顾长河的手边蹲下来,用头蹭了蹭他的手腕。
安静。
然后顾长河发出一声极轻的笑。不是开心的笑,是那种你在棺材盖合上之前发现里面的人还在呼吸的笑。
“他妈的周卫国。”他用一块绒布擦着手,声音沙哑,“他把协议Zero的终止密码设成了碎片E的编号。0-0-0-0。只有知道碎片E存在的人才知道这个编号。而碎片E从头到尾都在他自己手里——直到五年前他把它藏进风铃。”
林默靠着柜台,让后背抵住木头。五天的重量像是一下子卸掉了一半,剩下的一半还压在那里,但至少他可以喘口气了。
但他没有放松太久。
因为手机屏幕上的那行字还在。引导层版本号3.1.7。签名:ZW。
引导层是老周签的名。
不是韩松,不是孟庆国。是老周。
顾长河也看到了那行字。他的笑容消失了。
“不对。”他说,“周卫国没有写引导层。原始设计文档上写得很清楚——应用层和内核层由周卫国负责,引导层由韩松和孟庆国负责。我看过那份文档。”
“你看到的是文档。”林默说,“文档可以改。代码不会。”
他指着手机屏幕上的签名。
“周卫国签了引导层的版本号。这意味着引导层的最终版本是他写的——或者,他把韩松和孟庆国的引导层重写了。协议Zero不是他埋的,但终止协议Zero的东西是他埋的。他把自己的签名写进了底层固件,在韩松和孟庆国死了之后。”
顾长河沉默了很久。煤炉里的火光在他的镜片上跳动。
“如果他们不是死于意外呢?”他慢慢地说,“如果韩松和孟庆国写了协议Zero,周卫国发现了,然后——”
他没有说完。
书店外面,远处传来警笛声。不是天枢方向的——更近。方远的支援?还是别的什么东西?
小陈站起来,把笔记本电脑合上。“林哥,根密钥的备份在这里。三枚碎片都在这里。我们现在可以重写系统了。”
林默没有回答。
他盯着柜台上的手机屏幕,盯着那行版本号的签名——ZW。
周卫国。老周。设计天网的人。设计自毁协议的人。签了引导层最终版本的人。在暴雨夜给他发短信的人。为了让他走到这里而吞下空壳碎片的人。
这个人死了,但他的计划还在运行。他的手机还在接电话。他的签名还在引导层里。
他到底做了什么?
顾长河把三枚碎片逐一插入碎片C终端的接口。屏幕上开始加载数据。命令行界面消失了,取而代之的是一个进度条,下面一行小字:根密钥验证中。请等待。
警笛声越来越近。
陈皮抬起头,望向玻璃门外。街上的路灯还亮着,橘色的光照在梧桐树的枯枝上,在地上投出交错的影子。远处,红蓝两色的警灯正在拐过街角。
然后林默听见了一个声音。
不是警笛。不是风声。是从旧书店的深处传来的——书架后面,那面贴满了旧报纸的墙上,某个东西在敲。
三下。轻。缓。像是用指关节敲的。
顾长河的脸变得比应急灯下的荧光还要白。
“那面墙后面,”他说,“是地下室。十七年来没有人进去过。”
敲击声又响了。
这一次是三下,然后是两下,然后是一下。
三——二——一。
像是某个信号。