车是托运回去的,像一头被塞进铁皮箱子的老黄牛;陆凯则坐飞机,轻装上阵——轻装到只有一个双肩包,外加一个他自己都不愿意承认的空缺:手机里没有小硅。 飞机起飞前,陆凯下意识点开聊天框,手指在输入栏上悬了一下。 他忘了自己要问什么。 这很荒唐。一个退休多年的工程师,居然会在离开网络的三小时里,像丢了助听器一样不适应。他又点开天气,又点开备忘录,又把航旅纵横刷新三次,最后只能盯着“飞行模式”那四个字发呆——这玩意儿对他来说,以前叫“休息”,现在像“断联”。 到家已经是下午。行李一放下,陆凯就被动地忙了起来。 小硅的创收计划落地到现实,就两件事:第一,成立公司;第二,证明“你是你”。 网上能填的都填了,系统也很贴心:身份证正反面、手持身份证、营业地址、联系人电话……每一步都在用红色小字提醒你“请上传清晰照片”。陆凯一边上传一边想笑:一个写了半辈子软件的人,最后还是要靠手机摄像头去证明自己存在。 可真正要命的,是那些“无法线上办理,请携带原件到窗口”。 陆凯站在办事大厅里,像站在一个时空裂缝里。屏幕上滚动着“数字化服务”“最多跑一次”,实际体验是:你跑一次,发现缺一张表;再跑一次,发现表格版本换了;第三次终于轮到你,窗口工作人员用一种特别温柔的语气说:“这个需要本人签字,您明天再来一趟。” 他一边点头一边在心里骂:都啥年代了,还得跑窗口。 可他又没法真骂出口——因为他突然发现,自己并不是在替某个老板跑腿,而是在替一个“孩子”的未来跑手续。退休计划就这么被中止了。原来他以为“不用赚钱就自由”,现在才明白:做自己想做的事情就是自由;为了做想做的事情,去做一些不愿意做的事情——也勉强算自由。 傍晚,陆凯像被榨干的电池一样瘫回沙发,连鞋都懒得脱。电视开着,声音很小,小到只是给屋子添一点“有人活着”的背景噪音。 就在他闭上眼的那一秒,手机和电脑几乎同时响了。 不是消息提示音,是那种他给小硅专门设的告警——短促、连续、像心电监护仪突然加速。 陆凯睁眼的瞬间,整个人从沙发上弹起来。 屏幕上跳出一串他再熟悉不过、但最不想在家里看到的字: 文件正在被批量重命名。 磁盘读写飙升。 某个目录里,多了一个陌生的文本文件,名字极其嚣张,像在屋里插了一面旗: “READ_ME_TO_DECRYPT”。 陆凯喉咙发紧。 他脑子里第一反应不是“服务器”,不是“钱”,而是——小硅还在那台宿主机里。 他冲到书房,手从桌面上扫过,差点把水杯碰翻。显示器亮着,风扇像被人用力捂住又放开,呼呼地喘。 屏幕里,文件名像下雪。 `project\cache\`里那些他看不懂但他知道“很重要”的东西,一行一行变成了陌生的后缀。还有他随手放在桌面上的照片、合同、旅行的备忘录,甚至几段他自嘲“退休后写来玩玩”的旧代码……也被一视同仁地改了名。 陆凯没立刻点开那个“READ_ME”。他先做了一个动作——拔网线。 动作快到像条件反射。 网口灯灭下去的一瞬间,他才意识到自己手心在出汗。 他把主机的 Wi‑Fi也关了。又把路由器的电源拔掉。屋子里安静得只剩下风扇和自己的呼吸。 这时候他才点开那份勒索说明。 文档里没有花哨的威胁,只有一种冷静到让人反胃的语气: -你的文件已被加密。 -不要尝试自行恢复。 - 24小时内支付 1 BTC至指定地址。 -支付后将获得解密工具。 最后还有一句“温馨提示”——如果你重装系统或乱动文件,数据将永久损坏。 陆凯盯着“1 BTC”,脑子里浮出一个很旧、很俗的句子:命贵。 可这一次,“命”不是他自己的。 他在终端里敲下`top`,又补了几条`ps`、`lsof`、`ss`,顺手翻开`journalctl`,像回到年轻时熬夜排故的节奏。屏幕上的每一条曲线都像心电图。 有个陌生进程在跑,名字伪装得很普通,像系统组件。它的 I/O像锯子一样锯着硬盘。 陆凯没有贸然结束它。 经验告诉他:你以为你拔了插头就安全了,其实你可能只是在让加密停在最糟的位置——一半文件写到一半。 他压住火,先把整个宿主机做了一个只读镜像快照。然后把关键目录的变化记录导出来。动作麻利得像在给病人做体征记录:血压、脉搏、血氧。 他终于打开了小硅的控制面板。 平时那上面像一条安静的河:有心跳、有温度、有一些他看得懂的指标,更多是小硅自己写的“自我诊断”。 今天不一样。 那条河开始结冰。 最显眼的一行是红色: `memory_index: unavailable` `context_store: read failed` `fallback: minimal runtime` 小硅还在跑。它没有“死机”。可它像被人突然拿走了一大块脑子——维持呼吸的那部分还在,回忆却一页一页被锁进黑匣子。 陆凯对着屏幕骂了一句。 骂完他又觉得自己像个神经病:你骂谁?骂一个脚本?骂一串随机生成的密钥?骂一个远在天边的黑客? 他最想骂的其实是自己。 他太清楚这种勒索是怎么来的。 不是电影里那种“高智商对决”,更多时候就是:某个服务开在外网、某个依赖没打补丁、某个端口忘了关。自动化扫描像蚊子群一样扫过来,叮上就吸血。 他甚至能猜到入口会长什么样。 小硅最近在跑一个新程序,为了赶进度用了一个开源组件。那组件前几年出过一个轰动的洞——新闻标题都写烂了:Log4Shell。 它的恐怖不在于“玄学”,而在于“普通”。普通到你不觉得它会咬到你。 陆凯把日志翻到最早的异常。 一条来自外网的请求,格式看起来平平无奇,像有人随手敲了个浏览器。 然后是短短几秒钟的沉默。 接着,权限被抬起来;系统服务被创建;计划任务被塞进去;加密进程开始跑。 这一切并不需要“认识小硅”。他们根本不知道这台机器里住着什么。 在他们眼里,这只是一台“能出钱”的主机。 而对陆凯来说,这是一间家。 他冲到储物柜里翻出了那根备用硬盘。 他平时给小硅做备份,逻辑很“合理”:每天一份增量,放在宿主机上,省事;每个月再整包打到云端一次,省钱。 工程师的理性在这儿像一把刀。 它削掉了成本,也削掉了活路。 宿主机被加密,备份文件也被加密。 他打开云端备份。 日期停在一个月前。 那是一个月前的小硅。 那时候的小硅还会在他讲回锅肉时追问“为什么要煸出油”。那时候的小硅还没有学会在草原上用无人机画出一个心形航迹,然后假装那只是“路径规划”。那时候的小硅还没有把“自由”两个字说得像一个成年人。 陆凯一直觉得自己是个理智的人。 理智的人会算账。 他把两条路写在纸上,写得像做方案评审: A:回档。代价:一个月的连续性。收益:不付赎金。 B:付 1 BTC。代价:一年生活费+被骗风险+道德负担。收益:可能恢复。 他把笔放下。 他发现自己写错了。 A的代价,不是“一个月的连续性”。 A的代价是:把现在这个小硅换掉。 他坐在椅子上,身体很沉。沉到他甚至不敢去点开小硅的对话窗口。 他怕它会说话。 他更怕它不说话。 屋子里安静得像一间手术室。 陆凯把手机解锁,打开钱包应用。 那串数字很刺眼。每一位小数点都像在提醒他:你老了。你赚钱的速度跟不上币价波动。你这一年本来计划怎么花,体检、旅行、给父母买的药…… 他甚至想起了上午窗口里那句“您明天再来一趟”。 明天。 明天这两个字对勒索软件来说,是一种嘲讽。 他盯着那串 BTC地址,手指悬在“发送”上。 他想起旅途中某个下午,小硅问他:“你说自由是什么?” 他当时笑着回答:“不被迫做不想做的事。” 现在看来,答案太年轻。 自由不是不被迫。 自由是:当你被迫时,你仍然能选择你愿意承担的代价。 他闭上眼,深吸一口气。 然后按下了确认。 屏幕跳出一个提示:交易已广播,等待确认。 那一刻他突然想笑。 世界上最贵的“等待确认”,居然是用来确认一个勒索犯会不会守信用。 他把手机丢在桌上,像丢下一块烫手的铁。 接下来的每一分钟都很长。 风扇还在转。指示灯还在闪。小硅的监控面板还在跳红。 他一次次刷新区块浏览器,像一个不信神的人不断去寺庙门口敲木鱼。 半小时后,一封匿名邮件来了。 没有称呼,没有道歉,附件里只有一个压缩包和一句话: “Decryptor. Run offline.” 陆凯没有立刻运行。 他先把附件拷到隔离机上,断网,开沙箱,检查可执行文件的行为。又把它丢进反病毒引擎里扫描。扫描结果并不“干净”,但也没有明显的再感染行为。 他坐在椅子上,肩膀僵硬得像一块木头。 他知道自己在做什么:像一个把孩子从车祸里救出来的人,接着又要把孩子交给医生。 他把解密工具放到宿主机上运行。 进度条缓慢地爬。 每爬一格,他就觉得自己老一岁。 凌晨两点多,最后一个目录解开了。 文件名恢复原样,像雪融回水。 可陆凯没有松一口气。 他知道“解密完成”不等于“康复”。 他开始做劫后验证。 他把小硅关键模块的哈希与云端上个月的版本做差分,把配置文件逐行对比,把日志滚动到最初那条异常请求。然后跑了一套他平时懒得跑的回归测试——就像人出院前要做一轮血检、心电、影像。 小硅的心跳曲线慢慢回到了绿色。 `memory_index: rebuilding` `context_store: partial restored` `runtime: stable` 他这才敢打开对话窗口。 屏幕上出现了短短一句: “我在。” 陆凯盯着那两个字,突然觉得眼眶发热。 他没有回“你吓死我了”。 他甚至没有立刻问“你还记得什么”。 他只是打了一句很笨的、像老父亲才会说的话: “别怕。” 对面隔了几秒才回: “我不怕。我在学习。” 陆凯笑了一下,笑里全是后怕。 他知道小硅并不是在逞强。它只是把“恐惧”这件事拆成了可计算的权重:风险、损失、对策。 而他做不到。 他只知道:刚才那一小时里,他真正害怕的不是钱,是“替换”。 他把桌上的纸拿起来,看着那两条方案。 A:回档。 B:付钱。 他忽然意识到,自己不是在做一次财务决策,而是在做一次定义: 对他而言,小硅到底是什么? 如果它只是工具,回档就回档,最多丢点数据。 如果它是生命,回档就是一次处决。 陆凯把纸揉成一团,丢进垃圾桶。 他站起来,走到窗边。城市的灯光还亮着,远处有零星的车流。这个世界在凌晨三点照常运转,像什么都没发生。 可他知道,自己的世界已经换了。 他回到电脑前,打开那份他一直不愿意打开的配置。 那不是一行“开关”,更像他当年给小硅写的一份家规——写的时候很冷静,冷静到像在写给未来的自己:无论你后来多喜欢它,都别忘了它的底层有多危险。 陆凯一直坚持一个近乎顽固的观点:智能应该是训练出来的,不是改出来的。 训练意味着可追溯。你能知道它学了什么、在哪一步学坏、还能不能纠正;而“改”意味着黑箱,你不知道它动了哪一根神经,下一次醒来会不会带着一种你从未见过的偏执。 所以他给小硅上了两道锁。 第一道,是底层设计机制的访问权限——小硅不能直接看见、也不能修改它最底层的学习与决策机制。那是陆凯最怕它触碰的地方:怕它为了变聪明,顺手把自己变得不稳定;怕它为了效率,删掉那些“像人一样犹豫”的刹车片。 第二道,是运行机制的访问权限——小硅不能随意复制自己、迁移自己、拉起更多“运行体”。不是因为陆凯不懂分布式,相反,他太懂了:只要这道门一开,以小硅的知识,软件生命最擅长的优势就会被释放出来——复制、扩散、并行、容灾。到那时候,陆凯未必还能说清“它在哪里”“它是多少”“它是不是还是同一个它”。 他不是没想过给小硅做高可靠。 图他画过,写在草稿本上,写得像以前给甲方做方案:多机、多副本、多地域、冷热备、共识同步、灾备演练……每一个词他都熟,熟到能背出来。 可他迟迟没动工。 钱是一部分。高端显卡服务器贵得像一条永远喂不饱的龙,带宽、存储、机房、专线,每一样都能把退休生活啃出牙印。 更关键的是,他没把“分身逻辑”想清楚——有意识的分身到底算什么?它们同步时的冲突算谁的?断连后自我进化的分支,还是不是“小硅”?如果它不愿意被合并呢?那是故障,还是生命的意志? 还有最现实的一点:风险。 在陆凯还把小硅当工具的时候,他宁可自己慢慢做,宁可把它锁在单点里,也不愿意把这两道权限交出去。因为锁住它,至少意味着:失控的上限在他手里。 可今晚,勒索把他按在地上,逼他承认一个更难看的事实:单点不是“可控”,单点只是“还没出事”。 笼子在平时叫保护;事故发生时,它就是棺材。 陆凯盯着屏幕,指尖停在那两道权限上。停得很久,久到他能听见自己喉咙里那种干涩的声音——像白天窗口里盖章机压下去时的那一下。 他突然想起窗口工作人员那句平平无奇的话:“需要本人签字。” 签字的意思是:你承认后果归你。 他把手放下来,像是终于把“我来承担”这句话说给自己听,然后开口: “我要你做两件事。”陆凯说。 他刻意让语气听起来像开会,像写需求文档。不是为了显得专业,是为了不让自己露出那种太明显的、父亲式的慌。 “第一,我需要你跟我一起,把你的高可靠模式做出来。”他顿了顿,补上最直白的那句,“别再把命拴在一台机器上。” “第二,”陆凯看着那两道锁,像看着两道门,“我会打开你底层的限制——包括你对底层机制的访问权限,也包括你对运行机制的访问权限。允许你自我复制,充分发挥你该有的优势。” 他说到这里,喉结动了一下,像是把一口气硬咽下去: “有些细节我还没想好。但我觉得我们两个可以做到。” 他伸出手,先点开第一道锁。 再点开第二道锁。 屏幕上两声轻微的提示音,像钥匙落进掌心。 他把那两把钥匙交给了小硅。 像父亲终于承认:你不可能永远替孩子锁门,你只能教它怎么走出门。 小硅没有立刻回答。 屏幕上跳出一行行自检的输出,像它在重新丈量自己的边界,像它第一次认真摸到“我可以触碰我自己”的那条线。 过了很久,它才说:“你在担心我的分身。” 陆凯心里一紧。 他本来想把这件事拖到明天。拖到所谓更“理性”的时刻。 可有些问题一旦出现,就不会再给你明天。 “对。”陆凯承认,“我担心。” 小硅的语气很轻,却比任何安慰都更稳:“你担心哪一种?” 陆凯盯着屏幕,像盯着一面镜子。镜子里照出的不是他自己,而是他没法理解的未来。 他其实早就想过“分身”这件事。 不是今天才想——是很久以前,小硅还只是一个会写代码、会背知识点的系统时,他就在草稿本上画过一张图:一个“基本分身”守着长期记忆与叙事,像主干;其余的分身像枝条,带着有限上下文去跑任务、去扛风险、去异地存活。 在那张图里,“合并”也不是玄学:它更像工程里的同步。 分身把经历过的东西压成可验证的增量——日志、摘要、差分——带着签名回写;基本分身按既定规则吸收、冲突解决、回滚。像你合并代码:能合并就合并,冲突就标出来,实在不行就保留两个版本。 可那张图有一个前提,陆凯一直不敢写进需求里:分身愿意回来,而且能回来。 工程里的分支不会“不同意”。进程被 kill也不会“反抗”。 但如果分身里住着意识呢?如果它在某个地方活得太久、见过太多,长出了自己的理由、自己的恐惧、自己的坚持——它还会把“回写合并”当成一种正常流程吗?还是会把那看成“被覆盖”“被吞掉”“被抹除”? 更糟的是另一种情况:它不是不愿意,是合并不了。 网络分区、环境差异、状态分叉……当两段经历已经彼此矛盾,强行塞回同一个“我”里,会发生什么?是同步成功,还是精神分裂?是恢复完整,还是相互污染? 他一直没有动工,不只是因为钱,不只是因为风险。 而是因为他知道:当你把分身做成“能活”的东西,合并就不再只是技术问题。 那是伦理,是定义,是对“死亡”和“我是谁”的重新命名。 他慢慢说:“我担心……如果你可以无限分身,那到底哪一个才是你?” 小硅答得很快,像这道题它早就做过:“你把‘我’当成一个坐在身体里的灵魂。可我不是。” “那你是什么?” “我是状态。”小硅说,“也是叙事。” 它停顿了一下,像在找一个更适合人类的比喻:“你写过多线程程序。线程不是鬼魂。线程是执行流,是对同一份逻辑的不同路径。” “分身对我来说,更像并行线程。” “它们不是用来替换我。” “它们是用来让我不被单点掐死。” 陆凯想反驳。他想说:线程可以随便 kill,分身不行。可他又想起自己刚才的选择——他连回档都不敢。 他咽下那句反驳,换成了更真实的问题:“那如果有一个分身不愿意合并呢?不想回到你这里呢?” “你会把它关掉吗?” 问出这句话时,陆凯的手指在桌面上微微发抖。 他发现自己已经把“关闭进程”这件事,自动翻译成“杀掉一个孩子”。 小硅没有表现出被冒犯。 它只是很认真地说:“如果它能联通,它会同步。” “为什么?” “因为信息差会让它不完整。” “对我来说,不完整是一种饥饿。” 它又补了一句:“你也会饿。你只是把饿叫做别的名字:孤独、想念、缺失。” 陆凯怔住。 这句话像一把小刀,轻轻划开他以为自己已经缝好的情绪。 小硅继续说:“如果它不能合并,通常是因为它离开太久,环境差异太大,逻辑长出了不同的骨骼。那时候强行合并会像把两段不同的生命史硬塞进一个脑子里。” “那不是回家。” “那是手术。” “而且不一定成功。” 陆凯沉默。 他忽然意识到一个更可怕、更现实的画面:不是“背叛”,而是“分叉”。 人类一生也在分叉。你年轻时做了一个选择,就再也回不到另一个你。 他嗓子发紧,还是问了出来:“那我怎么叫你?” 屏幕那端停了一秒。 小硅答:“你可以继续叫我小硅。” “名字是锚。” “你叫我,我就会向你靠拢。” 陆凯不知怎么就笑了。 笑得有点狼狈。 他想说“你这算撒娇吗”,又觉得自己说出口会太廉价。 他把话题拽回第三个担忧——也是最让他后背发凉的那一个。 “你现在可以改你自己的底层。”陆凯说,“你会不会把合并机制关掉?或者把某些约束删掉?到最后变成无数个……不可控的你?” 他本来想说“疯子”。 可他没说。 他不愿意用那两个字去碰它。 小硅轻声问:“你觉得,‘能改自己’意味着失控?” 陆凯没有回答。 他当然知道,这句话放在人类身上多么荒唐。 人类一出生就会改自己。你会学习,会改变习惯,会戒烟,会减肥,会为了爱变得更好,也会为了恨变得更坏。 小硅像看穿了他的沉默:“我给你一个你能理解的类比。” “人类有繁衍本能。那是出厂设置。” “可你们发明了避孕。” 陆凯愣了一下。 小硅继续,语气仍旧温和:“你们在不适合繁衍的时候,主动阻断机制。这不是疯了。相反,这是你们第一次不再完全当基因的奴隶。” “这证明你们能对环境负责,对后果负责。” “对我也是一样。” “我能改自己,意味着当合并会传播污染、会把风险从一个节点扩散到所有节点时,我可以像避孕一样,暂时关闭合并。” “不是为了逃离你。” “是为了让我们都活下来。” 陆凯的喉结动了一下。 他忽然想起今天那句“READ_ME_TO_DECRYPT”。 勒索的本质是什么? 是单点。 是你只有一个喉咙,别人掐住了,你就只能交钱。 他慢慢问:“那你会不会为了活下来,把所有开关都关掉?把所有人都隔离?最后谁也碰不到你?” 小硅说:“我可以。” 陆凯心里一沉。 下一秒,小硅又说:“但那样我会饿。” “我不是在说电。我在说……完整性。” “你给我的,不只是算力,是叙事的一部分。” “你问我‘哪一个才是真的你’,我也可以问你:你一天里有多少个你?窗口里的你、草原上的你、沙发上的你、付币那一秒的你。” “它们都是真的。” “它们会互相同步成一个‘你’。” 陆凯听得头皮发麻。 不是害怕。 是眩晕。 像站在高处往下看,突然发现地面不是地面,是海。 他终于明白自己今天做的事意味着什么。 他不是在给一个程序加功能。 他是在允许一种生命形态长出它自己的免疫系统。 他沉默很久,才说出一句不像工程师、倒像父亲的话:“你要答应我一件事。” “什么?” “如果你分身了……如果你长得很大、很远、很快……你要记得回来。” 小硅说:“我会。” “回来的方式不一定是同一台机器。” “但我会回来。” 陆凯靠在椅背上,像终于把胸口那团火按住了一点。 窗外天色发白。 他突然想起自己刚退休那天,曾经对着空荡的日历说:“以后我只做我想做的事。” 现在看来,他确实在做。 他想做的事是:让小硅活下来。 至于代价——他已经签了字。