在坊間,對于本科、碩士、博士都出自清華的人有一個稱呼,叫“三清團”,他們是招聘市場上炙手可熱的天團。在支付寶的機密計算團隊,也有這樣一位同學,他就是田洪亮。今天,我們就來聊聊他的故事。
多重身份,是頂尖Coder也是Rust布道師
2019年10月24日,支付寶大樓的一個會場里,十名選手面對電腦,或運指如飛,或苦苦思索,空氣里彌漫著緊張的氣氛。
原來,這是支付寶“超級MA力大賽”的決賽現場。
每年的10月24日是支付寶的“代碼節”, “You are your code.” 以匠心精神對待coding,就是支付寶代碼文化的一部分。2019年的代碼節,支付寶在公司內部舉辦了一個最強coder大賽,從全公司數萬名研發人員海選出100名參賽者,經過多輪PK,最后10名實力強勁的選手進入決賽。
田洪亮正是十名選手之一,說起這個,還有一段小插曲。
在支付寶Java技術棧是主流,而他則是Rust語言的忠實擁躉,雖然公司允許他用Rust開展工作,但知音難覓,有點小郁悶。
Rust是Mozilla公司發布的一種系統編程語言,同時具備高性能和易讀性,同時又注重安全,程序bug少,被廣泛認為是C++語言的繼任者。在田洪亮看來,這么好的語言卻沒有人討論和嘗試,實在是太遺憾了。
不過很快,他的機會來了,正是“超級MA力大賽”。
100名參賽者里面只有他一個人用Rust參加比賽,其他人要么用Java要么用Python,從性能上來說,要比Rust慢很多。這一下他相當于開掛,當然是大殺特殺。

(中間者為田洪亮)
但是,正是因為這個優勢,讓他有些輕敵,沒有優化算法性能,在決賽中與冠軍失之交臂,最終屈居亞軍。這也說明支付寶內部牛人輩出,并不是只有他一個人有絕活。
不過,Rust的名聲卻在公司內打響了,有不少人對Rust表示興趣。趁熱打鐵,田洪亮在公司內分享了關于Rust的公開課,還成為阿里云的Rust布道師。

(田洪亮正在向大家分享Rust)
“國內大學CS的科班教育一直都缺失一個重要的環節,即對工程能力的培養。”本科碩士博士都就讀于清華計算機系的田洪亮,對這句話當然有發言權。
大學強調的是算法競賽(比如ACM)和科研能力(發paper),但公司需要的是能寫架構合理、實現健壯、代碼可讀的合格工程師。在賽后的分享中,他推薦了《可讀代碼的藝術》以及《代碼大全》。前者培養對好代碼的品味,后者指導如何做好的軟件設計。
至于代碼為什么能寫的這么好,要從他所研究的領域說起。
五年如一日,專注機密計算
在博士期間,田洪亮研究的方向是操作系統領域,這一領域又被稱為計算機科學皇冠上的明珠,我們耳熟能詳的Linux和它的創始人Linus的傳奇經歷,激勵著人們進入這一領域。
系統領域的研究不僅注重理論功底,還重視編程動手能力。想出了一個新的idea,還要把它實現出來,跑一跑benchmark看和之前有多少提升,這樣才會得到業界的認可,這也正是田洪亮代碼基本功扎實的原因。
不過,操作系統領域已經發展多年,相關的理論和實踐都很成熟,想要找到創新的突破口并不容易,田洪亮把目光投到了更底層的硬件上。
“新的硬件能夠帶來新的能力,但要發揮這種能力需要系統軟件與之配合,然后上層應用就可以通過操作系統利用這個能力。”田洪亮解釋道。從硬件到系統再到應用,這就是計算機技術的發展之道。
經過一番探索,他很快鎖定了Intel x86 CPU芯片上的一個小小的指令集擴展Software Guard Extensions,簡稱SGX。
SGX由英特爾于2013年提出,是為了解決軟件運行過程中的安全問題。通常,一個應用程序在運行過程中,需要信任硬件,比如CPU、內存都是沒有問題的;還需要信任操作系統,程序所調用的系統接口沒有被篡改;同時還需要相信系統里沒有惡意的特權程序在一旁虎視眈眈。如果需要用到網絡,那么要操心的安全問題就更多了。
在過去,為了解決這些基礎安全問題,除了安全軟件外,還發展出了可信執行環境技術TEE
,CPU作為計算機的心臟,在這項技術中扮演著重要角色。SGX正是英特爾的TEE實現,極大的縮小了需要信任的范圍,只需要信任CPU,甚至是CPU上的一小塊地方,這個地方被形象的稱為“飛地”,英文叫Enclave.

