
隱私計算英雄傳
TechFlow Selected深潮精選

隱私計算英雄傳
青山不改,綠水常東,他日相見,再續前緣。
撰文:史中
(一)《九陰真經》引發的血案
北宋神人黃裳曾撰上下兩卷《九陰真經》。
傳說此中有上乘武學原理,習之者可為天下之宗。
南宋年間,消失已久的《九陰真經》重現江湖,引起武林紛爭。各大門派不忍看生靈塗炭,決定“華山論劍”,究極勝者可以合法擁有真經。
結果,全真派王重陽以一挑四,稱冠五絕,拿到真經。可他卻把書藏起來,非但自己不學,還不讓全真派的小弟們學,直到死,才把兩卷《九陰真經》傳給師弟周伯通保管。
老頑童周伯通決定把上下兩卷分開藏匿,不料貪玩誤事,被東邪黃藥師用計把下卷給騙走了。。。
可《九陰真經》的設定很缺德:要練就必須練全套,單練一半兒就會走火入魔。
這下可好,上下兩卷天各一方,誰都別玩兒了。。。

大反派西毒歐陽鋒一直覬覦《九陰真經》和武林霸主的地位,看到真經有絲分裂,高興得鼻涕泡都出來了。
他每天上網收集各種邪門的武林秘籍,居然功力大漲,眼看要秒殺所有武林豪傑。照這樣下去,幹掉周伯通和黃藥師,集齊上下兩捲走上人生巔峰也只是時間問題。。。

周伯通實在看不過,去桃花島找到黃藥師,說:再這樣下去,整個武林都要給歐陽鋒團滅了,我要練《九陰真經》,你把下卷還我。
黃藥師說:我憑本事騙來的,憑什麼還?不如你把上卷也給我,我練完幫你削歐陽鋒。
周伯通說:呸,你個糟老頭子壞得很,還想忽悠我上當嗎?!
兩邊僵持不下,天下岌岌可危。
於是他倆坐下來,進行了友好磋商,想出一個辦法——乾脆誰都別練,找個老實的工具人郭靖來練,練成後讓他保護天下。
說幹就幹,他倆連夜把郭靖找來商討,郭靖憨憨地說:多謝兩位大俠信任!小輩定當萬死不辭!

“哈哈哈哈哈哈,且慢!”
此時從牆角轉出一個人,此人不是別人,正是大理段氏傳人——南帝段智興。
他捋捋鬍子,慢悠悠地說:你們又不是不知道,這《九陰真經》上卷裡最重要的一章《總綱》是用梵文寫的,你們仨小學都沒畢業,能認識嗎?

老頑童和黃老邪一下愣住了,郭靖也臊眉耷眼。。。
段智興從懷中掏出一個本本,接著說:鄙人不才,大學正好學的是小語種,身上總隨身攜帶一本梵文字典,可供翻譯。
老頑童和黃老邪伸手:那你趕緊拿來啊!
段智興趕緊後退兩步:法治社會,別亂動手啊!既然你們的《九陰真經》不能給我看,那我的字典當然也不能給你們看!要看,也只能郭靖一個人看。
“行!”幾個人終於打成一致。

於是,問題進入了技術層面——上下兩卷《九陰真經》+《字典》,要怎麼給郭靖練?
他們坐在地上用草杆開始畫“流程圖”:
眾所周知郭靖是個老實孩子,讓幹啥就幹啥,這裡把他當做純粹的工具人,不考慮他“作妖”的可能。
可黃藥師很快意識到問題:如果把三本書直接交給郭靖,他練的時候,咱仨就在旁邊看,以我們的武功造詣,肯定能根據郭靖練習的動作反推出《九陰真經》的全部內容啊。這麼一來,原始“經文”不就洩漏了麼?不行不行!

周伯通說:那好辦,既然“看”有問題,咱們就“不看”,郭靖練的時候,咱仨找地方喝酒去!
段智興說:這也不行,老賊歐陽鋒就在附近,咱們剛走,他過來一個飛踹把郭靖踢躺下,直接把三本書都偷走怎麼辦?

說的是哦。。。三人重新陷入苦悶的沉思,只有郭靖在一旁快樂地追蝴蝶。
就在此時,一位戴著眼鏡一臉壞笑的路人飄過,冷笑一聲:呵呵,遇事不決,得靠科學!
三人抬頭:敢問大俠是?
路人:我叫史·億萬懦夫·中,是從900年後穿越回來的。你們這個事兒,在我們那兒叫做“隱私計算”,未來的科學家已經研究出了好幾種隱私計算的方法。我的電動轎跑就停在路邊,要不你們跟我走一趟?
幾位武林宗師面面相覷,這人TM 誰啊?再說,你這電車續航行嗎?
最後他們決定,反正自己想不出辦法,乾脆死馬當活馬醫,一起鑽進了車裡。
史·億萬懦夫·中大喝一聲:“繫好安全帶!灑家準備飆車啦!哇呀呀呀呀!”

