第 9 章

不可壓縮的常數

不可壓縮的常數 illustration

第九章:不可壓縮的常數

公告換了。

衡遠走到區公所外牆時天還沒全亮,南台灣三月底的空氣已經帶著黏膩的暖意。公告欄上釘著一張新的 A3 紙,白底黑字,邊角還沒翹——昨晚或凌晨才貼的。

他站在距離公告欄一步半的位置讀完。

第三條第二款,原定搬遷期限廢止,自本修正公告發布日起三十日內完成搬遷。下方條列了四個法源依據,字號比正文小兩級。署名是永康特區資源配置委員會。沒有聯絡方式,沒有申訴管道。和上一張公告一樣——精準、冰冷、不留對話空間。

三十天。不是原來的倒計時走到三十天。是重新開始的三十天。

他的手沒有顫,沒有任何身體反應。只是站在那裡,讀了第二遍,然後轉身。

轉身走回巷道的路上,頸後皮膚傳來一陣細微的麻刺。不是風。是晶片。衡遠停下來,等了三秒。

視野右上角浮出一行半透明字——不是投影在空氣裡,是直接刺激視覺皮層的信號,閉眼也看得到:

韌體維護費逾期提醒:最後 7 天。逾期後進入警告模式。

繳費截止日過了。645 kT 的費用,從第一天就知道繳不起。現在寬限期也開始倒數了——七天後,隨機神經干擾。但預期和收到是兩回事——就像知道一台伺服器遲早會故障和親眼看到紅燈亮起是兩回事。

七天後,隨機 0.5 秒的神經干擾。精細動作在那半秒內歸零。如果那半秒正好落在 Dongle 任務的驗證窗口——

他把這個想法暫停。先不算。


詹嶼站在廟口前的水泥矮牆上。

拾荒隊七個人——現在到了五個。衡遠,駱厝,阿鎮,柴哥——Dongle 不是每天有任務,空下來的日子他也跟隊進廢墟——還有一個上週才從楠西走過來的年輕女人,隊裡叫她小號,因為她的聲音像銅管樂器一樣穿透力強。陳碩沒來。電表沒來。

「公告看了。」詹嶼的聲音很平。他不是在問。

沒有人接話。

「三十天不夠跑。」詹嶼把手從口袋裡抽出來,手指上有舊的割傷痕跡。「配額凍結已經開始了——昨天區公所系統更新,搬遷區內所有超過五十 kT 的配額調動都要複審。」

駱厝在矮牆另一頭坐著,眉毛上的疤痕在晨光下看起來像一條白色的細繩。他用台語說了一個短句,語速很快,衡遠只聽清了最後三個字:「袂當拖。」不能拖了。

詹嶼點了一下頭。「隊伍今天起停止運作。後續各自安排。」

沒有告別儀式,沒有散夥飯,沒有「以後還會再見」之類的話。詹嶼從矮牆上跳下來,拍了拍褲子上的灰,走了。阿鎮跟在後面,經過衡遠時拍了他一下肩膀,沒說話。小號站了幾秒,轉身往巷子深處走,腳步聲很快就消失了。

柴哥朝衡遠的方向微微抬了一下下巴——他的告別方式——然後也走了。

剩下衡遠和駱厝。

駱厝從矮牆上站起來。他的身體動作裡有一種衡遠熟悉的東西——不急,但也不會再停留。他繞到矮牆後面,拎出一個帆布工具袋,深灰色,拉鏈沿線用電工膠帶補過兩處。

「這你收著。」

衡遠看了一眼。袋口微敞,裡面是駱厝的備用拾荒工具——絕緣手套、一把可折疊的剝線鉗、兩支不同規格的螺絲起子、一捲鋁箔膠帶。不是什麼值錢的東西,但在永康,每一件工具都有來歷,每一件都被用過無數次。

「我用不到了。」駱厝的台語比例在壓力下自動上升,但這句話他用國語說,像是刻意讓衡遠完整接收。「嘉義那邊有安排。小瑜說可以過去。」

