凌晨三点,广安同城后院只剩一盏感应灯。
R47周转箱放在电动面包车最后一排,外观和其他医药箱没什么区别。灰白色塑料壳,四角磕得发黑,侧面有两个已经刮花的温控接口。唯一不正常的是没有面单,也没有电子封签。陈警官没有让人当场打开。
陆衡说过,原始层会通过夜间线路回收行为数据。R47如果也是线路的一部分,提前截断可能只得到一只空箱。警方先对箱体做了外部检测,没有爆炸物,也没有明显生物危险。技术人员在底部找到一枚独立电源的定位器,信号每十五分钟发一次。周序蹲在车门外看了一会儿。
“不能让它一直停这儿。”周序说。
陈警官看他。
“你想继续送?”陈警官问。
“它本来就要走。”周序说。
广安同城夜班司机被单独问过。司机只知道每周二、四、六凌晨会多一个无单箱,放在后排,不扫码。路线固定,先到城南康复医院后门,再去一家二十四小时药房,最后停在老铁路仓库外的共享卸货区。每到一站都会有人换车或换箱,司机从不问。报酬单独结,一趟三百。
“谁结钱?”陈警官问。
“老板微信转。”司机说。
老板的资金来源再往上查,已经经过四层个人账户。短时间看不出头。陈警官最后决定让车照常出发。
司机不能再用原来的人。警方安排一名熟悉路线的便衣开车,原司机坐副驾。R47箱底加了新的无源标记,后车保持距离。周序原本被要求回去,最后还是上了另一辆不起眼的商务车。不是因为他必须在场。是第一站康复医院后门他熟。
三年前周既明的手册里写过那里:“冷链从洗衣房口进,夜里门卫睡得早。”现在医院翻新过,正门换了自动门,后面老洗衣房还在。
三点二十七,面包车驶进医院后巷。夜班保安没有出来。一个穿浅蓝工作服的男人从洗衣房侧门推来一辆不锈钢小车。他没看司机,直接把R47搬下来,又从小车底层换上一只一模一样的箱子。整个过程一分钟不到。便衣没有动。第一只箱子被推进医院。第二只箱子继续上车。
周序在后车里看见这一幕,忽然想起自己刚做快递时最烦医院件。楼多,科室多,同一个院区能有五六个收货口。真正长期跑的人才知道哪些箱子不进门诊,哪些一定走污物通道。原始层不是在使用一条秘密通道。它借的是所有人都懒得多看的正常通道。
警方分成两组。一组跟进医院,另一组继续跟车。
周序没有要求下车。他看着新换上来的箱子,问陈警官里面会是什么。
“先别猜。”陈警官说。
“我没猜。”周序说,“我只是觉得他们可能从来没让同一只箱子走完全程。”
陈警官转过来看他。这意味着R47不是某一件货的编号,而是整条接力路线。箱子每到一站就换,真正传递的是底部模块、标签、数据或某个小到能藏进夹层的东西。追一个箱子没有用,得看每次谁接触。
三点四十五,第一组从医院传回消息。洗衣房男人是外包保洁领班,五十九岁,在医院干了八年。他承认每次有人给一千元,让他把无单箱推到地下旧设备间,十五分钟后再推出来。今晚警方进去时,设备间已经没人,只有一台巴掌大的读写器连着医院废弃网口。
读写器正在把R47底部定位器之外的一块存储芯片同步到外网。同步已经完成百分之七十六。技术员强制断网。下一秒,继续行驶的第二只R47箱发出提示音。箱体侧面原本熄灭的红灯亮了。周序马上看时间。三点四十七。
“它知道上一站断了。”周序说。
陈警官让前车不要停。第二站二十四小时药房在四公里外。原计划可能已经变了。果然,面包车还没到药房,司机手机收到一条陌生短信,要求改送城南高架桥下的废旧市场。原司机脸色发白。过去半年从没改过线。
“回什么?”便衣问。
“平时我就回收到。”司机说。
便衣让他照旧。司机还是像平常一样回了“收到”。
周序盯着地图。废旧市场白天卖二手家具和电器,凌晨基本没人。东边靠河,西边是拆迁区,车进去容易,人出去更容易。对方发现第一站异常,准备直接收掉线路。陈警官开始调附近支援。周序却看见导航上的另一条小路。
“别从南口追。”周序说。
“为什么?”陈警官问。
“南口限高杆坏了半年,外地车不知道,本地跑货的都从北边进。”周序说。
陈警官把话转给前组。三点五十八,面包车到废旧市场北门。里面没有灯。
司机按照短信要求把R47放到三号棚下,车继续往前开。警方没有立即围上去。箱子单独放了两分钟。四点零一,一个骑旧电动三轮的人出现。
人戴口罩和棉帽,车后装着废纸壳。经过三号棚时没停车,只伸手把R47拖进废纸壳下面。动作熟得像每天收垃圾。三轮从北门出去。警方两辆车一前一后跟。周序看了几十秒,忽然说不对。
“怎么?”陈警官问。
“太慢。”周序说。
三轮时速不到二十五。如果对方已经知道线路暴露,不会用这么慢的方式带走最重要的东西。除非真正要走的不是箱子。他拿起警方发来的第一站照片重新看。
医院外包领班把第一只箱推进设备间时,底部有一个白色贴片。出来后的箱子底部贴片已经没有了。
第二只箱被换上车以后,侧面红灯会根据第一站网络状态变化。
“他们传的是状态。”周序说。
“什么状态?”陈警官问。
“谁拿箱,谁进哪一站,线路有没有断。”周序说。
R47像一根移动的验证链。每个接点不一定知道自己在做什么,只要固定时间、固定路线完成接触,就能证明一个行为流程仍在运转。这与回声项目对身份的理解几乎一样。不是一张身份证证明一个人。是一串连续动作。
陈警官听明白后没有夸他,直接让技术员查三轮驾驶人过去是否长期跑这条线。
结果很快出来。男人叫黄良,废品回收个体户,三年来每周固定三次从医院和药房附近收纸壳。没有犯罪记录。他很可能根本不知道自己是R47的一环。警方在下一路口把人拦下。
黄良吓得差点从三轮上摔下来。他确实收过钱,每次只要按短信去指定位置带一个箱子,走两公里,再放到河边公共厕所后面的保洁间。钱一月一结,转账备注“废弃医疗箱回收”。
他从没打开过。
“谁联系您?”陈警官问。
“每次号码都不一样。”黄良说。
R47继续往下。河边保洁间的钥匙挂在环卫班长办公室。箱子放进去以后,下一个人不是来取箱,而是更换底部的一块小模块。来的人穿城市照明维护服,开着有合法牌照的工程车。警方没有继续等。四点四十七,维护员被控制。
男人三十岁出头,自称只收了外快,任务是把旧模块拿走,换上新模块。旧模块装进工具箱后,会有人第二天去他的单位取。他不知道里面是什么。技术人员现场拆开模块。没有存储卡。只有一组一次性密钥和一枚时间芯片。
密钥编号:R47-2189。
陈警官把照片发回去。陆衡在讯问室看到编号后,第一次主动要求再见周序。上午六点二十,他们重新回到派出所。
陆衡一夜没睡,脸色很差。那张和周序相似的脸在日光灯下显得更假,眼下手术痕迹也更明显。
“2189不是路线密钥。”陆衡说。
“是什么?”周序问。
“原始行为库的时间锁。”陆衡说。
回声项目为了防止某一份数据被事后修改,会把原始行为样本分成多个时间片,每一个时间片由线下路线不断刷新。只要R47连续运行,原始库就会认为外部验证环境正常。
如果路线中断超过二十四小时,原始库会自动进入保护模式。身份恢复流程暂停。周序听完看向陈警官。这比找撤销密钥直接。
“那让它断。”周序说。
陆衡摇头。
“不能直接断。”陆衡说。
“为什么?”周序问。
“保护模式也会把外部副本全部清除。”陆衡说,“姜岑留下的记录也在副本里。”
房间里静了一下。周序没有立刻说保数据。陈警官先问。
“案件证据会丢多少?”陈警官问。
“我不知道。”陆衡说。
“原始层里有没有姜岑死亡当晚的数据?”陈警官问。
“可能有。”陆衡说。
R47继续跑,身份恢复流程就还活着。R47强行停,剩余证据可能跟着被清理。
周序靠在椅背上。过去几天总有人把选择摆在他面前,签周序还是签周既明,恢复还是不恢复,保身份还是查姜岑。看起来每一次都能选,真正麻烦的是两边都有人提前放好代价。
“有没有第三种?”周序问。
陆衡看着他。
“把时间锁换掉。”陆衡说。
“怎么换?”周序问。
“让R47继续跑,但下一次上传的不是原来的时间片。”陆衡说。
技术上需要拿到原始行为库能够接受的一组合法签名。陆衡手里没有,警方也没有。周既明的主密钥或姜岑的撤销密钥都可以。周序想到硬盘目录里的ZJM_MASTER.key。仍然回到那把不知道在哪的密钥。
技术员把新拿到的R47模块接进隔离设备。一次性密钥已经用过,却留下最后一次同步目标的网络指纹。地址不在城南数据机房。在一个更普通的地方。周序所在快递平台的城市数据中继节点。陈警官骂了一句。
R47这些年根本没有独立网络。它一直借用城市配送平台的企业接口同步。也就是说,周序每天使用的派件系统不仅采集他的行为,还是原始层维持时间锁的一部分。
这解释了为什么第二次身份核验可以从他自己的终端直接触发。陈警官让平台立刻派安全负责人过来。
上午九点,平台城市技术负责人到派出所。男人四十来岁,进门时额头都是汗。他一开始坚持企业接口属于历史兼容服务,不知道具体用途。技术员把R47网络指纹放出来以后,他才承认三年前新恒生物确实购买过一组“高合规医药配送接口”,后来合同到期,接口因为涉及历史数据迁移一直没关。
“谁有权限?”陈警官问。
“总部和企业客户管理员。”技术负责人说。
“客户管理员是谁?”陈警官问。
男人查了几分钟。账号名称只有两个字母。JC。姜岑姓名首字母。
最后一次登录:十一月十七日二十二点五十八分。
正是她死亡当晚提交第七次删除申请的时间。之后账号被强制踢下线。
接管者:ORIGIN。
技术负责人说,企业管理员可以设置一个“继承账户”。如果管理员长期离线或死亡,继承账户自动取得权限。这个功能原本给医院、药企防止负责人离职后业务中断。
姜岑账号的继承人不是周承川,也不是程启明。是周序。周序盯着屏幕。
“我有这个账号?”周序问。
“后台写的是你的实名手机号。”技术负责人说。
手机号就是他现在用的这个。可继承没有成功。
因为系统同时检测到周序实名身份正在被周既明合并,账户进入争议状态。ORIGIN因此按照更高优先级接管。
姜岑三年前把一条企业接口的继承权留给了一个后来才出现的周序手机号。这件事时间上说不通。
除非她三年前已经知道未来这个号码会是谁用。或者这条继承关系是最近才改的。技术负责人查修改记录。十月二十九日。十九天前。那天周序记得。
晚上他给姜岑送过一个猫砂盆。姜岑家里根本没有猫。他还问了一句,她说替朋友买。
当晚十一点十六分,姜岑把企业接口继承人改成周序。
周序突然想起猫砂盆很大。送上楼以后姜岑让他帮忙把纸箱拆了,自己去厨房洗手。周序在客厅等了七八分钟,手机放在餐桌上充电。
她完全有机会看见他的手机号和设备验证码。周序没有生气。或者说,已经不知道该从哪一件开始生气。
“能让继承重新生效吗?”陈警官问。
技术负责人说可以,但必须先解决周序实名争议,或者由法院出具临时授权。顾律师已经在路上。
上午十一点,第二份临时申请递进法院。理由不是财产,也不是周既明身份,而是刑事案件电子证据保全。法院同意暂时冻结ORIGIN对企业接口的操作,并允许警方在监管下恢复JC继承账户的只读权限。真正生效需要平台总部签字。最快下午。周序回站点等。
一夜没睡,他本来想在休息室躺一会儿,院里却正好爆仓。账号虽然恢复了,他今天被老曹强制排休。周序还是戴上手套帮忙分件。干到一半,阿峰把一袋包子扔过来。
“你现在身价多少?”阿峰问。
“负的。”周序说。
“网上说你有十几个亿。”阿峰说。
“那你先替我交这个月换电费。”周序说。
阿峰不说了。两个人坐在货筐边吃包子。周序没睡,胃里空得发酸,吃到第二个才缓一点。下午两点四十,顾律师电话来了。继承账户恢复。只能读取,不能修改。
平台技术人员在警方监督下打开JC账号历史文件。姜岑最近四十三天的删除申请、路线干预和权限修改都在。最重要的是一个未完成的草稿任务。
任务名:R47撤销。
附件路径指向一个本地设备。设备编号对应姜岑死亡现场那台已经被警方扣押的旧终端。陈警官让技术员重新查终端。
设备此前只按短信和日志取过证,没有完整检查隐藏分区。一个小时后,隐藏分区被打开。里面有那三个被删除的文件。ZJM_MASTER.key。J_CEN_NOTE。ROUTE_47。姜岑没有把撤销密钥带走。她一直把它放在自己手里那台旧终端里。只是没有来得及完成最后一次上传。
周序赶到派出所时,技术人员已经把密钥复制到隔离设备。谁也不敢直接运行。文件需要一个本地口令,提示只有一句:“他每天都会说。”
技术员试过周序常用的派件话术。“您好,快递”“麻烦签收”“放门口了”“取件码多少”,都不对。
周序站在设备前想了一会儿。每天都会说的东西太多。
他给客户打电话会报公司,会叫您好,会说到了。和老曹讲话也每天有重复。陈警官让他别急。
周序反而掏出自己的派件终端,翻最近语音抽检记录。平台为了投诉复核,随机保留部分客服通话。他听了十几段。每次结束以前,他说得最多的是“好的”。
不是礼貌训练。是习惯。客户说放门卫,周序说好的。说晚点回来,周序说好的。说别敲门孩子睡了,他还是说好的。
技术员输入“好的”。
错误。
周序又想。姜岑不会拿两个这么普通的字当密钥提示。
她写的是“他每天都会说”,不是“周序每天都会说”。
周序低头看工作服。
每天出站以前,老曹会报件量。两百票、一百八、爆仓、补件。骑手之间最常说的不是“好的”。
是一个数字。他每天扫码出站时,终端都会弹出当日任务数,周序下意识会念一遍确认。但数字天天变。周序忽然想到另一句。
每天晨会结束,老曹都喊:“别丢件。”
周序多数时候会回一句“丢了我赔”。
老曹因为这句话骂过他无数次,说真丢了你赔得起吗。
姜岑第一次跟他去站点附近吃早饭时也听见过。周序看向技术员。
“试‘丢了我赔’。”周序说。
技术员输入。文件开了。陈警官没说话。周序自己先笑了一下。
姜岑把能够停掉周既明身份恢复程序的密钥,口令设成一个快递员每天拿自己工资开玩笑的话。J_CEN_NOTE同时解密。文件不是长信。只有五条操作说明和一张照片。
说明写得很干:R47不能直接停;先冻结ORIGIN;主密钥加载后更新一次时间片;确认周序当前实名仍有效;完成撤销;保留副本交警方。最后一条后面加了括号。
“别让他自己恢复周既明。他会逞强。”
没有我爱你,也没有对不起。照片拍的是站点门口。
周序蹲在地上给电动车换刹车片,脸上蹭了一道黑。拍摄时间一个月前。姜岑应该站在马路对面,距离很远,照片放大以后都有点糊。周序看了两秒,把设备推回技术员面前。
“按她写的做。”周序说。
下午六点,警方、平台、受托机构和法院技术人员一起建立隔离环境。R47没有停。
相反,广安同城那辆夜班车照常准备发车。警方甚至让原司机继续跑,只是每一个接点都已经纳入监控。
他们要在下一次时间片上传时,用姜岑留下的主密钥把“继续运行”改成“撤销身份恢复”。
这个过程需要当前继承人做一次本人确认。周序。还是本人签收。只不过这一次没有人替他。晚上十点五十八,R47从广安同城出发。十一点二十七,第一站医院读写器上线。隔离设备提示继承人确认。屏幕上只有两个选项。确认继续恢复周既明。确认撤销恢复并保留周序争议身份。周序坐在会议桌前。
顾律师、陈警官和技术人员都在旁边,没有人替他选。他把手放到设备上。人脸通过。指纹通过。系统要求手写当前姓名。周序拿起电子笔。
这一次没有人偷他的笔迹,也没有面单替他签。他写了两个字。周序。确认。十一点二十九,R47第一站时间片上传。屏幕转了十几秒。
身份恢复申请状态从2/7变成“争议冻结”。
剩余验证节点全部暂停。ORIGIN账户失去继承权限。周序看着结果,没有觉得自己赢了什么。
只是手机右上角那个用了三年的名字,暂时不会被系统删掉。
十二点整,平台技术负责人给他看了一眼实名状态。周序,有效。周序把手机放回口袋。陈警官站起来活动肩膀。
“今晚能睡了?”陈警官问。
“看旅馆让不让我续房。”周序说。
“你现在银行卡也恢复了。”陈警官说。
“那更得续。”周序说。
事情到这里本来应该暂时停一下。可凌晨十二点二十六,ROUTE_47文件完成最后一段解密。里面不是路线图。是一份视频索引。共十四段。前十三段拍摄时间都在三年前。最后一段是今年五月。六个月前。
那时周序已经做快递快三年,还没有重新认识姜岑。视频地点就是城东数据仓地下资料室。画面里,一个穿快递工作服的男人坐在桌前。右耳后有疤。是周序。
他没有被人押着,也没有明显意识不清。桌上放着一杯便利店咖啡,旁边是一只刚拆开的快递袋。周序抬头确认镜头以后,把一张纸推到面前。纸上标题很清楚。
《身份恢复延迟启动补充授权》。
签名处写的是周序。视频里的人拿起笔,又在旁边加了一行字。如果姜岑死亡,启动恢复。周序坐在屏幕前没有动。陈警官第一反应是看文件时间戳。今年五月十八日,晚上二十一点十四分。
那天周序的派件记录显示,他八点五十送完最后一单,九点零三终端下线。第二天早上六点四十重新出站。
中间这九个多小时,他一直以为自己在出租屋睡觉。
视频里的周序写完以后,镜头外传来姜岑的声音。
“如果以后你不记得签过呢?”姜岑问。
视频里的周序没有抬头。
“那就别告诉我。”周序说。
姜岑没有继续问。过了几秒,视频里的周序又补了一句。
“除非你死了。”周序说。
画面结束。没人说话。刚刚被周序亲手冻结的身份恢复流程,不是只有三年前的周既明想让它存在。六个月前的周序,也签过。而这段记忆,他同样没有。