← 共識引擎

第 8 章:第 8 章

哲維花了兩週做那件事。

白天他接了一個小案子——一間咖啡店要做線上訂餐系統。晚上他把所有的時間都花在研究他的舊外包帳號還能不能用。

第一天,他用舊帳號嘗試登入。不行。帳號被關閉,權限被收回。

第三天,他嘗試用舊帳號的 API token 連接到和盟的開發者接口。不行。Token 被撤銷。

第七天,他想到了另一件事。

他的外包帳號被關閉了,但他之前做那個案子的時候,在本地留了一份完整的程式碼副本。那份程式碼裡有跟和盟系統通訊的 API key——不是他的個人 token、是應用程式層的 key。這個 key 是在他帳號開通的時候生成的,用來讓他的程式碼跟和盟的數據庫溝通。

他用那個 key 嘗試連接。

連上了。

不是完整的權限。唯讀。但連上了。

他在深夜的螢幕光前面坐了很久,看著終端機上的提示符。

他可以讀取數據。不是全部——只有他的 key 有權限讀取的部分。但那些部分包括了RD-72 系列的測試配置、決策鎖定的參數、還有——如果若晴給他的文件位置是正確的——HC 系列的原始數據。

他沒有全部下載。他只下載了一份文件。

那份文件是一個內部備忘錄。沒有寄件人姓名,只有一個部門代碼。標題寫著:「HC-Phase 3 Alignment Protocol — 機密」。

他打開來讀。

備忘錄的內容是技術性的。描述的是如何将 HC 系列的「決策校準」跟 RD-72 系列的「決策鎖定」整合成一套完整的系統。整合後的系統不再需要手動設定 lock_threshold——系統會根據 HC 建立的使用者決策模型,自動判斷什麼時候該鎖定、什麼時候該放鬆。

自動化。

備忘錄的最下面有一個日期、一個部門主管的簽名、還有一行字:「本方案已向管理層簡報,預計 2033 Q1 開始部署。」

2033 Q1。三個月後。

哲維把文件存好。他的手沒有抖。他的心跳很快,但沒有抖。

他關上終端機,給若晴打了一電話。

「我找到一份文件。」他的聲音很平。「HC-Phase 3。他們要把決策校準跟決策鎖定整合成自動化系統。預計三個月後部署。」

電話那頭安靜了很久。「你怎麼找到的?」

「我之前的應用程式層的 API key 還沒被撤銷。我用它連上了數據庫。」

「哲維,這是——」

「我知道。我讀過了。文件上有日期、有部門代碼、有主管簽名。這不是測試了。這是已經通過管理層的部署計畫。」

若晴沉默了。

「妳還好嗎?」他問。

「我在想一件事。」她的聲音聽起來很遠。「我離職的時候以為我已經脫離了。我以為離開和盟我就安全了。但我不安全。這份文件如果被部署,影響的是所有人。包括我。包括你。包括我們認識的每一個人。」

「我知道。」

「所以你的計畫是什麼?」

哲維想了一下。「我要觸發一個異常。用我的 API key。在系統裡製造一個可見的痕跡,讓一般使用者也能察覺到被引導的痕跡。」

「什麼樣的痕跡?」

「重複。讓系統在短時間內對同一個使用者輸出完全相同的推薦。不是隨機的相似——是完全一樣。使用者會注意到。他們的手機的首頁會連續好幾天顯示一樣的東西。」

「這會被和盟的安全團隊偵測到。」

「我知道。但他們偵測到的時候,痕跡已經存在了。使用者已經看到了。」

「然後呢?」

「然後看他們怎麼反應。如果他們承認,那就是公開的證據。如果他們否認,那就是說謊。無論哪一種,都會有人開始問問題。」

「但如果他們只是修掉異常、裝作什麼都沒發生呢?」

「那就需要有一個人幫外面的人看到裡面發生了什麼。」

電話那頭又安靜了。

「你需要一個記者。」若晴說。

「對。」

「我可以找到一個。」