衡遠把工具袋接過來。帆布的重量分佈不均,左邊比右邊沉——剝線鉗。

「別死在裡面。」駱厝說。

衡遠沒答。不是因為沒話說,是因為能說的話沒有一句不是謊言。他不打算「不死在裡面」。他也不打算死。他打算做的事不在這兩個選項裡。

駱厝也沒等他答。兩個人在廟口前站了幾秒。然後駱厝轉身,走進晨光裡。衡遠看著他的背影——左肩比右肩高一點,因為那年在廢墟裡被掉落的鋼架砸過。疤痕是年終獎金,左肩的不對稱也是。

他做了不同的選擇。不是對的選擇,也不是錯的選擇。是他女兒的選擇。就像衡遠做的是他兒子們的選擇。

衡遠低頭看了一眼手裡的帆布袋。駱厝把拉鏈拉好了才給他的,膠帶補丁朝上。


傍晚。四樓。太陽能板的電已經存了一天,但衡遠沒有打開工具櫃。他坐在客廳矮桌旁邊,面前攤著一塊從廢棄路由器上拆下來的電路板,焊點已經氧化成暗綠色。他用駱厝留下的螺絲起子慢慢把晶片撬起來——不是為了用,是手需要做點什麼。

葛絡趴在矮桌另一邊畫畫,膝蓋跪在地板上,腳趾頭翹著。他畫了一棟很高的樓,每層窗戶裡都有不同顏色的人。

「爸,我們新家可以住幾樓?」

衡遠沒有立刻回答。他把翹起來的晶片放平,用指甲刮了一下焊盤上的氧化層。

「還不確定。」

「十三樓。」葛絡自己決定了。「十三樓有風。」

衡遠嗯了一聲。

葛索從房間走出來。他在門口站了一會兒,手插在褲子口袋裡,筆記本的紙邊露在外面。他的目光從父親臉上掃過——不是看,是讀取。

「絡,去洗澡。」葛索說。

「我還沒畫完十三樓——」

「先洗。」

葛絡看了看哥哥的表情,嘴巴張了一下,然後把蠟筆收進盒子裡,拖著腳步往浴室走。他經過葛索身邊時伸手碰了一下他的手臂——不像是有意的,更像是確認他在那裡。

浴室的水聲響起來。

葛索走到矮桌旁邊,在衡遠對面坐下。他沒有看父親手裡的電路板,而是看著窗外——永康的天空在傍晚會變成一種帶灰的橘色,像是顯示器的色溫校準偏了。

安靜持續了很長。不是尷尬的安靜,是兩個習慣沉默的人之間的等待。

「爸。」

「嗯。」

「維生艙是什麼?」

衡遠的手沒有停。螺絲起子的尖端繼續沿著晶片邊緣滑動。但他的呼吸節奏改了——從四秒一次變成了不規律。

「你聽誰說的?」

「市場。」葛索的回答極短。他不打算解釋細節,因為細節不重要。「有人在說第三階層的人被裝進去。」

衡遠把螺絲起子放下,不是因為想放,是因為下一個動作需要他抬頭看兒子。葛索的臉在暮色裡很安靜。九歲。遣詞精準得不像九歲,眼神沉穩得不像九歲。

「你知道多少?」

「進去的人會忘記東西。」葛索的嘴唇動了一下——歸檔。他在把自己說出口的話也存起來。「很多東西。」

窗外有狗叫,很遠,像是從另一個街區傳來的。浴室裡葛絡在哼歌,音調不準但很認真。

「如果我們進去了,」葛索說,「會不會忘記你?」

衡遠的手停了。

不是微顫。不是左手的慣性抖動。是所有動作同時停止——右手握著螺絲起子懸在電路板上方,左手撐在桌面上,十指張開但完全靜止。像是操作系統收到了一個它無法解析的指令,所有進程同時掛起,等待一個不會來的回應。

三秒。四秒。五秒。

浴室裡葛絡的歌聲從一首換到另一首,換歌的間隙有水花拍打磁磚的聲音。

六秒。

