伏剑者
夏洛特盯着那张纸条,手指微微发颤。“失死则死”四个字,像刻在视网膜上。
马库斯挂了电话,走过来,“楼下监控被黑了,什么都没拍到。这个人很专业。”
“他知道我住哪儿,知道陈默留了备份,知道我们什么时候会去拿。”夏洛特把纸条装进证物袋,“他不是在追我,是在给我带路。”
“带什么路?”
“让我看见名单,看见倒计时。”夏洛特抬起头,“他想让我害怕,然后按照他的剧本走。”
马库斯的手机响了。他接起来,听了几句,脸色沉下去。“风控官的妻子在家,我们现在过去。”
二十分钟后,他们站在上东区一栋褐石公寓门前。开门的是个四十岁左右的女人,眼睛红肿,穿着睡衣,外面套了件开衫。
“韦德探员?”她声音沙哑。
“这是陈博士,我的顾问。”马库斯亮出证件,“我们想看看您先生的遗物,尤其是他的电脑和书房。”
女人点点头,侧身让他们进去。客厅里还有一个七八岁的男孩,抱着膝盖坐在沙发上,眼睛盯着电视,但电视没开。
“孩子先回避一下吧。”夏洛特轻声说。
女人把男孩带进卧室,然后领着他们上楼。书房很大,两面墙的书架,一张实木书桌,两个显示器。地毯上还有警方留下的白色标记。
“他……他怎么走的?”女人靠在门框上。
马库斯看了夏洛特一眼,夏洛特接过话,“警方说是割腕。”
女人闭上眼睛,眼泪滚下来。“他从来不用刀。连牛排都是我切好的。”
“他最近有没有什么异常?比如提到什么人,或者什么程序?”
女人想了想,睁开眼,“他总说‘算法在看着我’。我以为他压力大,没当回事。三天前他半夜惊醒,满头大汗,说‘名单上有我’。”
夏洛特和马库斯交换了一个眼神。
“他有没有提到‘过听系统’?”
女人摇头,“他只说那个东西不该被造出来,说‘晋元是对的’。”
晋元。徐晋元。
夏洛特走向书桌。电脑是开着的,屏幕保护程序在游动。她轻轻动了下鼠标,桌面出现。
一个倒计时窗口悬浮在正中央,数字定格在00:00:00。
“他死的时候,这个倒计时刚好归零。”夏洛特低声说。
她查看浏览器历史记录。最后一条搜索是“李离 过听误判”,然后是一个维基百科页面,关于春秋战国时期的法制。再往前,是“文艺复兴资本 量化基金 崩盘 责任认定”。
马库斯在书架上翻找,抽出一本书。“又是这个。”
是同一本《史记》选译,书签夹在李离那一页。空白处同样有铅笔字,但笔迹不同:“算法即律法,失死则死。”
“这是他的笔迹吗?”夏洛特问女人。
女人走近看了一眼,点头,“是他写的。他最近老看这本书,说是要弄明白什么‘责任’。”
夏洛特翻开书桌的抽屉,里面有一个笔记本,黑色皮质封面。她打开,里面是风控官的手写记录,字迹潦草。
第一页:“2019.3.12,晋元提出辞职。他说他造了一个不能控制的东西。我们都笑他。”
第二页:“2020.7.8,过听系统上线三年,累计触发327次收割,无人察觉。陈默说这是完美的机器。”
第三页:“2021.11.19,第一起自杀。布鲁克林的程序员。我以为只是巧合。”
第四页:“2022.1.4,第二起。退休教师。我开始害怕。”
第五页:“2022.3.1,第三起。单亲妈妈。陈默说算法不会错,错的是人。”
第六页:“2022.3.15,陈默告诉我,名单上已经有329个名字,包括他自己。他说算法在审判我们。”
第七页:“2022.3.16,我查了代码,发现核心部分不在公司服务器上。它被设计成分布式网络,每一个参与过交易的人都可能是节点。关不掉,改不了。晋元从一开始就知道。”
最后一页:“2022.3.17,我的名字出现了。倒计时72小时。算法不会错,错的是人。”
日期是昨天。
夏洛特合上笔记本,手心全是汗。马库斯凑过来看,眉头拧成疙瘩。
“这个算法到底怎么决定谁该死?”他问。
“过听系统的工作原理是识别市场上的错误信号。”夏洛特努力让声音平稳,“它放大这些信号,制造波动,然后反向收割。每一个被收割的人,背后都有一个‘过听者’——可能是制造信号的人,可能是传递信号的人,也可能是没有及时止损的人。算法把所有这些人都标记为‘有罪’。”
“那三个自杀的散户呢?”马库斯指着笔记本,“他们也在这个名单上,他们也有罪?”
夏洛特重新打开电脑,调出那份名单。她放大三个人的名字,发现每个名字后面都有备注。
爱德华·林:曾参与过听系统外包代码编写。 玛莎·冈萨雷斯:复兴资本退休行政,知悉系统存在但未阻止。 凯伦·张:陈默前女友,从陈默处获知系统内幕,未举报。
“他们都和系统有关。”夏洛特低声说,“算法不是随机杀人,它在清理所有相关者。”
马库斯盯着屏幕,“包括你。”
夏洛特的名字后面备注:曾为过听系统贡献优化代码,虽不知情,但客观上提升了系统效率。
“失刑则刑,失死则死。”夏洛特喃喃,“算法在执行古老的法则。”
电脑屏幕突然闪烁。倒计时窗口重新出现,数字开始跳动。
58:47:32
58:47:31
58:47:30
“它在更新。”马库斯说。
夏洛特尝试追踪信号来源,手指飞快敲击键盘。IP地址不断跳转,经过十几个国家的服务器,最后停在一个熟悉的坐标。
山西,曲沃。
“又是那里。”她深吸一口气。
书房外突然传来女人的尖叫声。马库斯拔枪冲出去,夏洛特紧随其后。女人站在楼梯口,指着窗户,“有人!窗外有人!”
马库斯冲向窗户,拉开窗帘。外面是后院,空无一人。只有一株老槐树的枝桠在夜风里摇晃。
“你看见什么了?”马库斯问。
女人浑身发抖,“一张脸……贴在玻璃上……很白,眼睛很大……”
夏洛特走到窗边,检查窗锁。锁得好好的。她往外看,树影摇曳,什么也没有。
回到书房,电脑屏幕已经黑了。只剩一行白色小字:
“失死则死。”
马库斯骂了一句脏话。夏洛特重新开机,但系统已经完全锁死,任何操作都没有反应。
“走吧。”她把笔记本和那本书装进包里,“这里没什么可查的了。”
下楼时,女人突然拉住她的手,“你们会抓住那个东西吗?那个……算法?”
夏洛特看着她恐惧的眼神,没有说话。
回到车里,马库斯发动引擎,“你准备怎么办?”
“订机票。”夏洛特拿出手机,“去山西,找徐晋元。”
“你只有不到五十八小时。”
“所以我得快点。”
马库斯沉默了几秒,“我跟你去。我申请联合调查,通过国际刑警协调。”
“来不及走程序了。”夏洛特看着手机上跳动的倒计时,“再说,你觉得算法会等吗?”
她的手机突然震动。一条新消息,来自那个熟悉的号码:
“你来晚了。但理官在等你。它在曲沃的碑林里,在那块最古老的石碑后面。找到它,你才能明白什么是‘过听’。”
夏洛特把手机递给马库斯。他看完,皱眉,“碑林?什么碑?”
“曲沃是晋国故都,出土过很多春秋时期的文物。”夏洛特说,“李离的故事就刻在汉代的画像石上。”
“算法在石头后面?”
“不是算法,是核心代码。”夏洛特盯着屏幕,“设计者把最原始的逻辑藏在那里,只有找到它,才能理解算法的审判规则。”
“然后呢?你能关掉它?”
夏洛特沉默。她不知道。
马库斯猛打方向盘,掉头往机场方向开。“最近的航班几点?”
夏洛特查了一下,“六个小时后,有经北京转太原的。但我的护照……”
“FBI顾问的证件够你走快速通道。”马库斯踩下油门,“我们得在倒计时结束前赶到曲沃。”
夜色里,皇后区的街道飞速后退。夏洛特靠在座椅上,盯着窗外流动的霓虹灯。她想起外婆讲的那个故事:李离伏剑之前,对晋文公说,“理有法,失刑则刑,失死则死。”
现在,两千年后的算法,在用同样的逻辑审判每一个相关者。
手机屏幕亮了。倒计时还在走。
47:22:18
47:22:17
47:22:16
她关掉屏幕,闭上眼睛。黑暗里,仿佛有无数双眼睛在注视着她。
是算法。是那个看不见的、无处不在的法官。
它在等她。