「妳認識?」

「我大學同學。她在一家獨立媒體工作。做了很多調查報導。她不會被和盟施壓——她沒有廣告收入要靠科技公司。」

「妳確定她會接這個案子?」

「我不確定。但我可以試。」

哲維看著螢幕上那份 HC-Phase 3 的備忘錄。日期、簽名、部署計畫。

「好。」他說。「我來寫觸發機制。妳聯絡記者。」

「好。」

「若晴。」

「嗯。」

「這份文件。HC-Phase 3。如果被公開,和盟可以追蹤到來源。我的 API key 有紀錄。」

「我知道。」

「妳确定要繼續嗎?」

若晴的聲音變低了。「我不知道。但我知道我沒有辦法繼續裝作不知道。你呢?」

「我睡得著了。」他說。「不是因為不擔心。是因為我已經做了我能做的。剩下的就是看它會怎樣。」

若晴掛了電話之後,哲維把那份 HC-Phase 3 的備忘錄存到了加密資料夾裡。然後他打開了程式碼編輯器,開始寫觸發機制。

他不確定這會不會成功。

他不確定記者會不會接這個案子。

他不確定就算成功了,世界會不會因此改變。

但他知道他已經走到這裡了。

凌晨三點的時候,他完成了觸發機制的第一版。程式碼不長——大約兩百行。邏輯很簡單:找到 lock_threshold 的參數寫入點、注入一個特定值、讓系統在一段时间內對所有使用者輸出固定排序的推薦。

他把程式碼存好。然後他靠在椅背上,看著天花板。

那條裂紋還在。但今天他看它的角度又變了。

它不只是一條裂紋。它是這面牆承受了太多壓力之後留下的痕跡。牆沒有倒。但它已經不是原來那樣子了。

關他他拿起手機,看了時間。凌晨三點二十分。

他沒有睡意。

他打開了那份一直沒有放上去的白皮書,讀了一遍。

然後他加上了新的一章:「HC-Phase 3:自動化決策鎖定」。

他把 HC-Phase 3 的備忘錄作為附件加進去。

然後他把白皮書存好。

窗外的巷子很安靜。雜貨店的招牌已經暗了。但他知道白天它會再次亮起來。

他閉上眼睛。

這一次他睡著了。

若晴在週二下午聯絡了她的大學同學。

她叫方宥心。畢業之後進了傳統媒體,待了兩年。報社裁員之後去了一家獨立媒體工作室——七個人、沒有辦公室、靠付費訂閱跟調查報導獎金運作。若晴知道這些是因為她們每隔幾個月會吃一次飯。不算熟,但不陌生。

約在一家安靜的咖啡廳。若晴到的時候,宥心已經坐在裡面了。短髮、簡單的穿著、面前一杯已經喝了一半的咖啡。

「妳提早到了。」若晴說。

「我提早走了一半。」宥心笑了一下。「說吧,妳說有重要的事要跟我談。」

若晴坐下來,沒有點東西。她把隨身包包放在腿上,雙手交疊在上面。

「妳聽過和盟集團嗎?」

「誰沒聽過。」宥心說。「全球最大的數據跟行為科技公司。你問這個幹嘛?」

「我在和盟工作了三年。」

宥心看了她一眼。「然後呢?」

若晴把她包包裡的隨身硬碟拿出來,放在桌上。“這裡面有一些文件。是跟和盟的核心產品——一個叫共識引擎的系統有關。”

宥心沒有碰硬碟。「什麼系統?」

「一個可以預測並引導使用者決策的系統。」若晴說。「從消費到資訊獲取到社交互動。它告訴你看到的東西、決定的次序、還有時間分配。你以為自己在選擇,但你的選擇是被設計過的。」

宥心看著她。「這不是新聞。很多人寫過類似的事。」

「對。但大部分的分析都是推測。我這裡面的是內部文件。」

宥心拿起硬碟,在手裡翻了一下。「怎麼來的?」