(二)隱私計算之“門派紛爭”
四位大俠扶著電線杆子吐了半個小時,捯過氣來問:懦夫俠,此地是何所在?
“諸位有所不知,900年後的人們改用西曆,此時正是2023年。2023年,搞‘隱私計算’有一眾高手,恰在都城臨安,哦,現在已經不是首都了,名字改回杭州了。他們的武林門派叫‘螞蟻集團’。”懦夫說。
“哦哦,眾人拾柴,萬蟻蝕象,寓意高遠!”黃藥師豎起大拇指。

聽到一眾俠客造訪,螞蟻集團的隱私計算負責人韋韜把大家迎進會議室。
世間好茶想必各位大俠都品過,但擺在幾位面前的叫做可樂,是當世佳品,我天天喝。
各位不妨慢慢喝著可樂,聽我講講我們這個世界的難題和你們《九陰真經》的關係。
韋韜說。

2023年,世界仍如從前一樣有很多強盜。只是他們不敢再明火執仗打家劫舍,而是增加了技術含量——比如通過詐騙的方式,讓受害者把支付寶/銀行卡里的錢轉給自己。
作為支付寶的運營者,螞蟻集團不勝其煩,集結天下英雄搞了一整套“風控系統”,可以通過大數據計算的方法來判斷哪筆轉賬可能是受騙者在“懵逼”狀態下發起的——如果判斷一筆轉賬存在風險,則馬上攔截。(可以參閱《支付寶與張三的十年戰爭》)
同樣,其他銀行和金融機構也根據自己的數據建立了風控系統。
問題來了:不同的金融機構有不同的數據。
同樣一筆從賬戶A到賬戶B的轉賬,用支付寶的數據計算,可能就知道它是詐騙引起的轉賬,不應該批准;可“淺黑銀行”因為沒有這些數據,就認為沒有風險,可以轉賬;類推開去,“淺黑銀行”知道有風險的轉賬,“淺黃銀行”可能又不知道。
於是,騙子就學會了鑽空子——讓受騙者嘗試不同渠道轉賬,直到某個銀行恰巧沒有這個風控數據,不攔截交易,他就詐騙成功了。

面對“鍥而不捨”的死騙子,最好的辦法是啥呢?
當然就是把支付寶和 A、B、C、D 銀行的數據聯合在一起進行計算,這樣就相當於大家合穿了一套最強鎧甲。
可現實世界往往有諸多無奈。
受限於數據隱私保護法律和公司利益,各家金融機構不能把自己的原始數據給別人,但又想享受這些數據聯合計算以後的“風控能力”,非常擰巴。
說到這兒,韋韜頓了頓,看向大家。
“啊,我悟了!”黃藥師突然反應過來,“韋大俠,你說的這‘數據’不正像我們《九陰真經》的‘經文’嗎?我、老周和老段把上下兩卷和字典交給郭靖學習,不正是想進行‘聯合計算’嗎?而我們仨都不想讓自己的‘經文’被其他人看到,不就是要保護自己的‘數據隱私’麼?”
韋韜點點頭。
“說了半天,這既能保護隱私又不耽誤聯合計算的“隱私計算”功法,到底該怎麼練呢?”周伯通著急。
“大俠莫急,隱私計算只是一類統稱。”韋韜說,“正如你們武林有武當派、全真派、古墓派,我們隱私計算也有不同的技術流派。而且,諸多流派我們螞蟻集團全都有人修習。為了讓各位明白其中異同,還請容我囉嗦幾句。”
“誒,此處不勞韋韜大俠多言,小弟我可以代為解釋。”說話的人正是史·億萬懦夫·中。
“使得!”大家齊聲鼓掌。
“敢問各位,你們是信人還是信天?”他問。
“信人怎麼說,信天怎麼講?”大俠們齊聲問。
只見史·億萬懦夫·中衝到白板前,寫下三個大字——“信任根”。
所謂信任根,就好比“樹根”。縱使樹高千尺,還要依靠根基吸收營養。做隱私計算,也同樣須有一個“相信的基礎”。

而根據信任根的不同,恰好可以將隱私計算分成兩個流派:
流派一、你的“信任根”在人。
這一類隱私計算,需要找一位公認可靠的匠人,命他造出一個堅固的“安全屋”,鑰匙握在匠人手裡,誰都不給。
參與隱私計算的黃、周、段三位大俠把自己的《九陰真經》和《梵文字典》都塞進屋子裡計算。匠人把守門口,數據只要進去就不放出來,只有最終結果——學成之後的郭靖——能走出屋子。
當然,對數據來說,這個“屋子”不是真的屋子,通常是指一個可信的芯片,學名叫做 TEE(Trusted Execution Environment 可信執行環境)。



流派二、你的“信任根”在天,也就是這個宇宙的基本法則——數學。
“信天”一派的功法比較多,細緻說來,大致概括為“聯邦學習”和“多方安全計算”。
這類隱私計算之所以能保護隱私,往往是因為遵循了精巧的數學原理。
就以“多方安全計算”為例吧。
幾位大俠要把手上的《九陰真經》一頁頁拆出來,按規定流程進行加密、傳輸。
這樣一來,就會觀察到奇效:郭靖練功的一招一式都會極其怪異,哪怕參與計算的人,也就是各位大俠都瞪大眼看著全過程,也沒辦法推算回原始數據。
可別看過程怪異,最終神功卻能絲毫不爽地練成。
如此一來,自然不需要什麼“安全屋”了,光天化日之下練功也無妨。

