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