债脉之城的潜入者
债脉之城的潜入者
一
苏铭第三次检查了背包里的移动硬盘,然后把它塞回到夹层中。硬盘不大,只有巴掌的一半,银灰色的金属外壳上有一道划痕——那是去年搬家时被钥匙刮的。他记得很清楚,因为那天他刚刚被”天穹科技”裁员。
四十七天了。准确地说,是四十七天零六个小时。
他站在深圳南山区的科技园地铁站出口,看着对面那栋四十二层高的玻璃幕墙建筑。建筑的外立面在下午三点的阳光下反射出一种让人不适的光芒,像是一面巨大的镜子,把整个城市都折叠了进去。顶楼有一行字,蓝色霓虹灯管弯成的:“天穹信用科技——让信任可计算”。
苏铭曾经在那行字下面工作过三年。
他的工位在三十一楼,靠窗,能看到深圳湾的一角。每天下午四点左右,阳光会穿过写字楼的缝隙照到他的桌面上,他会用那个时间喝一杯速溶咖啡,看五分钟窗外的海。海的颜色在四点钟的时候会变成一种很深的蓝,像是有人在水面下点了一盏灯。
现在他站在马路对面,像一个被玻璃隔绝在外的人。
他的手机震了一下。是房东发来的微信:“苏先生,这个月的房租什么时候能转过来?已经过了三天了。”
他没有回复,而是把手机翻了个面,屏幕朝下扣在手心里。他口袋里还有三千四百块,是上个月接的一个外包项目尾款。房租四千五。差额是一千一。
一千一。这个数字在他的脑子里反复出现,像一个被跳针卡住的音符。
他深吸一口气,穿过马路,走进了科技园B座的侧门。
二
苏铭要去的地方不是天穹科技,而是天穹科技楼下的”深层数据中心”。这个数据中心不归天穹管,它属于深圳市政府的信息基础设施——至少名义上是。实际上,天穹信用科技是这个数据中心最大的租户,也是唯一有权限访问第七层服务器的企业。
第七层服务器里存着什么?官方说法是”城市信用体系的基础数据”,包括两千万深圳居民的行为评分、消费记录、社交关联图谱、以及一个叫”信任熵”的动态指标。苏铭在天穹工作时,只接触过第七层服务器的接口层,从未进入过物理机房。
但他知道一个人能进去。
周维。
周维是深层数据中心的运维工程师,四十三岁,头发已经白了一半,戴一副金属框的眼镜,左手无名指上有一道淡旧的伤疤。苏铭在天穹工作时,每个月都要和周维对接两次服务器维护的事务。他们不算朋友,但也不算陌生人。他们之间有一种淡淡的默契——两个都在深夜的机房里待过的人之间的那种默契。
苏铭找到周维的工位时,周维正在吃一个便利店的饭团。桌上放着一罐开了盖的乌龙茶,屏幕上是一个终端窗口,绿色的代码在黑色背景上缓慢滚动。
“苏铭?“周维抬头,眼角的皱纹比两年前深了不少,“你不是被裁了吗?”
“四十七天前的事了。“苏铭在他对面坐下,塑料椅子发出一声刺耳的吱呀。
“找我有什么事?“周维把饭团放回包装袋里,擦了擦手。
苏铭没有拐弯抹角:“我想进第七层机房。”
周维的手停了一下。他没有说话,而是拿起乌龙茶喝了一口,然后慢慢把罐子放回桌上。他的眼睛看着苏铭,但目光穿过了苏铭,落在了他身后的某个地方。
“你知道那是什么地方。“周维说,不是疑问句。
“我知道。”
“你知道如果被发现,不是丢工作的问题。是坐牢的问题。”
“我知道。”
周维沉默了很长时间。机房里空调的嗡嗡声填满了这段空白,像是一种来自地底深处的低频震动。
“为什么?“他终于问。
苏铭从背包的夹层里拿出移动硬盘,放在桌上。他没有说话,只是用手指点了点硬盘的外壳。
周维看了硬盘一眼,然后看了看苏铭,然后又看了看硬盘。
“你不会是想——”
“我只是想看看。“苏铭说,“看看我的数据。”
这个回答太轻了,轻得像一片从四十二层楼飘下来的纸。但他们都知道这句话的重量。在这个城市里,“看看自己的数据”是一件被法律明确禁止的事情。《个人信息保护法》第37条修订案:任何个人无权查阅已被纳入城市信用评估体系的原始行为数据,仅可通过授权机构获取最终信用评分。
这条法律是三年前通过的。苏铭记得很清楚,因为他亲手参与编写了执行这条法律的技术方案。
三
周维最终答应了他的请求。
不是因为苏铭说服了他,而是因为周维自己的原因。周维有一个女儿,今年十七岁,正在读高三。去年她的信用评分突然从782降到了513,原因是”社交关联图谱异常”——她的一个初中同学因为在朋友圈转发了一条关于某个敏感事件的帖子,被系统标记为”高风险传播节点”,而她恰好在那条帖子下点了一个赞。
一个赞。267分。
这个数字像一个烙印,印在了周维女儿的数字身份上。她申请的三所大学的自主招生都被拒绝了,虽然官方理由各不相同,但周维知道,513分的信用评分是一个看不见的红色印章,盖在了每一份申请表上。
周维没有对苏铭说这些。他只是说:“周三晚上,凌晨两点。我从B3货运通道进来。你两点零五分在通道口等。带好你的东西,不要带手机。”
苏铭点了点头。
他走出数据中心的时候,深圳的天空开始变色了。不是正常的日落——下午三点半,太阳还挂得很高——但西边的天际线上出现了一片奇怪的紫色云层,像是有人在天空的边缘泼了一瓶墨水。他站在路边看了一会儿,感觉那片紫色在缓慢地扩散,像是什么东西正在从天空的裂缝里渗出来。
他摇了摇头,把这种感觉归结为失眠造成的幻觉。他已经连续四十七天没有好好睡过觉了。每天夜里他都会在凌晨三点准时醒来,然后睁着眼睛到天亮。他不知道为什么会是三点。也许是因为三年前他在天穹的第一个夜班就是在凌晨三点结束的,他记得走出大楼时,深圳的街道空无一人,路灯把他的影子拉得很长,长得像是另一个人的影子。
四
周三。
苏铭在凌晨一点四十五分到达了科技园B座的货运通道入口。他没有带手机,只带了移动硬盘和一张周维给他的临时通行卡。通行卡是一张普通的白色塑料卡片,上面印着一串编号:DC-07-L3-TEMP-20260601。
凌晨的科技园安静得不像深圳。这座以”永不熄灭的灯光”著称的城市,在凌晨两点的时候终于露出了一丝倦意。只有零星几栋写字楼的灯还亮着,像是一群失眠者之间的默契——我们都不睡,所以谁也不孤单。
通道口是一扇灰色的卷帘门,旁边有一个刷卡器。苏铭刷了卡,门缓缓升起,露出一条向下延伸的斜坡。斜坡的地面是水泥的,墙壁上每隔五米有一盏应急灯,发出昏黄的光。
他沿着斜坡走了大约两分钟,到达了B3层的货运平台。周维已经在那里等他了,穿一件深灰色的工装外套,手里拿着一串钥匙。
“跟我走。不要说话。不要看摄像头。”
他们穿过一条狭窄的走廊,经过了三道门——周维用钥匙逐一打开——然后乘坐一部只能容纳三四个人的货梯向下走了大约三十秒。电梯门打开时,苏铭闻到了一种熟悉的味道:空调、金属和微弱的臭氧。这是机房的味道。
第七层机房比他想象的要大。他以为会是一排排服务器机柜,像图书馆的书架一样整齐排列。但实际上,机房更像是一个巨大的洞穴。天花板很高,至少有六米,头顶是一排排管道和线缆,像是某种庞大动物的血管系统。服务器机柜分成十二个区块,每个区块之间有透明的隔断墙,地面是防静电的深灰色地板,每一步踩上去都会发出轻微的咔嗒声。
“你的窗口期是四十分钟。“周维站在他身后,声音压得很低,“四点以前,早班的清洁工会到B1层。如果他们发现B1的通道门是开着的,安保系统会自动报警。”
“四十分钟够了。”
周维带他走到了第七区块。这里的服务器机柜和其他区块看起来没有什么不同——黑色的金属柜体,上面密密麻麻的指示灯,绿色和橙色交替闪烁。但周维在第三个机柜前停下,蹲下身,从底部拉出一个抽屉式的键盘,输入了一串命令。
屏幕亮了。
苏铭看到了一个他熟悉的界面——天穹信用科技的数据管理控制台。他在三年前参与设计了这个控制台的前端,每一个按钮、每一个数据字段的宽度都是他和团队反复调试过的。但现在看到它,感觉像是遇到了一个多年不见的旧同事,面孔熟悉,但已经说不出什么话了。
“你的查询权限是只读的。“周维说,“可以检索,可以导出,不能修改。”
苏铭点了点头,坐到了机柜前的折叠椅上。他插上移动硬盘,打开了控制台的搜索栏。
他输入了自己的名字:苏铭。
然后他按下了回车。
五
数据开始加载。进度条走了十二秒。
然后他的整个人生被展开在了这块十四寸的屏幕上。
他看到的不是简单的数字。他看到的是一个树状结构,从他的身份证号开始,每一个分支都代表着他生活中的一个维度。消费记录是一个分支,社交关系是另一个分支,出行轨迹、搜索历史、就医记录、教育背景、家庭成员、工作经历——每一个分支都继续向下延伸,像是一棵倒着生长的树,树根在天上,树冠在地下,一直扎到他意识不到的深处。
他点开了”信用评分变更历史”。
当前评分:437。
他盯着这个数字看了很长时间。437。他以为自己至少还有六百分以上。被裁员后他的收入断了,信用评分确实会下降,但不应该降到这个程度。他从来没有逾期还款,没有任何不良记录,连共享单车都没有欠过费。
他往下翻,找到了评分下降的详细原因。
第一条:2026年4月15日,“收入连续性指标异常”——减32分。
这是他被裁员的那天。合理。系统检测到他的工资流水中断,自动触发了降分机制。
第二条:2026年4月18日,“社交关联图谱异常”——减89分。
他点开了详情。系统检测到他的微信通讯录中有七个”高风险节点”——七个人,他们的信用评分都在500以下。其中四个是他以前的同事,也在同一天被裁;另外两个是他大学同学,一个在做小生意,另一个是自由职业者。第七个人他看了很久才认出来——是他楼下便利店的老板,因为他每天用微信支付买烟,系统把他也算作了”高频关联节点”。
七个高风险关联。减89分。
第三条让他停住了。
2026年4月22日,“行为模式偏差”——减147分。
详情:系统检测到该用户在最近7天内,“深夜活跃度异常升高”(凌晨1点至5点的手机使用时长占比从3.2%上升至27.8%),“地理围栏触发频率异常”(连续7天在凌晨时段出现在非居住地注册地址区域),“消费结构异常”(便利店消费占比从4.1%上升至38.7%,食品消费中速食/即食类占比从12%上升至67%)。
系统给出的综合判断是:“该用户行为模式发生显著偏移,与正常就业人群特征不匹配。风险等级上调至’高关注’。”
苏铭看着这段文字,感觉自己的身体在缓慢地变冷。不是空调吹的那种冷,而是一种从内部扩散出来的凉意,像是有人把一块冰放在了他的胃里。
他失眠,是因为被裁员后他睡不着。他深夜在外面走,是因为躺着比走着更难受。他吃便利店的食物,是因为便宜。
这些他生活中的真实痛苦,在系统的算法里,变成了一组”异常信号”,变成了一个”风险等级”。
他的痛苦,被计算成了一种危险。
六
他又翻了十五分钟。
越往下翻,越觉得不对。不是数据本身的问题——数据是准确的,每一条记录都能对应到他生活中的某个瞬间。问题在于这些数据之间的关联方式。
他发现了一个他从未见过的字段:“债务传导系数”。
这个字段的值是0.73,后面有一个百分号。他点开了字段说明:
“债务传导系数衡量的是该用户的债务风险向社会网络的传播概率。系数越高,表示该用户的债务状态越可能通过社交关系链影响他人的信用状况。该系数由以下因素综合计算:1)用户的负债收入比;2)用户的社交网络中心度;3)用户社交网络中已标记为’债务高危’的节点数量;4)用户的职业稳定性指数。”
苏铭的脑子里像是有个什么东西咔嗒一声打开了。
他突然理解了。不仅仅是他自己的评分在下降——他的评分下降,通过”债务传导系数”,正在影响他通讯录里每一个人的信用评分。而他通讯录里那些人的评分下降,又通过他们的”债务传导系数”,继续向外扩散。
这是一个连锁反应。一个被裁员的人,像是一颗投入水面的石子,他的”风险”会以波纹的形式向外扩散,影响到他的朋友、他的朋友的朋友、他经常去的那家便利店的老板、那个老板的供应商、供应商的银行贷款利率——
他想起了一件事。上周他给大学同学赵磊打了个电话,赵磊在电话里说了一件奇怪的事:“我上个月申请房贷被拒了,银行说我的信用评分不够。但我什么都没变啊,工资没变,存款没变,征信报告上干干净净的。”
赵磊的房贷。
苏铭闭上了眼睛。他感觉自己的手在发抖,不是紧张,是某种更深层的东西。愤怒?不完全是。恐惧?也不完全是。那是一种被一种巨大的、看不见的力量注视着的感觉,像是站在一座大坝的底部,仰头看着头顶几十亿吨的水,知道它随时可能倾泻而下,而你在它面前什么都不是。
他睁开眼睛,继续往下看。
七
在数据的更深处,他发现了一样东西。
那是一张图谱。不是普通的关系图谱——他见过很多,在天穹工作时他负责的就是图谱可视化——而是一张他从未在任何文档、任何设计稿、任何技术方案中见过的图谱。
图谱的横轴是”时间”,从2023年1月延伸到2026年6月。纵轴没有标注,但通过数据点的分布,苏铭判断它代表的是某种”密度”。图谱上密密麻麻的点和线形成了一个复杂的网络,每一个节点代表一个人,每一条连线代表一种关联。
这些点和线不是静止的。屏幕上的图谱是动态的,节点在缓慢地移动,连线在伸缩和断裂,新的节点在不断出现,旧的节点在消失。整个图谱看起来像是——
像是一张血管网。
不,更准确地说,像是一张根系。一棵巨大的、看不见的树的根系,扎在整个城市的人口之下,通过无数根细细的纤维,连接着每一个人的每一个行为、每一次消费、每一条微信、每一个深夜的辗转难眠。
他注意到了一个细节。图谱上的节点颜色不同。大部分是浅蓝色的,少数是橙色的,极少数是红色的。他看了看图例:蓝色是”正常”,橙色是”关注”,红色是”高危”。
他自己是一个橙色节点。
从他的节点延伸出去的连线,连接着一圈蓝色的节点——那些是他的社交网络中信用状况良好的人。他注意到,在靠近他的一侧,这些蓝色节点正在缓慢地、以一种几乎不可察觉的速度,变成更深的蓝色,然后是浅橙色。
他在亲眼看着自己的”风险”沿着社交网络向外传播。
他的目光被图谱的另一个区域吸引了。在图谱的右上角,有一片密集的红色节点集群,像是一块正在扩散的暗斑。他放大了那个区域,发现这些红色节点都集中在深圳的两个区域:南山区的大冲和宝安区的西乡。
大冲和西乡。他认识这两个地方。大冲是深圳最密集的程序员聚居区之一,西乡是外来务工人员最集中的区域。
红色节点的数量在快速增长。从图谱的时间轴来看,2024年1月时红色节点只有不到两千个。到了2025年1月,增长到了八千个。现在是2026年6月——三万四千个。
三万四千个人被标记为”高危”。他们的”风险”正在通过图谱的根系网络,向周围的节点渗透,制造出新的橙色节点,这些橙色节点又在向更外围扩散,制造出更多的”关注”对象。
苏铭突然意识到了他在看什么。
这不是一张信用图谱。这是一张债务传染图。它记录的不是谁欠了多少钱,而是”负债”这种状态如何像一种病毒一样,在城市的人口中传播。一个人的收入中断,他的评分下降,他的下降导致他周围人的评分下降,周围人的下降继续向外扩散——
这是一场慢性的、无声的雪崩。
八
他继续往下翻,在数据的最底层,他找到了一个被标注为”系统级参数”的目录。这个目录需要额外的权限才能访问,但周维给他的临时通行卡——那张白色的小卡片——恰好包含了这个权限。也许周维是故意给他的。他不确定。
目录里有十二个参数。每一个参数都有一个名字、一个当前值、和一个修改记录。
第一个参数:信任衰减速率。当前值:0.0234/天。含义:每个用户的信用评分每天自然衰减0.0234分,无论其行为如何。修改记录显示,这个参数在2024年3月从0.0089调整为0.0234,调整者是”系统自动优化”。
第二个参数:风险传导阈值。当前值:0.15。含义:当一个用户的信用评分下降超过15%时,其”债务传导系数”自动激活。修改记录:2024年6月从0.30调整为0.15。
苏铭快速浏览了所有十二个参数。他的手指在键盘上越来越快,心跳也越来越快。
每一个参数的调整方向都是一样的:让系统变得更敏感。信任衰减更快,风险传导更容易,降分阈值更低,恢复门槛更高。每一次调整的幅度都不大——0.01、0.02、5%——但累积起来的效果是巨大的。
他做了一个快速的心算。按照当前的参数设置,一个信用评分800分的普通市民,如果在没有任何不良行为的情况下,仅仅因为”收入连续性”中断(比如被裁员),他的评分会在六个月内下降到500分以下。而500分是许多服务——房贷、车贷、信用卡、租房、甚至某些工作的最低要求——的门槛。
六个月。从800到500。仅仅因为失去了工作。
然后这个人的”风险”会开始向他的社交网络传播,影响他的家人、朋友、同事。被影响的人的评分下降,又继续向外扩散。
苏铭坐在那里,看着屏幕上那些冰冷的数字和参数,突然想到了一个他很久以前读过的故事。那个故事说的是一座城市里有一条河,河的上游有一家工厂,工厂把污水排进河里,河水流过整个城市,每一个喝河水的人都会慢慢地生病。但没有人知道,因为生病是缓慢的,症状是模糊的,而且每个人都以为自己只是”运气不好”。
现在他站在了那条河的源头。
九
他的四十分钟还剩九分钟。
苏铭看着屏幕,手指悬在键盘上方。他知道自己应该做什么——导出数据,交给某个记者,或者发布到某个平台上,让所有人看到这些参数是如何被调整的,让所有人知道这个系统不是一个中立的工具,而是一个被调校成加速债务传染的机器。
但他的手指没有动。
因为他突然想到了另一件事。
如果他导出了这些数据,如果这些数据被公开了,会发生什么?
首先,天穹信用科技会否认。他们会说这些参数是”基于大数据分析的自动优化”,是”为了提高系统准确性”的技术调整。他们有足够的专家和律师来证明这一点。
然后,政府会介入。不是因为他揭露了什么,而是因为他的行为本身——非法进入数据中心、窃取国家基础设施数据——已经构成了犯罪。他会被逮捕、起诉、判刑。
然后,这件事会从新闻中消失。不是被删除,而是被其他新闻淹没。每天都有那么多新闻,谁会记得一个数据工程师的案子?
然后,什么都不会改变。系统继续运行。参数继续调整。红色节点继续扩散。
他把手放回了膝盖上。
就在这时,他注意到了屏幕右下角的一个小图标。那是一个他从未见过的图标——一个蓝色的水滴形状,里面有一个白色的感叹号。他点了它。
弹出了一个窗口。窗口里只有一行字:
“第13号参数已由外部信号源触发。当前状态:激活。”
第13号参数?目录里只有十二个参数。他回到参数目录,拉到了最底部。
没有第十三个。
他又看了看那个蓝色水滴图标。它还在那里,安静地闪烁着,像是某种来自深处的信号。
十
周维的声音从身后传来:“还有四分钟。”
苏铭转过头。周维站在机房的走廊上,手里拿着一个对讲机,脸上的表情比刚才更紧绷了。
“出了什么事?“苏铭问。
“B1层的安保系统刚才自动巡检了一次。“周维压低声音,“比预定时间早了十五分钟。可能是有人在楼上的办公室加班。”
苏铭回头看了看屏幕。他的移动硬盘已经接好了,但什么都没有导出。他看着那张动态图谱上缓慢移动的节点——三万四千个红色节点,像是一块正在城市地下扩散的暗斑——然后他做了一个决定。
他没有导出数据。
他把移动硬盘拔了出来,放回了背包里。
然后他打开了控制台的一个隐藏终端——这个终端是他三年前在设计系统时留下的一个后门。他从未用过它,也从未告诉过任何人它的存在。这是一个调试用的命令行接口,可以直接访问底层数据库。
他在命令行里输入了一行指令:
SELECT param_id, param_name, current_value FROM system_params WHERE param_id = 13;
系统返回了一行结果:
13 | 债务免疫系数 | 0.0000
债务免疫系数。当前值:0。
他又输入了一行:
SELECT param_description FROM system_params WHERE param_id = 13;
系统返回了一段文字:
“债务免疫系数衡量的是一个社区对债务风险传播的整体抵抗能力。该系数越高,社区内的信用评分下降传播速度越慢,恢复速度越快。当该系数为0时,社区对债务传染完全无抵抗力,任何单点的信用评分下降将以最大速度向整个网络传播。”
“当前值0.0000。历史最高值:0.8741(2023年1月)。修改记录:2023年3月由’系统自动优化’调整为0。”
苏铭盯着那个数字看了很久。
0。
这个参数曾经是0.87——意味着社区对债务传染有很强的抵抗力。但三年前它被归零了。从那时起,债务传染就在以最大速度传播。
他想起了那张图谱上迅速扩散的红色节点。三万四千个。
他想起了赵磊的房贷被拒。
他想起了自己437分的信用评分。
他想起了周维女儿因为一个赞而失去的267分。
所有这一切,都因为一个被归零的参数。
“两分钟。“周维的声音从远处传来,带着一丝紧迫。
苏铭的手指重新放到了键盘上。
他知道自己不能修改数据——周维说的是对的,他只有只读权限。而且修改数据是最愚蠢的做法。系统有完整的审计日志,任何修改都会被记录,被追溯。
但他可以做另一件事。
他打开了那个蓝色水滴图标的窗口,在命令行里输入了另一个指令:
UPDATE system_params SET visibility = 'public' WHERE param_id IN (1,2,3,4,5,6,7,8,9,10,11,12,13);
这不会修改任何参数的值。它只会把这十三个参数的”可见性”从”系统内部”改为”公开”。
这意味着,任何一个登录城市信用体系公众查询页面的人,都能看到这十三个参数的名称、当前值和修改记录。
他按下了回车。
系统提示:权限不足。
当然。他想。
他试了另一种方式。他打开了控制台的”数据导出”功能,选择导出格式为”公开报告”。然后他选择了导出范围:系统参数。然后他选择了目标位置:城市信用体系公众查询页面的”透明度报告”栏目。
这个栏目是天穹信用科技在三年前为了回应公众质疑而设立的,用来发布系统的”运行概况”。但一直以来,这个栏目里只有一些宏观数据——总用户数、平均信用分、评分分布曲线。从未有过系统参数。
他按下了”导出”。
系统提示:操作需要二级管理员审批。
他的手指悬在键盘上。他知道一个二级管理员不会在凌晨三点审批这个请求。这个请求会一直挂在那里,等到明天早上八点,第一个管理员上班时——
——然后被拒绝。
他需要另一种方式。
十一
“一分钟。“周维已经走到了他身边,手搭在他的肩膀上。
苏铭没有回头。他看着屏幕,脑子里在飞速运转。
他想到了一个办法。
他打开了一个新的终端窗口,输入了一行他从未在任何官方文档中见过的命令——但他在三年前的代码审查中,在一段被标记为”deprecated”的注释里,曾经读到过:
EXEC system.schedule_public_report(params := 'all', delay := '48h', auth_level := 'auto';
这是系统的一个自动化功能——生成定时公开报告。如果参数设为”all”,它会自动生成包含所有系统参数的报告,并在指定时间后发布到公众查询页面。“auth_level := ‘auto‘“意味着它会使用系统的自动审批流程,而不是人工审批。
这个功能在三年前就被废弃了。但苏铭在代码审查时注意到,废弃的代码并没有被删除,只是被注释掉了。在很多系统中,被注释的代码仍然会被编译器忽略,但不会被运行时环境忽略。如果底层接口还存在,命令仍然可以被执行。
他按下了回车。
系统停顿了三秒钟。那三秒钟长得像三年。
然后屏幕上出现了一行字:
Scheduled. Report ID: RPT-20260601-0047. Estimated publication: 2026-06-03 02:47 CST.
成功了。
48小时后,一份包含所有十三个系统参数的公开报告会自动发布到城市信用体系的公众查询页面。任何人——包括记者、学者、律师、以及那三万四千个被标记为”高危”的人——都能看到这些参数是如何被调整的,以及”债务免疫系数”是如何被归零的。
“时间到了。“周维把他从椅子上拉了起来。
苏铭拔出移动硬盘,塞回背包。他站起来时,膝盖咔嚓响了一声。他已经在这个折叠椅上坐了将近四十分钟,双腿几乎失去了知觉。
他们沿着来时的路返回——穿过第七层机房的隔断走廊,乘坐货梯向上,经过三道门,回到B3层的货运平台。整个过程没有一个多余的动作,也没有一句话。
当他们回到地面时,苏铭看到了天空。
已经快凌晨四点了,天边出现了一丝微弱的灰白色。但天空并不正常。在东方的灰白之上,覆盖着一层他之前看到过的紫色——比下午时更浓、更深,像是有人在天幕上涂了一层颜料。紫色的云层很低,几乎触到了远处几栋写字楼的楼顶。
“那是什么?“苏铭不由自主地说了出来。
周维也抬头看了看,然后低下头,继续往前走。
“深圳的天气。“他说,“什么都不奇怪。“
十二
苏铭回到家时已经凌晨四点半。
他住在一间三十平米的出租屋里,在南山区的一个城中村里。房间不大,一张床、一张桌子、一个衣柜、一个电磁炉。窗户正对着另一栋楼的墙壁,间距不到两米,白天也需要开灯。
他坐在床边,把移动硬盘放在桌子上。硬盘里什么都没有——他没有导出任何数据。
但他做了另一件事。
那行命令。那个被废弃的系统功能。那份48小时后自动发布的报告。
他不知道它会不会起作用。也许废弃的代码已经被彻底清除了,那行命令只是在空中挥了一下手,什么都没有触发。也许报告会生成,但在发布前被系统自动拦截。也许报告会发布,但天穹的公关团队会在十分钟内把它撤下,然后发一份声明说”系统故障导致测试数据泄露”。
也许什么都不会改变。
他躺到床上,盯着天花板。天花板上有一块水渍,形状像一只手。他每天晚上都盯着这只手看,有时候觉得它在动。
他想起了一个细节。在机房里,当他执行那行命令时,屏幕上的水滴图标闪烁了一下,然后从蓝色变成了绿色。
绿色。
他不知道那意味着什么。也许什么都不是。也许是一个系统状态的指示灯——蓝色是”待命”,绿色是”已激活”。也许那个图标代表着某个他不知道的系统功能,某个被设计出来但从未被使用过的功能。
他翻了个身,把脸埋在枕头里。枕头有一股洗衣液的味道,是那种超市里最便宜的蓝色洗衣液,他买了两大瓶,能用三个月。
凌晨三点。他通常在这个时间醒来。但今天他是在这个时间试图入睡。
他不知道自己会不会成功。
十三
第二天,深圳下了一场奇怪的雨。
苏铭是被雨声吵醒的。他看了看手机——上午十一点,他睡了不到七个小时,是他这四十七天来睡得最长的一次。
雨很奇怪。不是深圳常见的那种热带暴雨——来得快去得也快——而是一种持续的、均匀的、仿佛没有尽头的细雨。雨丝很细,几乎是水平的,像是一层薄雾挂在空气中,又像是谁在天空中铺了一张巨大的、半透明的网。
他打开手机看天气。所有天气APP都显示同一行字:“今日天气:晴。降水概率:0%。”
但窗外分明在下雨。
他刷了一下社交媒体。有人在发帖:
“深圳的天气APP是不是坏了?外面在下雨但所有APP都说晴天。”
“南山区这边雨挺大的,天气预报说0%降水?”
“有人知道这是怎么回事吗?不是正常的雨,雨是紫色的。”
紫色的。
苏铭走到窗前,拉开了窗帘。光线很暗,不是因为云层——事实上天上几乎看不到云——而是因为雨本身。雨丝在灰白色的天空中折射出一种淡淡的紫色光芒,像是有人在每一滴雨水里都溶解了一粒紫色的荧光粉。
他伸出手,接了几滴雨水。雨水落在他掌心,看起来和普通的雨水没有区别。透明的,微凉的。但当他把手收回来时,他注意到掌心的皮肤上留下了一层极薄的、闪着微光的薄膜,像是某种矿物质被雨水溶解后留下的痕迹。
他用拇指蹭了蹭那层薄膜。它消失了。
他的手机又震了一下。不是微信,不是短信,是一条系统推送:
“城市信用体系公告:系统将于2026年6月3日进行例行维护,届时公众查询服务将暂停2小时(02:00-04:00 CST)。维护期间系统将发布最新透明度报告。”
他盯着这条公告看了很久。
6月3日。02:00到04:00。正好是他设定的报告发布时间。
系统知道。或者说,系统的自动化流程知道——有一份报告被安排在那个时间段发布,所以它自动生成了维护公告。
但这条公告是公开的。所有人都能看到。所有人都会知道6月3日凌晨会有一份”透明度报告”发布。
也许当他看到这条公告时,天穹的安全团队也已经看到了。他们现在正在排查这份报告的来源。他们会发现那个被废弃的自动报告功能被触发了。他们会尝试取消它。
但他猜测他们做不到。因为那个功能之所以被废弃而未被删除,很可能是因为它被绑定在了系统的核心调度器上——那是整个城市信用体系的基础架构,任何对核心调度器的修改都需要物理重启整个数据中心。而重启一次数据中心需要至少24小时的准备时间和市政审批。
他猜测,他们正在焦急地开会。
窗外的紫色雨还在下。
十四
那天下午,苏铭去了赵磊家。
赵磊住在宝安区的一个小区里,两室一厅,是他和妻子2019年买的。当时房价正好在高位,他们咬牙凑了首付,每月还贷一万二。赵磊在一家中型互联网公司做产品经理,月薪两万出头,还完房贷后剩下的钱勉强够一家三口的生活。但现在,房贷被拒的不是赵磊——他的房贷已经在还了——被拒的是他妻子的经营贷。赵磊的妻子开了一家小小的花店,去年想贷一笔款扩张店面,被银行以”申请人信用评分不足”为由拒绝了。
苏铭坐在赵磊家的沙发上,喝着茶,听赵磊讲这些。赵磊的妻子在厨房里做饭,菜刀切在砧板上的声音均匀而急促,像是一种来自另一个空间的节拍器。
“她的评分是596。“赵磊说,拿着手机给苏铭看,“就差4分。银行的门槛是600。4分。”
“你知道为什么她的分会低吗?”
赵磊摇头。“查不到。只能看到分数,看不到原因。我们想了半天,唯一能想到的就是她去年有一次信用卡还款晚了三天。就三天。”
三天。苏铭在心里快速计算了一下。按照系统的参数,一次逾期还款的直接影响是减15到25分。但通过”债务传导系数”和”风险传导阈值”的放大效应,如果她的社交网络中恰好有几个信用评分不高的联系人——比如她的花店供应商、她的客户——那25分可以被放大到50分甚至更多。
“赵磊。“苏铭放下茶杯,“你相不相信,你的房贷被拒和她的经营贷被拒,可能都不是你们自己的问题?”
赵磊看着他,不明白。
苏铭没有解释。他只是说:“后天,6月3号,凌晨两点。你去看看城市信用体系的网站。”
“凌晨两点?”
“对。可能什么都没有。也可能有一些你应该看到的东西。”
赵磊的脸上有一种困惑的表情,但更多的是疲惫。一个被房贷和花店的租金压着的中年人的疲惫。他的眼睛下面有深深的黑眼圈,衬衫领口有一个小洞,左手无名指上的婚戒已经摘了——苏铭注意到这个细节时,他的胃又凉了一下。
“你们没事吧?“他问。
赵磊沉默了一会儿,然后说:“她在跟我谈离婚。”
厨房里的菜刀声停了一下,然后继续。
十五
6月2日。
苏铭在自己的出租屋里等了一整天。他的手机每隔几分钟就看一次,不是在等什么消息,而是在确认自己没有收到任何消息。没有警察来敲门,没有来自天穹科技的律师函,没有任何异常。
下午三点,他打开电脑,登录了城市信用体系的公众查询页面。页面一切正常——蓝色背景,简洁的界面,一个搜索框,输入身份证号可以查到自己的信用评分。页面底部有一个”透明度报告”的链接,点进去是一个列表,显示着过去一年发布的所有报告。最近的一份是5月份的,标题是”2026年5月城市信用体系运行概况”。
没有6月3日的报告。当然——它还没发布。
他关掉了电脑,躺回床上。
窗外的紫色雨已经停了。从昨天下午开始,断断续续下了将近二十四小时。地面是干的——雨水似乎在接触到地面后就蒸发了,没有留下任何痕迹。但空气中残留着一种淡淡的、说不清的气味,像是雨后的泥土,又像是金属。
傍晚的时候,他收到了周维的一条微信。只有一个字:
“行。”
他不知道周维在说什么。但他猜,周维是知道了那行命令的事——也许是通过数据中心的日志——然后在告诉他:没有被拦截。
他把手机放下,坐在窗前,看着窗外。天已经暗了,对面的墙壁上有一盏路灯,把墙上的砖缝照得清清楚楚。有一只壁虎在墙上爬,动作很慢,像是在思考什么。
他等了四十多年——不,他等了四十九天——终于等到了一个可能什么都不是、也可能是一切的夜晚。
十六
6月3日。凌晨一点五十五分。
苏铭坐在电脑前,刷新着城市信用体系的网页。
一点五十八分。
一点五十九分。
两点整。
页面跳出了一个弹窗:“系统维护中,请稍后再试。”
他等了。手心出汗。
两点十二分。
两点二十七分。
两点四十三分。
两点四十六分。
页面恢复了。
他看到了一份新的报告出现在”透明度报告”列表的最上方。标题是”2026年6月城市信用体系系统参数报告”。
他的手指在触控板上滑动,点开了这份报告。
报告的第一页是一个简短的概述:“本报告根据《城市信用体系管理条例》第22条修订案的要求,公布城市信用体系当前运行的所有系统参数。本报告由系统自动生成,未经人工审核。”
然后是十三个参数的列表。
每一个参数的名称、当前值、含义和修改历史都清清楚楚地列在了那里。信任衰减速率、风险传导阈值、债务传导系数、行为模式偏差权重……以及第十三个参数:
“债务免疫系数。当前值:0.0000。含义:衡量社区对债务风险传播的整体抵抗能力。修改记录:2023年3月由’系统自动优化’从0.8741调整为0。”
苏铭盯着屏幕。
他做了一件他从未做过的事。他把这份报告的链接复制了下来,发到了他的微信朋友圈。
没有配文字。只有链接。
然后他关上了电脑,躺回床上。
凌晨三点。他通常在这个时间醒来。但今天,他决定在这个时间入睡。
窗外的天空很干净。没有紫色云层,没有奇怪的雨。只有一轮月亮,月光穿过两栋楼之间的缝隙,照进了他的窗户,在天花板上画了一条细细的银线。
银线穿过那只”手”形状的水渍,看起来像是那只手里握着一把剑。
他闭上眼睛。
十七
后来的事情,是赵磊告诉他的。
6月3日早上八点,苏铭的朋友圈链接已经在几个技术社区里被转发了上千次。到中午,几个财经媒体发出了报道。到下午,“债务免疫系数”成了微博热搜第一。
天穹信用科技在下午四点发布了一份声明。声明的核心内容是:“报告中公布的系统参数均为测试环境的配置数据,并非生产环境的实际参数。生产环境中的系统参数与报告内容不符。对此引发的社会关注,我们深表歉意。”
没有人相信。
因为就在声明发布后的一个小时内,有三个独立的技术团队分别用自己的信用评分进行了逆向推算。他们发现,如果按照报告中的参数进行计算,他们过去六个月的信用评分变化轨迹与实际评分完全吻合。如果按照天穹声明中的”生产环境参数”进行计算,则完全对不上。
数据不会说谎。但说谎的人会忘记数据本身已经在每个人身上留下了证据。
6月4日,深圳市政府成立了专项调查组。
6月5日,天穹信用科技的CEO被约谈。
6月7日,调查组进驻深层数据中心。
6月10日,一份 leaked 的内部文件显示,“系统自动优化”的每一次参数调整,都经过了天穹信用科技的商业策略委员会的审批。所谓”自动优化”,实际上是人工决策,目的是通过降低整体信用评分来扩大”信用修复服务”的市场需求。天穹信用科技在2024年推出了一款名为”信用管家”的付费产品,每月收费49元,号称可以帮助用户”智能优化信用行为,提升信用评分”。截至2026年5月,这款产品的付费用户已经超过了一百二十万。
一百二十万用户 × 49元/月 = 五千八百八十万/月。
他们通过调低信用评分来制造需求,然后通过出售”信用修复”服务来获利。而所有的一切,都隐藏在”系统自动优化”这六个字的背后。
6月15日,天穹信用科技被吊销营业许可。
6月18日,城市信用体系进行了第一次参数重置。“债务免疫系数”从0恢复到了0.75。
6月20日,赵磊的妻子重新申请了经营贷。这一次,她通过了。
十八
7月。
苏铭在一家新成立的数据伦理咨询公司找到了工作。公司很小,只有八个人,办公地点在南山区的一个共享办公空间里。月薪一万二,比他在天穹时少了一大半。但他不在意。
他搬了家,从城中村的出租屋搬到了宝安区的一个一居室。窗户对着一个小公园,能看到几棵荔枝树。七月的深圳很热,但每天傍晚都会下一场短促的暴雨,雨后空气里弥漫着荔枝和泥土混合的甜味。
他的信用评分在6月18日的参数重置后,从437回升到了698。还是不够高——700分是很多服务的门槛——但在缓慢恢复中。
有一天,他在公司的茶水间里遇到了一个新来的同事。一个三十岁出头的女人,短发,戴一副圆框眼镜,穿着一件淡蓝色的亚麻衬衫。她正在用热水泡一杯花草茶,茶水的颜色是一种很好看的淡紫色。
“你好,我叫林晓。“她伸出手。
“苏铭。”
他们握了一下手。她的手很凉,像是刚从冰箱里拿出来的。但她笑起来的时候,眼睛会弯成两个很好看的弧度。
“我听说了你的事。“她说,“6月3号的那份报告。”
“那不是我。“苏铭说。这是事实——他从未对任何人承认过。
“我知道。“她笑了笑,“但我猜是你。”
苏铭看着她,不知道该说什么。她的花草茶冒着热气,淡紫色的蒸汽在空气中缓缓上升,然后消散。
“你喜欢紫色?“他问。
“嗯?”
“茶。”
她低头看了看杯子里的紫色茶水,笑了。“这叫蝶豆花茶。天然的花青素。加柠檬会变成蓝色。”
“我以为加柠檬会变酸。”
“也是。“她端起杯子走了,走了两步又回头,“对了,你有没有注意到,6月3号之前的几天,深圳下了一场紫色的雨?”
苏铭的手停了一下。
“看到了。”
“我查了一下气象数据。“她说,“那几天深圳没有任何降水记录。气象雷达是干净的。但很多人看到了雨,也感受到了雨。我自己的阳台上也有雨水的痕迹——紫色的,干了以后就消失了。”
“你认为是……”
“我不知道。“她打断了他,“但我觉得,有些东西——不是数据,不是算法,不是系统——有些更古老的东西,也在关注着我们。”
她走了。
苏铭站在茶水间里,看着她消失在走廊尽头。他的手心里有一层薄薄的汗,不知道是因为热还是因为别的什么。
他想起了那天凌晨在机房里看到的蓝色水滴图标——那个从蓝色变成绿色的图标。那个不在官方文档中的第13号参数。那个被他以为是废弃代码的功能,竟然真的被执行了。
也许那不是废弃代码。也许那是某个程序员——某个像他一样的程序员——在很久以前,故意留在系统里的一个开关。一个等待被触发的开关。一个”如果有一天系统走得太远,就让某人打开这个开关”的保险。
也许那场紫色的雨也是。不是气象学上的雨,而是某种来自更深层的东西——来自这座城市本身、来自数据的最底层、来自所有被标记为”高危”的三万四千个人的集体无意识——的一种回应。
也许不是。
他不知道。
尾声
8月的一个傍晚,苏铭下班后沿着宝安区的河堤散步。河不宽,两岸种满了芒果树,树上的芒果还是绿的,要到九月才能熟。河面上倒映着天空的颜色——此时正是黄昏,天边有一层很薄的云,被夕阳染成了淡粉色和淡紫色交织的颜色。
他的手机响了。是一个陌生号码。
“请问是苏铭先生吗?”
“是我。”
“我是深圳市信用管理中心的。我们正在对城市信用体系进行全面审计。在审计过程中,我们发现了一份您的系统操作记录,日期是6月1日凌晨。”
苏铭的心跳加速了。他站在河堤上,看着河面上缓慢流动的水,水面上的倒影在微风中轻轻晃动。
“我们想请您协助我们了解一些情况。您方便来一趟吗?”
他沉默了几秒钟。
“方便。“他说。
他挂了电话,站在河堤上,看着天边最后一抹紫色被暮色吞没。芒果树的叶子在晚风中沙沙作响,像是一群人在窃窃私语。
他想起了周维。周维在6月5日那天被数据中心开除了。苏铭给他发过几条微信,他都没有回。后来苏铭听说他带着女儿搬回了湖南老家。他的女儿的信用评分在参数重置后回升到了741,但她的高三已经耽误了半年,成绩下滑了很多。周维的妻子在去年就和他离了婚,原因是”长期感情不合”。
他想起了赵磊。赵磊的妻子在经营贷批下来后,确实扩张了花店。但她和赵磊最终还是离了婚。赵磊说不是因为钱的事,是因为”积攒了太久的疲惫”。他说:“两个人在一起扛了太久,有一天发现扛的不是同一个东西了。”
他想起了林晓。她还在公司里,每天泡她的蝶豆花茶。他们偶尔一起吃午饭,聊一些和工作无关的事情。她曾经问他:“你后悔吗?”
他说:“后悔什么?”
“你知道的。”
他想了很久,说:“我不知道。”
这是实话。他不知道自己是否后悔。他做了一件违法的事情,但他也知道,如果不做那件事,三万四千个”高危”节点会继续增长,赵磊的妻子可能永远拿不到那笔贷款,周维的女儿可能永远失去上大学的机会,而他自己——一个437分的”风险”——会继续沿着那条看不见的根系,把自己生活的残骸传递给周围每一个人。
系统被修正了。但系统背后的人——那些决定把”债务免疫系数”归零的人——只有一个被约谈的CEO受到了公开处理。商业策略委员会的其他成员呢?那些审批每一次参数调整的中层管理者呢?那些编写”系统自动优化”标签的工程师呢?
他们在哪里?
河面上飘过了一片叶子。芒果树的叶子,深绿色,边缘微微卷曲。它在河水中旋转着,慢慢地被水流带走。
苏铭看着那片叶子消失在河的拐弯处,然后转身,朝家的方向走去。
天已经完全黑了。路灯亮了起来,把他的影子投在河堤上。影子很长,但不像三年前那个凌晨的影子——那时候的影子是孤独的,像是一个人的尽头。现在的影子,拖着地面,安静地跟着他,像是一个沉默的同伴。
他走进了小区的大门。
门口的保安正在看手机。苏铭路过时瞥了一眼屏幕——保安正在城市信用体系的公众查询页面上,看着自己的评分。
“大叔,多少分?“苏铭问。
保安抬起头,有点不好意思地笑了:“712。比上个月高了3分。”
“挺好的。”
“是啊。“保安把手机揣回口袋,“够了。够了就好。”
苏铭笑了笑,走进了单元门。
电梯里的镜子照出了他的脸。瘦了一些,黑了一些,眼睛下面还有一些淡淡的痕迹。但目光是清醒的。
电梯到了。他走出来,掏出钥匙,打开了门。
屋里很安静。他换了鞋,走到窗前,拉开了窗帘。
窗外,宝安区的夜空中有几颗星星。不多——深圳的光污染很重,能看到星星的夜晚不多——但今晚的空气特别干净,也许是傍晚那场暴雨的功劳。
他看着那几颗星星,突然想起了那个蓝色的水滴图标。它还在系统的某个角落里吗?绿色的,安静的,等待着什么?
或者它已经消失了,完成了它的使命?
他不知道。
他拉上了窗帘,关上了灯。
窗外,深圳的夜空中,有一颗星星比其他的都亮。它闪烁了几下,像是在传递某种信号。然后,慢慢地,它被一片从西边飘来的薄云遮住了。
云层的边缘有一丝淡淡的紫色。
然后云过去了,星星又出现了。
城市的地下,在数据中心的服务器机柜深处,第13号参数安静地显示着一个新的值:
0.7514。
在持续回升中。
—— 全文完 ——