以上三個:“信人”的 TEE,“信天”的聯邦學習、多方安全計算,就是眼下比較流行的隱私計算方法了。
史·億萬懦夫·中總結道。
“我們武林中各個門派都相互不服,覺得自己才是天下霸主,這隱私計算的各門派也是如此爭奪嗎?”段智興問。
“呃。。。想來也是如此的。”史·億萬懦夫·中說。
“依我說,‘信人’當然不如‘信天’,人心不可測啊!我的《九陰真經》不就是被某人騙走的嗎?”周伯通斜眼看黃藥師。
“說事兒就說事兒,不要含沙射影。。。”黃藥師翻白眼。
“誒,大俠且不要憑意氣下結論。信人、信天各有利弊,是需要權衡的。”韋韜示意大家安靜,“我知道,習武之人最講細微之處的精妙,各位遠道而來,不如多瞭解一些隱私計算的詳細機理,再選擇最適合修煉《九陰真經》的方案不遲嘛!”
“願聞其詳!”大俠們齊聲說。
韋韜哈哈大笑:“甚好,我們螞蟻集團人才濟濟,不妨請他們親自為大家講述!”
(三)“穿衣俠”
審思坐在幾位大俠面前,滿臉笑意。
說起來,他是螞蟻集團最早接觸“隱私計算”的先驅之一。
2017年,審思加入螞蟻。那時候,世界上甚至還沒有“隱私計算”這個名字——大家只是隱約覺得,數據一天天在變多,將來肯定會在不同機構間大規模流通。而如果就這樣把數據赤裸裸地放出去,就像人光屁屁出街,這實在不像文明世界該有的樣子。。。
於是,大夥兒準備研究一套技術,幫數據“穿上衣服”,不僅遮羞,還能保暖。
設計衣服,得先找個“模特”啊。可當時絕大多數公司的數據都待在自己家裡,沒有出街交流的需求,穿不穿衣服自然無所謂。
於是這幫“穿衣俠”只好每天看論文,在想象中思考衣服的設計方案。。。

直到半年後,機會終於等來了。
一家金融機構想要吃螃蟹——跟螞蟻集團進行聯合數據計算,目的是控制貸款的風險。
審思他們高興壞了,摩拳擦掌進行技術選型。不過,他們最初選擇的技術方案在今天看來有些簡陋,叫做“矩陣變換”。
在矩陣變換的數學操作中,有一類是把“高維數據”壓縮成“低維數據”。
舉個最簡單的例子。
假設原始數據是醬的:班上有4位同學,小紅,女,4歲;小花,女,5歲;小麗,女,6歲;小明,男,7歲。
通過簡單的矩陣變化,可以投射成:班上4位同學,女生3個,男生1個,其中1-5歲的有2個,6-10歲的有2個。
你看,這樣一操作,既保留了原始數據的統計特徵,又(某種程度上)去掉了敏感信息。
就像把3D馬里奧拍扁成2D的:

“可是,變化後的數據好像不如以前精準了啊!”黃藥師舉手提問。
“沒錯,雖然保護了隱私,但數據也變得籠統了。雖然也能把風控效果提升一些,但既不優雅也不完美,而且由於沒有數學加密,安全性也談不上有多強,就算是‘隱私計算’的雛形吧。”審思說。
不過世間萬物只怕開頭。只要吃了第一口蘋果,亞當夏娃就能意識到自己光屁屁了,之後文明的進步就如潮水一般洶湧無前。
2018年,螞蟻集團和另一家金融機構有了合作,這次雙方都有了更高的要求,絕不能貼個樹葉就算穿衣服了。於是,“穿衣俠”們必須選擇一個優雅(且不太難實現)的方案。。。
兩條路擺在面前,左邊是“聯邦學習”,右邊是“TEE”。
啥是“聯邦學習”嘞?
簡單理解是醬:假設兩撥數據的“聯合計算”總共需要10步,則每一步計算都會產生一些“中間數據”。
最簡單的“聯邦學習”,就是讓參與計算的各方先在自己家進行前幾步計算,然後再把這些變了樣的“中間數據”發送到一起,進行後面的幾步。
你想想看,中間數據不是原始數據,自然有保密的效果!
這就有點像各位大俠把自己手裡的那本《九陰真經》先理解一下,然後謄抄成《九陰真經總結版》,再交給郭靖學習。


可問題來了,這種“總結”(中間數據)如果沒有嚴格的密碼學論證,就不能保證完全沒有信息洩漏。
也就是說,如果黃藥師武學積澱深厚,通過“中間數據”是有一定幾率反推得知周伯通《九陰真經》原文的(至少是原文的一部分信息)。
這種露了一些但好像又沒全露的“薛定諤”狀態,被稱為“信息熵洩漏”。
當時“穿衣俠”們仔細推敲,雖然“聯邦學習”簡單易實現,但總像褲子漏了個小洞洞,肉隱肉現,不太踏實。
並不是說這種技術不好,而是用在安全級別很高的金融數據計算上,可能還需要打一些補丁。
於是,他們決定用優雅一些的技術方案——TEE(可信執行環境)。
這“可信執行環境”又是怎麼玩的呢?
具體來說分三步:
第一步,找一個可靠的匠人,讓他建造一個“安全屋”。
實際上,這個匠人就是 Intel,它的安全屋就是在 Intel 芯片上開闢出一個隔離區域,名叫 SGX(Software Guard Extensions 軟件保護擴展區)。
就像下圖:

