雨滴砸在窗玻璃上,发出密集而沉闷的声响。
陈牧盯着屏幕上那封加密邮件,手指悬在键盘上方,迟迟没有落下。
发件人署名“老魏”,是他在网安部门时的老搭档,如今已是省厅网络安全处负责人。邮件标题栏里只有一个数字编号:767。那是大历二年的公元纪年。陈牧盯着那三个数字看了很久,直到屏幕边缘开始模糊,才意识到自己又一次忘了眨眼。
他端起手边的搪瓷杯,杯里的速溶咖啡已经凉透了。窗外的城中村正在拆除,挖掘机的轰鸣声穿过雨幕传来,像某种古老巨兽的喘息。陈牧租住在这里七年了,周围的租客换了一茬又一茬,只有他和这栋六层自建楼的房东还守着这块即将被征收的土地。
他点了根烟,把邮件正文往下翻。
“老陈,我需要你回来。”
后面跟着一段暗网交易平台的截图。截图里有一个代号为“渭南令”的雇主,发布了一条加密悬赏。悬赏金额是三十七个比特币,按照当前市价折算,将近两百万美元。目标栏里列着三个名字,第一个名字已经变成了灰色,旁边标注着一行小字:交易已完成。
陈牧放大截图。那个已完成的目标名叫张继,头像是一张房地产项目开工仪式的新闻照片,照片里的男人西装革履,正对镜头举着铁锹。陈牧认识这张脸。三个月前,张继作为华庭地产的项目经理,亲自带人拆了城东那栋旧楼。被拆迁的住户里有一个八十多岁的老太太,在搬运家当的当晚突发心梗,没撑到救护车赶到。
当时这条新闻在本地论坛上闹过一阵子,很快就被压下去了。
陈牧滑动触控板,继续看下一张截图。这是“渭南令”在暗网任务板上发布的原文。他用比特币交易的原始数据进行比对,发现这段文字的格式很特别——它不是现代白话,而是一种刻意模仿唐代官府公文的文体,文中甚至有几句摘抄自《唐律疏议》的原文,只是把“夺佃田十顷”改成了“夺人家园”,把“渭南令王奕”改成了几个现代房地产商的名字。
血书。
陈牧的目光停在第二张截图的边缘。那是从暗网雇主私密频道里截取的一段文字,发件人的ID是一串乱码,但陈牧认得那个加密方式。混合器三次交叉,洋葱路由多层跳转,最后用SHA-256算法生成一次性签名——这套加密流程是他和老魏当年联合设计的,专门用于追踪暗网非法交易。
能把这种加密反过来用的人,世界上不超过五个。其中四个还在体制内,另一个就是他自己。
烟烧到了指节,陈牧才回过神来,把烟蒂按进烟灰缸。
他拉开书桌抽屉,里面躺着一部老旧的诺基亚手机,一块磨得发亮的机械手表,还有一张塑封的旧照片。照片里一个五六岁的小女孩扎着两个羊角辫,正趴在他腿上笑。陈牧没有碰照片,只是看了一眼,然后关上抽屉,拿起手机拨了老魏的号码。
电话响了一声就接通了。
“我就知道你忍不住。”老魏的声音听起来很疲惫,背景里有键盘敲击的声音,“你看到那个ID了吗?”
“看到了。”陈牧说,“有人盗用了我当年写的混合器代码,反过来做了一个匿踪协议,把雇凶交易包在了里面。”
“不止盗用。”老魏停顿了一下,“那个协议里有一段数字签名,我们用你留下的验证程序跑了一遍,它通过了。”
陈牧没有说话。数字签名通过意味着什么,他和老魏都清楚。那是他退休前亲手写过的一套代码,核心算法只有他自己知道密钥。如果数字签名通过了,只有两种可能:要么是他自己签的,要么是有人拿到了他的私钥。
“私钥一直在我手里。”陈牧说。
“你确定?”
他本来想说确定,但话到嘴边停住了。因为他突然想起一件事。半年前的一个晚上,他半夜醒来发现自己坐在电脑前,屏幕上是暗网的登录页面,而他完全不记得自己是什么时候开机的。当时他以为是梦游,没有在意。但现在回想起来,那天早上他在电脑桌面上发现了一个新建的文本文档,里面只有一行字,是他自己写的,但笔迹比平时用力得多,笔尖几乎把稿纸划穿。
那行字写着:大历二年,奉先县民王骧诉渭南令王奕夺佃田。
陈牧以为是做梦时抄写的祖父旧笔记。他祖父是历史系教授,退休后一直研究唐代土地制度,生前常说陈家祖上就是从奉先县迁过来的。祖父晚年写过一本小册子,专门考证大历二年的这桩夺佃案,说王骧只是个普通佃农,被县令王奕强行收回了祖孙三代耕种的官田,告到京兆府才胜诉。那个案子在史书上只有短短几十个字,但祖父却用三万多字还原了前因后果,仿佛那件事就发生在他眼前。
“老陈?”电话那头老魏提高了声音,“你在听吗?”
“在。”陈牧把思绪拉回来,“把资料发给我,我帮你查。”
“不是帮我查。”老魏的声音沉下去,“张继死了。昨天晚上,有人在他家车库里用一把弩箭射杀了他。墙上用血写了一句话——夺佃还田。”
陈牧握着手机的指节发白。
“警方在勘查时找到了他的手机,”老魏继续说,“里面安装了一个加密聊天软件,最后的聊天对象显示是一个乱码ID,内容是关于杀手的详细安排。我们追溯了那个软件的服务器,发现背后是一个暗网交易平台,上面有一个专版,就叫‘奉先县公堂’。版面上每一个任务都被写成唐代的判牒文书,雇凶的人自称‘王骧’,执行目标的人被标注为‘衙役’,而被杀的对象,一律被列为‘夺佃令’的目标。”
“这个版存在多久了?”
“三年。”老魏说,“里面已经完成的‘判牒’有六份。每一个目标在死前都曾卷入过强拆纠纷,而且都跟一个叫华庭地产的公司有关。我们现在掌握的情况,这个雇佣暗杀网络已经形成了完整的模式——雇主通过比特币在暗网发布悬赏,杀手接单后执行,交易全部加密,用你当年设计的混合器清洗资金流向。整个过程在网络上几乎无迹可寻,直到上个星期,其中一笔比特币在转出时出现了一次微小的数据残留。”
“你们怎么发现的?”
“不是我发现的。”老魏的声音听起来有些古怪,“是有人故意把那截残留数据发到了我的工作邮箱里。发件人署名‘奉先民’。他在邮件里写了一句话,说下一张‘夺佃券’的发券日期,就在大暑。”
窗外一道闪电劈过,照亮了半个房间。陈牧看见自己映在玻璃上的脸,苍白的,不真实的,像是某个陌生人透过镜子在看他。
他忽然想起祖父晚年时的一个习惯。祖父会在每天下午,坐在书房窗前,反复翻阅那本关于夺佃案的册子,一边读一边低声念诵其中某一段。他念的不是案子的判决结果,而是王骧在堂上陈述的那句话:“此田臣祖、臣父之所治也,令无故夺之,是绝臣家之生路也。”
祖父念这句话的时候,声音很轻,但脸上有一种陈牧说不清的神情。那时候陈牧还小,不懂那是什么。后来他在警队参与侦破过很多案子,见过无数受害者家属的眼睛,才渐渐认出来,那种神情叫仇恨。很深、很沉、被岁月压成一块煤炭的那种仇恨。
电话那边老魏还在说什么,但陈牧已经听不太清楚了。他的注意力全部集中在屏幕上那张新跳出的加密聊天记录截图上。那是一行被系统自动添加的时间戳,精确到分秒。陈牧盯着那串数字看了很久,后背渐渐升起一股寒意。
因为那个时间戳显示的日期,正好是半年前那个他半夜醒来、发现自己无意识登录暗网的那个晚上。
而时间戳对应的具体内容,是一行由他本人IP地址发出的加密指令:
“第三号目标确认。大暑日行刑。”
窗外炸开一声闷雷。整个房间的灯光闪烁了一下,然后恢复正常。陈牧低头看自己的双手,十根手指正微微发颤。他试着回忆那个夜晚的一切,但脑海里只有一片漆黑,像一段被刻意剪掉的胶片。
在那片黑暗里,他隐约看见一个人影,穿着看不出年代的袍子,背对他坐在书桌前,正在一张泛黄的纸上写字。那人影的肩膀微微耸动,似乎在笑,又似乎在哭。
陈牧闭上眼睛,用力吸了一口气,然后睁开。
屏幕上的邮件正文底部,老魏用红字标注了最后一句话:
“老陈,这段数据的原始生成时间是半年前的凌晨三点十二分。我们查过你当时的上网记录——那个时间,你的电脑确实在线上。”
陈牧没有回复。
他打开浏览器,清除了所有缓存,然后登录了一个他以为自己永远不会再用的暗网入口。地址栏里的域名是一串乱序字母,后缀是.onion。页面加载得很快,一个漆黑的背景上只显示着一个古老的篆书印章图案,印章下方是一行小字:
“奉先县民王骧,叩请京兆府大堂。凡夺佃者,依法当诛。”
陈牧敲下自己的身份验证代码。系统提示音响起的一瞬间,他在屏幕的倒影里看见了自己的脸。那张脸上没有表情,但眼底深处有什么东西正在苏醒,像一条沉睡了很久的蛇。
屏幕左上角弹出了一条私信。发送时间就在十秒之前。发件人的ID他没有见过,但那个加密方式他再熟悉不过。陈牧点开私信,里面没有文字,只有一张图片,是一把老旧的铜钥匙,搁在一本泛黄的古籍封面上。封面上写着的字虽然模糊,但他认得。
那是祖父写的《大历二年奉先县夺佃案考》。
书页翻开的地方,夹着一张黑白照片。照片里祖父坐在书桌前,旁边的椅子上坐着一个小男孩,正仰头看着祖父手里翻开的那页纸。小男孩的眼睛很亮,像两颗刚刚点燃的火种。
陈牧盯着那张照片看了很久,然后慢慢地,把鼠标移到了“回复”按钮上。
他的手已经不抖了。但当他敲下第一个字的时候,忽然发现自己的打字速度变了——不再是平时那种慢吞吞的节奏,而是像某种久经训练的本能反应,十指翻飞,行云流水。
而打出来的第一句话是:
“祖父,孙儿在。”
陈牧愣在那里。窗外雷声又起,雨越下越大了。


暂无评论,来抢沙发吧!