區(qū)塊鏈技術(shù) + 英特爾 SGX,構(gòu)建可信數(shù)據(jù)流通環(huán)境
區(qū)塊鏈技術(shù)因其獨特的密碼學(xué)機制和共識機制,應(yīng)用于數(shù)據(jù)的聲明發(fā)布、授權(quán)使用等場景,解決節(jié)點間互不信任的問題。但區(qū)塊鏈去中心化的共識架構(gòu),也為數(shù)據(jù)流通中的數(shù)據(jù)隱私保護、復(fù)雜數(shù)據(jù)處理等環(huán)節(jié)帶來了一些問題。區(qū)塊鏈上所有數(shù)據(jù)數(shù)據(jù)都是公開的,無法存儲和計算敏感數(shù)據(jù)(如金融交易、個人敏感信息等),區(qū)塊鏈底層資源的限制,也決定了其無法應(yīng)對復(fù)雜的應(yīng)用場景。
為此,我們引入了與區(qū)塊鏈相連接的英特爾 SGX 可信計算環(huán)境,為智能合約提供了區(qū)塊鏈所不能提供的機密性,可拓展的計算節(jié)點也解決了區(qū)塊鏈本身無法應(yīng)對復(fù)雜應(yīng)用場景的問題,在保留區(qū)塊鏈去中心化、用戶互信的基礎(chǔ)之上,通過可信硬件執(zhí)行機密性高、需要相對復(fù)雜計算能力的程序,并通過區(qū)塊鏈對執(zhí)行結(jié)果進行記錄和驗證,實現(xiàn)可追溯的特性。
一、區(qū)塊鏈及智能合約:解決數(shù)據(jù)流通中相互信任問題
區(qū)塊鏈技術(shù)因其獨特的密碼學(xué)機制和共識機制可實現(xiàn)虛擬資產(chǎn)的確權(quán)、授權(quán)、停權(quán)。在數(shù)據(jù)流通領(lǐng)域,則可應(yīng)用于數(shù)據(jù)的聲明發(fā)布、授權(quán)使用等場景。
數(shù)據(jù)擁有者通過智能合約,指明數(shù)據(jù)類型、數(shù)據(jù)標簽等信息,并制定使用者身份信息,智能合約發(fā)布后將按約定自動執(zhí)行,并受所有區(qū)塊鏈參與者監(jiān)督。基于區(qū)塊鏈多副本分布式賬本的特性,以及合約執(zhí)行和記錄添加所依賴的公開共識機制,節(jié)點的任何行為都是可預(yù)期的,所有節(jié)點之間無需信任也可以進行交互。
區(qū)塊鏈在數(shù)據(jù)流通場景中,具有以下優(yōu)勢:不緩存數(shù)據(jù)、保護數(shù)據(jù)版權(quán)、可追溯數(shù)據(jù)來源且保證不會被篡改、有效遏制造假等。其去中心化的共識架構(gòu)有效解決了數(shù)據(jù)交換和流通環(huán)節(jié)中數(shù)據(jù)歸屬不明的痛點。
但區(qū)塊鏈去中心化的共識架構(gòu),也為數(shù)據(jù)流通中的數(shù)據(jù)隱私保護、復(fù)雜數(shù)據(jù)處理等環(huán)節(jié)帶來了一些問題。為了驗證鏈上交易的合法性和時序性,區(qū)塊鏈上所有數(shù)據(jù)數(shù)據(jù)都是公開的,無法存儲和計算敏感數(shù)據(jù)(如金融交易、個人敏感信息等)。區(qū)塊鏈本身對計算能力、存儲容量和交易吞吐量方面的限制也對以智能合約形式進行的鏈上數(shù)據(jù)流通、數(shù)據(jù)交換產(chǎn)生了阻礙。 以目前使用者最多的分布式智能合約平臺以太坊為例,僅以簡單的應(yīng)用(如令牌)而言,其計算成本就超過普通的云計算平臺 8 個數(shù)量級,智能合約中交互應(yīng)用的復(fù)雜性受到高度限制。 沒有在關(guān)鍵計算性能和機密保護性上做出改進,智能合約可能無法大規(guī)模被應(yīng)用于實際場景中。
二、英特爾 SGX 模塊:提供可信執(zhí)行環(huán)境(TEE)
目前研究人員已就這些挑戰(zhàn),提出了零知識證明、安全多方計算等解決方案。但這些方法通常使用范圍有限,僅限于加密貨幣應(yīng)用程序和一些簡單的智能合約應(yīng)用場景,而安全多方計算中又涉及到秘密共享等復(fù)雜密碼學(xué)問題,并沒有很好地解決智能合約應(yīng)用復(fù)雜度受限的問題。而包括 Intel SGX(Software Guard eXtensions) 在內(nèi)的可信硬件,為解決機密保護和計算復(fù)雜性的問題提供了通用的高性能解決方案。
SGX 提供了一個被稱為「飛地(enclave)」的可信執(zhí)行環(huán)境(TEE,Trusted Execution Environment)。它可以防止其他應(yīng)用程序,包括操作系統(tǒng)、BIOS 系統(tǒng)等窺探和篡改受保護應(yīng)用程序的狀態(tài)及可信環(huán)境內(nèi)的數(shù)據(jù)。同時,SGX 引入了引入 Attestation 鑒證機制,在芯片中封裝了遠程驗證機制邏輯,由 Intel 或其代理響應(yīng)請求,對程序及其結(jié)果是否可信進行鑒證。
SGX 及與之相似的可信硬件為智能合約數(shù)據(jù)提供了區(qū)塊鏈所不能提供的機密性,而通過鏈下可信計算環(huán)境,SGX 也解決了智能合約和區(qū)塊鏈無法應(yīng)對復(fù)雜計算場景的問題。
通過 SGX 等可信硬件與區(qū)塊鏈的結(jié)合,能夠在保留區(qū)塊鏈去中心化、用戶互信的基礎(chǔ)之上,通過可信硬件執(zhí)行機密性高、需要相對復(fù)雜計算能力的程序,并通過區(qū)塊鏈對執(zhí)行結(jié)果進行記錄和驗證,實現(xiàn)可追溯的特性。
三、構(gòu)建可信區(qū)塊鏈,提供可信數(shù)據(jù)流通環(huán)境
可信區(qū)塊鏈將基礎(chǔ)區(qū)塊鏈系統(tǒng)與 SGX 等可信執(zhí)行環(huán)境相結(jié)合。在數(shù)據(jù)流通場景之下,數(shù)據(jù)源方、數(shù)據(jù)需求方、數(shù)據(jù)流通平臺方、監(jiān)管方共通參與到區(qū)塊鏈網(wǎng)絡(luò)中,并由參與方在某些節(jié)點上(數(shù)據(jù)源節(jié)點或平臺方節(jié)點)搭建與區(qū)塊鏈網(wǎng)絡(luò)相連接的分布式鏈下數(shù)據(jù)存儲網(wǎng)絡(luò)及 SGX 計算客戶端。
在實際操作中,由數(shù)據(jù)源方、需求方、流通平臺方、監(jiān)管方共同簽署數(shù)據(jù)請求智能合約,合約成立后,即自動在計算客戶端中創(chuàng)建一個 SGX enclave,根據(jù)合約中所指明的數(shù)據(jù)類型、地址、需求、分析算法,提取加密后數(shù)據(jù),在 enclave 可信環(huán)境中對數(shù)據(jù)進行解密,并依照分析算法對數(shù)據(jù)進行分析處理。處理完成后,原始數(shù)據(jù)由 enclave 銷毀,中間結(jié)果寫回到區(qū)塊鏈上。
可信區(qū)塊鏈依靠使用了有可信計算環(huán)境的計算節(jié)點來執(zhí)行智能合約中指明的計算,確保了原始數(shù)據(jù)及計算過程的安全性、隱秘性,并通過區(qū)塊鏈的可驗證、可追溯機制對執(zhí)行結(jié)果進行跟蹤。SGX 可信計算環(huán)境與區(qū)塊鏈底層架構(gòu)相互獨立,對區(qū)塊鏈底層共識機制、選型等無特殊要求,只要求區(qū)塊鏈能夠節(jié)點對 SGX 進行遠程認證,因此可信區(qū)塊鏈能夠根據(jù)性能和安全需求獨立擴展計算節(jié)點和區(qū)塊鏈節(jié)點。