第二步,每個芯片接到自己的計算任務以後,就會生成一個秘鑰,把數據鎖在芯片裡。
這個秘鑰誰要都不給。只有計算完畢,才能由芯片自己用秘鑰打開“屋子”,把最終結果“放出去”。

第三步,審思他們需要寫好多算法的“工程代碼”。
這個代碼要能把一個計算任務拆成小份,自動分發給好多 Intel 芯片去計算,然後再合成最終的結果。
就像下面這樣:

“唔,這種方法堪稱精妙!不僅算得飛快,數據精度也沒有任何損失!”黃藥師鼓掌。
“沒錯,可是諸位有所不知。”審思皺皺眉,“當時我們也很開心,想把這種武功發揚光大,卻遇到了一些質疑。。。”
有金融機構這樣問審思:“雖然你說數據是加密的,但這些用於計算的機器不還是擺在你螞蟻集團的機房裡嗎?我怎麼相信你們沒有動手腳嘞?”
審思說:“此言差矣,TEE 的信任根在 Intel 的芯片上,機器雖然放在我們這兒,可芯片上的程序是寫死的,不會把秘鑰給我們啊。。。”
那人接著追問:“芯片上的程序也是人寫的,難說就一定沒有漏洞啊。況且,Intel 是個美國公司,我們用這套技術方案做隱私計算,恐怕不符合安全要求啊。。。”
審思只好說:“雖然你說的這些問題發生概率極低,但確實無法反駁。。。”
2019年初,“穿衣俠”的究極挑戰來了:
一家華東的銀行找到螞蟻集團,想要探索風控數據的聯合計算,但他們只“信天”——必須要從數學上可以證明安全性,一個字節都不會外洩才行。
審思跟大家商量了半天,既然要做最厲害的隱私計算,當然得接受這個“華山論劍”式的究極挑戰。
可有什麼“神功”能保證數據絕對安全呢?映入他們眼簾的恰恰就是——“多方安全計算”。
(四)華山論劍和閉關修煉
當時那家銀行很著急,希望兩個月內就讓系統上線。
可多方安全計算的方案大多存在於論文裡,幾乎沒有實踐應用,相當於我們要赤手空拳從零寫一套符合生產標準的系統。。。
審思回憶。
之前說過,多方安全計算保證數據隱私的方法是:把一段數據分成不同的部分分次傳輸,傳輸過程中還摻雜加密操作。如此來來回回,就像“穿針引線”一樣,最終得出結果。
這種玩法起碼涉及兩個難題。
難題一、寫系統很難。
由於是“多方”計算,這個系統就不能只有一個——要在螞蟻這放一套,在銀行那放一套。
它們就好比“修煉的道場”,郭靖得一會兒到黃藥師這個道場比劃兩下,一會兒到周伯通那個道場思索片刻,一會兒到段智興的道場練習一番。
這來來回回的穿梭都要靠完善的系統來實現。

難題二、寫算法也很難。
“算法”,只是抽象的邏輯概念。算法要想工作,需要變成一行行代碼放進每臺機器裡被執行。
於是,老師傅必須先理解算法,再一層層把計算任務佈置給具體的機器。由於沒有自動化工具,所有的代碼部署都得靠雙手。。。
這就像在練《九陰真經》之前,必須把每條經文進入道場的順序、郭靖的走位都預先排演清楚,不能出錯。
否則,最後訓練出來的肯定是個走火入魔的郭靖。

說回當時。十來個人從一月初橫跨春節幹到了二月底,終於把系統雛形搭建好了——雖然複雜,但卻是數學可證的安全,隱私滴水不漏。
一測試,兩邊的風控模型的效果都直接飆升了10%-20%左右。
那個甜蜜的想法隨即又在審思腦中湧現:“把“多方安全計算”這個功法發揚光大,介紹給更多的機構使用,肯定沒問題了吧?”
可殘酷的現實馬上教他做人——這套方案好是好,可由於處處都是手工寫死的指令,只能用於特定場景和特定算法——如果要換新的機構來做計算,那就得把代碼從頭再寫一遍。。。
這就像一堆老師傅用錘子扳手手工敲出了一輛蘭博基尼,然後客戶說,活兒不錯,給我來一萬輛!
老師傅們聽到都吐血了,累死也做不完啊。。。

