王磊已经连续在电脑前坐了十七个小时。桌上的泡面桶摞了三个,第一个还剩半碗汤,油花在表面凝成一层薄膜;第二个只剩几根干瘪的面条贴在桶壁上;第三个还没泡,干面饼在桶里立着,调料包压在桶底。他的眼睛盯着屏幕,瞳孔里映出那行正在缓慢滚动的代码——虚拟币钱包的地址解析已经跑到了第七层跳板,每一层都在不同的国家,服务器之间的响应时间像心跳一样稳定。第八层,第九层,第十层。钱包的源头终于露出了一个模糊的轮廓。
不是个人账户,是一个智能合约地址。这个智能合约部署在以太坊链上,没有实名,没有登记,只有一串十六进制的字符。但智能合约的代码是公开的,王磊调出合约源码,一行一行地读。代码的注释是中文的,用的是简体字,语法规范,没有错别字,不像业余爱好者的作品。
“众筹任务池”“积分兑换系统”“自动结算模块”——这些模块的名称被硬编码在合约里。王磊盯着“众筹任务池”这个词,后背一阵发凉。这不是一个人在犯罪,这是一群人在用某种规则组织起来,分工协作,按劳取酬。他复制了合约地址,在区块链浏览器上查了一下交易记录。过去三十天内,这个合约地址收到了来自一百四十七个不同钱包的转账,总金额折合人民币约两百三十万。转出的记录更多,三百多次,金额从几百到几万不等,像工资发放。
他拨了莫晓的电话。
莫晓的声音比以前清亮了一些,不像在“暗房”地下室里那种压抑的低语。她现在在省厅的技术室帮忙,王磊给她申请了一张临时工牌,蓝色挂绳,贴着照片。“磊哥,你那边什么情况?”
“暗网上有一个APP,叫‘秩序清理者’。内测期,不是公开下载的,需要邀请码。你听说过吗?”
电话那头沉默了三秒。莫晓的呼吸声变重了。“没有。但我听过类似的模式。你把APP的安装包发给我,我反编译看看。”
林间川推门进来的时候,王磊正对着屏幕上一堆反编译代码发呆。莫晓已经在远程桌面那头工作了半个小时,代码的反编译结果一条一条地传过来,每一条都在印证他的猜测。
“林老师,你来看这个。”王磊指着屏幕上那张从智能合约里整理出来的任务分级表。
Lv.1:拍照上传指定地点照片,奖励50积分(约50元)。任务示例:拍摄某机关单位门口的保安换岗时间。
Lv.5:制造小混乱。任务示例:在指定路口停放车辆阻碍交通,奖励500积分。被警方抓住时如何应对,有标准话术。
Lv.10:协助重大事件。任务内容保密,积分面议。已完成任务数:3。
“这是众包犯罪。”林子川的声音很平,但王磊注意到他的手指在桌面边缘按了一下,指节泛白。“他们把犯罪拆成了一个个小任务,分发给普通人。拍照、停车、拧螺丝——这些事单独看都不违法,或者违法但处罚很轻。但当它们被组合在一起的时候,就成了犯罪的拼图。”
莫晓的声音从远程桌面那头传过来,有些失真,但很急。“林老师,这个APP的代码风格我见过。不是完全一样,但有些模块的写法,函数命名的方式,缩进的格式——和陈默那个直播平台的底层代码是同一个人写的。”她顿了一下,“但陈默被抓之后,他的电脑和服务器都被警方封存了,他没有机会再写代码。”
“所以不是陈默。”林子川走到王磊的电脑前,俯身看着那些代码,“是他的代码被人拿走了。陈默被捕之前,他的代码可能已经被人备份了。那个人知道陈默写的每一行程序,知道他的思路,知道他的漏洞。”
王磊把智能合约的交易记录投影到大屏幕上。一百四十七个付款钱包,三百多个收款钱包,像一张密密麻麻的网。“林老师,这不是一个人能操作的。他至少有一个小团队——程序员维护平台,任务派发员筛选和执行任务,财务洗钱。背后的人,比陈默的级别高得多。”
李勇拄着拐杖站在门口,手里端着一杯浓茶,茶叶快溢出来了。他听了大约两分钟,没有插话,等到林子川转过身才开口。“我刚从证物库那边回来。老张说,最近一周有两个人申请进入证物库,都是正常的工作需要,手续齐全。但他注意到一个细节——那两个人进入证物库的时间,和外面那三起‘意外’发生的时间,是同一天。”
“谁进去了?”林子川问。
“一个叫张志远的法医助理,取一份旧案的血样。另一个叫刘梅的档案管理员,整理过期物证的移交清单。”李勇把茶杯放在桌上,茶叶在热水里翻滚,“两个人的背景都查了,没有异常。他们的手机、电脑、银行账户都没有问题。但他们都接到过同一个陌生号码的电话,通话时间很短,不到一分钟。”
林子川看着李勇。“江远的通话记录里,有没有和那个号码的通联?”
“没有。但他在那两天内,加了一个陌生人的微信。那个人的头像是一张风景照,朋友圈三天可见,什么都没有。”王磊在旁边已经搜到了,“微信账号的注册手机号是不记名卡,已经停机。但那个号码的通话记录里,有一个呼入电话的基站定位——在本市,城东。”
林子川走到窗前,拉开窗帘。天已经黑了,城市的灯火在远处连成一片模糊的光带。他知道城东有什么——建国国际中心,顾长风的公司在那栋楼的二十二楼。还有那栋废弃的化工厂,老钟在那里设过爆炸陷阱。还有永宁小区,陈叔在那栋旧楼的四楼被杀了。
“莫晓,你能不能通过APP的后台,找到‘管理员’的真实IP?”林子川转过身,对着远程桌面的麦克风说。
王磊刷新了一下APP的页面。屏幕中间弹出了一条推送通知,黑底白字,没有图标,没有落款。“新任务即将发布,敬请期待。”下面是倒计时,红色的数字在一秒一秒地跳动。七十二小时,七十一个小时五十九分,七十一个小时五十八分。
“他三天后会发布新任务。”王磊的声音有些发紧,“上次的三起‘意外’是Lv.5级别的小混乱。这次,可能是Lv.10。”
林子川盯着那行倒计时,红色的数字像心脏在跳。“莫晓,三天内你能不能准备好渗透方案?”
“能。但需要磊哥配合。他发布任务的时候,服务器负载最高,我潜入,磊哥从外围阻断他的备用通道。我们一个人的话,他有退路。两个人夹击,他跑不掉。”
林子川点了点头。他走到王磊身边,拍了拍他的肩膀。“三天,你和莫晓把精力集中在APP上。其他的事,我和李队处理。”
王磊没有抬头,手指已经重新落在键盘上了。莫晓那边的键盘声也响了起来,两个人隔着网络,节奏渐渐合在了一起,像两副同时跳动的心脏。
林子川走出技术室,走廊里的灯管有一根坏了,一闪一闪的。他站在那根灯管下面,看着地面上忽明忽暗的光斑。一百四十七个人,三百多笔交易,一个藏在暗处的管理员,一个即将发布的新任务。这些碎片拼在一起,他看到了一个比顾长风更让人不安的东西——一个不需要信仰、不需要仇恨、甚至不需要理由的犯罪系统。每个人都在做自己份内的事,每个人都不觉得自己是罪犯。但凑在一起,他们就成了一台运行平稳的杀人机器。
他掏出手机,给赵大勇发了一条消息。“最近三天,盯一下建国国际中心的周边。看到什么异常,不要动手,告诉我。”
赵大勇的回复很快:“收到。”
林子川把手机放进口袋,转身走回了技术室。屏幕上那行倒计时还在跳,红色的数字从七十小时跳到了六十九小时五十九分。他拉了把椅子坐下,没有回办公室,就坐在王磊旁边。王磊没有看他,莫晓也没有说话,键盘声在房间里响着,稳定,密集,像一场正在酝酿的暴雨。
