初秋的雨是从凌晨三点开始下的。细密的、不带任何声响的雨丝,像无数根冰冷的针,把整座城市缝进了铅灰色的幕布里。沈渡醒来的时候,枕边手机屏幕亮着,映出三十二条未接来电,全部来自同一个陌生号码。他没有回拨,只是安静地坐起身,把被子叠成整齐的豆腐块,然后走进洗手间刮了胡子。
镜子里的男人四十二岁,眼窝因为长期熬夜而凹陷,颧骨上有一道淡得几乎看不见的旧疤。他换上一件深灰色的亚麻衬衫,把袖口卷到手肘,从书架上抽出一本《旧唐书》卷六十一的校勘本塞进帆布包。出门前,他看了一眼挂在玄关的那幅拓片——是欧阳询书写的《九成宫醴泉铭》残本,笔画之间藏着唐太宗对忠臣的训诫。
雨越下越大。他打车去了城西的柳园路,那是一条夹在老居民楼和新建写字楼之间的窄街,路两旁的梧桐被雨水打得七零八落。派出所门口已经拉起了黄黑相间的警戒线,几个穿制服的人在雨里来回走动,面无表情。一个年轻警员拦住了他:“家属?”
沈渡点头。警员把他带进临时搭建的蓝色塑料棚里,那里放着一张折叠桌和两把椅子,桌面上摊开一本登记簿和几份打印出来的现场照片。他没有看那些照片,只是坐着,双手交握搁在膝盖上。雨水从棚檐滴落,在他脚边溅起细碎的水花。
“沈澜是你的……”对面坐着的是一位女警,三十出头,短发,眼神利落得像一把裁纸刀。
“妹妹。我是她哥哥。”
“她昨晚十一点十七分从天桥东路7号科研大楼的十五层天台坠下。现场没有发现搏斗痕迹,监控显示她是独自一人走到天台边缘的。法医初步判断,坠落高度约四十五米,当场死亡。”
沈渡的指尖微微收拢,指甲掐进手背的皮肤里,但他没有松手。“我可以看看她的遗物吗?”
女警犹豫了两秒,从桌下拿出一个透明证物袋,里面是一部碎屏手机和一本棕色皮面的笔记本。手机屏幕还亮着,停留在一条未发出的备忘录上,只有四个字:“我太累了。”沈渡盯着那四个字看了很久,然后翻开笔记本。第一页是沈澜清秀的字迹,写着唐代“独孤怀恩”三个字,下面画了一道横线,旁边用红笔标注:史官所言,未必为实。
他的手指停在那行字上,轻轻摩挲着纸页的纹路。女警低声说:“我们初步判定为自杀。她的社交账号上有大量负面评论,近一个月尤其集中。你作为家属,如果有任何疑问……”
“没有疑问。”沈渡打断她,声音平静得像一潭死水,“我可以把她的东西带回去吗?”
“程序上需要签字确认。”女警递过来一张表格,沈渡接过笔,一笔一画地写下自己的名字。他的手没有抖。
离开派出所时,雨终于停了。沈渡站在街边等车,把沈澜的手机开机。屏幕亮起的瞬间,通知栏被红色的消息气泡淹没,他粗略扫了一眼——微博、知乎、豆瓣、贴吧,四个平台加起来超过五千条@和私信。他没有点开任何一条,而是直接进入设置,关闭了所有推送。
接下来三天,沈渡把自己关在书房里。他给研究所请了长假,理由是“处理家事”。电话打过去的时候,所长沉默了几秒,说:“沈老师,节哀。小澜的事我们都听说了,你要保重。”沈渡说了声“谢谢”,挂断电话,把手机翻扣在桌上。
他开始一项一项地整理沈澜的数字遗物。她是一名历史文献方向的博士候选人,研究课题是“唐初政治斗争中的叙事操控——以独孤怀恩案为例”。在最后一个月的实验记录里,沈澜反复提到一组数据:她爬取了近十年所有关于该案的研究论文、网络讨论帖和通俗历史文章,用自然语言处理工具分析其中的情感倾向和叙事偏差。她发现,当代大众对独孤怀恩的负面认知,几乎全部来源于《旧唐书》和《新唐书》中同一段被反复引用的记载,而这段记载的核心证据——元君宝的告密信——早已佚失,现存文本是宋人补录的。
沈渡翻开笔记本的最后一页,上面密密麻麻地写着代码注释和几个被圈起来的IP地址。他认得那些代码——沈澜用的是他当年教她的Python爬虫框架,只是在末端加了一层异常复杂的匿名化处理。那几个IP地址旁边,她用红笔标注了“水军源头”和“与秦牧有关”。
秦牧。沈渡闭上眼,脑海里浮现出一个戴着金丝眼镜、说话时习惯用手背推镜架的中年男人。秦牧是盛和科技的副总,三年前沈澜曾参与过他公司一个“文化遗产数字化”项目的伦理审核,在报告里指出该项目的用户数据采集存在隐私漏洞。报告被驳回,沈澜拒绝签字,项目最终换了合作方。此后,秦牧在公开场合三次提及“某些学者缺乏商业常识”,虽然没点名,但圈内人都知道指的是谁。
而沈澜的社交账号正是在那之后开始遭受第一波攻击的。起先是一些匿名账号评论她的论文“水平低下”,后来升级为人身攻击,说她“靠哥哥关系进的研究所”“私生活混乱”。那些账号的发布时间密集得像机械制造的雨点,评论内容高度重复,显然不是自然用户的行为。沈渡曾经劝她关闭评论,她笑着说:“哥,做历史的人不能怕被人看。”
她不怕被人看,但她怕被人误解。沈渡记得最后一次通话是在坠楼前一周,妹妹的声音很疲惫,说:“我找到一些东西,关于独孤怀恩案最原始的记录可能被人改写过。那个改写的人,和秦牧的企业史顾问是同一个人。”她说到这儿停了一下,压低声音,“哥,如果有一天我出事,你去看我电脑D盘一个叫‘蒲州’的文件夹。”
沈渡当晚就把那台笔记本电脑从研究所取了回来。他打开D盘,找到“蒲州”文件夹,里面除了几十篇论文草稿和扫描的唐代墓志拓片,还有一个被加密的Excel表格。他用了四个小时破解密码——密码是他们的生日组合加上“怀恩”两个字。表格里列着一串用户名和对应的真实身份信息,一共四百八十八条记录,每条记录后面都标注了该用户在沈澜最后三条微博下的评论内容、点赞数、转发链条。
最上面一行用红色高亮标示了一个ID,叫做“风起陇西2020”。沈渡点开关联的备注,沈澜写道:此ID在评论发布前12分钟登录,IP与秦牧办公室的备用出口网关重叠,登录设备为Samsung Galaxy Note 9,与秦牧公开出席活动时使用的手机型号一致。
沈渡盯着那行字看了将近十分钟。窗外又下起了雨,雨点打在书房的老式木窗上,发出沉闷的敲击声。他站起身,走到书柜前,从最上层取下一函线装本的《唐律疏议》复印件。他翻到“谋叛”条的页面,上面用毛笔小楷写着古人的注解:“叛者,背国从伪,罪不容诛。然首告者,得免死。”
他忽然想起三年前沈澜刚入学时,他们兄妹俩在研究所的露台上喝酒。沈澜喝到微醺,指着天上的星星说:“哥,你知道吗?唐代的史官其实很可怜,他们写下的每一个字都可能决定一个人的生死。可是他们手里的笔,有时候也是别人的刀。”
现在那把刀终于落到了她头上。沈渡把线装书合上,放回原处。他走到客厅的穿衣镜前,看着镜子里那个两鬓已经开始泛白的中年男人。他的眼神很静,静得像深冬结了冰的湖面。他拿出手机,删掉沈澜手机里所有的社交应用,然后把那部碎屏的手机用一块灰色棉布包好,放进书桌最下层的抽屉里。抽屉里还有一张他们兄妹小时候的合照,照片上沈澜扎着马尾辫,笑得眉眼弯弯。
他关上抽屉,打开电脑,开始重新运行沈澜留下的那个爬虫脚本。屏幕上飞速滚动的代码映在他眼睛里,像一串串流淌的数字瀑布。他调试着参数,把时间范围扩展到沈澜坠楼前两个月,把数据源从四个平台扩展到十六个,包括短视频评论区、知识问答社区和匿名树洞应用。在等待程序跑完的间隙,他给自己泡了一杯很浓的普洱,茶汤黑得像墨。
凌晨两点十七分,爬虫完成。沈渡在输出结果的尾部发现了一个异常——有一组评论的时间戳分布呈现出完全不自然的人工间隔规律,且所有评论都在发布后的三分钟内被沈澜本人看到并点击。他翻出沈澜手机里那条仅存的未发出备忘录,在“我太累了”下面,其实还有一行被折叠的文字。他点开折叠,里面写道:“他们能看到我点开评论的次数,他们知道我什么时候在线上。这不是偶然的网暴,有人在实时监控我的反应。”
沈渡的手指在键盘上方停住了。窗外一道闪电划过,把书房映成惨白,随即又是无边的黑暗。他听见自己的心跳声,沉稳而缓慢,像一把上紧了发条的钟。他关掉所有窗口,只保留了那个隐藏IP的记录。
然后他拿起手机,拨通了三天前那三十二个未接来电中的第一个。电话响了两声就接通了,对面是一个男人的声音,带着电流的杂音:“沈渡先生,我是柳园路派出所的陆昭。我想再和您确认一件事——您妹妹出事当天,她的电脑是否有人动过?”
沈渡沉默了两秒,说:“她的电脑在我这里。”
“方便的话,明天上午九点,请带到所里来一趟。另外,”陆昭停顿了一下,声音比刚才低了几分,“我们调取了天台附近的民用监控,发现当晚十点四十分左右,有一个人影在大楼东侧消防通道出现过。那个时间,距离沈澜坠楼还有四十分钟。”
沈渡握紧手机,指节发白。“能看到脸吗?”
“看不清。但他手里拿着一样东西。”陆昭说,“我们在监控画面上反复放大之后,判断那应该是一个——古书一样的方形物件。我查了记录,你妹妹的研究方向是唐代历史。沈先生,你知道有谁会在大半夜带着一本古书出现在她工作的地方吗?”
雨声在电话背景里越来越大,沈渡的嘴唇微微动了动。他没有回答那个问题,只是说:“陆警官,明天九点,我会带着电脑过去。”
挂断电话后,他走到窗前,看着雨幕中模糊的城市轮廓。远处的科研大楼亮着寥落的几盏灯,十五层的天台边缘,雨水正沿着护栏无声地滑落。他想起沈澜笔记本里那句“史官所言,未必为实”,忽然觉得这句话不止是给独孤怀恩写的。
她把真相藏在了那本书里。而他要做的,是找到那本被带走的东西,以及那个在雨夜里携书而来的人。
他重新打开电脑,把那个隐藏IP的追踪代码调整了一次。屏幕上跳出一行新结果:该IP三小时内仍在活跃,且最近一次访问记录指向一个名为“蒲州遗事”的加密论坛。论坛的注册时间,恰好是沈澜坠楼之后两个小时。
窗外一道闷雷滚过天际,沈渡的眼眸在雷电的闪光照耀中亮了一瞬,随即又沉入更深的暗处。


暂无评论,来抢沙发吧!