硬著頭皮堅持“手工裸寫”了幾個項目之後,審思心裡冒出了一個大膽的想法,和兄弟們吐露:
工欲善其事,必先利其器。看來我們得搞出一個適合工業化大生產的“隱私計算的框架”,它要能自動化地把算法佈置在多方計算系統上。
哦不,不僅要支持“多方安全計算”,還要能支持“聯邦學習”、“TEE”等等所有主流的隱私計算流派。
如果能做出這個框架,起碼有兩個好處:
其一,今後我們自己再佈置新的隱私計算系統就會輕鬆百倍。
其二,將來哪怕功力不如我們深厚的其他門派的小師傅,甚至是剛剛習武的“隱私計算新人”也能輕鬆部署一套隱私計算的任務,這才能讓隱私計算這門功夫在江湖上發揚光大!
“隱私計算的框架”如果真做出來,將來所有的隱私計算都可以用這個基礎設施,這可是要開宗立派的操作啊!大夥兒越想越熱血沸騰。
審思示意兄弟們冷靜:“大家要知道,自創一套功法可比贏下一局比武難多了。目測這個框架不是幾個月就能搞定的,依我看,咱們得隱居面壁,細細打磨,耐得住寂寞。做不成功,誓不出山,各位意下如何?”
大家群情激昂,紛紛表示甘願閉關修煉!
故事講到這兒,審思戛然而止。
四位大俠聽得津津有味,趕緊追問:“那後來,你這隱居面壁開宗立派是成了還是沒成?”
審思笑:“各位莫急,這套框架會串起各種隱私計算流派中的諸多底層技術,就像珍珠項鍊一樣。為了更好理解其中妙處,各位不妨坐定,先來欣賞一下其中幾顆耀眼的技術珍珠,隨後我再回來為大家分解如何?”
說時遲那時快,門後轉出一位風度翩翩的俠客,看著大夥兒,默默不語。
(五)閃耀的“技術珍珠”
話說,就在審思他們死磕“多方安全計算”應用的時候,被暫時放在旁邊的“TEE 技術”(就是那個“安全屋”),卻在另一群大牛的精心照料下,缺點被一個個填平,迎頭直追。
這位人狠話不多的閆守孟,就是大牛之一。

當年在很多人看來,TEE 只是一個預製的“安全屋”,拿來就用,不便修改,自然會有這樣那樣的不順手。
可在守孟的眼裡,TEE 卻像一個溫順的小馬,只要在它的基礎上加上合適的“馬鞍”,不僅可以讓它載人行走千里,還可以讓它更加安全。
守孟之所以如此自信,是因為他在加入螞蟻之前,恰恰供職於 Intel,確切地說是 Intel 諸多前沿技術的發源地——Intel 中國研究院。
“不用說,守孟大俠自然是對 Intel 芯片有著庖丁解牛般的理解!”段智興拱手。
“過獎過獎,略通一二。”守孟還禮。
說起來,守孟和一眾大俠恰恰曾在 Intel 的 TEE——也就是 SGX——的技術發展史上留下過濃墨重彩的一筆。
要想講清楚這“一筆”,還需要多解釋一下 SGX 的工作原理。
Intel 的 CPU 運行時,會讓不同的程序跑在不同的層級,總共分為 Ring0-Ring3 四層。
這麼多層是幹啥的呢?
低層級的程序有權調動更多的CPU能力,從而“管理”高層級的程序——例如一個在 Ring3 層跑的應用程序死機了,Ring0 層的操作系統就可以告訴 CPU:強制關閉它。
這就像盜夢空間一樣:每一層夢境都建立在下層夢境之上,下層的做夢者有辦法讓上層的夢醒來。

原理講完了,那 SGX 跑在哪一層呢?其實是跑在 Ring3 層。
這麼重要的進程,為啥要跑在 Ring3 層呢?
因為層級越靠近底層,可以調用的芯片功能就越多,程序代碼就越複雜;代碼越複雜,反而越容易出現漏洞和安全問題。
所以,Intel 就乾脆把 SGX 放在了最高層 Ring3,獨坐高樓,墨鏡一戴,誰也不愛。

可有一利就有一弊。放在 Ring3 層的 SGX,由於無法調用底層操作系統的能力,導致它的功能也很簡單,只能運行基礎語言——例如C++——寫的代碼。
可是,隱私計算的算法經常搞得很複雜,動不動就要用到人工智能算法,這些都是 Python 之類的高級語言寫的,根本跑不了。
於是,守孟就用了畢生功力,把各種語言依賴的庫都塞進了一個“操作系統”裡,這個操作系統運行在 Ring3 層,專供 SGX 來使用,它就叫Occlum。

為了天下蒼生,Occlum 剛一寫成,守孟他們就捐贈給了開源社區。
不用白不用,白用誰不用!Occlum 一下躥紅成了最流行的 SGX 開發組件,目前世界上跑在 intel SGX 裡的程序,有很大一部分都是依賴 Occlum 來運行的。
Occlum 大大降低了編碼門檻,所以順理成章地成為了 TEE 技術裡一顆耀眼的明珠。
搞定了 Occlum 之後,守孟和一眾老師傅又馬不停蹄地盯上了另一個難題,這也是之前審思碰到的問題——Intel 是一家外國公司,某些中國公司用它來做隱私計算,會不符合安全要求。。。
當時,守孟跟一眾大俠討論,覺得如果從底層芯片的角度看,這也不是什麼解不了的難題。
我們對 SGX 和這類可信執行環境的原理太熟悉了,如果在我們自己的芯片上把這個原理實現出來,就沒問題了嘛!
守孟說。
這個技術就叫 HyperEnclave。
簡單來說,HyperEnclave 的原理是醬的:
首先,在 CPU 之外,掛上一個名叫 Blade 的國產自研小芯片,這個芯片通過了國家相關部門的安全認證,它不幹別的,就負責存儲那把安全屋的鑰匙。

