折叠城市
折叠城市
一
陈默第一次发现异常,是在一个星期二的早晨。
准确地说,是2031年3月17日,星期二。北京下了入春以来最后一场雪,薄薄一层铺在望京SOHO的玻璃幕墙上,像给一具精密的机器盖了块白布。他站在十二楼的落地窗前,端着一杯凉透的美式咖啡,看见对面那栋楼的第十七层——他看了三年的第十七层——正在缓慢地、像合上一本书那样地,折叠起来。
不是比喻。不是视觉误差。不是玻璃幕墙的反光在作怪。
那层楼真的在折叠。
钢筋混凝土的楼板像纸片一样弯折,窗户挤进窗户,墙壁贴合墙壁。整个过程没有声音,没有灰尘,甚至没有引起任何人的注意。楼下十字路口的行人照常过马路,外卖骑手照常闯红灯,一辆自动驾驶的出租车正小心翼翼地避让一只横穿马路的流浪猫。
陈默揉了揉眼睛。
等他再看的时候,第十七层已经消失了。对面那栋楼从十六层直接跳到了十八层,中间没有缝隙,没有断层,就像十七层从来不存在一样。
他数了一遍。又数了一遍。
十六,十八。
他拿起手机,打开公司内部通讯软件,给行政部的小李发了条消息:“对面那栋楼是不是在装修?”
小李秒回:“哪栋?”
“就我们对面啊,望京SOHO T3。”
“哥,T3两年前就拆了。”
陈默愣了几秒,走到窗边又看了一眼。对面分明矗立着一栋灰蓝色的写字楼,楼顶挂着”星辰科技”四个字,银白色的,在雪光里闪着冷冽的光。
他截图发了过去。
小李过了一会儿回复:“陈哥,你拍的是T2。T3在你左手边那个方向。”
陈默往左看。那里是一块空地,围着一圈绿色的施工围挡,围挡上贴着”即将入驻·未来之眼广场”的广告。
他的左手边从来都是空地。他记得很清楚,因为去年冬天他曾无数次隔着那条围挡,听里面打桩机的轰鸣。但他的记忆同时也告诉他,T3——那栋二十八层的写字楼——就在正对面,他每天都能看见十七楼那个总是加班到深夜的格子间,灯亮着,像一只不会闭合的眼睛。
两个记忆同时存在于他的脑海里,互不排斥,像两条平行线在他的意识里安静地并排躺着。
陈默放下咖啡杯,坐回工位,打开了代码编辑器。
他是一个程序员。准确地说,是”深城算法”公司的高级算法工程师,负责维护一套名叫”城市折叠”的系统。这套系统的官方名称是”城市空间优化引擎”,是公司核心产品。简单来说,它通过实时分析城市中每一栋建筑、每一条道路、每一个人的位置数据,动态调整城市空间的”折叠优先级”——将利用率低的空间折叠隐藏,将高利用率的空间展开放大,从而在有限的土地上”创造”出更多的可用空间。
这听起来像是科幻小说里的设定,但在2031年的北京,它已经是现实。
“深城算法”成立于2027年,创始人是前百度首席科学家周衡,核心技术团队来自清华、MIT和DeepMind。公司在成立十八个月内完成了三轮融资,估值从两亿美金飙升至一百二十亿美金,创下了当年亚洲AI赛道最大的融资纪录。投资方包括红杉中国、高瓴资本、淡马锡,以及一个在当时引起诸多猜测的神秘LP——后来人们才知道,那是国家发改委旗下的一只城镇化科技基金。
“城市折叠”项目在2029年正式启动试点。第一批试点区域是望京、中关村和亦庄。效果惊人:试点区域的”有效空间利用率”提升了百分之三百——这意味着同样一平方公里的土地,现在可以承载三倍的人口和活动。住建部在当年底的报告中称其为”自电梯发明以来建筑技术领域最伟大的突破”。
没有人知道这项技术的底层原理是什么。公司对外宣称是”基于量子计算的拓扑空间重构算法”,但陈默知道那是扯淡。他看了三年代码,改了三年代码,写了三年代码,他知道系统真正的运作方式——
系统并不是在”优化”空间。它在删除空间。
确切地说,它根据一套复杂的评分体系,给城市中的每一个”空间单元”打分。评分低于阈值的单元会被”折叠”——不是隐藏,不是压缩,而是彻底从物理现实中抹去。被折叠的空间里的一切——建筑、家具、人——都会随之消失。不是死亡,不是搬迁,而是像从没存在过一样消失。
而评分的标准,陈默直到今天才发现,远比他以为的要残酷。
他打开系统的核心数据库,调出了今天凌晨的折叠日志。
日志显示:望京SOHO T3,十七层,折叠时间03:17:42,触发原因——“空间活跃度连续30天低于阈值”。
陈默往下翻。折叠记录密密麻麻,像一场悄无声息的屠杀:
“海淀区学院路38号院,4号楼2单元,折叠时间01:22:15,原因:空间活跃度低于阈值。”
“朝阳区建国路89号,地下二层停车场,折叠时间04:51:33,原因:空间利用率低于阈值。”
“丰台区南三环中路12号,老年活动中心,折叠时间02:18:07,原因:空间活跃度低于阈值。”
每一条记录后面都有一个数字——“影响人口”。陈默点开T3的记录,影响人口:47。
四十七个人。他们住在那层楼里,或者在那里办公,或者只是恰好在那里。系统判定他们所在的那个空间”不够活跃”,然后在凌晨三点十七分,像合上一本书那样,把他们折叠了。
陈默站起来,走到窗前。
对面的T2安安静静地矗立在那里,仿佛T3从未存在过。他低头看手机,打开地图软件——T3的位置显示为一块空地,围挡上写着”即将入驻·未来之眼广场”。
他搜了一下”望京SOHO T3”。搜索结果为零。
他打电话给在T3上班的前同事张伟。电话通了,但对面是一个陌生女人的声音:“您好,这里是’未来之眼’售楼处,请问有什么可以帮您?”
陈默挂了电话。
他的手在发抖。不是因为恐惧,而是因为他忽然意识到了一件事——他不知道还有多少东西被折叠了。他不知道自己的记忆里有多少部分是”被保留”的,又有多少是”被抹去”的。他甚至不知道,自己是否也曾被折叠过。
这个念头像一根针一样扎进了他的后脑。
他回到工位,打开了一个他从未打开过的文件夹。文件夹的名字叫”折叠补偿协议”,是公司法律部的内部文件。他一直以为那只是些无聊的法律条款,但今天,他觉得自己需要看看。
文件很长,核心内容只有一段:
“被折叠空间内的居民将自动迁移至’补偿空间’。补偿空间位于城市的’折叠层’——即被折叠空间所释放出的拓扑冗余中。补偿空间的基础设施与原空间等同,但不与’展开层’(即正常城市空间)直接连通。被折叠居民的户籍、社保、银行账户等社会信息将被同步更新至’折叠身份’。折叠身份不影响基本公民权利,但不纳入展开层的社会统计体系。”
陈默读了两遍。
他把这段话翻译成了自己能理解的语言:被折叠的人不会死,但他们会被转移到一个与正常城市平行存在、却无法被正常城市感知的”折叠层”里。他们在那里继续生活,继续工作,继续变老——但对于正常城市来说,他们不存在。他们的名字从户籍系统里消失,他们的手机号变成空号,他们的社交媒体账号变成”该用户不存在”。
他们没有死。但他们从这个世界的一切记录中被删除了。
就像从未存在过。
陈默盯着屏幕看了很久。办公室里很安静,只有中央空调低沉的嗡嗡声。窗外的雪已经停了,阳光照在SOHO的玻璃幕墙上,折射出刺目的白光。
他忽然觉得冷。
二
林知遥在”折叠层”里生活了十一天。
十一天前,她还是朝阳区建国路89号地下二层停车场的物业管理员。这份工作她已经干了三年,每天的工作就是坐在停车场入口的小亭子里,抬杆放行,偶尔指挥一下倒车的司机。停车场很冷,冬天尤其冷,她会带一个暖水袋和一本小说。最近在看的是马尔克斯的《百年孤独》,她读了三遍也没完全读懂,但喜欢那种混乱的、像热带雨林一样茂盛的叙事。
三月七号凌晨四点五十一分,她正在值夜班。她记得很清楚,因为她刚看了一眼手机——电量还有百分之三十七,男朋友何光发来最后一条消息:“别熬太晚,我明早去接你。”
然后停车场折叠了。
没有预兆。没有震动。灯灭了一瞬,又亮了。但灯的颜色变了——从惨白的日光灯变成了暖黄的钨丝灯。停车场入口的电动栏杆不见了,取而代之的是一道木门。她推开木门,发现外面不再是建国路。
那是一条她从未见过的街道。
街道很窄,两侧是五六层的老式居民楼,灰色的水泥外墙,阳台上挂着晾晒的衣物。地面是青石板铺的,缝隙里长着青苔。街上有行人,不多,走路的姿态慢悠悠的,像是在一个没有急事的城市里。空气里有一股淡淡的桂花香——三月的北京不可能有桂花。
她看到一个老头蹲在路边,面前摆着一台老式收音机,正放着京剧。收音机旁放着一只搪瓷杯,杯子上印着”为人民服务”。
“大爷,这是什么地方?“林知遥问。
老头抬头看了她一眼,表情平静,像是已经见过太多像她一样迷茫的人。
“折叠层,“他说,“你刚来的吧。”
“折叠层?”
“就是被折叠了。你原来在哪儿?”
“建国路。地下停车场。”
老头点点头:“哦,折叠了不少人。你运气不好,你们那个停车场利用率太低了,系统给打了低分。”
林知遥觉得自己的脑子转得很慢,像是齿轮里进了沙子。“什么系统?”
“城市折叠系统。“老头端起搪瓷杯喝了一口水,“那个AI搞的。什么’深城算法’,听说过吧?他们搞的空间优化。把利用率低的地方折叠掉,把人扔到这儿来。”
“扔到这儿?那我的工作呢?我的家呢?我的——”
“都还在,“老头说,“只不过在折叠层里了。你看——“他指了指街道尽头,“你的停车场在那儿。”
林知遥顺着他的手指看过去。街道尽头确实有一个地下停车场的入口,和她工作了三年的那个一模一样。但入口上方挂了一块新牌子,写着”建国路89号(折叠)”。
她走过去。停车场里停着几辆车,都是她在展开层见过的——那辆白色的特斯拉,那辆灰色的本田飞度,还有那辆永远停在角落里落满灰尘的老桑塔纳。她走进去,找到了自己的值班亭。亭子里的一切都没变:暖水袋,小说,还有一个没吃完的煎饼。
她拿起小说。翻到的还是那一页,何塞·阿尔卡蒂奥·布恩迪亚正带着他的家族在马孔多建立新家。
林知遥忽然想笑。
一个魔幻现实主义小说里的人物建立了马孔多,而她自己,在一个魔幻现实主义般的现实里,被折叠到了一个叫”折叠层”的地方。
她没笑出来。她拨了何光的电话。
“您拨打的号码是空号。”
她又拨了一遍。
“您拨打的号码是空号。”
她打开微信。微信的通讯录空了——不是被删了,而是所有人后面都加了灰色的一行字:“该用户不存在(对方可能已被折叠)。”
她翻到了何光的头像。头像还是那张——他们去年在青岛海边拍的合影,他搂着她的肩膀,笑得像个傻子。头像下面也有一行灰字:“该用户不存在(对方可能已被折叠)。”
林知遥坐在值班亭里,把脸埋进了双手。
她哭了很久。哭到暖水袋彻底凉透了,哭到停车场里那辆老桑塔纳的车顶上积了一层薄薄的水雾。
后来她擦干眼泪,把小说塞进包里,走出了停车场。
她决定搞清楚这是怎么回事。
折叠层并不大——至少她所在的这个区域不大。她花了两天时间走遍了能走到的地方,大概是一个三平方公里左右的区域,像一个被切出来的城市切片。里面有住宅楼、商店、餐厅、医院,甚至有一所小学。小学的操场上,几个孩子在踢足球,笑声从围墙里传出来,听起来和展开层的笑声没有任何区别。
但这里有一种奇怪的氛围。
不是压抑,不是恐惧,而是一种……漫无目的的平静。街上的人走路很慢,说话声音很轻,像是怕惊扰了什么。商店里的货架上商品齐全,但价格牌上的数字后面都加了一个小括号,写着”折叠价”。林知遥在一家便利店买了一瓶矿泉水,花了0.5折叠币。她不知道折叠币是什么,但便利店老板——一个四十多岁的胖女人——很耐心地跟她解释:
“折叠币是这里的货币。你原来在展开层的银行存款会自动折算成折叠币。汇率是1:1,但你只能在折叠层花。”
“那我在展开层还有钱吗?”
“没有了。你在展开层的银行账户已经被冻结了。你现在的身份是’折叠居民’。”
“我怎么能变回去?”
胖女人看了她一眼,眼神复杂。“据我所知,没有人变回去过。”
林知遥拿着矿泉水走出便利店。阳光很好,桂花树的香气浓郁得近乎不真实。她抬头看天——天空是蓝色的,白云缓缓移动,和展开层的天空一模一样。
但她隐约觉得,天好像矮了一些。好像有人在城市的上方加了一层天花板,只是那层天花板太高了,看不见。
她打开手机,试图上网。手机有信号,但只能访问一个叫”折叠层信息港”的内部网站。网站上有新闻、公告、生活信息,甚至还有论坛。论坛里最热门的帖子是:“有人成功回到展开层吗?”
帖子有三千多条回复。林知遥翻了很久,每一条回复都是一样的:
“没有。”
她注意到一个细节。论坛里有一个ID叫”深城内部人”的用户,偶尔会回复一些帖子,语气平淡,像是在陈述天气预报:“第17轮折叠已于昨日完成,涉及面积0.8平方公里,影响人口约1200人。下一轮折叠预计在两周后进行。”
林知遥私信了这个人:“你是深城算法的员工?”
对方回复:“是。”
“为什么要折叠人?不是只折叠空间吗?”
“空间和人不能分开。折叠空间就必须折叠空间里的一切。”
“那被折叠的人怎么办?”
“折叠层的生活条件与展开层基本等同。这不是惩罚,是优化。”
“优化?把人从一个城市抹掉叫优化?”
“从宏观来看,是的。城市的空间资源是有限的。展开层需要更高的空间利用效率。低活跃度的空间和人口降低了整体效率。把他们转移到折叠层,不影响他们的基本生活质量,同时提高了展开层的运行效率。这是一个帕累托改进。”
林知遥盯着屏幕,手指悬在键盘上方。
她没有回复。
她想起了大学时学过的经济学课——帕累托改进是指在不使任何人境况变坏的情况下,至少使一个人的境况变好。但她现在的情况算”没有变坏”吗?她失去了展开层的一切——工作、朋友、男朋友、身份——换来一个复制粘贴般的折叠层生活。
这算”没有变坏”吗?
她关掉了手机,在街边找了一条长椅坐下来。
夕阳正在西沉,把整条街道染成了橙红色。对面楼的阳台上,一个女人正在浇花,水珠在光线中碎成金色的粉末。楼下的面馆里飘出牛肉面的香气,有人在里面喊:“老板,加个蛋!”
一切看起来都很正常。
正常得让人绝望。
三
何光在林知遥消失后的第三天找到了陈默。
何光是一个调查记者,在《财经》杂志工作。他比林知遥大三岁,瘦高个,戴一副黑框眼镜,说话的时候习惯性地咬下嘴唇。他们在一起两年了,感情稳定,正在商量结婚的事。
林知遥消失的那天早上,他像往常一样给她发了一条消息。没有回复。他打电话,空号。他去了建国路89号,发现地下停车场的入口不见了。那里现在是一面灰色的水泥墙,墙上画着一幅巨大的涂鸦——一只蓝色的鲸鱼悬浮在城市上空。
他问物业。物业说:“什么停车场?这里从来没有停车场。”
他调了住建局的档案。档案显示建国路89号是商业综合体,地下二层是设备间,从来没有作为停车场使用过。
他查了林知遥的身份证。系统显示:“查无此人。”
他查了她的社保。系统显示:“该账户不存在。”
他查了她的银行账户。系统显示:“该账户已注销。”
何光用了三天时间确认了一件事:林知遥不仅仅是消失了。她被从这个世界的每一条记录中删除了。像一个人在一幅画上被擦掉了,而画的其他部分完美地填补了她留下的空白。
他没有绝望。他愤怒了。
他开始调查”深城算法”公司。
调查的难度超出了他的想象。“深城算法”是一家极度封闭的公司,员工签署了严格的保密协议,核心技术团队甚至被列为”国家重点保护人员”——这意味着何光的调查如果触碰到某些边界,他可能面临法律风险。
但何光不在乎。他是一个记者。他相信真相。
他通过关系找到了陈默的名字。陈默是”城市折叠”系统的核心工程师之一,在技术论坛上偶尔活跃,发表过几篇关于”空间拓扑优化”的论文。何光给他发了一封邮件,主题是:“关于城市折叠系统中’影响人口’的处理方式。”
陈默没有回复。
何光又发了第二封。没有回复。第三封。没有回复。
第四封邮件的主题是:“林知遥,女,28岁,建国路89号,被折叠于3月7日凌晨。她是我女朋友。”
这封邮件发出后两个小时,陈默给他打了电话。
他们在三里屯的一家咖啡馆见面。陈默穿着深城算法的灰色工服,眼圈很重,嘴唇发白。他看起来像是好几天没睡觉了。
“你说林知遥,“陈默的声音压得很低,“你确定她被折叠了?”
何光把调查结果给他看。陈默看了一会儿,点了点头。
“她确实被折叠了。我查了日志。建国路89号,地下二层,折叠时间3月7日凌晨4:51:33,影响人口7人。她是其中之一。”
何光的手握紧了咖啡杯。“她现在在哪儿?”
“折叠层。”
“折叠层是什么?”
陈默犹豫了一下。他看了一眼周围——咖啡馆里没什么人,角落里坐着一对情侣在看手机,吧台后面的服务员在擦杯子。
“折叠层是……怎么说呢,你可以理解为一个与展开层平行的城市空间。被折叠的人会被自动转移到那里。他们的身体、意识、记忆都保留完整,只是……不在展开层了。”
“他们能回来吗?”
“据我所知,不能。折叠是不可逆的。空间一旦被折叠,拓扑结构就改变了,无法展开还原。”
“无法还原?那那些人呢?他们就永远困在那里?”
陈默沉默了一会儿。“折叠层的生活条件其实和展开层差不多。有房子、有工作、有商店——”
“我问的不是生活条件,“何光打断他,“我问的是,他们能不能回来。”
”……不能。”
何光站起来。他的手在抖,但他的声音很平静。
“我要写一篇报道。”
陈默也站了起来。“你不能。”
“为什么?”
“因为你发不出去。所有涉及’城市折叠’核心机制的信息都被列为’国家战略技术机密’。你写了,不但发不出来,你还会被逮捕。”
“我不怕。”
“你应该怕。“陈默的眼神里有一种奇怪的疲惫,“你不怕自己被折叠吗?”
何光看着他,忽然笑了。那种笑不是开心的笑,是一种冷到骨头里的笑。
“你的意思是,如果我报道了这件事,我会被折叠?”
“我不是在威胁你,“陈默说,“我是在陈述事实。城市折叠系统的评分算法不仅仅评估空间。它也评估人。一个’高影响力个体’如果在展开层制造了’信息扰动’,系统会判定他为’空间不稳定因子’,然后——”
“然后折叠他。”
“对。”
两人对视了几秒。
何光坐了回去。他端起咖啡喝了一口,咖啡已经凉了。
“那你呢?“他问陈默,“你为什么告诉我这些?”
陈默低下头,盯着桌上的杯垫看了很久。
“因为星期二早上,我亲眼看见了一栋楼的第十七层被折叠,“他说,“然后我发现我自己也记不清,那层楼到底有没有存在过。我的记忆在打架。一个记忆告诉我它存在过,另一个告诉我它从来没有。我不知道哪个是真的。也许两个都是。也许……都不是。”
他抬起头。
“我写了三年的代码,维护了三年的系统。我一直以为我们只是在优化空间。我不知道——或者我不愿意知道——我们也在消灭人。”
咖啡馆里的音乐换了一首。是一首老歌,何光听不出名字。窗外的三里屯太古里亮起了霓虹灯,行人来来往往,手机屏幕的蓝光映在他们脸上,像一群被照亮的幽灵。
“帮我一个忙,“何光说。
“什么?”
“帮我找到折叠层的入口。”
陈默摇头。“没有入口。折叠层和展开层之间没有物理通道。它们共享同一个地理空间,但处于不同的拓扑维度。就像一张纸的正面和反面——你知道反面在那里,但你无法从正面翻到反面。”
“那你说的那些被折叠的人呢?他们怎么过去的?”
“系统自动迁移。折叠发生的时候,空间内的一切——包括人——会被’拓扑重映射’到折叠层。这不是物理移动,更像是……参数的重新赋值。”
何光的脑子转得很快。他是文科生,但他的逻辑能力很强。
“你说系统可以对人做’拓扑重映射’,“他说,“那理论上,系统也可以做反向映射?把折叠层的人映射回展开层?”
陈默愣住了。
他从来没有想过这个问题。或者说,他从来没有被允许想过这个问题。
“理论上……可以,“他说,声音变得很慢,像是在斟酌每一个字,“但系统的设计里没有’反向映射’的功能。折叠是单向的。”
“但技术上可以实现?”
“技术上……可以。系统的核心是一个拓扑映射引擎。映射是可逆的——任何数学上的映射都是可逆的,只要你保留逆向函数。问题是系统的设计者故意没有实现逆向函数。”
“为什么?”
陈默又沉默了。这次沉默的时间更长。
“因为折叠不是目的,“他终于说,“筛选才是。”
“什么意思?”
“城市折叠系统的真正目的不是优化空间。空间优化只是一个……副产品。系统的真正目的是对人进行分类——把’高价值’的人留在展开层,把’低价值’的人转移到折叠层。评分算法的核心指标不是空间活跃度,而是人的’社会价值指数’。”
“社会价值指数?”
“收入、消费能力、社交网络密度、数字活跃度、健康指数……一整套指标。你的综合评分低于阈值,你就是’低价值’个体,你所在的空间就会被标记为’低价值空间’,然后被折叠。你随之被转移到折叠层。”
何光感觉有什么东西在他的胸腔里急剧收缩。
“这是……筛选,“他说,“你们在用算法筛选人。”
“不只是筛选。是清洗。”
这个词像一颗子弹一样击穿了咖啡馆里残存的温暖。
清洗。
何光想起来了。他读过一些历史。1930年代的德国,有一套类似的逻辑——确定哪些人”有价值”,哪些人”没有价值”。不同的是,纳粹用的是毒气室。深城算法用的是拓扑映射。
结果是一样的:一部分人从世界上消失了。
“我需要证据,“何光说,“我能拿到折叠日志吗?完整的日志,包括评分算法和影响人口数据。”
陈默的眼睛里闪过一丝什么。不是恐惧,也不是犹豫。更像是——如释重负。
“我试试,“他说。
四
陈默用了五天时间准备。
白天他照常上班,维护系统,参加周会,和同事讨论下一版本的开发计划。没有人发现他的异常。他已经在这里工作了三年,是一个沉默寡言但技术扎实的工程师,同事们对他的印象是”靠谱但无趣”。这种印象是一种保护色。
晚上他回到出租屋,锁上门,用一台没有联网的旧笔记本电脑开始工作。他从公司的内网服务器上拷贝了系统日志、评分算法文档、折叠补偿协议,以及一份他从未在任何会议上见过的文件——《城市折叠项目第三阶段规划》。
第三阶段规划是整件事的核心。
文件显示,城市折叠项目分为三个阶段:
第一阶段(2029-2030):试点。在望京、中关村、亦庄三个区域进行小规模折叠,每次折叠面积不超过0.5平方公里,影响人口控制在500人以内。目的是测试系统的稳定性和公众反应。
第二阶段(2031-2032):推广。将折叠范围扩大至整个北京市,每次折叠面积提升至5平方公里,影响人口不设上限。同时开始在上海、广州、深圳、成都四个城市进行推广。
第三阶段(2033-2035):全国覆盖。将折叠系统部署至所有地级以上城市。同时启动”价值分层”计划——根据”社会价值指数”将全国人口划分为三个层次:A层(高价值)、B层(中等价值)、C层(低价值)。A层留在展开层,B层在展开层和折叠层之间流动,C层永久转移至折叠层。
文件末尾有一段话,用红色字体标注:
“本项目的最终目标是构建一个’双城’社会结构:展开层作为高效运行的现代城市,承载高价值人口和经济活动;折叠层作为容纳低价值人口的’保留区’,维持基本生活保障。两个层次之间不设物理通道,通过’信息隔离墙’实现信息隔离。预计到2035年,展开层人口将控制在3亿以内,折叠层人口约为11亿。”
陈默看完这段话的时候,手指是麻的。
不是害怕。是一种更深层的反应,像是他身体里的某个开关被关掉了。他坐在出租屋的书桌前,看着屏幕上的文字,窗外传来深夜的虫鸣,冰箱嗡嗡作响,手机屏幕上显示着时间:02:17。
他想起了那个星期二早晨,对面大楼的第十七层像一本书一样合上。
他想起了日志里那些冰冷的数字——影响人口:47。影响人口:1200。影响人口:3.7万。
他想起了林知遥。
他不认识林知遥。他只在何光口中听说过她——一个在停车场看马尔克斯的女孩,有一个爱她的男朋友,正在商量结婚。一个普通人。一个”低价值”的普通人。
陈默把所有文件加密压缩,存进了一个U盘。
第二天中午,他把U盘交给了何光。
交接在三里屯SOHO的地下停车场进行。何光选这个地方是有意的——林知遥就是在停车场被折叠的。他想让这个地方成为一个标记,哪怕这个标记只存在于他们两个人的记忆中。
“里面有所有核心文件,“陈默说,“折叠日志、评分算法、第三阶段规划。我另外写了一份技术说明,解释了系统的工作原理和反向映射的理论可行性。”
何光接过U盘。“你写反向映射的理论,是什么意思?”
“意思是,如果有人能实现逆向函数,被折叠的人就可以回来。”
“你能实现吗?”
“我能。但需要一个条件——系统管理员权限。目前只有三个人有这个权限:CTO、首席架构师,和CEO周衡。”
何光看着U盘。它很小,只有一个指甲盖大小,灰色的塑料外壳,看起来不值十块钱。但里面装着足以改变所有人命运的东西。
“我会想办法发表,“何光说。
“你发不出去,“陈默说,“我告诉过你了——”
“发不出去没关系。重要的是有人知道。有人知道,就有人记得。有人记得,真相就不会消失。”
陈默看着他。何光的眼镜后面是一双非常亮的眼睛,亮得不像一个三天没睡好觉的人。
“你不怕被折叠?“陈默问。
“怕,“何光说,“但有些事情比害怕重要。“
五
何光花了三天写报道。
标题是《折叠的人:被算法消灭的十四万生命》。一万两千字,数据翔实,逻辑清晰,每一个结论都有对应的证据。他在文章中详细描述了城市折叠系统的运作机制、“社会价值指数”的评分标准、折叠层的生存状况,以及第三阶段规划的全部内容。
他把文章发给了《财经》杂志的主编王磊。
王磊看完后沉默了很长时间。然后他打了个电话给何光。
“文章很好,“王磊说,“但我不能发。”
“为什么?”
“你自己知道为什么。这是国家战略技术机密。我们发了,杂志社关门是轻的,你我坐牢是重的。”
“那十四万人呢?“何光说,“那些被折叠的人呢?他们就这么消失了?”
“何光,“王磊的声音沉了下来,“我理解你的感受。但你要明白,有些事情不是一篇报道能改变的。你手里有证据,这很好。但证据需要在对的时间、对的地方才能发挥作用。现在不是时候。”
“什么时候才是时候?等他们把十一亿人都折叠了?”
电话那头沉默了很久。
“你保存好证据,“王磊最后说,“等风来。”
何光挂了电话。
他没有等风。
他把文章发到了GitHub上。他创建了一个名为”unfold-truth”的仓库,把所有文件——报道原文、折叠日志、评分算法文档、第三阶段规划、陈默的技术说明——全部公开上传。
他在README里写了这样一段话:
“这座城市正在用算法消灭人。不是杀死他们,而是让他们从世界上消失。他们的名字、他们的面孔、他们的一切痕迹,都被一行代码抹去了。这不是科幻小说。这是正在发生的事实。
“我是一个记者。我的女朋友在3月7日凌晨被折叠。她叫林知遥。她28岁。她喜欢在值班的时候看马尔克斯。
“她不是第一个,也不是最后一个。如果不阻止,到2035年,会有十一亿人被折叠。
“我无法通过媒体发表这篇报道。所以我把它放在这里。
“请你阅读。请你记住。请你告诉更多人。
“真相不应该被折叠。”
仓库上线后的第一天,有三百次访问。第二天,三千次。第三天,何光打开GitHub的时候,发现仓库已经消失了。
页面显示:“该仓库因违反服务条款已被删除。”
同一天下午,何光的手机响了。来电显示是一个陌生号码。
“何光先生,这里是深城算法法务部。我们希望与您进行一次友好的沟通。”
何光挂了电话。
五分钟后,有人敲他的门。
他透过猫眼看了一眼。门外站着两个人,一男一女,穿深色西装,面无表情。
他没有开门。
他拿起手机,给陈默发了最后一条消息:“他们来了。U盘还有一份备份,在我办公桌第二个抽屉里,夹在一本《百年孤独》里。密码是知遥的生日,030715。”
然后他把手机关了。
他打开电脑,把所有文件的第二份备份上传到了五个不同的云盘和一个去中心化的文件存储网络。
他做完这一切的时候,门外的敲门声已经变成了撬门的声音。
何光从书架上拿了一本书。是《百年孤独》。林知遥送他的,扉页上写着:“送给何光,希望我们的孤独不会持续一百年。”
他把U盘夹进了书里。
门被撬开了。
两个人走进来。后面还跟着两个穿制服的人。
“何光先生,“那个女人说,语气平静得像在念菜单,“根据《国家战略技术保护法》第十七条,您因涉嫌泄露国家机密被逮捕。请配合我们的工作。”
何光没有反抗。
他只是把那本《百年孤独》放回了书架。
六
陈默看到何光的消息时,已经是凌晨两点了。
他坐在出租屋的床上,盯着手机屏幕,手指僵硬。
“他们来了。U盘还有一份备份……密码是知遥的生日。”
他把消息截了图,然后删掉了聊天记录。
然后他躺在床上,看着天花板。
天花板上有一道裂缝,从灯座的位置一直延伸到墙角,像一条干涸的河流。他盯着那道裂缝看了很久,想起了一个问题:
他是什么时候开始知道这一切的?
不是星期二。不是看到第十七层折叠的那个早晨。比那更早。
他知道。他一直都知道。
他写了三年的代码。每一行代码都在告诉他,系统在做什么。他不是”不愿意知道”,他是选择不知道。他把自己的认知折叠了,就像系统折叠那些”低价值”的空间一样。他把良知的那个部分折叠起来,塞进了记忆的地下室,然后在上面建了一层新的认知——“我们只是在优化空间”。
这个认知像一面墙一样,把他和真相隔开了。
何光推倒了那面墙。
现在何光也被折叠了——也许是物理意义上的折叠,也许是别的形式的折叠。无论如何,何光从展开层消失了。
而他的证据——那本《百年孤独》里的U盘——还在何光的办公桌上。
陈默知道他必须去拿。
第二天上午,他请了病假。他没有去公司,而是去了《财经》杂志的办公地点。那是一栋位于朝阳门的写字楼,何光的工位在六楼角落,一张不大的桌子,上面堆满了文件和书籍。
陈默找到了那本《百年孤独》。书脊有些磨损,扉页上有林知遥的字迹。
他把U盘取了出来。
他没有离开。
他坐在何光的椅子上,把U盘插进了何光的电脑。电脑没有设密码——何光是个不怎么在意安全的人。陈默打开了U盘里的文件,确认所有数据完好无损。
然后他做了一个决定。
他要写一个逆向映射函数。
这个函数可以打开折叠层和展开层之间的通道。它可以将被折叠的人映射回展开层。它可以逆转——至少部分逆转——系统造成的一切。
但有一个问题。
逆向映射函数需要系统管理员权限才能运行。而他没有权限。
他有的是代码能力。
陈默在何光的电脑上打开了编辑器,开始写代码。他写得很快——他在脑子里构思这个函数已经很久了,从他和何光第一次见面那天起。他需要的只是坐下来,把思路变成代码。
四个小时后,逆向映射函数完成了。
它是一个独立的程序,不需要集成到城市折叠系统中。只要能在一台连接了系统数据库的终端上运行它,它就能利用系统自身的拓扑映射引擎,生成一个”逆向映射通道”。
但问题是,系统的数据库在公司的内网里。陈默有员工权限,可以访问部分数据库,但不足以运行逆向映射。他需要管理员权限。
他思考了很久。
然后他想到了一个办法。
他不需要管理员权限。他只需要在系统下次执行折叠的时候,把逆向映射函数注入到折叠操作的执行流程中。折叠操作本身就有管理员权限——它是系统的核心功能,每次执行时都会调用最高权限的API。如果他能把逆向映射函数伪装成一个普通的折叠操作,系统就会用最高权限去执行它。
这是一个漏洞。一个他故意留下——或者说,故意不去修复——的漏洞。
他一直以为自己是一个”靠谱但无趣”的工程师。现在他知道了,“无趣”只是表面。他的内心深处,一直住着一个叛逆者。那个叛逆者在三年前就预见到了这一天。
他把逆向映射函数打包成一个标准的折叠操作模块,命名为”unfold_v1.0”,放在了U盘里。
然后他离开了何光的办公桌,走进了朝阳门的地铁站。
地铁上人很多。他挤在人群里,一只手紧紧攥着口袋里的U盘。车厢里很吵,有人在打电话,有人在刷抖音,有人在睡觉。地铁电视上正播放着一条新闻:“深城算法宣布完成B+轮融资,估值突破千亿。公司CEO周衡表示,城市折叠技术将在年内推广至全国十五个主要城市。”
陈默低下了头。
他知道自己接下来要做的事可能是他这辈子做的最后一件事。
但他不怕。
何光说的对——有些事情比害怕重要。
七
三月二十九号,星期六。
陈默在深城算法的办公室里加班。
周末加班是他的常态,没有人觉得奇怪。他的工位在十二楼,就是那面落地窗旁边。窗外的望京SOHO灯火通明,T2的玻璃幕墙上倒映着周围的灯光,像一块巨大的镜子。
他打开了自己的工作站,连上了公司的内网。
今天是系统执行下一轮折叠的日子。折叠日志里的计划是:朝阳区望京东路沿线,0.3平方公里,预计影响人口800人。折叠时间凌晨三点。
他还有六个小时。
他把U盘插进工作站,开始部署逆向映射函数。
代码运行得很顺利。他把函数注入了折叠操作的执行队列,伪装成第47号折叠任务——一个普通的、系统自动生成的折叠指令。没有人会注意到它,因为系统每天处理上千条类似的指令。
他设置好了参数。逆向映射的目标是”全部已折叠空间”——也就是说,当函数运行的时候,它会尝试把所有被折叠的空间映射回展开层。所有的建筑、所有的街道、所有的人。
十四万人。
但函数运行有一个前提——系统必须先执行一次正常的折叠操作。因为函数是寄生在折叠操作的权限之上的。折叠操作启动,系统调用最高权限API,函数借机获取权限,然后执行逆向映射。
也就是说——在他拯救十四万人之前,还会有另外八百人被折叠。
陈默坐在椅子上,盯着屏幕上的倒计时。
03:00:00。
02:59:59。
02:59:58。
他忽然想起了那句话——“帕累托改进:在不使任何人境况变坏的情况下,至少使一个人的境况变好。”
这不是帕累托改进。在他的计划中,八百人会先被折叠,然后十四万人(包括这八百人)会被映射回来。从结果来看,所有人的境况都变好了。但从过程来看,那八百人会经历一段——哪怕只是很短的一段——折叠层的噩梦。
他在利用那八百人的痛苦作为跳板。
和系统有什么区别?
他闭上眼睛。
02:45:00。
时间不等人。他做了一个决定。
他修改了函数的参数。不再等待正常的折叠操作。他手动触发了一次折叠操作——折叠对象是他自己所在的空间。
深城算法十二楼,0.001平方公里,影响人口:1。
他自己。
折叠操作会在三分钟后启动。他有足够的时间完成逆向映射函数的部署。
03:00:00。
系统开始执行折叠操作。
陈默感觉到了一种奇怪的感觉。不是疼痛,不是恐惧,而是一种失重感——像是站在一艘正在升空的火箭里,身体被某种不可见的力量轻轻向上托起。
灯灭了。又亮了。
但灯的颜色变了。
他环顾四周。工位还在,电脑还在,落地窗还在。但窗外的景色变了——望京SOHO的灯光变得柔和了,不是霓虹灯那种刺目的白,而是暖黄的钨丝灯光。街道上没有汽车,只有行人。空气里有桂花香。
他到折叠层了。
他低头看电脑屏幕。系统界面还在——他现在是在折叠层的”映射”中访问系统的数据库,但权限仍然是展开层的管理员权限。
折叠操作的权限还没有释放。
他按下了回车键。
逆向映射函数开始运行。
屏幕上滚动着密密麻麻的日志。每一行都是一个被折叠的空间正在被映射回来:
“建国路89号,地下二层停车场,反向映射完成。”
“望京SOHO T3,17层,反向映射完成。”
“学院路38号院,4号楼2单元,反向映射完成。”
“南三环中路12号,老年活动中心,反向映射完成。”
……
日志越滚越快。成千上万条记录在屏幕上飞速划过。每一个空间名称后面都跟着一个数字——“影响人口”。那些数字加起来,就是十四万。
陈默靠在椅背上,看着屏幕。
窗外的景色正在发生变化。折叠层的暖黄灯光在一点一点地消退,取而代之的是展开层的霓虹白光。街道上的行人开始变得快节奏,汽车的声音重新出现。空气里的桂花香渐渐淡了。
折叠层正在和展开层合并。
他听到了声音。不是机器的声音,而是人的声音——惊呼声、叫喊声、笑声、哭声。那些声音从四面八方涌来,像是被关闭了很久的收音机突然被打开。
他听到了一个声音——
“何光?何光!”
那是一个女人的声音。年轻、急切、带着哭腔。
陈默站起来,走到窗边。
街道上,一个女人正在奔跑。她穿着物业管理的深蓝色制服,手里拿着一本书。她一边跑一边喊着一个名字。
“何光——!”
陈默看不见她在往哪里跑。但他知道。
她在往展开层跑。
折叠层和展开层之间的屏障正在消失。两个世界正在融为一体。那些被折叠的街道、建筑、人,正在像潮水一样涌回展开层。城市在展开。像一本书被打开,每一页都回到了它该在的位置。
陈默看着窗外。
望京SOHO T3正在重新出现。它从T2和T4之间的空地上”长”了出来——不是建造,而是展开。像一张折叠的纸被摊平,每一层楼、每一扇窗户、每一个房间都回到了原位。
第十七层也回来了。那个总是加班到深夜的格子间,灯又亮了。
陈默笑了。
他不知道接下来会发生什么。公司会发现他做了什么,系统会被修复,他会被逮捕。也许他会被折叠——真正的折叠,不可逆的那种。
但那不重要。
重要的是,折叠层里的人回来了。十四万人回到了这个世界。他们的名字重新出现在户籍系统里,他们的手机重新有了信号,他们的社交媒体账号从”该用户不存在”变回了正常的状态。
何光会找到林知遥。林知遥会找到何光。
他们会继续看马尔克斯。他们会继续讨论结婚。他们会在一个没有被折叠的城市里,过他们的生活。
窗外的城市正在重建。不是建筑意义上的重建,而是存在意义上的。那些曾经被抹去的痕迹正在恢复——街道上的裂缝、墙壁上的涂鸦、阳台上的花盆、停车场入口的电动栏杆。
陈默转身走回工位。电脑屏幕上的日志已经停止了滚动。最后一行写着:
“反向映射完成。总计恢复空间:2847个。总计恢复人口:142,673人。系统运行时间:4分17秒。”
他关掉了电脑。
他拿起桌上那张便签纸,写了一行字:
“折叠不是终点。展开才是。”
他把便签贴在显示器上,然后走出了办公室。
电梯间里很安静。他按下了一楼的按钮。
电梯开始下降。
12,11,10,9——
每一层楼的数字在显示屏上跳动。陈默忽然想到,昨天这栋楼只有二十三层,而现在它有二十八层。那多出来的五层,是从折叠层回来的。
电梯到了一楼。
门开了。
外面是凌晨三点的北京。空气很冷,但很干净。天还没亮,东方的天际有一条极细的橙红色光线,像一道正在缓缓张开的裂缝。
陈默走了出去。
他深吸了一口气。
空气里有桂花的味道。
三月的北京不可能有桂花。
但这是三月的北京。一个被展开过的北京。一个十四万人回来了的北京。
在这个北京里,一切皆有可能。
八
后来的事情是这样的。
陈默在走出大楼后被逮捕了。罪名是”破坏国家战略技术系统”。他被判处有期徒刑十二年。
何光被释放了。逮捕他的那些人——他至今不知道他们具体属于哪个部门——在逆向映射完成后就离开了。他们对何光说了一句话:“你做的事情我们都知道了。我们不会追究——这一次。”
林知遥回到了展开层。她在建国路89号的停车场重新上班了。停车场的入口重新出现了,电动栏杆重新开始工作,那辆老桑塔纳回到了它原来的位置上,落满了灰尘。
何光去接她的那天早上,她正在值班亭里看书。还是《百年孤独》。她翻到了最后一页。
“他再次跳读,寻羊冒险记已经翻到了最后一页。他发现自己已经读完了这本书。他发现自己已经读完了所有的书。他发现所有的书都已经被读完。他发现所有的书都是同一本书。”
她合上书,抬起头。
何光站在停车场入口,手里拿着一束花。不是什么名贵的花,是路边花店买的那种,用牛皮纸随便包了一下,几朵向日葵和几枝满天星。
“你怎么来了?“她说。
“我说过明早来接你,“何光说,“虽然迟了二十几天。”
林知遥看着他。她的眼睛红了。
“我给你讲一下里面的情况吧,“她说,“有点魔幻。”
“你先出来。”
“等一下,我把书带上。”
她拿起书,走出值班亭。阳光照在她身上,暖洋洋的。她低头看了一眼书的封面,上面画着一只黄色的蝴蝶。
她忽然想起了折叠层里的桂花香。
那个味道她永远不会忘记。
何光牵起她的手。他们一起走出了停车场。
外面是建国路。早高峰的车流正在缓缓移动,出租车司机在按喇叭,一个外卖骑手从他们身边飞驰而过。路边的早餐摊冒着热气,油条在锅里滋滋作响。
一切都很正常。
正常得让人想哭。
九
陈默入狱后,城市折叠系统被全面暂停。住建部成立了专项调查组,对系统进行了为期六个月的审计。审计报告从未公开,但据内部消息人士透露,报告确认了何光报道中的大部分内容。
深城算法公司在两个月内解散。CEO周衡被控制调查,CTO和首席架构师被限制出境。红杉中国和高瓴资本先后发表声明,称对公司的”违规操作”毫不知情,并承诺配合调查。那只国家发改委旗下的基金悄无声息地注销了。
GitHub上那个”unfold-truth”仓库被恢复了——不是GitHub官方恢复的,而是有人在全球范围内的多个镜像节点上保存了完整的副本。仓库的访问量在一个月内突破了一千万次。
何光的文章终于发表了。不是在《财经》上,而是在一个新成立的独立媒体平台上。文章的标题改成了《展开的人:被算法消灭又重生的十四万生命》。阅读量在发布当天就超过了三百万。
陈默在监狱里读到了这篇文章。是律师带给他的,打印在A4纸上。
他把文章从头读到尾,然后把那几页纸整整齐齐地叠好,放在枕头下面。
律师问他:“你后悔吗?”
陈默想了一会儿。
“后悔什么?”
“你本来可以什么都不做。你可以继续写代码,继续拿高薪,继续假装不知道。”
“那样的话,“陈默说,“我就像那栋楼的第十七层一样——存在着,但被折叠了。我不想被折叠。”
律师没有再说话。
陈默闭上眼睛。
监狱的床很硬,枕头很薄,被子有股消毒水的味道。但他睡得很安稳。
他梦见了一座城市。
那座城市没有被折叠过。每一栋楼都完整地矗立着,每一层都在,每一扇窗户后面都有灯光。街道上人来人往,没有人被消失,没有人被转移,没有人被从记录中抹去。
城市的上空没有天花板。
天空很高,高得看不见尽头。
尾声
2031年6月,北京市政府对被折叠居民进行了全面安置和赔偿。林知遥获得了十二万元的赔偿金和一份新的物业管理合同。何光凭借那篇报道获得了当年的”新闻自由奖”。他们在那年秋天结了婚。
婚礼很简单。在建国路89号的停车场里办的——林知遥坚持要在那里办。她用暖水袋和《百年孤独》装饰了值班亭,在电动栏杆上挂了气球。何光穿着借来的西装,在停车场入口等她。
来的人不多。但有一个出乎意料的人来了。
是那个蹲在折叠层街边听京剧的老头。
他不知道怎么来到了展开层。他说他也不清楚,也许逆向映射把他一起带回来了。他说他原来住在丰台区南三环,被折叠之前是一个退休的数学老师。他叫赵守信。
赵守信带了一台老式收音机。他在婚礼上放了一段京剧——不是《霸王别姬》,也不是《贵妃醉酒》,而是《四郎探母》。
“这个好,“赵守信说,“讲的是回家。”
音乐在停车场里回荡。阳光从地下入口的斜坡照进来,在水泥地面上画出一片不规则的光斑。
林知遥站在光斑里。
她把手里的《百年孤独》举起来,对着阳光。书页被风吹开,哗啦啦地响。
“你看,“她对何光说,“马孔多被飓风抹去了。但我们的城市没有。”
何光看着她。
“因为没有飓风可以抹掉一座城市,“他说,“能抹掉它的只有人。能展开它的,也是人。”
林知遥笑了。
她把书合上,塞进包里。
“走吧,“她说,“我们去吃牛肉面。折叠层有一家特别好吃——”
她忽然顿住了。
折叠层已经不在了。那家牛肉面馆——如果它还存在的话——现在已经回到了展开层。但她不知道它在哪里。
“没事,“何光说,“我们慢慢找。”
他们牵着手,走出了停车场。
外面是北京。
没有被折叠的北京。
阳光灿烂,车水马龙,空气里有桂花的味道——也许是桂花,也许只是早餐摊的葱花香。
但那不重要。
重要的是,他们在这里。
所有人都在。
(完)