下一章 上一章 目录 设置
45、送去法庭的「祕密武器」 開庭當天早 ...
-
接下來的九天,陳寧幾乎沒有回過宿舍。
他請了三天特休——理由是「身體不適」——然後又用了四天的遠端工作加上兩個週末。他把筆電搬到了葉佩佩租屋處的客廳地毯上——是的,又是地毯——在茶几和那堆法律文件之間,找到了一個勉強能放下筆電和一罐咖啡的空間。
他的工作是:把鑑定機構提供的原始數據檔案一份一份地跑分析。
葉佩佩透過正式的法律管道——加急的、蓋了三個章的、打了無數通電話的——拿到了鑑定機構的原始電子數據和產出報告那台電腦的系統日誌。數據量龐大——八萬多筆財務交易紀錄,分散在十二個CSV檔案裡,另外還有三個月的系統操作日誌,加起來將近兩百MB的純文字資料。
陳寧的工作就是從這些資料裡,找出「數據從生成到導出沒有被篡改」的技術證據。
他寫了一支Python腳本。
腳本的功能是:自動比對每一筆交易紀錄在系統日誌中對應的操作時間戳,確認數據在整個生命週期中——從感測器採集、到資料庫寫入、到分析軟體讀取、到最終導出PDF報告——每一個環節的時間戳是否連貫、是否有異常的修改痕跡。
如果時間戳是連貫的——每一筆數據從頭到尾的「時間線」都是一條不斷裂的鏈——那就意味著數據沒有在中間被改動過。
這不是hash值驗證。但它的底層邏輯是一樣的:用系統層面的不可篡改記錄,來證明數據的完整性。
九天。
他跑了一百多次腳本。每一次都會產生新的異常點——有些是真正的數據不一致(需要排除),有些只是系統日誌的記錄格式差異(需要過濾)。他一個一個地排查、標注、排除,像在一堆亂碼裡找一把鑰匙。
葉佩佩在他旁邊工作。她負責的是法律端——根據陳寧找到的技術證據,重新建構一份「數據完整性補充說明書」,用法律語言把那些時間戳和系統日誌翻譯成法官能看懂的東西。
兩個人的工作方式完全不同。
陳寧是「先找到所有異常,再逐一排除」的掃描式工作法——像用金屬探測器把整片沙灘掃一遍,然後再回頭看每一個嗶嗶聲是不是真的埋了東西。
葉佩佩是「先建立論證框架,再把證據填進去」的建築式工作法——像先畫好藍圖,然後一塊磚一塊磚地往上砌。
這兩種方式本來應該互相干擾的。但不知道為什麼,它們配合得很好。
陳寧找到一個新的時間戳線索,就用便利貼寫下來,貼在葉佩佩面前的牆上。葉佩佩看到之後,把它歸類到論證框架的某一個位置,然後在法律文件上加一段對應的論述。
便利貼越貼越多。牆上從左到右,密密麻麻的——黃色的、粉色的、綠色的——每一張上面都是一行陳寧的字跡(很醜,但很清楚)和一段葉佩佩的批註(很小,很精準)。
到了第八天的晚上,牆上的便利貼已經超過了五十張。
陳寧坐在地毯上,看著那面牆,忽然覺得——那面牆看起來很像一面證據板。刑偵劇裡面那種——中間是一張照片,周圍用紅線連著各種線索的那種。
只不過這面牆的中間不是一張照片。
是兩個人的名字。
第九天。開庭日的清晨。
天還沒全亮。葉佩佩的租屋處裡,落地燈開著,茶几上是九天來堆積的所有文件——已被整理成一份完整的、編了頁碼的、裝訂整齊的補充說明書。旁邊是一個隨身碟。
隨身碟裡存著陳寧跑了一百多次腳本之後產出的最終報告——完整的時間戳比對分析、系統日誌的不可篡改性論證、以及一份用Python生成的、把八萬多筆數據的生命週期壓縮成一張可視化圖表的「數據完整性鏈」。
那份圖表——陳寧花了三天做的——把每一筆交易紀錄從採集到導出的全部環節壓縮成了一條一條的時間線。八萬多條時間線排列在一起,像一面巨大的、由數據編成的布。每一條線都是完整的,沒有斷裂,沒有跳接。
如果把這些線放大來看——陳寧真的做了放大版本——每一條時間線上的每一個節點都有對應的系統日誌編號。那些編號是機器自動生成的,不是人手動填寫的。機器不會說謊。
葉佩佩把那份圖表看了很久。
「這個東西,」她說,「法官看得懂嗎?」
「法官看不懂沒關係。」陳寧說,「妳看得懂就行了。妳把它翻譯成法律語言。」
葉佩佩看了他一眼。
然後她低下頭,花了最後六個小時,把那份技術報告翻譯成了一份十二頁的法律補充意見書。每一頁的論述都對應了陳寧那份報告裡的一個技術論點,但用的是法官和對方律師能理解的語言。
到了清晨六點。
全部完成了。
葉佩佩坐在地毯上——九天來她幾乎沒有坐在椅子上過,因為椅子被文件佔滿了——手裡拿著那份十二頁的意見書和那個隨身碟。
她低頭看著那個隨身碟。小小的,黑色的塑膠外殼,裡面裝著八萬多筆數據的完整生命週期——以及一個理工男九天的心血。
陳寧坐在她旁邊。他的眼睛紅了——九天來他大概只睡了不到三十個小時。他的下巴冒出了青色的鬍渣——他沒有時間刮。他的格子襯衫——對,他又穿回了格子襯衫——領口有一圈咖啡漬。
他看起來比她還狼狽。
「陳寧。」她說。
「嗯?」
「如果今天開庭,對方律師看到這份東西——」
「他會很頭痛。」陳寧說,語氣平淡得像在報告一組實驗數據。「系統日誌是鐵證。人可以說謊,文件可以造假,但機器留下的時間戳不會騙人。只要法官肯看這份報告,對方的質疑就不成立了。」
葉佩佩看著他。
那盞落地燈的暖光從他側面照過來,在他的顴骨上投下一道淡淡的陰影。他的眼睛——紅著的、疲憊的、但非常亮的眼睛——正看著她。
她忽然想起帳號裡的一句話。他在一個深夜對她說過——
「如果妳有一天打不了仗了,我幫妳扛槍。」
那時候她以為那只是一句安慰的話。一句從某本小說裡借來的、溫柔的、不太可能兌現的承諾。
而現在——
他真的扛了。
不是用法律。不是用條文。是用他自己的方式——用Python、用時間戳、用八萬多筆數據的生命週期——扛了。
「走吧。」她站起來,把隨身碟和意見書放進公事包裡。「我送你一個東西。」
「什麼?」
她走到門口,從鞋櫃上面拿下了一頂安全帽——白色的,就是上次那頂保全大叔借的。她已經洗過了,還繫了一條新的扣帶。
「還你的。」她說,「保全大叔那頂我已經還了。這頂是我自己買的。一樣的型號。」
陳寧接過來。
白色的安全帽,很輕。裡面有一股淡淡的——跟她的洗衣精一樣的——味道。
他不知道她為什麼要買一頂安全帽給他。
或者他知道。
但他選擇不去想。
「謝謝。」他說。
「不客氣。」她已經在穿鞋了。「走吧,我叫計程車去法院。你——回去睡覺。」
「我跟妳去。」
「不用——」
「我跟妳去。」他的語氣不是商量的語氣。
葉佩佩看了他一眼。
然後她笑了——不是那種精準控制的笑,是那種「你這個人真的很固執」的、帶著一點無奈的、但眼角在笑的笑。
「好。」
法院在台北地方法院。開庭時間是上午九點半。
他們到的時候是八點四十五分。法院大門口已經有人在排隊安檢了。葉佩佩穿著她那套深色的套裝——跟九天前在辦公室裡穿的同一套,但她已經回家洗過澡換過了內搭——頭髮在腦後紮得一絲不苟,妝化得比平時稍微濃一點——遮瑕膏蓋住了九天的黑眼圈,口紅是深玫瑰色的。
她站在法院門口,手裡提著公事包。
陳寧站在她旁邊,穿著他的格子襯衫——乾淨的那件,今天早上特地換的——手裡什麼都沒拿。
他看著她。
她看著法院的大門。
「葉佩佩。」他說。
她轉頭。
他看著她的眼睛。那雙眼睛在清晨的陽光下——化了妝也遮不住的疲憊底下——有一種他在帳號裡見過無數次的東西。
是不肯認輸的光。
「第42頁到第67頁,」他說,「對方的財務報表代碼有邏輯衝突。我標在報告的附錄B裡了。妳到時候可以直接引用。」
葉佩佩看著他,點了點頭。
然後他又說了一句。
「佩佩,去贏回來。」
這是他第一次叫她「佩佩」。
不是「葉律師」。不是「葉佩佩」。不是「妳」。
是「佩佩」。
那個在帳號裡他叫了五年的名字。那個他以為自己這輩子都不會在現實中說出口的名字。
葉佩佩的眼睛在那兩個字落地的瞬間,亮了一下。
不是淚光。是——火。
「好。」她說。
然後她轉過身,踩著高跟鞋,推開了法院的玻璃門。
鞋跟在大理石地板上敲出清脆的聲音。篤、篤、篤。每一步都踩在它該踩的位置。
陳寧站在法院門口的台階上,看著她的背影消失在安檢門的另一側。
他不知道法庭裡會發生什麼。
但他知道——她手裡的那個隨身碟裡,裝著他能給她的一切。
不是法律。不是條文。
是他自己。
他的專業、他的時間、他的九天不眠不休、他的Python腳本和一百多次的測試——全部壓縮在那個小小的黑色塑膠殼裡。
這是他這輩子做過的最浪漫的事。
但他不知道那算不算浪漫。
他只知道——如果她在裡面需要一把槍,他已經把槍裝好子彈遞到她手裡了。
剩下的,是她的仗。
他在台階上坐了下來。
太陽已經完全升起來了。法院大門前的廣場上,秋天的陽光把地面照得暖洋洋的。有幾隻鴿子在廣場上走來走去,完全不在意人類世界的法律紛爭。
陳寧靠在台階的欄杆上,閉上了眼。
他很累。九天大概只睡了三十個小時的累。但他的心——比這一個月的任何時候——都安穩。
因為他終於不只是那個躲在馬甲後面的人了。
他用自己的方式——不是帳號的方式,不是文學的方式,是工程師的方式——為她做了一件事。
一件實實在在的、可以被量化、可以被呈堂、可以被法官看到的事。
這是他能給的。
這就是他。