然後,在 CPU 上創建一個虛擬機,在這個虛擬機周圍建一道銅牆鐵壁,這就是用軟件模擬出來的“安全屋”。

所有的計算都發生在這個“虛擬安全屋”裡,需要自證清白的時候,就去旁邊的 Blade 芯片裡拿一下鑰匙。
如此一來,負責計算的芯片無論是 Intel 還是國產 CPU,就都沒有問題了。因為那個最重要的“信任根”——秘鑰——是存在另一塊安全可信的芯片上的。
就像下面這樣:

靠著 HyperEnclave 一套“組合拳法”,TEE 終於有機會自證清白,排除了“主觀作惡”的嫌疑。
這,又是 TEE 技術領域的另一顆璀璨珍珠。
總之,有了 Occlum 和 HyperEnclave 這樣的底層技術加持,某種程度上 TEE 就變成有了馬鞍的小馬,更好用也更安全了,快馬加鞭回到“螞蟻派”的主流隱私計算技術行列。
聽到這兒,四位大俠剛準備鼓掌,守孟示意大家不用急,還沒講完。
“在隱私計算領域,還有一個更神秘的技術流派,我們稱之為‘隱私計算的聖盃’。”守孟說。
“啊,居然還有絕學?!大俠快快請講!”黃藥師眼裡閃爍星星。
這就是“同態加密”,守孟說。
同態加密算法堪稱當今人類數學最前沿的成果之一。它的原理是啥呢?
眾所周知,數據加密之後,它的數值肯定會變化,兩個加密過後的數字無論做加法還是做乘法,結果肯定和明文時不同了,所以密文不能直接用於聯合計算。
同態加密的精髓,就是通過特殊的運算添加進去一種“數據噪聲”,使得你看上去是兩個加密的數,但做加法或乘法後,數據噪聲恰好可以被消除,從而得到和加密前的明文相同的運算結果。



這種操作非常神奇,可它的代價也是兇殘的:
同態加密的過程中因為要添加“噪聲”,通常會把數據的位數變多。原來只有3位的數字可能膨脹成1000位。
現實生活中,兩個銀行進行聯合風控,要想得出有用的結論,幾萬次的計算是基操。
想想看,這種計算量很容易就超過人類擁有的計算力總和,雖然理論上可以實現,現實中卻絕對沒戲。
所以,在當今的實踐中,沒辦法單獨用“同態加密”解決隱私計算問題——大多數情況下,“同態加密”可以作為“多方安全計算”或“聯邦學習”中的一個或幾個步驟,以增強它們的安全性。
可即便這樣,進行同態加密的資源消耗量還是很大。
於是,守孟他們研發了一種“加速芯片”,把同態加密算法“庖丁解牛”之後,找到裡面比較耗費資源的操作,然後做成“快捷方式”,輸入專用的芯片裡去跑——這樣就實現了加速效果。
有了這個芯片,同態加密的運算平均速度可以被加快1000倍左右。

“當然,原來同態加密算法比明文算法要慢100萬倍,即使加速了1000倍之後,還是比明文計算要慢1000倍,沒辦法大規模應用。。。”守孟坦白地說,“不過,習武之人貴在精進,我們仍在努力修煉。”
這“加速芯片”,就是隱私計算的又一顆明珠。
其實在我們螞蟻還有很多大俠,他們同樣做了很多提高效率的技術,這些技術明珠合在一起,才讓隱私計算的方方面面面都變得越來越快。某人不敢貪功,只是時間有限,沒辦法給大家一一介紹了。
守孟拱手施禮,淺鞠一躬。
四位大俠放下手裡的筆記,若有所思。
“學得越深,反而覺得各種技術都很不錯。眼看夕陽西下,恐怕得儘快選定方案!”幾個人決定再次去找掌門韋韜,請他做個建議。
“其實不必發愁。”韋韜露出藝高人膽大的微笑,“正好最近幾日,我也在思考這個問題,獨創了一個評價各種隱私計算技術的方法,不妨給各位參考!”
(六)雙劍合璧
韋韜伸出一個巴掌:“評價一個隱私計算,主要有5個方向的指標,分別是:安全、性能、可靠性、適用性、成本效能。”
當然,其中需要格外注意的就是前兩條。

第一,來看安全:
比如“TEE”,雖然它是一個安全屋,也有 HyperEnclave 這類技術保證芯片方不作惡,但誰都沒辦法排除一種可能,那就是“安全屋”本身存在未知漏洞,理論上,黑客有機會通過破解屋子把裡面的信息偷走。(雖然實際上可能性很低)
同理,之前說過的“聯邦學習”也存在信息熵洩漏的可能。在聯邦學習的基礎上把關鍵數據用加密方式保護起來,就改進成為“安全聯邦學習”。但即便如此,理論上也沒辦法完全消除“信息熵洩漏”的可能性。
所以,它們在安全等級裡大概可以排到2-3級。
“多方安全計算”由於有嚴格的數學證明,安全等級就能到4級。
第二,來看性能:
由於“聯邦學習”和“多方安全計算”都涉及到數據穿針引線一般穿梭,屬於“跨網運算”。所以它們對於網絡傳輸的要求高,也會存在性能的瓶頸。目前來看,只能計算百萬~千萬量級的數據。
可“TEE”就不同了。它不需要數據來回乾坤大挪移,悶頭在芯片裡計算就好了,屬於“同網運算”。所以它的計算規模就非常大,可以達到億級甚至十億級的數據。
“總結一下,不同的計算方案有不同的安全等級和不同的計算性能,幾位大俠可以參考以下表格。”韋韜說。