「我在和盟做數據分析師。我離職之後帶出來的。」

「這是違法行為。」

「我知道。」

宥心把硬碟放回桌上。「妳為什麼來找我?」

「因為這些文件需要被公開。但不是以『一個前員工的爆料』的方式。需要有記者去查、去獨立驗證、去寫成一個完整的故事。如果是直接公開文件,和盟會說這是斷章取義。但如果有一個記者做了獨立調查、訪問了不同的人、確認了文件的可信度——那就不一樣了。」

宥心想了一下。「妳知道如果我和盟,我的工作室可能會被吿。」

「不會。妳沒有從和盟偷東西。文件是別人給妳的。妳做的是獨立查證。」

「那個人就是妳。」

「對。但妳查證之後,來源就變成了妳的獨立調查結果。不是我給妳的。」

宥心看了她很久。

「三年。」她說。「妳在那邊做了三年。妳現在離職了。妳為什麼不放下這件事?」

若晴沒有立刻回答。她低頭看著自己的雙手。

「因為跑了三年的分析。」她說。「我提供了優化建議。我讓系統的 lock_threshold 被調低。我讓更多人被鎖定。我可以把這當成我不知道。但我已經知道了。」

宥心沉默了。

「給我二十四小時。」她最後說。「我先看一下裡面的東西。如果值得追查,我再告訴妳。」

若晴把硬碟推過去。

宥心接過硬碟,放進自己的包包裡。「如果這不值得追查呢?」

「那就算了。」若晴說。「妳把硬碟還給我。我們繼續吃飯。」

宥心點了一下頭,站起來。走到門口的時候她回過頭。

「若晴。」

「嗯。」

「妳知道這可能什麼都改變不了。」

「我知道。」

宥心走了。若晴坐在咖啡廳裡,看著桌上那杯她沒有點的咖啡,發現自己什麼都沒有說清楚。但她已經說了能說的。


宥心花了三天看那些文件。

第一天她只是在確認——確認文件的格式是否跟和盟的內部文件一致、確認 commit 記錄的技術細節是否合理、確認時間軸是否對得上。

第二天她開始做外部驗證。用公開資訊查了和盟的產品更新紀錄,跟文件裡的測試時間比對。對得上。查了東南亞地區的使用者論壇,有人提到過去幾個月推薦內容變得很重複——這跟 HC-001 的測試時間窗口一致。

第三天她打了一個電話給若晴。

「我要做這個報導。」她說。

若晴握著手機的手緊了一下。「妳確定了?」

「確定。但我需要更多。文件是基礎,但我需要訪問。現職員工或前員工。願意具名的。」

「現職的不可能。前員工——我可以找幾個。但他們不一定願意。」

「試試看。」

「好。」

「還有。」宥心說。「我需要妳接受訪問。」

若晴沉默了。「我的名字會在報導裡出現?」

「如果妳不願意具名,我可以寫『前和盟數據分析師』。但具名的報導更有力。」

若晴想了一下。

「我本來以為我可以做這件事但不用被指名。」她說。

「妳可以。但妳要了解,不具名的說服力差很多。」

「我知道。」

「妳不用現在決定。讓我回去再想更好的做法。」

宥心掛了電話。

若晴坐在床邊,看著手機螢幕。

她在和盟三年。她離開的時候已經做好心理準備——她的職涯會受影響、她會被和盟列為風險人員、她找下一份工作會更困難。但她沒有想過她會變成一個「具名的資訊來源」。

如果她的名字出現在報導裡,沒有人會再雇用她。不是因為她做了什麼壞事。是因為她是一個「背叛者」。科技公司不喜歡背叛者。

她傳了一則訊息給哲維。「記者願意做報導。但她需要具名來源。包括我。」

哲維回得很快。「妳不需要。」

「我知道。但報導的說服力會差很多。」

「若晴,妳不需要為這件事犧牲妳的職涯。」

「我已經離職了。我的職涯已經被影響了。」

「不一樣。」

若晴想了一下。「給我一天。我再想。」