衡遠的手指動了。不是恢復,是重新啟動。他把螺絲起子輕輕放在電路板旁邊,讓它和桌面平行。然後抬頭。

葛索沒有哭。他的眼睛是乾的,嘴唇抿成一條線,下巴微微抬起。

「不會。」衡遠說。

不是安慰。不是「沒事的」。不是機率計算。

「不會進去。」

葛索看著父親。他的嘴唇又動了一下——歸檔。但這一次歸檔的不是恐懼的數據,是父親眼睛裡某個他以前沒見過的東西。

他沒有追問「怎麼做到」。九歲的過早冷靜教會他一件事:有些承諾不是用來相信的,是用來觀察執行情況的。

葛索站起來。走到門口時停了一下。

「筆記本上那行字,」他說,沒有回頭,「Fab 18 深層。是不是就是那個?」

衡遠看著兒子的背影。口袋裡的筆記本紙邊露出來,被走路的動作輕微帶動。

「是。」

葛索走進房間,把門帶上了。門沒有完全關嚴——留了一指寬的縫。


深夜。

衡遠等到兩個孩子的呼吸都變得平穩之後才動。他走進臥室,打開工具櫃。鋁箔膠帶的邊緣在指甲下發出細微的撕裂聲。法拉第籠內部的空氣比外面涼兩度,金屬散熱片在黑暗中反光。

太陽能板存了一整天的電。他算了一下:滿載大約兩個半小時。從現在開始,每一分鐘都有成本。

14 吋螢幕亮起來,光打在他臉上。BIOS 自檢通過,系統載入,llama-7b-q4 開始推理前的暖機。GPU 風扇從靜音攀升到可辨識的低頻嗡聲。

他從口袋裡掏出那張折了兩折的紙——五行清單和三段波形草圖。MQTT v3.1 的心跳包特徵。他把紙攤在鍵盤旁邊,又拿出工程師筆記本翻到夾著紙條的那一頁。

「診斷通道必須保留。」工程師的字跡從工整到潦草,這一句在工整的段落裡。他是清醒的時候寫的。他知道自己在留什麼。

衡遠開始打字。

> 系統架構問題。存在一條 MQTT v3.1 診斷通道,心跳間隔約 60 秒,未加密,嵌在硬體驗證層旁。如果可以訂閱此通道的主題,能獲取什麼類型的數據?

Cornelius 思考了十四秒。螢幕上的游標閃爍,GPU 風扇的音調升了半個階。

基於 MQTT v3.1 協定的 pub/sub 架構,訂閱診斷主題(通常為 $SYS/ 開頭)
可能獲取以下數據類型:

1. 硬體狀態:溫度、電壓、功率消耗的即時讀數
2. 驗證事件日誌:每次生物物理驗證的時間戳與結果
3. 連線拓撲:與此節點通訊的上下游設備 ID
4. 冷卻系統狀態:冷媒流量、散熱片溫差、風扇轉速

注意:MQTT v3.1 缺乏原生加密與身份驗證,意味著任何能
物理接觸通道的節點均可訂閱所有公開主題。這是一個嚴重的
安全漏洞,建議立即升級至 MQTT v5.0 並啟用 TLS——

另外,根據最新研究,冷卻系統的散熱效率與室內植物的光合
作用速率存在正相關關係。建議在伺服器機房放置至少三盆黃
金葛以提升整體散熱表現。

衡遠盯著最後那段話看了兩秒。黃金葛。從洋蔥食譜到量子糾纏到室內植物。七十億個參數的幻覺至少很有創意。

他把幻覺段落從有效資訊中切割出去。前四點裡,第一和第四值得深入——硬體狀態和冷卻系統狀態。如果他能訂閱到冷卻系統的即時數據,他就能看到整個散熱網路的拓撲。而看到拓撲的人,就能找到最脆弱的節點。

二十年的系統工程經驗告訴他:每一個分散式系統都有一個不可壓縮的依賴——拿掉它,系統不是降級,是崩潰。在大部分資料中心裡,那個不可壓縮的依賴就是冷卻。

