拉维在“遗忘之境”核心区的潜伏进入第四天时,发现了一件比所有代码和攻击方案都更让他不安的事情。
不是“秩序”又发布了什么新的投票。不是某个ID发表了多么极端的技术建议。不是倒计时器上那些正在无情减少的数字。而是一个不起眼的统计功能——论坛右上角那个小小的“在线用户”图标,鼠标悬停上去之后弹出一个半透明的浮窗,显示当前核心区的实时在线人数和ID列表。这个功能一直存在,拉维之前也用过,但他从来没有仔细研究过那些ID背后的含义。
直到那天凌晨。
他注意到其中一个ID——“灰烬”,在线时间超过四百天,发帖数量为零。这个数字让他产生了好奇。四百天不是一个新用户,不是一个偶尔路过的看客,这是一个沉默的、耐心的、从未发出任何声音的长时间停留者。像一个永远坐在最后一排、从不举手、从不发言、但每次上课都准时出现在教室里的学生。
拉维开始系统地检查核心区的沉默用户。他写了一个简单的爬虫脚本,扫描了论坛公开页面上的所有ID信息——在线时长、发帖数量、投票记录、最后活跃时间。当数据被整理成一张电子表格的时候,他盯着屏幕看了整整三分钟,然后拨通了阿迪亚的电话。
“你需要过来一趟。现在。”
阿迪亚在凌晨两点抵达蛇道边的窝棚。拉维把手机屏幕转向他,上面是那张电子表格。第一列是ID,第二列是在线天数,第三列是发帖数量,第四列是投票记录——每个ID在“投票者”页面上的每一次投票都被记录在案,包括投票时间和所投选项。
“核心区总共有一千八百二十九个注册ID,”拉维用手指沿着屏幕下滑,“其中发帖数超过十条的活跃用户只有一百一十四个。发帖数在三到十条之间的有三百多个。剩下的将近一千四百个ID——全都是沉默用户。他们从不发言,从不参与讨论,从不提出技术建议,但他们在线。每次都上线。每次投票都参与。”
他停在表格的某一行。
“这个ID叫‘灰烬’。在线时间四百零七天,发帖零条。投票记录——完美投票率。从‘投票者’上线的那一刻起,他参与了全部三轮投票。第一轮投了圣约瑟夫医院,第二轮投了北区移民区,第三轮——正在进行的这一轮——又投了医院。”
“这意味着什么?”
“意味着他不是一个被动的旁观者。他主动参与投票,但他从不发言。不表达意见,不提供理由,不参与讨论。他只是投票。一千四百个沉默用户里,有将近一千个都是这种模式。”
阿迪亚看着那些数据,想起了维克拉姆日记里的那句话——“我不是罪人,我只是一个按按钮的人。”维克拉姆至少还需要给自己找一个理由,还需要写两百页日记来说服自己。但这些沉默用户——他们连理由都不需要。
“还有一个更让我不安的发现。”拉维切换到表格的另一张工作表,“我交叉比对了这将近一千个沉默投票用户的IP出口节点和活跃时间段。虽然每个IP都经过了洋葱路由的三层加密,无法追踪到真实地址,但我发现了一个规律——他们的活跃时间段高度集中在晚上八点到凌晨一点之间。这是普通人的上网时间。不是技术人员,不是职业黑客,不是那些在凌晨三点还在调试代码的狂热分子。这些人是白天上班的普通人。他们下班回家,吃完晚饭,打开电脑,登录论坛,投下一票,然后关掉电脑,上床睡觉,第二天照常上班。”
窝棚里安静了很久。蛇道深处传来隐约的水流声,那是北区水泵站排进暗渠的饮用水在管道里流动的声音。
“我需要看到他们是谁。”阿迪亚说。
“做不到。洋葱路由的加密——”
“不是技术上的身份。是他们的身份——他们可能是教师、公务员、商店老板、学生、家庭主妇。任何一个在白天看起来完全正常的人。我要知道,是什么样的心理机制让他们在晚上变成一个投票杀人的人。”
拉维沉默了一会儿,然后打开了一个新的窗口。那是他之前写的一个分析工具,用来追踪论坛用户在“投票者”页面上的行为路径——从登录到投票,每一步花了多少时间,在投票前是否浏览了讨论区,投票后是否继续停留在页面上。
“多数沉默用户的行为路径极其简短,”他指着屏幕上的流程图,“登录,打开投票页面,投票,登出。整个过程平均用时四十七秒。没有犹豫,没有浏览讨论区,没有查看其他选项的票数对比,没有阅读任何技术分析。四十七秒。这甚至不够一个人完成一次认真的道德思考。”
“四十七秒。”阿迪亚把这个数字写在笔记本上,然后在旁边加了一条注释,“投票行为已经变成了一种习惯性动作,像刷短视频一样自然。道德阻力在反复执行中被消解——第一次投票可能还有犹豫,第十次投票就变成了肌肉记忆。”
他想起赫玛客厅里那三十七个相框,想起安维在人群中消失的那两秒钟。然后他想起论坛讨论区里那些冰冷的技术术语——效能评估、因果链条、优化方案。两种语言,两个世界,但操纵它们的可能是同一个人。站在讲台上的高中数学老师,或在便利店收银台后面扫码的中年妇女。
“筛选出所有在踩踏事件发生后七十二小时内注册、并在首轮投票中选择了医院的沉默ID。”他说。
拉维的手指在键盘上快速敲击。几秒钟后,筛选结果出来了——四百三十一个。
“分析这批ID首轮投票的时间点分布。”
拉维运行了一个新的脚本。时间分布图显示,这四百多个ID的投票时间存在几个明显的峰值——第一个峰值出现在“秩序”的复盘帖发布后半小时内,第二个峰值出现在“投票者”功能上线后一小时内,第三个峰值出现在“螺丝刀”发表了那篇“医院是技术挑战”的分析之后。
阿迪亚指着第二个峰值:“这个时间点——投票者刚上线,还没有任何技术讨论,没有任何‘合理性分析’。这些人是最纯粹的投票者。他们不需要理由,只需要一个按钮。查这个批次ID在上一次踩踏事件发生前后是否有活跃记录。”
拉维敲击键盘的声音停了下来。
“有。其中大部分ID在‘神启之门’踩踏事件发生前的论坛公开区有过零星浏览记录。有些更老——他们的ID注册时间可以追溯到一年前,甚至更早。他们一直都在。只是不说话。”
“他们一直在看。”
阿迪亚把这句话写在笔记本上,然后重重地画了一个圈。看,但不说话。投票,但不解释。离开,没有痕迹。这群沉默的共犯比“秩序”本人更让他感到寒意。因为“秩序”至少是一个可以被找到、被追踪、被审判的人。但这些沉默者——他们是一千四百张隐藏在洋葱路由后面的脸,是一千四百双在四十七秒内完成道德卸载的手。法律永远触碰不到他们,因为他们没有留下任何可以被定义为“犯罪”的证据。
但他忽然想到了一种可能性。
“拉维——投票记录本身能不能被反向用来定位他们?”
“什么意思?”
“如果我能拿到论坛服务器的物理访问权限——或者说,如果米兰达能拿到‘纯净水域’那个仓库里的任何一件设备——那么所有投票记录背后对应的访问日志,也许能帮我们追溯到投票者登录时的真实地理位置。洋葱路由的加密不是绝对安全,只要在出口节点上安装监控程序,就能抓取到离开网络之前的最后一层IP。”
拉维的眼睛亮了一下,然后暗下去。
“那需要物理访问。我们现在连‘秩序’在哪儿都不知道。”
“我们知道。”阿迪亚翻到笔记本上画了维克拉姆最后地图的那一页,“维克拉姆在日记里标注了三十多个‘可用节点’。其中有一个——圣约瑟夫医院——是所有沉默用户投票最集中的目标。如果‘秩序’真的在执行投票结果,那么他的下一步一定和医院有关。要攻击医院的备用电源,他需要医院附近的发射点。而维克拉姆标注的那个医院节点——一个废弃的旧药房——拥有完全符合远程定向电磁脉冲所需的一切条件:高处、无遮挡视野、无人看守、以及一台还能用的老旧配电柜。”
他站起来,拍了拍裤子上的灰尘。凌晨的冷风从蛇道入口灌进来,带着暗渠深处特有的水汽和金属味。拉维看着他——这个十五岁的少年第一次在阿迪亚脸上看到了一种介于希望和恐惧之间的表情。
“你要去那个药房。”
“对。但现在,我要先做一件事。”
阿迪亚从怀里掏出笔记本,翻到空白页,写下一句话。然后他把这一页撕下来,递给拉维。
纸上写着:“如果我在二十四小时内没有联系你,把米兰达和德赛叫到一起,告诉他们——‘秩序’不只是一个人,他背后的沉默者也不是。他们是一个分布式网络,而网络的弱点不在节点本身,在于节点之间的连接。中断这些连接的唯一方法,是让他们开始互相怀疑。谣言比代码更有杀伤力。”
拉维看完,把纸条折好塞进口袋。
“你会回来的。”
“这不是重点。”阿迪亚合上笔记本,把它揣进怀里——那本墨绿色封面的笔记已经记了超过六十页,每一页都在逼近一个他越来越不想面对的真相,“重点是,我们需要让那些在四十七秒内完成投票的人知道一件事——他们的沉默保护不了他们。匿名给了他们勇气,但勇气也可以变成恐惧。”
他走出窝棚,融入黎明前最深的黑暗。暗渠里的水还在流淌——那是北区三万居民本该喝到的干净的水,正顺着一条一百二十年的暗道流向无人知晓的深处。像一个隐喻,也像一具被藏匿在迷宫深处的证据——这座城市的罪,都沉在水底。


暂无评论,来抢沙发吧!