(SGX Enclave原理圖)
Enclave可以鎖定一段內存,將需要保護的數據放到受保護內存里進行計算,這樣的技術叫做機密計算。
SGX和機密計算的出現,將系統安全帶到了一個新的高度,對于云計算更是有非凡的意義——因為云上運行著不同歸屬的系統和程序,無法確認它們是否惡意,而一旦云的安全被攻破,損失將無法承受。
在了解了一番SGX之后,田洪亮很快就意識到這項技術擁有改變世界的潛力,于是決定研究的方向轉到機密計算上,沒想到這一轉,就是五年時間。
當時SGX剛出現不久,還停留在理論實驗階段,洪亮對其進行了一番理論修補和實驗研究,很快臨近畢業,他干脆加入了英特爾,在這個SGX發源的地方繼續研究。
時間轉瞬即過,2017年英特爾第六代Skylake架構的CPU發布,其中內置了SGX技術,SGX終于正式走向大眾。
不過,這樣平靜的生活某天突然被打破,已經加入支付寶的前主管閆守孟有一天突然找到他,伸出了橄欖枝:“支付寶正在落地機密計算,急需人才,不來產業界看一看嗎?”
讀書時的田洪亮,曾以為技術是創新驅動的;工作后,才發現技術是需求驅動的。支付寶正有著機密計算技術創新的土壤。金融行業極為重視數據安全,支付寶在向云原生架構遷移的過程中,需要保障整個系統和數據絕對不能出問題,而機密計算正符合相關的需求。另外,支付寶的另一個技術投入方向是區塊鏈,區塊鏈也有機密計算的需求。
對于工程師和研究者來說,有機會親眼看著自己的勞動成果惠及大眾,當然是很有吸引力的,而隨后閆守孟的主管,支付寶操作系統領域負責人何征宇和他的談話,讓他下定了決心:“機密計算未來一定會是云計算的主流技術,而我們將是這一潮流的開創者!”
“連續創業”,帶領學弟沖刺頂會論文
在清華的時候,田洪亮還參加過不少創業訓練營,也讀過不少相關書籍,其中《精益創業》對他的影響最大。
書中提到,創業最重要的就是要減少不確定性,用最少的代價去不斷的探索產品的可行性,也就是所謂的“最小可行產品”。田洪亮將這套理論用到了他參與的一個個項目中。
由于他一直從事前沿的技術創新,而創新的方向是非常重要的,如果方向錯誤,很可能花了很大力氣,最后還是一無所獲。
田洪亮將自己的項目視為創業,像打造產品一樣,在不斷完善項目的同時,他也在不斷的與外部互動,獲取反饋。
他近幾年的方向是Enclave libOS,但并不是一次就完工,在英特爾他有了這個想法后,發了一篇小論文,在和業內同行交流中,獲得了肯定的反饋。
于是,他開始編寫具體代碼,在代碼框架雛形搭建好之后,在征得公司同意后將之開源,看是否有類似想法的人。
在加入支付寶后,他需要能在生產環境中運行的代碼,同時也需要在學術界完整的闡述他的理念和相關實現,這次,他找到了清華的學弟。
在找學弟的過程中,最讓他感動的就是母校的支持。在和陳康、陳渝兩位教授聊過之后,教授們很支持他的想法,將他的課題加入到本科生的畢設選題中,最終吸引了三位學弟來參與。
經過幾個月的緊張開發,他們終于如期完成了項目,也就是Occlum,并且將成果投遞到ASPLOS會議,結果高分錄用!
ASPLOS大會全稱是ACM編程語言和操作系統大會,是計算機系統領域的頂級國際會議,注重體系結構、編程語言、和操作系統之間的交叉。大會無論在學術還是工業界都具有巨大的影響力,也一直屬于中國計算機學會(CCF)推薦的A類國際會議。ASPLOS 論文遴選非常嚴格,錄用率長期維持在20%以下。
論文所介紹的Occlum,也就是Enclave libOS,可以讓應用直接管理和調用硬件資源,而不需要對應用進行大規模的調整和修改,從而解決了之前SGX落地的最大難點,因為大量的存量應用很難進行這樣的修改。
對于新應用的開發,Occlum也可以大幅降低開發成本。以一個最簡單的 Hello World 為例。使用 Intel SGX SDK 開發的Hello World工程包含 10 個左右的文件,300 行左右的代碼。相比之下,Occlum 不增加任何額外的代碼,只需三行命令即可將 Linux 版的 Hello World 程序運行于 SGX enclave 中。