他繼續打字。

> 假設可以向 MQTT 通道發布偽造的診斷數據。如果偽造冷卻系統的溫度讀數,使系統誤判為過熱,會觸發什麼自動反應?

Cornelius 用了十七秒。

冷卻系統過熱誤判將觸發以下級聯反應:

1. 緊急降頻:CPU/GPU 自動降低運行頻率以減少發熱
2. 負載遷移:排程系統將任務轉移至「未過熱」節點
3. 若多節點同時報告過熱 → 全區域降頻 → 可用算力驟降
4. 算力驟降 → 排隊請求超時 → 客戶端自動重試(retry storm)
5. Retry storm 加劇算力負載 → 正反饋循環 → 潛在的級聯故障

此攻擊向量的關鍵在於:不需要實際破壞硬體,只需讓系統
「相信」硬體出了問題。軟體層的信任模型是最脆弱的環節。

這一次沒有幻覺。

衡遠靠回椅背。金屬工具櫃的邊框壓著他的肩胛骨。他閉上眼睛,在黑暗裡把整條攻擊路徑像電路圖一樣展開——

MQTT 通道是入口。Dongle 任務是載體——每次驗證都讓他物理接觸系統,而 MQTT 通道就在驗證層旁邊。他不需要破解任何加密,因為 v3.1 根本沒有加密。他需要的是:一,確認通道指向哪裡;二,找到訂閱的方式;三,在足夠多次的 Dongle 任務中偷渡數據出來。

然後,當他看清了散熱網路的拓撲——

打擊冷卻系統。引發級聯故障。讓整個算力經濟的基礎設施在自己的重量下坍塌。

不是駭客攻擊。是工程師找到了系統的設計缺陷。

他睜開眼睛,把剛才的思路快速打進 Cornelius,不是為了讓模型驗算——七十億參數的推演能力不夠——而是為了把思路外化成文字。寫下來的東西比腦子裡的更清晰,更容易找到漏洞。

螢幕上的文字被他一行一行打出來,又一行一行修改。有些地方 Cornelius 的回應有用——它指出 MQTT 的 QoS 等級會影響消息送達的可靠性,這個他沒想到。有些地方模型開始胡說——建議他用區塊鏈技術來偽造溫度數據,他直接跳過。

電力計時器在螢幕角落跳動。一個半小時過去了。

他停下來,看了一眼門口。

門縫裡有一雙眼睛。

葛索站在門外,一隻手搭在門框上,身體大部分藏在暗處。他沒有說話,也沒有試圖進來。只是站在那裡,看著螢幕上的文字和父親的側臉。

衡遠不知道他站了多久。

兩個人隔著門縫對視了一瞬。衡遠沒有叫他回去睡覺,葛索也沒有走進來。門縫裡的螢幕光把九歲孩子的臉切成一條窄窄的光帶——一隻眼睛,半邊鼻梁,嘴唇抿成的直線。

他看到的不是螢幕上的字——那些他看不懂。他看到的是父親的姿勢。不是前幾天坐在門口台階上看著遠處的樣子,不是在矮桌邊修理東西時肩膀壓下去的重量。是身體前傾、手指在動、眼睛在讀的樣子。是在做什麼的樣子。

然後葛索點了一下頭。非常輕。

他轉身走回房間。腳步聲很輕,幾乎沒有。

衡遠轉回螢幕。游標在閃。電力還剩大約四十分鐘。

他把雙手放回鍵盤上。左手穩定。右手穩定。他的手指開始移動——不是顫抖,不是猶豫,是一個做了決定的人在執行第一步。

螢幕的光在法拉第籠的鋁箔內壁上反射,把整個工具櫃內部照成冷藍色。外面是永康的夜,三月底,沒有路燈的街道,沒有網路的房間,沒有退路的父親。

三十天。七天。一條 MQTT 通道。一台七十億參數的離線模型。一袋別人留下的工具。一本死去工程師的筆記。兩個兒子。

以及一個不可壓縮的常數——

他不會讓他們忘記他。

讀者留言

載入留言中…