芝加哥南環區,南密歇根大道。
這裏的夜晚不像市中心那樣燈火通明。
老舊的紅磚印刷廠被改造成了Loft辦公區,巨大的鐵框玻璃窗上映着昏黃的路燈。
風從密歇根湖面上刮過來,帶着溼氣,把路邊的梧桐樹葉卷得滿地亂跑。
趙曉峯站在那扇貼着“Aether Dynamics”極簡Logo的重金屬門前。
他下意識地把雙肩包的揹帶勒緊了兩寸。
包裏裝着他全部的家當:一臺用了四年的ThinkPad T60,三件換洗襯衫,還有一個塑料牙刷盒。
他的手指無意識地捏着那個牙刷盒的邊緣,塑料發出輕微的“咔嚓”聲。
低頭。
看了看腳下的運動鞋。
出門前特意用溼布擦過,但在剛纔坐地鐵時被人踩了一腳,鞋面上多了一道灰印子。
這讓有點強迫症的他覺得很難受。
秩序被破壞,焦慮感隨之蔓延。
他深吸了一口氣,按響了門鈴。
“咔噠。”
門鎖彈開。
沒有前臺。沒有綠植。
沒有那種寫字樓裏虛僞的精緻感。
幾百平米的開敞空間裏,甚至沒有開大燈。
光源來自於幾排靠牆站着的黑色的服務器機櫃,指示燈閃爍着綠光。
空氣裏瀰漫着濃烈的咖啡味,和電路板過熱後的微微焦味。
“左轉,繞過那堆顯卡盒子。”
林允寧的聲音從這堆電子叢林的深處傳來。
趙曉峯繞過一堆還沒拆封的戴爾包裝箱,走到了裏面的工位。
然後,他的腳步頓住了。
林允寧正坐在一張人體工學椅上,手裏拿着一罐健怡可樂。
而在他對面,坐着一個讓他大腦瞬間宕機的生物。
那個女生腳架在堆滿硬盤的桌面上,穿着一雙 Alexander McQueen的骷髏頭高跟靴,正一下一下地磕着桌面,發出令人牙酸的“哆、哆”聲。
緊身皮褲像第二層皮膚一樣裹着長腿,上半身是一件亮片吊帶,外面披着件滿是鉚釘的機車夾克。
不知道的話,還以爲是哪個唱搖滾的女明星。
此刻,她正噼裏啪啦地敲着鍵盤,屏幕上是密密麻麻的代碼。
“來了?”
林允寧指了指那個女生,“認識一下,這是克萊爾?王,以太動力的首席AI架構師。
“克萊爾,這就是我跟你提過的趙曉峯。”
克萊爾轉過椅子,摘下耳機,甩了甩頭髮,笑眯眯地看了過來。
她上下打量了一下趙曉峯????格子襯衫、黑框眼鏡、雙肩包。
標準的、毫無雜質的“線性代數生物”。
“剛看了你發過來的代碼,寫得很工整,基礎很紮實。”
克萊爾沒有寒暄,直接把筆記本屏幕轉向趙曉峯,語氣出奇地專業,“你的ETL管道邏輯沒問題,但是工程實現太爛。
“第45行,vector擴容的時候你沒有預分配內存(reserve),這在處理PB級數據時會觸發無數次內存重分配。每一次重分配,都要把舊數據拷貝到新地址,你知道這意味着什麼吧。
“還有,第120行,析構函數沒寫虛函數,一旦發生多態調用,派生類的內存根本釋放不掉。”
趙曉峯愣住了。
他原本以爲對方會誇一誇他代碼的整潔和效率,沒想到對方一張口就是底層C++的痛點。
“我......我是爲了省代碼量......”
趙曉峯結結巴巴地辯解,臉漲得通紅。
“咱們不是在搞編程競賽。
“在工業界,省代碼量就是給後人挖坑。冗餘才能容錯,規範才能保命。”
克萊爾扔給他一塊巧克力,“重寫。把Cache Miss率壓到5%以下。不然這套系統撐不過今晚的數據洪峯。”
趙曉峯手忙腳亂地接住那塊巧克力。
那是黑巧,苦澀的味道鑽進鼻腔。
從小到大,從計算機競賽國家隊到姚班,他還很少被人這麼批評過,鬥志立刻湧了上來。
“我現在就改。”
他放下包,拿出自己的ThinkPad,坐到了旁邊的空位上,手指開始在鍵盤上噼裏啪啦地敲打起來。
林允寧靠在椅背上,看着兩人進入狀態,喝了一口可樂。
這纔是他要的效果。
清北出身的趙曉峯是一把快刀,但在學術界泡出來的粗胚,還需要克萊爾這塊磨刀石來磨掉上面的毛刺。
“正好你們倆都在這兒,除了數據清洗這堆爛攤子,我有一個新想法。”
林允寧開口道,聲音打破了沉默,在單調的嗡嗡響聲中顯得很突兀,“我們現在需要加密的數據越來越多,而且面臨的一個大問題是,公司最近的跨境資金流動已經被BIS盯上了。
“現有的SWIFT系統太慢,而且每一分錢都在別人的眼皮子底下。”
“Boss,你想做地下錢莊?這不合法吧。”
克萊爾挑眉,手指沒停。
“不,我要做一個更高級的系統,不需要錢莊,不需要SWIFT的系統。”
林允寧站起身,走到白板前,拿起馬克筆。
“如果我們要把資產或者敏感數據在不同節點??比如國內和美國??之間轉移,我們需要一個去中心化的賬本。一個不需要物理服務器,不需要相信任何人,只需要相信數學的賬本。”
他在白板上畫了一連串的方框,用箭頭連接起來。
“每個方框,包含上一塊的哈希值(Hash)、時間戳(Timestamp)和數據(Data)。
Block_Hash = SHA256(Prev_Hash + Timestamp+ Merkle_Root + Nonce)
"Merkle Tree(梅克爾樹)保證了數據的完整性。只要改動任何一個字節,根哈希值就會雪崩式變化。
“但這還不夠。爲了防止有人重寫歷史,我們需要引入一個'代價’。’
他在公式末尾圈出了那個`Nonce`。
"Proof of Work(工作量證明)。
“要想生成一個新的區塊,必須找到一個特定的隨機數Nonce,使得整個哈希值的前位都是0。這需要巨大的算力窮舉。
“修改歷史的成本,將高於收益。這就是熱力學第二定律在信息學上的投影??熵增不可逆。’
趙曉峯停下了敲代碼的手,推了推眼鏡,盯着那個圖:
“這就是Hashcash的變種?用來防止雙重支付(Double Spending)?這效率很低啊,全網廣播,延遲會很大。”
“效率是爲了換取安全。”
林允寧點頭,“對於效率優先的工作比如高頻交易,他肯定不適合,但適合作爲價值存儲的錨點。
“我準備叫它......
“Blockchain(區塊鏈)。'
“聽起來像是個無政府主義者的玩具。”
克萊爾評價道,但她轉過頭看着白板的眼神卻很認真,“不過,用來做內部數據的防篡改日誌倒是個好主意。至少FBI改不了我們的Log。”
“先把手頭的活兒忙完,然後咱們仔細討論一下,先寫個原型出來。”
林允寧扔下筆,“現在,快七點了。走,喫飯去。
“我今天搬家,說好了請客的。”
芝加哥,中國城。
Wentworth大道上的“老四川”餐廳,紅燈籠在風中搖晃。
門口排隊的人羣裏,大多是留學生和當地華人,空氣裏飄着那股在別處聞不到的,花椒和熱油激發的香氣。
林允寧推開門,熱浪裹着喧鬧的人聲撲面而來,瞬間驅散了外面密歇根湖的寒意。
最裏面包間的大圓桌旁,已經坐滿了人。
“喲,失蹤人口終於出現了?”
清脆的聲音,穿過嘈雜的人羣。
沈知夏今天穿了一件米白色的粗棒針織毛衣,袖口稍微有些長,遮住了一半手掌。
頭髮隨意地挽了個丸子頭,幾縷碎髮垂在耳邊,被店裏的熱氣蒸得有些微卷。
她正拿着一雙公筷,給旁邊的程新竹夾菜。
看到林允寧進來,她挑了挑眉,笑道:
“再不露面,我都以爲你已經在實驗室裏成仙了,正琢磨去哪個廟給你上柱香呢。
“這不是聞着味兒就下凡了嗎?”
林允寧脫下沾着寒氣的大衣,拉開她身邊的椅子坐下,順手拿過她面前的茶杯喝了一口,“還是沈教練這裏的夥食好。”
“少來這套。”
沈知夏白了他一眼,給他將茶重新倒滿,嘴上卻不饒人,“你還用喫飯?我以爲你靠光合作用就能活着呢,多喝點茶吧,嗓子都啞成破鑼了。”
林允寧接過茶杯,暖意順着指尖傳過來。
他笑了笑,不敢回嘴,指着身後縮着脖子的趙曉峯道:
“介紹一下,這位是趙曉峯,計算機系博士一年級,現在跟我做項目。”
趙曉峯跟在克萊爾後面,看着這一大桌子人,緊張得手心冒汗。
除了敢打趣林老師的高挑女生,桌上還有正拿着瞪着眼觀察樟茶鴨表皮的俏皮小妹,正在低頭狂按黑莓手機的精緻女王,梳着大背頭一身男士三件套西裝的外國女人,以及正跟一碗滑溜溜的涼粉較勁的金髮小夥兒。
“Hi,我是布蘭登。”
布蘭登終於放棄了用筷子夾涼粉,改用勺子挖了一大勺,熱情地揮了揮手,“歡迎加入‘怪胎俱樂部”。
“別理他,這裏就他一個怪胎。小弟弟,坐我身邊來吧。”
維多利亞冷冷地補了一刀,笑眯眯地看向趙曉峯。
趙曉峯哆嗦了一下,然後被克萊爾安排在了程新竹旁邊。
“這個鴨皮的焦化程度......”
程新竹夾起一塊樟茶鴨,推了推圓圓的眼鏡,一臉嚴肅地湊近觀察,“嗯,美拉德反應發生得很完美。這種做法如果用來烤火雞......”
“喫你的吧。”
沈知夏怕天才少女再搞什麼實驗菜系,趕緊夾了一塊排骨塞進她嘴裏,“喫飯都堵不上你的嘴。再分析下去,鴨子都要復活飛走了。”
程新竹鼓着腮幫子,含糊不清地抗議了兩聲,最後還是屈服於排骨的美味。
老友相聚,飯桌上氣氛隨性而熱絡。
克萊爾喫得香汗淋漓,一邊補妝,一邊跟布蘭登討論芝加哥哪家新開的夜店的音響效果最好。
布蘭登雖然沒了那張Centurion Card (百夫長黑金卡),但在享樂這件事上依然是當之無愧的專家。
“所以,那個真的在現場混音?”克萊爾咬着筷子問。
“Trust me(信我),那家店的低音炮能把你腦漿都震出來。”
布蘭登一臉懷念,“可惜我已經很久沒去過了,人有金錢壓力的時候,就很難玩兒得盡興。”
“下次我請你。”
克萊爾豪爽地拍了拍他的肩膀,“前提是你得幫我搞定那個看門的保安。”
另一邊,方雪若終於放下了手機,精緻的眉毛微微蹙起。
她沒有說話,只是朝對面的維多利亞看了一眼。
維多利亞心領神會,放下手中的刀叉,拿起煙盒站起身:
“這裏的空氣太辣了,我出去透透氣。”
“我也去。”方雪若拿起手包。
兩人一前一後走出包廂,來到了餐廳外喧鬧的街道旁。
芝加哥的夜風很冷,吹得方雪若的風衣獵獵作響。
“BIS(工業與安全局)的人下午去特拉華州的註冊代理人那裏了。”
方雪若揉了揉眉心,聲音壓得很低,“他們在查那筆收購德國光源廠的資金。雖然我們在開曼羣島做了三層嵌套,但他們好像還是嗅到了味道。”
“意料之中。”
維多利亞靠在牆上,點燃了手中的雪茄,看着路過的警車,冷笑道,“只要我們的資金鍊不斷,他們就只能在那兒。不過,我們的通道確實太窄了。”
“允寧剛纔私下裏跟我說了件事情。”
方雪若吐出一口菸圈,“他說他準備要做一個去中心化的賬本。不需要銀行,不需要SWIFT,只要有網就能轉。
“這可能麼?”
維多利亞挑了挑眉,“聽起來像是天方夜譚,有這麼好的玩意兒,黑幫或者販毒集團不是早用來洗錢了?”
“但是他們沒有林允寧那個腦子......”
方雪若看着維多利亞故意吐過來的煙霧,厭惡地避過了身子,“他既然說了,就一定能弄出來。
“到時候,我們也許就有一條別人看不見的暗道了。”
兩人低聲商量了幾句,整理了一下表情,轉身走回熱鬧的餐廳。
包廂裏,微醺的克萊爾正拉着沈知夏科普眼妝的七種畫法。
程新竹則在給趙曉峯講解蛋白質變性在烹飪中的“妙用”。
只有林允寧懶洋洋地靠在椅背上,享受着難得的輕鬆時光。
飯局持續到九點多。
大家在餐廳門口道別。
克萊爾拽着趙曉峯去趕地鐵,準備回辦公室通宵清洗數據。
布蘭登則紳士地提出送幾位女士回家。
只剩下林允寧和沈知夏
“走走吧,”
沈知夏緊了緊風衣的領口,“反正也不遠。”
“好。”
兩人沿着Wentworth大道慢慢走着。
路燈把兩人的影子拉得很長,偶爾交疊在一起。
芝加哥的秋風卷着落葉,在街道上沙沙作響。
“允寧哥,你最近......是不是又在搞什麼大事?”
沈知夏突然開口,沒有看他,低頭踢着路邊的小石子,“雪若姐和那個維多利亞,她們看起來壓力很大。”
“嗯。現在的局勢不太平。”
林允寧雙手插在外套口袋裏,“不過別擔心,都在控制之中。”
“我不擔心她們,她們是人精。”
沈知夏停下腳步,轉過身,看着林允寧。
路燈下,她的眼睛清澈而銳利,毫不費力地戳穿了他所有的僞裝,“我擔心的是你。”
她伸出手,幫他把大衣上沾的一根線頭摘下來,“你知道嗎?從小到大,你只要一開始想問題,手指頭就會不自覺地輕輕敲桌子。
“剛纔喫飯這一會兒工夫,你敲了不下二十次。”
林允寧愣了一下,下意識地看了一眼自己的手。
“我知道你想當超人,想改變世界,"
沈知夏嘆了口氣,只是用力拍了拍他的胳膊,“可橡皮筋斷了,就接不回來了。
“這週末,陪我去密歇根湖邊跑跑步吧。把你腦子裏那些亂七八糟的數據,和你肚子裏那些垃圾食品,好好清空一下。”
林允寧看着發小,心裏暖暖的。
擁有系統的他,隨着能力的不斷增強,越來越像麻木不仁的神明般高高在上,俯瞰衆生。
但沈知夏,總能適時地拉他一把,將他帶回煙火凡間。
她不懂量子力學,不懂代數幾何,但她懂他。
“好。”
林允寧笑了,眼神溫柔,“都聽沈教練的,不過你得慢點兒跑,我可不想猝死在湖邊,還得麻煩你給我收屍。”
“美得你。”
沈知夏白了他一眼,卻掩不住嘴邊的笑容。
就在這時,林允寧口袋裏的手機震動了。
他拿出來一看,是方雪若的電話,於是按下了接聽鍵。
“雪若姐,剛散就打電話,不會是布蘭登那小子迷迷糊糊開錯路了吧。”
“允寧,”
方雪若沒有理會林允寧的玩笑,而且聲音有些低沉,“出事了,維多利亞有一筆資金被SWIFT系統卡住了。
“BIS(工業與安全局)懷疑資金涉及受控技術交易,聯合OFAC(海外資產控制辦公室)凍結了我們一個賬戶……………”