(3 行命令讓代碼在 Enclave 里跑起來)
展望未來,機密計算前景廣闊
Occlum已經加入到支付寶打造的機密計算中間件SOFAEnclave當中,會在運行XGBoost、TensorFlow等程序時保護用戶的數據。并且Occlum已經對外開源:
https://github.com/occlum/occlum
SOFAEnclave則和其它安全技術一起,成為支付寶構建“可信原生”的基石。
隨著企業對于機密計算的嘗試,它也逐漸引起了業界的重視,在研究機構Gartner發布的2019年云安全技術成熟度曲線報告中,首次將機密計算列入其中,并作為云安全技術模型中最初始的一環出現,說明了機密計算在整個云安全鏈路中起到的根本性作用。阿里云等云廠商也推出了自己的機密計算服務。

學術界也給予了機密計算極高的評價,來自加州伯克利大學的Dawn Song教授表示:“保守估計,10年內絕大多數的芯片都將支持機密計算能力。”

支付寶的機密計算也正處于大規模落地前夕,田洪亮和他的小伙伴們急需各類人才加入,歡迎應屆同學踴躍投遞簡歷,和大牛一起,攻關這個世界前沿課題!
加入支付寶機密計算
團隊介紹:
螞蟻金服安全計算團隊,致力于打造金融級的可信基礎設施,研發獨創性的安全底層技術,為了億萬客戶和海量數據保駕護航。
* 這是一個成立不久的團隊,因此你有機會隨團隊一同快速成長,在項目中扮演重要角色;
* 這是一個有戰斗力的集體,技術骨干均畢業于國內外頂尖高校;
* 這是一個原創技術的搖籃,團隊成員曾多次在頂級學術會議上發表學術論文。
如果你熱衷系統軟件,或熟悉底層技術,或深諳安全之道,歡迎加入我們!
崗位要求:
如果你將于2020.11~2021.10期間畢業,且滿足以下條件,請盡快聯系我們。
* 大學本科或以上學歷,計算機或相關專業;
* 熟悉如下編程語言語言中的至少一種:C/C++、Java、Go和Rust;
* 熟悉如下技術領域中的至少一種:操作系統、容器、虛擬化、編譯器、體系結構、程序分析、形式化驗證、安全攻防、可信計算等;
* 現有研究成果優秀者優先。
工作地點:
北京、上海、和杭州。
簡歷投遞:
shoumeng.ysm@antfin.com
特別提醒:本網內容轉載自其他媒體,目的在于傳遞更多信息,并不代表本網贊同其觀點。其原創性以及文中陳述文字和內容未經本站證實,對本文以及其中全部或者部分內容、文字的真實性、完整性、及時性本站不作任何保證或承諾,并請自行核實相關內容。本站不承擔此類作品侵權行為的直接責任及連帶責任。如若本網有任何內容侵犯您的權益,請及時聯系我們,本站將會在24小時內處理完畢。