可信計算賽道揭秘
可信計算的賽題是對單細胞轉(zhuǎn)錄組學數(shù)據(jù)進行安全分類,目標是為了檢測可信執(zhí)行環(huán)境實施并行訓練的可擴展性:要求使用多個飛地(Enclave)來對單細胞數(shù)據(jù)進行分類訓練,并且為了模擬云中的彈性計算環(huán)境,比賽規(guī)定每個飛地最多使用8個線程來進行訓練,最后按照分類準確率和耗時對各參賽隊伍進行排名;同時要求在分類過程中,任何輸入、中間和輸出數(shù)據(jù)都不能泄露。本次比賽主要考察可信計算系統(tǒng)的設(shè)計與優(yōu)化水平。
為此,Jeddak Team對現(xiàn)有主流分類算法做了調(diào)研,最終選取DPMM算法因其優(yōu)秀的分類正確性和計算效率;同時,創(chuàng)新性地提出了一系列方法手段來提升分類的性能,例如:
· 加解密階段使用共享內(nèi)存。在非可信環(huán)境加密數(shù)據(jù)時,將結(jié)果直接落到共享內(nèi)存中,這樣飛地里的線程便可以直接讀取加密數(shù)據(jù)并解密,節(jié)省了一次OCALL操作和一次內(nèi)存復制操作。
· 動態(tài)加載飛地。分配給飛地的可信內(nèi)存越大,加載飛地的效率就會越低,于是根據(jù)數(shù)據(jù)集的大小預估所需可信內(nèi)存的大小,然后從事先生成的、不同大小可信內(nèi)存的二進制文件中選取最合適者,實現(xiàn)動態(tài)加載飛地,從而減少加載時間。
· 線程池的使用。在飛地里面的計算任務(wù)會被寫到一個任務(wù)隊列,線程池的線程通過ECALL進入飛地后,便會一直監(jiān)聽任務(wù)隊列:有任務(wù)則取出來執(zhí)行、直到算法結(jié)束才將線程銷毀。這樣在分類時,便不會有可信環(huán)境與非可信環(huán)境的轉(zhuǎn)換,同時避免了頻繁地創(chuàng)建線程。
· 設(shè)計收斂判斷邏輯。DPMM算法只支持固定輪數(shù)的訓練,在一些收斂特別快的數(shù)據(jù)集上會導致性能變差,于是增加了收斂判斷邏輯,一旦算法判斷收斂便將任務(wù)提前終止。
根據(jù)主辦方的評估,Jeddak Team的方案在僅使用2個飛地的情況下,耗時8.8秒就完成18900個樣本分類,其ARI也在所有參賽隊伍中保持了較高水平。此外,需要特別指出的是,Jeddak方案在更大樣本規(guī)模(200k)的測試條件下,依然可以保證極高的性能和準確率。
憑借著上述創(chuàng)新,最終在該賽道的18支參賽隊伍中獲得了第2名的好成績。與螞蟻鏈、阿里安全雙子座實驗室、騰訊Angel PowerFL共同入選Best-Performing Teams。
區(qū)塊鏈賽道揭秘
區(qū)塊鏈賽道的題目和要求是,使用Ethereum Solidity智能合約語言設(shè)計出高效的數(shù)據(jù)結(jié)構(gòu)和算法,來存儲和檢索生物醫(yī)學證書。證書在插入時被劃分為多個15K的分塊數(shù)據(jù),而這些數(shù)據(jù)和對應的元數(shù)據(jù)都要上鏈;同時,設(shè)置有兩個查詢函數(shù),分別要求根據(jù)查詢條件來返回滿足的元數(shù)據(jù)信息和最近的證書內(nèi)容。最后會評估查詢結(jié)果的正確性,以及插入操作和兩個查詢函數(shù)的性能。
為此,Jeddak Team給出了一系列優(yōu)化設(shè)計和實現(xiàn)。例如,在插入證書元數(shù)據(jù)和證書內(nèi)容時,均采用哈希表存儲上鏈;另外,為了快速查詢而使用了額外4個mapping(typeFiles,courseFiles,unameFiles、以及typeCourseFiles),用于存儲查詢字段到證書文件名列表的映射。
查詢優(yōu)化的一個創(chuàng)新舉措是:根據(jù)證書數(shù)據(jù)分布,優(yōu)先使用最具標識性的字段進行過濾,從而將多通配符條件下可能的匹配證書鎖定在一個較小范圍,提高了查詢匹配效率。此外,對于給定gaslimit條件下組裝恢復大文件的挑戰(zhàn),Jeddak Team采用分組拼接、以取替迭代拼接的方式,解決了因內(nèi)存拷貝次數(shù)過多而導致gas使用超限的問題。
根據(jù)主辦方的評估,Jeddak Team方案的平均插入時間和兩類查詢的執(zhí)行時間均十分高效。最終在該賽道34支參賽隊伍中獲得了第3名的好成績。與耶魯大學、螞蟻鏈共同入選Best-Performing Teams。
關(guān)于本次比賽的更多詳細信息以及對應參賽作品的介紹視頻和幻燈片材料,請大家參考賽事官網(wǎng): http://www.humangenomeprivacy.org/2022/。
Jeddak數(shù)據(jù)安全沙箱
此次Jeddak Team參賽所使用的核心技術(shù)均源于自研的Jeddak數(shù)據(jù)安全沙箱,是構(gòu)建在可信執(zhí)行環(huán)境和區(qū)塊鏈基礎(chǔ)上的數(shù)據(jù)計算平臺。適用于多方數(shù)據(jù)融合的隱私計算應用場景:既能夠聯(lián)合多個數(shù)據(jù)提供方進行協(xié)同計算、打通“數(shù)據(jù)孤島”發(fā)揮數(shù)據(jù)價值;又能夠滿足數(shù)據(jù)“可用不可見”的安全合規(guī)要求。從而實現(xiàn)了計算過程中數(shù)據(jù)的隱私保護、審計溯源和防篡改,為數(shù)據(jù)的可信應用及其互聯(lián)互通提供了行之有效的解決方案。
目前,Jeddak數(shù)據(jù)安全沙箱已通過火山引擎對外提供服務(wù),包括數(shù)據(jù)復雜處理、聯(lián)合分析、聯(lián)合建模與預測,以及隱私集合求交PSI、匿蹤查詢PIR、機密數(shù)據(jù)庫查詢SQL等功能應用。在云端代理計算、數(shù)據(jù)合規(guī)計算、分布式計算等多類場景模式下,為用戶挖掘和創(chuàng)造更多數(shù)據(jù)價值。