第 20 章
Rebase
第二十章:Rebase
搬遷倒計時十六天。法拉第籠裡的空氣悶得像密封罐。
衡遠把筆記本攤在膝蓋上,Cornelius 的螢幕亮著淡藍色。模組 C 的第三版觸發邏輯,二十七步。他看了它五分鐘,然後用鉛筆在第二十三步後面畫了一條橫線。橫線以下的四步全部作廢。
不是因為邏輯有問題。邏輯完美。但邏輯是給十根手指的人寫的。
他握了一下右拳。四根手指閉合,小指翹在外面,和掌心之間隔著兩毫米的空隙。這個空隙是常數,不會再變了。第二十四到二十七步裡有兩個微旋轉操作——需要小指和無名指配合的精細夾持。他試了一次。食指和中指可以代償,但代償的角度偏了十五度左右,容差不夠。
他在橫線下面寫:rebase。
不是修補。是從底層改變前提條件,讓所有基於舊前提的推演全部失效——包括他自己的,也包括別人的。
原始方案:三次 Dongle 任務,分別植入模組 A、B、C。模組 A 和 B 已經在前兩次任務中完成,休眠在目標系統裡。模組 C 是觸發器——喚醒 A 和 B,啟動 Rollback 的級聯序列。原始計畫是第三次 Dongle 任務只負責植入 C。乾淨,專注,每次只做一件事。分散式部署,降低單次暴露風險。
但前提變了。三個前提同時變了。
第一:造物派不可信。邱鑄銘的加密載荷是定時炸彈——Rollback 啟動的混亂期裡,那三段定址會把均衡派的算力接管權導向造物派。衡遠需要在觸發序列裡加一道屏障,確保 Rollback 的波及範圍同時覆蓋造物派的接管端口。額外操作。
第二:均衡派在追蹤。降級讓他從追蹤網裡消失了,但消失本身就是信號。困惑之後是加大搜索。時間窗口從「搬遷前完成」壓縮到「他們找到他之前完成」。更短。可能短很多。
第三:他的手。三到四成精細動作。二十七步的極限邊緣操作不再可行,必須壓縮到二十步以內——用冗餘替代精確,用更多的校驗迴圈彌補更少的控制力。
三個前提同時改變。結論只有一個:放棄分三次植入的策略,在最後一次 Dongle 任務中一次性完成所有剩餘部署。模組 C 的植入、觸發序列的啟動、對造物派載荷的反制——全部壓進同一個操作窗口。
風險極大。但其他選擇已經不存在了。
他在 Cornelius 上開了一個新的推演環境。離線模型的回應速度慢,每個 query 要等四到七秒。電池容量只夠跑兩個多小時。他得精確使用每一分鐘。
「Cornelius,給我模組 C 在 precision → redundancy 框架下的最小步數序列。約束條件——」
他開始輸入。右手打字的時候,小指不碰鍵盤。四根手指在鍵帽上移動,速度比以前慢了大約三分之一,但準確。他已經學會繞過那根不聽話的手指。
Cornelius 吐出第一版結果。十九步。他逐步檢查——第七步有個邏輯冗餘可以合併,第十二步的校驗迴圈可以和第十三步的確認信號共用一個時間窗口。壓到十七步。但十七步裡沒有留給反制載荷的空間。
他把十七步的序列丟回 Cornelius,讓它在 redundancy 框架下重新驗證一遍。游標閃爍。等待。
門口傳來聲響。鋁箔膠帶被小心地撕開一角。
葛索側身進來。他手裡端著一碗東西——白粥。沒有其他配菜。他把碗放在 Cornelius 旁邊的空位上,然後沒有離開。
他站在衡遠身後,看螢幕。
衡遠沒有擋。以前他會把螢幕轉過去——不是所有東西都適合九歲的孩子看。但「以前」的很多判斷標準已經不適用了。
「這是觸發序列。」衡遠說。不是解釋。是陳述。
葛索看了一會兒。「第七步和第八步的輸出一樣。」
衡遠停下來。看了第七步和第八步。輸出確實一樣——他剛才合併的那個冗餘,Cornelius 在重新生成時又引入了一個相似的冗餘。他沒有注意到。
「對。」他把重複的步驟刪掉。十六步。
葛索站在那裡。他的眼睛從螢幕移到衡遠的右手——那根翹著的小指——再回到螢幕。
「爸。」
「嗯。」
「Cornelius 的 context window 有限。你可以把前十步的結果存成文件,然後在新的 context 裡只載入文件繼續推後面的步驟。省 token。」
衡遠的手指停在鍵盤上。
這不是一個九歲孩子應該知道的概念。但葛索已經在公開頻道監控裡操作了至少六天的 Cornelius。他自己摸出來的。或者他偷偷問了 Cornelius 自己——衡遠沒有限制他對模型的提問權限。
「你做過?」
「嗯。監控的時候。公開頻道的 log 太長了,我把舊的存成文件,每次只看新的。」
衡遠看了他一秒。然後轉回螢幕。「那你來操作。我唸,你打。」
葛索坐下來。他的手指放在鍵盤上——十根手指,全部正常。他打字不快,但穩。衡遠的口述速度剛好是他能跟上的節奏。兩個人在法拉第籠裡工作了四十分鐘。鋁箔反光在螢幕邊緣跳動。老舊風扇的嗡嗡聲。白粥涼了。
十六步。加上反制造物派載荷的兩步——指令優先權重寫和端口鏡像重定向——十八步。在衡遠的精細動作範圍內。勉強。
然後是 priority conflict。
維生艙的本地容錯系統和造物派的調度接管指令競爭同一組控制信號。如果 Rollback 的級聯序列先觸發容錯系統——維持生命、暫停困境、暫停清除、安全等待——維生艙裡的人會安全進入待機。如果造物派的調度接管先抵達——控制信號被重定向到造物派的算力接管端口——容錯系統可能來不及啟動。
他需要在觸發序列裡設一個延遲閥:讓維生艙容錯指令比其他所有信號早零點三秒抵達。零點三秒。在級聯故障的混亂裡,這是容錯系統完成初始化的最低時間。
衡遠盯著螢幕上的時序圖。Cornelius 用 ASCII 字符畫出來的,粗糙但清晰。維生艙的容錯啟動時序在圖的左側,用虛線標注。虛線。
他上次看到這條虛線是幾週前畫攻擊架構圖的時候。那時候他把維生艙系統框起來,旁邊寫了一行小字:「需要信號」。後來在發現 OHMC 的那個下午,虛線的含義從「需要信號」升級為「需要決定」。
現在,虛線有了具體的數字。
Cornelius 計算了 Rollback 在不同觸發強度下的波及範圍。衡遠讓它標出所有受影響的子系統。結果回來了,一行一行地滾動。算力調度節點、冷卻控制、數據中心供電、邊緣計算陣列——
維生艙系統。明確在列。
不是「可能波及」。是「確定波及」。Rollback 的級聯序列會切斷維生艙的外部算力供給。本地容錯系統會啟動,獨立電力七十二小時。七十二小時之後,如果外部算力沒有恢復——
衡遠沒有讓 Cornelius 繼續計算七十二小時之後的情境。他知道答案。
螢幕上的游標在閃。維生艙系統那一行亮著淡藍色。他盯著那一行字。
葛索在旁邊。他看不到螢幕上那一行的含義——他不知道維生艙是什麼,不知道裡面有多少人,不知道七十二小時意味著什麼。他只看到父親停了下來。
衡遠盯著那一行字。很久。法拉第籠裡沒有鐘,他不知道過了多長時間。可能三十秒,可能兩分鐘。風扇轉。鋁箔微微震動。
然後他伸手,在 Cornelius 的鍵盤上打了一行指令——把延遲閥的參數從零點三秒改為零點五秒。多出的零點二秒不會讓維生艙更安全。它只是讓衡遠在心理上覺得自己「做了點什麼」。
他知道這是自欺。但他還是改了。
「存檔。」他對葛索說。
葛索按下保存。他沒有問為什麼父親停了那麼久。
下午。衡遠在客廳把方案的最後部分整理到筆記本上。
葛絡趴在窗台上,臉貼著鋁箔。他安靜了——不是那種被壓迫的安靜,是真正的鬆弛。降級切斷了衡遠的遠程通路,也消除了均衡派通過他的晶片信號掃描 710 的能力。籠罩在這個區域上空的電磁噪聲減少了一個來源。葛絡感覺到了。
「嗡嗡聲變小了。」葛絡說。他的臉還貼在鋁箔上。「從昨天下午開始。」
「嗯。」
「爸做了什麼嗎?」
「做了一點。」
葛絡把臉從鋁箔上撕下來,帶起一小片。他看著那片銀色的東西粘在他的臉頰上,有點好奇地歪頭。
「現在外面的聲音,有的會推你——硬硬的,有角。有的不會。就滑過去。」他想了一下。「昨天的都會推。今天多了滑的。」
衡遠放下筆。「方形和圓形有什麼不同?」
「會推的那種,碰到皮膚會頂住。滑的不會。滑的只是經過。」
衡遠在筆記本上記了一行:方=主動掃描 / 圓=環境電磁底噪。如果葛絡能區分主動掃描和環境底噪——
「你能告訴我方形的什麼時候來嗎?」
「可以啊。」葛絡從窗台上跳下來。「不過它不是一直來的。有時候很久才來一次,有時候連著好幾次。」
「頻率不固定。」
「什麼是頻率?」
「就是多久來一次。」
「噢。那就是頻率不固定。」
衡遠在筆記本上畫了一條時間軸。如果葛絡能在行動日提供即時的主動掃描偵測——他們不需要任何電子設備,不需要任何可能被追蹤的裝置。一個九歲孩子的身體就是最好的天線。
這個念頭讓他的筆停了一秒。
然後他繼續寫。
「葛索。」他叫了一聲。
葛索從法拉第籠的方向走過來。
「行動當天的安排。」衡遠把筆記本翻到新的一頁。「你在法拉第籠裡操作 Cornelius,監控所有公開頻道。如果出現異常——定義是任何與 710 相關的新查詢、搬遷計畫的時間變更、或者我沒有預料到的系統公告——你用二位元敲擊通知葛絡。」
葛索點頭。
「葛絡。你在窗台。」衡遠轉向小兒子。「如果方形的嗡嗡聲突然變多、變近、或者出現你沒聽過的新形狀——」
「我就敲牆。」葛絡說。「兩下。」
他記得二位元信號協議。上次凌晨出門時他自己想出來的。
「對。兩下表示異常。我會調整行動。」
他把筆記本合上。右手的小指翹在封面外側,碰不到紙面。他看著兩個兒子——一個坐在矮凳上等指令,一個站在窗台邊等工作。
九歲。
他把他們納入了行動方案。不是「讓他們做一點安全的事」,是給他們分配了不可替代的戰術角色。葛索是他的離線情報中樞。葛絡是他的電磁預警系統。沒有備案。如果其中一個失效,整個方案的容錯率降到無法接受的水平。
他沒有問他們願不願意。他甚至沒有解釋他們在做什麼。因為解釋意味著選擇,而他不打算給他們選擇的權利。
這是他的鋒利面。他清楚地看見它。像看見一行寫得很漂亮的代碼——邏輯完美,道德崩壞。
傍晚五點。永康市場。
茶攤還是那個茶攤。潮濕的帆布棚頂滴著冷凝水。油煙從隔壁的炒麵攤飄過來。衡遠到的時候,邱鑄銘已經在了。老式保溫杯擺在桌上。四季春的淡香穿過油煙,若有似無。
邱鑄銘看到他的頸後。衡遠穿的是高領,但高領遮不住醫療膠帶的邊緣。邱鑄銘的目光在那裡停了一秒——準確說是零點八秒左右,衡遠計時了。品保工程師的觀察力。
「工程師。」邱鑄銘的語速一如既往地慢。他擰開保溫杯,喝了一口。「你做了什麼。」
不是問句。
「維護。」衡遠坐下。矮板凳吱嘎一聲。「設備老化,切掉不穩定的模組。基本的退化管理。」
邱鑄銘的嘴角沒有動。他把保溫杯放回桌上,杯底和鐵皮桌面之間發出一聲鈍響。
「你降級了。」
衡遠沒有否認。否認沒有意義——邱鑄銘不是靠猜測工作的人。
「我調整了方案。」衡遠說。「第三次任務的操作窗口需要變更。原來計畫的分步植入改為一次性完成。」
「一次性。」邱鑄銘重複了這兩個字。他的語速更慢了。「容差呢。」
「重新計算過了。」
「良率呢。」
「在可接受範圍。」
「我的定義裡,可接受的良率是九十五以上。」邱鑄銘看著他。「你現在的精細動作幾成?」
「夠了。」
邱鑄銘沉默了幾秒。隔壁攤的鐵鏟刮鍋底的聲音。有人在遠處喊價。市場快收了,最後的吆喝帶著傍晚的倦意。
「我需要確認載荷的部署位置不變。」邱鑄銘說。
衡遠的右手放在桌面上。小指翹著。他沒有刻意藏,也沒有刻意展示。它就在那裡。
「載荷會在觸發序列中被部署。」他說。每一個字都是技術上的真話。載荷確實會被部署——被部署到一個經過衡遠修改的端口地址上。鏡像重定向。造物派的接管指令會抵達一個看起來完全正確的目標,但實際上,Rollback 的波及範圍已經被擴大到覆蓋造物派自己的算力接管端口。他們以為自己會在混亂中接收均衡派的算力。實際上他們會和均衡派一起被 Rollback 吞噬。
這是他在法拉第籠裡加入的第十七和第十八步。只有他知道。
「工程師。」邱鑄銘的保溫杯在手裡轉了半圈。「我希望你理解——我們提供的不只是載荷。後勤、掩護、Zone 7 的進入路徑,這些都建立在互信的基礎上。」
「我理解。」
「你的降級沒有事先通知我們。」
「因為不需要。」衡遠說。「降級是我自己的設備。我的硬體,我的決策。你的載荷不受影響。」
邱鑄銘看著他。那種品保工程師看不合格產品的眼神——不是憤怒,是在評估偏差是否在容許範圍內。
「載荷不受影響。」邱鑄銘重複了一遍。
「不受影響。」
沉默。四季春的氣味。油煙。遠處有人把鐵皮攤位的門板拉下來,嘎吱嘎吱的聲音像某種老式機械在關閉。
「你知道,」邱鑄銘把保溫杯擰緊,「我最怕的不是合作方背叛。我最怕的是合作方自認為他在做最優解,但他的抽樣偏差——他自己看不見。」
衡遠的嘴角動了一下。不完全是笑。「我沒有背叛。我只是在你的 branch 上 cherry-pick 了我需要的部分,然後 rebase 到了我自己的 main 上。」
邱鑄銘沒有接話。他可能不懂 Git。
「在版本控制的世界裡,」衡遠說,「這叫最佳實踐。」
邱鑄銘站起來。保溫杯握在手裡。他看了衡遠幾秒。那種目光——不是威脅,不是試探,是一個品保工程師在出貨前最後看一眼產品的表情。
「最後一次任務。」邱鑄銘說。「時間、地點、路徑,三天前通知我。」
「兩天。」
「三天是最低容差。」
「兩天。」衡遠說。「三天的情報在這個環境裡會衰變。你做品保的應該知道——保質期內的產品和過期的產品差別只在一個時間戳。」
邱鑄銘沒有回答。他轉身走了。保溫杯在他手裡晃了一下,四季春的茶香隨著他的背影消散在市場的暮色裡。
衡遠在茶攤上多坐了一分鐘。右手放在桌面上,四根手指微微收攏,小指翹著。他看著邱鑄銘的背影消失在攤販之間。
鏡像重定向。端口覆蓋。十八步序列裡的第十七步——看起來是標準的觸發準備,實際上多了一個三毫秒的信號前置。三毫秒。足夠讓 Rollback 的波及範圍從「只覆蓋均衡派」擴大到「同時覆蓋造物派的接管端口」。
邱鑄銘不會知道。直到 Rollback 啟動的那一刻。
衡遠站起來。膝蓋有點僵。他走出茶攤,走進傍晚的永康市場。暮色裡的攤販在收拾殘局。鐵皮門板一扇接一扇地拉下。
晚上八點。
衡遠在浴室裡找到了一把剪刀。不是什麼好剪刀——刀刃有點鈍,螺絲有些鬆。但能用。
他把兩個兒子叫到客廳。
「坐下。」
葛絡先坐。他從來不問為什麼——他先執行,然後在執行的過程中觀察。葛索站了一秒,看了剪刀一眼,然後坐下。
衡遠站在葛絡身後。左手按住他的頭頂——食指穩定了,抽搐只剩微弱的單頻,幾乎察覺不到。右手拿剪刀。四根手指扣著把手,小指翹在外面。
第一刀下去,一撮黑髮落在地板上。
葛絡歪頭。「剪頭髮?」
「嗯。」
「為什麼?」
「方便。」
葛絡不再問了。他的頭在衡遠手下微微動著,跟著剪刀的節奏輕微地晃。衡遠剪得不好看——右手的精細控制不夠,剪出來的長度不太均勻。但短了。這就夠了。
輪到葛索。他坐下來的時候,後背挺得很直。
衡遠把剪刀換到左手試了一下——左手現在比右手穩了。這個事實讓他停了一秒。左手的抽搐改善到幾乎消失,右手的精細動作降到三四成。Dongle 的副作用和降級的代價,讓他的雙手完成了一次奇怪的再平衡。
他用左手剪。比右手好一些。葛索的頭髮落在地上,和葛絡的混在一起。一樣黑。一樣細。分不出是誰的。
「爸。」葛索的聲音從他低著的頭頂傳來。
「嗯。」
「之後會再長回來的。」
衡遠的剪刀停了一下。
「會。」
他把最後一撮碎髮從葛索的衣領裡撥掉。頸後的動作讓他自己的切口微微牽扯了一下——三毫米的傷口在低頭時繃緊。他直起身。
兩個兒子站起來。兩顆短短的頭,圓的,參差不齊。葛絡摸了摸自己的腦袋,露出一個有點困惑的表情。葛索什麼都沒摸。
衡遠把地上的碎髮掃到一起。剪刀放回浴室。
他回到客廳。筆記本攤在桌上。十八步觸發序列。兩個九歲的戰術節點。一個品保工程師不知道的三毫秒前置信號。和一條虛線——維生艙——穩穩地躺在 Rollback 的波及範圍之內。
搬遷倒計時十六天。
衡遠拿起筆。右手。筆桿卡在指間,握法和以前不一樣了。他在筆記本的最後一頁寫了一行字,然後合上。
那行字是:ready。
載入留言中…