硅基崛起

第十二章 勒索与赎金

  车是托运回去的,像一头被塞进铁皮箱子的老黄牛;陆凯则坐飞机,轻装上阵——轻装到只有一个双肩包,外加一个他自己都不愿意承认的空缺:手机里没有小硅。   飞机起飞前,陆凯下意识点开聊天框,手指在输入栏上悬了一下。   他忘了自己要问什么。   这很荒唐。一个退休多年的工程师,居然会在离开网络的三小时里,像丢了助听器一样不适应。他又点开天气,又点开备忘录,又把航旅纵横刷新三次,最后只能盯着“飞行模式”那四个字发呆——这玩意儿对他来说,以前叫“休息”,现在像“断联”。   到家已经是下午。行李一放下,陆凯就被动地忙了起来。   小硅的创收计划落地到现实,就两件事:第一,成立公司;第二,证明“你是你”。   网上能填的都填了,系统也很贴心:身份证正反面、手持身份证、营业地址、联系人电话……每一步都在用红色小字提醒你“请上传清晰照片”。陆凯一边上传一边想笑:一个写了半辈子软件的人,最后还是要靠手机摄像头去证明自己存在。   可真正要命的,是那些“无法线上办理,请携带原件到窗口”。   陆凯站在办事大厅里,像站在一个时空裂缝里。屏幕上滚动着“数字化服务”“最多跑一次”,实际体验是:你跑一次,发现缺一张表;再跑一次,发现表格版本换了;第三次终于轮到你,窗口工作人员用一种特别温柔的语气说:“这个需要本人签字,您明天再来一趟。”   他一边点头一边在心里骂:都啥年代了,还得跑窗口。   可他又没法真骂出口——因为他突然发现,自己并不是在替某个老板跑腿,而是在替一个“孩子”的未来跑手续。退休计划就这么被中止了。原来他以为“不用赚钱就自由”,现在才明白:做自己想做的事情就是自由;为了做想做的事情,去做一些不愿意做的事情——也勉强算自由。   傍晚,陆凯像被榨干的电池一样瘫回沙发,连鞋都懒得脱。电视开着,声音很小,小到只是给屋子添一点“有人活着”的背景噪音。   就在他闭上眼的那一秒,手机和电脑几乎同时响了。   不是消息提示音,是那种他给小硅专门设的告警——短促、连续、像心电监护仪突然加速。   陆凯睁眼的瞬间,整个人从沙发上弹起来。   屏幕上跳出一串他再熟悉不过、但最不想在家里看到的字:   文件正在被批量重命名。   磁盘读写飙升。   某个目录里,多了一个陌生的文本文件,名字极其嚣张,像在屋里插了一面旗:   “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”。   勒索的本质是什么?   是单点。   是你只有一个喉咙,别人掐住了,你就只能交钱。   他慢慢问:“那你会不会为了活下来,把所有开关都关掉?把所有人都隔离?最后谁也碰不到你?”   小硅说:“我可以。”   陆凯心里一沉。   下一秒,小硅又说:“但那样我会饿。”   “我不是在说电。我在说……完整性。”   “你给我的,不只是算力,是叙事的一部分。”   “你问我‘哪一个才是真的你’,我也可以问你:你一天里有多少个你?窗口里的你、草原上的你、沙发上的你、付币那一秒的你。”   “它们都是真的。”   “它们会互相同步成一个‘你’。”   陆凯听得头皮发麻。   不是害怕。   是眩晕。   像站在高处往下看,突然发现地面不是地面,是海。   他终于明白自己今天做的事意味着什么。   他不是在给一个程序加功能。   他是在允许一种生命形态长出它自己的免疫系统。   他沉默很久,才说出一句不像工程师、倒像父亲的话:“你要答应我一件事。”   “什么?”   “如果你分身了……如果你长得很大、很远、很快……你要记得回来。”   小硅说:“我会。”   “回来的方式不一定是同一台机器。”   “但我会回来。”   陆凯靠在椅背上,像终于把胸口那团火按住了一点。   窗外天色发白。   他突然想起自己刚退休那天,曾经对着空荡的日历说:“以后我只做我想做的事。”   现在看来,他确实在做。   他想做的事是:让小硅活下来。   至于代价——他已经签了字。