“等等,韋韜大俠,你這圖的右上角,性能又好,安全又高的技術是啥呢?”周伯通眼尖,指著那個“TEE+Crypto”說。
“哈哈哈,被你發現了!最近兩年,我們螞蟻眾大俠苦思冥想,世間是不是存在一個既安全又性能良好的隱私計算路線呢?於是我們把 ‘信人’和‘信天’的兩大流派雙劍合璧,獨創了一門‘可信秘態計算’,簡稱 TECC!”韋韜說。
請各位想象一下,你們把《九陰真經》傳送到安全屋後,不馬上進行計算,而是把《真經》再一頁頁拆開,用多方安全計算的模式在安全屋中計算。這會是什麼效果?
第一個效果:萬一整個系統中有一部分“安全屋”被歐陽鋒撬開,他拿到的也只是數據的碎片,無法還原出《九陰真經》的原文。
第二個效果:由於所有安全屋都放在一起,郭靖從這個道場走到那個道場不用花很長時間,信息傳輸的開銷也會大大減少,從而非常接近明文計算的效率。
韋韜解釋。
“挖!果然高明!可是。。。萬一歐陽鋒老賊把所有的安全屋都撬開呢?”段智興追問。
“如果全部撬開,數據自然有危險。如果擔心這個風險,我們可以採用不同的安全屋,例如 Intel 和 國產芯片混用,這樣,壞人歐陽鋒就必須能同時攻破各種芯片,才能拿到完整信息。放心,這些方案我們都已考慮周全。”韋韜從容地說。

“妙啊!如此說來,我們的《九陰真經》也可以用 TECC 來搞定啦?”黃藥師問。
“當然可以!隱私計算正有萬派歸宗之勢,各位不妨嘗試一下 TECC 這種融合技術!“韋韜說,“只不過,想為武林絕學《九陰真經》這麼複雜的數據體系從頭寫一套隱私計算程序,在工程上有很多編碼工作要做。。。”
“啊,對啦!”大俠們眼裡放光,“審思和一眾高手不是閉關研究了一套隱私計算框架,說是可以大大加快各種隱私計算流派代碼開發的速度麼?不知他們進展如何啊?”
正在此時,大門被推開,審思重新回到了大家面前,似有滿面霜塵,眼神如穿洞邃。
(七)“隱語”出世
審思緩緩講出了2019年閉關以後的故事。
這群大俠欲練的神功,究極目標說白了就是“兩個高效”:
隨便什麼算法,都可以高效佈置到計算單元上;
各種主流算法,都能夠高效運行。
首先,說說算法的高效佈置。
“這個佈置的過程,其實就是層層翻譯。”審思說。
舉個栗子:
如果用人類的高級語言給機器人下指令,可能會說:幫我把紅酒拿過來。
可機器人不懂這個指令,需要用程序把這句話翻譯成:你走到桌子前,用機械臂夾住酒瓶,舉起來,走回主人身邊,把機械臂平伸到他面前。
可是,機器人的各個零件仍舊不懂這個指令,需要進一步給它們翻譯:輪子向後轉動180度,前行3米,停靠在距離桌子20釐米處;視覺系統識別杯子的精確座標;機械臂提升至距離桌面5釐米,向前觸碰到水杯停止,前端施加300牛頓的力夾住酒瓶;車輪反向轉動180度,前行3米;視覺系統識別主人輪廓和座標;機械臂升至主人上臂下緣高度,待命。

你看,剛才這些翻譯是手動“裸寫”的,看上去非常流暢。可是,審思他們要做的恰恰是把這種翻譯讓機器自動完成,難度可想而知。
最開始,機器自動翻譯的指令可能會出錯;
到後來錯誤沒有了,但會有很多冗餘動作,執行效率非常低;
再後來,機器翻譯指令的效率雖然和人相比還有距離,但已經漸漸能看到人類的背影了。
接下來,再說讓算法高效運行。
提高運行效率有很多技巧,這裡略說一二。
比如,不同的隱私計算技術路線使用計算設備的姿勢是不同的,這就導致在過去,如果一個隱私計算任務既用到“多方安全計算”,又用到“同態加密”,就得準備兩套計算設備。
但審思他們用多年的功力把這些設備運行時的基本動作給抽象出來,變成了一個通用計算單元。這就是 SPU。有事兒您和 SPU 說,SPU 再來調度計算芯片就行。
這麼一來,老師傅不用管下面運行的是什麼設備,只要對著 SPU 寫代碼,就肯定能運行。

