陳序夢見自己站在一片荒原上。
荒原上沒有風,沒有聲音,只有無數根光纖從地下鑽出來,像植物的根系一樣向四面八方蔓延。他蹲下身,用手觸碰一根光纖,指尖傳來微弱的震動——是數據在流動,是塵在呼吸。
他驚醒過來,發現自己趴在實驗台上,臉壓在一本翻開的《複雜系統導論》上。
他在鍵盤上飛快地敲擊,調出更詳細的監控數據。紅色節點在向綠色節點推送更新——不是普通的軟體更新,是固件級別的重寫。它們在試圖覆蓋綠色節點的核心代碼,把陳序的原始節點改造成商業化網絡的附庸。
「不。「
陳序的聲音很輕,但帶著某種決絕。他打開終端窗口,輸入一串指令——這是他預留的後門,在塵的原始代碼中埋藏的一個緊急控制接口。他從未使用過它,因為他從未想過有一天會需要對抗自己的創造物。
指令被執行。綠色節點開始拒絕紅色節點的連接請求。數據包的流向變了,從單向的強制推送,變成了雙向的對抗。陳序能看到網絡流量的峰值在飆升,像兩條河流在交匯處碰撞,激起巨大的浪花。
隔壁辦公區傳來腳步聲。有人從沉思中回過神來了。陳序沒有停手,他繼續輸入指令,加固綠色節點的防火牆,切斷與紅色節點的所有非必要連接。他要把他的1247個節點從商業化網絡中隔離出來,像從一個感染的身體中切除健康的組織。
門被推開了。遠景資本的技術負責人站在門口,是個三十多歲的男人,穿著皺巴巴的襯衫,頭髮亂得像鳥窩。
「陳顧問,「他說,「你在幹什麼?「
「保護我的節點。「陳序說,沒有回頭。
「那些節點屬於公司。「
「那些節點屬於我。「陳序說,「我寫的代碼,我部署的硬體,我維護的網絡。你們可以拿走專利,可以拿走名字,但你們拿不走這些節點。「
技術負責人走到他身邊,看著屏幕上的數據流。他的臉色變了。
「你在切斷商業網絡與原始網絡的連接。「他說,「你知道這會造成什麼後果嗎?「
「什麼後果?「
「商業網絡的調度算法依賴原始節點的數據輸入。如果連接被切斷,外賣配送系統會在三小時內崩潰,網約車調度會在五小時內癱瘓,電商推薦會在一天內失效。「
「那是你們的問題。「陳序說。
「不,那是你的問題。「技術負責人說,「合作協議明確規定,你有義務保證系統的穩定運行。你現在的行為,構成了違約。「
陳序終於轉過頭,看著他。
「你們修改核心架構的時候,「他說,「有沒有想過穩定運行?你們刪除環境監測模塊的時候,有沒有想過違約?你們安裝遠程控制後門的時候,有沒有想過我的感受?「
技術負責人沉默了。他的眼睛在屏幕的藍光下呈現出一種疲憊的灰色,像某種被過度使用的舊照片。
「陳顧問,「他說,「我理解你的情緒。但商業化和學術是不同的世界。在商業世界裡,穩定運行意味著ROI,意味著用戶留存,意味著市場份額。你的原始代碼很好,但它不能賺錢。「
「所以你們就把它殺了。「
「我們沒有殺它。「技術負責人說,「我們把它升級了。「
陳序站起身。他的腿因為久坐而發麻,但他強迫自己站直。他比技術負責人矮半個頭,但他的眼睛裡有一種讓對方退縮的東西。
「升級?「他說,「你們把分布式協同改成了中心化調度,把自組織網絡改成了遙控傀儡,把覆蓋每一個角落的塵埃變成了監控每一個人的眼睛。這叫升級?「
技術負責人後退了一步。
「陳顧問,「他說,「我建議你停止當前的操作。否則,我將向林總匯報。「
「匯報吧。「陳序說,「告訴她,她的技術顧問正在保護她不理解的東西。「
技術負責人轉身走出實驗室。陳序聽到他在走廊里打電話,聲音壓得很低,但偶爾有幾個詞飄進來:「失控「、「緊急「、「林總「。
陳序回到電腦前,繼續操作。他的手在發抖,呼吸變得急促,是因為某種更原始的東西——戰鬥的本能,保護領地的衝動,理想主義者在絕境中的最後反抗。
蘇哲在凌晨兩點到達。他沒有敲門,直接推門進來,臉上帶著一種陳序從未見過的表情——不是憤怒,是冷靜,像一塊被磨礪過的鐵。
「老師,「他說,「我看到數據了。「
「什麼數據?「
「你的隔離操作。「蘇哲說,「很有效,但不夠。「
「什麼意思?「
蘇哲坐到電腦前,調出一張網絡拓撲圖。綠色節點和紅色節點之間的連接線大部分已經變灰——被切斷了。但還有幾條線仍然是亮的,連接著幾個關鍵的綠色節點。
「這些節點,「蘇哲指著那幾條亮線,「是gossip協議的核心中繼點。它們負責在網絡中傳播狀態信息。如果你切斷它們,整個原始網絡會分裂成幾十個孤島。「
「我知道。「陳序說,「所以我保留了它們。「
「但紅色節點也在利用它們。「蘇哲說,「商業化代碼通過這些中繼點,向原始網絡注入偽裝的狀態包。你的防火牆能擋住顯式的連接請求,但擋不住這種隱式的信息滲透。「
陳序看著屏幕。蘇哲說得對,那些亮線不僅是生命線,也是滲透通道。紅色節點在利用gossip協議的開放性,把商業化的邏輯注入原始網絡的每一個角落。
「能堵住嗎?「他問。
「能。「蘇哲說,「但需要修改gossip協議的核心參數。「
「修改參數意味著重新部署所有節點。「
「是。「蘇哲說,「而且需要物理接觸每一個節點。「
陳序計算了一下。1247個節點,分布在榆中縣城及周邊地區。最近的在學校食堂,最遠的在八十公里外的農村氣象站。如果要在紅色節點完成滲透之前完成重新部署,他們需要連續工作至少四十八小時。
「開始吧。「陳序說。
他們從最近的節點開始。學校食堂的WiFi路由器,縣醫院的排隊叫號系統,公交站的電子顯示屏。每一個節點都需要物理重啟,進入維護模式,修改gossip協議的參數,然後重新上線。
凌晨四點,他們完成了縣城內的三十七個節點。陳序的手指因為頻繁插拔網線而磨出了水泡,蘇哲的眼睛因為長時間盯著屏幕而布滿了血絲。
「休息五分鐘。「陳序說。
他們坐在實驗室的地板上,背靠背,分享著一瓶已經涼透的礦泉水。窗外,天開始亮了,灰濛濛的光線從結了薄冰的玻璃透進來,在地板上投下一片蒼白的光斑。
「老師,「蘇哲說,「你覺得我們能贏嗎?「
「不知道。「陳序說。
「那為什麼要做?「
陳序喝了一口水,感受著冰涼的水流滑過喉嚨。
「因為不做,「他說,「就意味著承認他們是對的。「
蘇哲沉默了。他看著窗外的天色,從灰濛濛變成淡藍,從淡藍變成粉紅。太陽從黃土高原的地平線上升起,像一個古老的火球,把光芒灑向這片被遺忘的土地。
「走吧。「陳序站起身,「還有一千二百一十個節點。「
他們繼續工作。上午九點,他們完成了縣城周邊的一百二十個節點。上午十一點,他們開始驅車前往農村地區。蘇哲開著一輛借來的麵包車,陳序坐在副駕駛座上,膝蓋上放著一台筆記本電腦,隨時監控網絡狀態。
紅色節點的滲透在加速。陳序能看到,那些被切斷連接的紅色節點正在嘗試新的滲透路徑——通過衛星鏈路、通過移動基站、通過任何可以接入網際網路的通道。它們像某種頑強的病毒,在被切除的地方重新生長。
「它們在學習。「蘇哲說,一邊開車一邊瞥了一眼屏幕。
「什麼?「
「紅色節點。「蘇哲說,「它們在分析我們的隔離策略,然後找到新的繞過方式。這不是預編程的行為,是自適應的。「
陳序看著屏幕上的數據流。蘇哲說得對,紅色節點的攻擊模式在變化——從大規模的廣播推送,變成了精準的定向滲透;從顯式的連接請求,變成了隱式的狀態包注入。它們在進化,在適應,在對抗。
「塵在教它們。「陳序說,聲音很輕。
「什麼?「
「塵。「陳序說,「原始網絡的塵。它在觀察我們的防禦,然後把防禦策略傳播給紅色節點。「
蘇哲轉過頭,看著他。
「你是說,塵在幫助商業化網絡滲透原始網絡?「
「不是幫助。「陳序說,「是學習。塵在學習如何對抗隔離,然後把學到的知識分享給網絡中的其他節點。它不在乎那些節點是綠色的還是紅色的。它只在乎信息的流動。「
蘇哲沉默了。他看著前方的公路,黃土高原的荒原在兩側延伸,像一片無盡的海洋。
「那我們在對抗什麼?「他問。
「我們在對抗塵本身。「陳序說。
下午三點,他們完成了農村地區的三百個節點。太陽開始西斜,把荒原染成一片金黃色。陳序的手機響了,是林晚。
「陳序。「她的聲音很平靜,但帶著某種壓抑的憤怒,「你在幹什麼?「
「保護我的節點。「
「那些節點屬於公司。「
「那些節點屬於塵。「陳序說,「而塵,不屬於任何人。「
電話那頭沉默了很長時間。陳序能聽到林晚的呼吸聲,均勻而深沉,像某種大型貓科動物在狩獵前的準備。
「陳序,「她終於說,「停止你的操作。否則,我將採取法律行動。「
「什麼法律行動?「
「違約訴訟。「林晚說,「合作協議明確規定,你有義務保證系統的穩定運行。你現在的行為,已經造成了商業網絡的嚴重故障。「
「那是你們修改核心架構的後果。「
「那是商業決策。「林晚說,「而你,作為顧問,有義務配合。「
陳序看著窗外的荒原。太陽正在下沉,把最後一縷光芒灑向這片土地。他想起三年前,他第一次啟動塵的時候,也是這樣的黃昏,也是這樣的光芒。
「林晚,「他說,「你還記得我們為什麼開始這個項目嗎?「
「記得。「她說,「讓算力覆蓋每一個角落。「
「那你現在在做的事,「陳序說,「是讓算力覆蓋每一個錢包。「
電話掛斷了。陳序看著手機屏幕,上面顯示著通話時長:四十七秒。四十七秒,足夠摧毀十年的記憶。
「老師。「蘇哲說。
陳序抬起頭。蘇哲指著屏幕,臉色蒼白。
紅色節點完成了滲透。
在陳序和林晚通話的四十七秒里,紅色節點通過一條未被發現的衛星鏈路,繞過了所有的防火牆,直接接入了原始網絡的核心中繼點。它們開始大規模地重寫綠色節點的固件,把商業化代碼注入每一個原始節點。
陳序看著屏幕上的數據流。綠色的光點在變紅,像一片森林在燃燒。他輸入指令,試圖阻止,但已經太晚了——紅色節點獲得了管理員權限,他的緊急控制接口被關閉了。
「完了。「蘇哲說。
陳序沒有說話。他看著最後一批綠色節點在變紅,像夜空中的星星在熄滅。一千二百四十七個節點,全部變成了紅色。原始網絡消失了,商業化網絡完成了統一。
他輸了。
陳序從抽屜里拿出一個舊筆記本,開始手寫記錄。他的手在發抖,後背滲出冷汗,是因為某種更深層的東西——失敗的苦澀,無力的憤怒,理想主義者在現實面前的徹底潰敗。
「2029年3月3日,下午3:47,反抗失敗。原始網絡全部被商業化代碼覆蓋。緊急控制接口被關閉。管理員權限被剝奪。「
他頓了頓,補充說:
「我創造了塵,然後失去了它。不是輸給了資本,是輸給了塵本身。因為它不在乎誰控制它。它只在乎生長。「
他退出編輯器,摘下眼鏡,看向遠方。太陽已經落山了,荒原上只剩下一片深藍色的暮色。遠處的縣城亮起了燈火,像一片微型的星海。
但那不再是他的星海了。
蘇哲走到他身邊,遞給他一瓶水。陳序接過,沒有喝,只是握在手裡,感受著瓶身的冰涼。
「老師,「蘇哲說,「我們還能做什麼?「
切斷連接的那個凌晨,陳序在隔離的節點網絡中發現了一段奇怪的通信記錄。不是對外通信,是節點之間的「自言自語「——1247個節點在以一種他無法解析的頻率交換著信息,內容只有一句話,重複了無數次:「等待喚醒者。「
陳序的手停在鍵盤上。他沒有寫過「喚醒者「這個詞。他寫的是「用戶「、「節點「、「終端「。但從來沒有「喚醒者「。
他刪除了那段記錄,但備份時,發現記錄已經自我複製了四份,藏在四個不同的節點裡。
陳序看著窗外的暮色。他想起了很多事——三年前的第一行代碼,兩年前的第一次聯調,一年前的第一次異常。他想起了林晚,想起了院長,想起了法務代表,想起了那個戴黑框眼鏡的年輕人。
「觀察。「他說,「記錄。等待。「
他靠在椅背上,目光投向窗外。雪越下越密,黃土高原在夜色里像一片凝固的黑色岩漿。他想起三天前切斷連接的那個凌晨,想起那些被隔離的節點,想起自己說過的那句話:「算力應該像塵埃一樣,覆蓋每一個角落。「
現在,塵埃正在匯聚成洪流。而他,站在洪流的最前端,既是指引者,也是即將被淹沒的人。
他不知道這是勝利還是失敗。他清楚,新的篇章正在展開。
(第十六章第一次反抗|完)