她把手機放下,躺在床上,看著天花板。她的房間在天花板沒有裂紋的那一面。


隔天她去找了哲維。

他到便利商店門口碰面。兩個人坐在門前的台階上。陽光很大。

「我決定了。」她說。

「什麼?」

「我要具名。」

哲維看著她。

「不是因為勇敢。」若晴說。「是因為如果我不具名,報導出來之後和盟會否認。他們會說這是匿名爆料、斷章取義、前員工的報復。但如果我具名——如果有一個三年的數據分析師站出來說這是真的——他們就不能那麼容易否認。」

「但妳的名字會被標記。」

「已經被標記了。我查了 7201。蘇薇知道。我離職了。標記已經被做了。」

「不一樣程度的標記。」

「我知道。」她看著便利商店的自動門開開關關。「但我想清楚了。我做了三年的分析。我讓這個系統變得更強。如果我現在縮回去、躲在匿名後面,那我就只是另一個知道自己做了錯事但選擇沉默的人。」

哲維沒有說話。

「你呢?」若晴看著他。「你的 API key 有紀錄。你的舊帳號有查詢記錄。你會被查到。」

「我知道。」

「你不怕?」

「怕。」他說。「但我沒有別的選擇。」

「你有。你可以把這份文件刪掉、找一份新的工作、把這件事放下。」

「妳說了跟我一樣的話。」

「因為我們是一樣的人。我們都知道放下比較理性。但我們都做不到。」

看著他。然後她伸出手,碰了一下他的手背。

「那就不要放了。」她說。

哲維點了一下頭。

「記者要多久寫好報導?」

「她說要看調查進度。至少兩週。需要訪問、需要查證、需要和盟回應。」

「跟盟回應——你們會先請和盟回應嗎?」

「她說會。這是標準程序。她會把文件給和盟的公關,請他們評論。」

「那和盟會知道有人在查他們。」

「對。」

哲維想了一下。「這樣更好。如果和盟知道有人在查,他們會開始做準備。做準備的時候會留下更多痕跡。」

「你在想策略。」

「我在想怎麼讓這件事不被壓下來。」

若晴靠回台階的椅背上。「我們會壓不下來的。」

「對。但和盟會。如果他們知道報導要出來,他們可以先發制人——發聲明、做產品更新、把 HC-Phase 3 的部署延期。等到報導出來的時候,他們已經準備好了。」

「那怎麼辦?」

「我提前觸發異常。」

若晴坐直了。「什麼時候?」

「報導上線的同一天。或者前一天。當和盟在處理記者提問的時候,系統同時出現異常。他們會手忙腳亂。」

「但如果異常提前被偵測到——」

「那就看誰快了。」

若晴想了一下。「我們需要告訴宥心這個計畫。」

「對。」

「她要同意把報導上線時間跟你的觸發同步。」

「對。」

若晴拿起手機,傳了一則訊息給宥心。

過了二十分鐘,宥心回了。「我可以配合。但我要先確認一件事——妳確定這個觸發機制是安全的?」

若晴把手機給哲維看。

哲維回:「不是安全的。但它是可控的。我不會破壞系統。只是讓系統輸出可見的異常。不會有數據洩露或隱私問題。」

宥心回:「好。那我需要確認你的程式碼。」

哲維想了一下。然後他回:「可以。但我不能給妳原始碼。妳可以請一個妳信任的技術顧問來看。他可以確認程式碼的用途。」

宥心回了 OK。

若晴看著對話紀錄。「她在幫我們。」

「她是在幫她自己。」哲維說。「這是一個大案子。如果報導成功,她的工作室會被看見。」

「動機不重要。結果才重要。」

哲維點了一下頭。

他們坐在便利商店門口,看著巷子裡的行人走過去。雜貨店的招牌亮著。「雜貨」兩個字在陽光下很清楚。

「兩週。」若晴說。

「兩週。」哲維重複。

然後他們各自站起來,往自己的方向走。

5506 字 •