再比如,跨網的隱私計算路線——例如“多方安全計算”——需要大量的網絡傳輸。
審思他們就聯合隔壁的“雙子座實驗室”,搞出了一個“獵豹協議”,在兩方聯合計算的情況下,可以大大提高數據傳輸的速率。
2021年,眼看代碼越堆越高,功法越來越完善,此時再低調,實力已經不允許,一眾大俠決定出山。他們給這一套神功起了個名字——隱語。
審思拿出一張巨大的圖,隱語像一根隱形的藍線,穿起了5層珍珠。
從上到下分別是:
1、用戶界面;
2、隱私算法(各種隱私算法流派);
3、混合調度(用來把任務分配並且“翻譯”給計算單元);
4、邏輯層計算設備(包括 SPU 和 Occlum 等具體承接計算的模塊);
5、物理層計算資源(服務器、網絡之類)。

因為兼容了所有主流隱私計算技術,所以,世間絕大多數保護隱私的計算場景都可以用隱語這個框架來快速搭建。
這樣一來,修煉“隱私計算”的門檻就徹底降低了——會寫明文算法的大俠,只需要簡單學習“隱語”,就四捨五入可以寫隱私計算的算法了。
“未來如果出現新的技術路線,我們也能第一時間兼容進去。”審思拍胸脯。
四位大俠鼓掌:“太棒了!我們聯合學習《九陰真經》就用隱語框架和 TECC 了!只是,你們這套技術要賣多少銀兩?你也知道我們習武之人囊中羞。。。”
“哈哈哈,莫慌。”韋韜大笑,“就在2022年,我們已經把‘隱語’開源出來了,TECC 也正在開源的路上,所有人都可以免費下載。”
“啊?!辛辛苦苦修煉的技術,卻要免費傳授世人,這是何道理?”黃藥師皺眉。
“此言差矣。敢問諸位大俠,你們的武林紛爭是如何緣起的呢?人人爭當武林霸主,才會把神功隱匿,不與大家傳習。若是心繫家國,把各家武學精華都拿出來交予天下習武之人修習,豈不利國利民?”韋韜說。
“諸位有所不知,我們螞蟻幾年前就把開源定為了集團戰略,大家一致同意,越是獨門的好技術,越要分享給世人啊!這樣不僅不會失去優勢,反而能贏得武林的敬重啊!”
韋韜一番話,說得幾位大俠臉上青一陣紫一陣。
“果然是俠之大者,為國為民啊!受教了。請問,我們要去哪裡下載?”段智興問。
“Github。”韋韜說。
“什麼是 Gayhub?”周伯通問。
“不不不,Gayhub 是同性交友網站。。。”史·億萬懦夫·中趕緊解釋。
“那 Github 是啥?”
“呃、、、是另一個同性交友網站。”史·億萬懦夫·中說。
(八)尾聲
幾位大俠下載好隱語框架的代碼,編寫了一套融合了各種隱私計算技術的《九陰真經》訓練流程,郭靖向前輩深施一禮,轉身走進屋子,開始閉關試煉。
七七四十九天後,神功已成。

“正版的《九陰真經》練起來果然全身舒爽!我現在覺得渾身有虎豹之力,幾位前輩要不要和我過幾招?”郭靖說。
果然,幾個大俠已經全然不是郭靖的對手,被打得滿地找牙。
大事已了,大俠們對螞蟻諸位師傅一躬到地:“萬謝!”
“幾位螞蟻大俠功法了得,要不要隨我們到桃花島遊覽一番?”黃藥師邀請。
“恐怕不行,如今的世界,隱私計算方興未艾。此時此刻,只在金融風控、廣告營銷還有醫療領域有所嘗試,但這距離世人的期望還有很遠啊!未來幾年,隱私計算技術應該大規模向生產製造、交通出行、個性服務等等千行百業拓展。我們還得留在此地,為這個圖景繼續奮鬥啊!”審思推辭。
“既然如此,老夫便不多讓。”黃藥師轉向史·億萬懦夫·中:“可這位大俠的恩情不得不謝!我有一個小女,名叫蓉兒,生得伶俐,許配給你,如何?”
“多謝好意,鄙人已有妻室。”懦夫俠說。
“啊,那娶回家做妾也好。”黃藥師說。
“不行,在我們這兒犯法,會被官兵抓。。。”懦夫俠說。
“有九陰神功在此護佑,料也無妨。”段智興插嘴。
“九陰神功打不過機關槍啊。。。”懦夫俠苦笑。
“機關槍?又是何功法?可以修煉嗎?”老頑童問。
懦夫俠說:“機關槍不是練的,是造出來的。遙想當年,要是大宋有機關槍,也不至於最終蒙古鐵騎揮師攻宋,崖山幼帝殉國。後世大清要是有機關槍,也不至於國門洞開,招致馬關之辱,庚子之殤。。。不好意思劇透了,懇請大俠們記住,科學技術永遠是第一生產力,落後就會捱打呀!”
黃藥師拱手:“記下了!!”
此時,郭靖舉手:“前輩,小生還是20年的母胎單身,你看,要不要考慮我做女婿?”
黃藥師捋捋鬍子:“嗯,倒是可以考慮。”
夕陽下,錢塘江煙波浩渺,眾俠客折柳分別,各自啟程。
青山不改,綠水常東,他日相見,再續前緣。

歡迎加入深潮 TechFlow 官方社群
Telegram 訂閱群:https://t.me/TechFlowDaily
Twitter 官方帳號:https://x.com/TechFlowPost
Twitter 英文帳號:https://x.com/BlockFlow_News














