TEEX是一個安全的分布式計算平臺,是基于現(xiàn)有區(qū)塊鏈系統(tǒng)的第二層解決方案。TEEX為用戶、算力提供方、服務(wù)提供方提供了一套完備的激勵模型,建立了一個去中心化的、靈活易用的計算資源共享市場。
解耦和任務(wù)分發(fā)
不同于現(xiàn)有公鏈系統(tǒng)使用冗余計算和全局共識機制,TEEX采用基于可信執(zhí)行環(huán)境的可驗證計算策略來保證執(zhí)行的完整性和不可篡改性。TEEX將執(zhí)行和共識層完全解耦開,并且引入了任務(wù)分發(fā)策略,意味著計算者可以同時為不同的計算任務(wù)提供算力,保證了參與的計算者越多,TEEX網(wǎng)絡(luò)可以提供的吞吐量越高。
基于TEE的隱私保護
TEEX將任務(wù)執(zhí)行下放到鏈下的可行執(zhí)行環(huán)境(例如intel-SGX)中,從而通過硬件保證執(zhí)行過程中數(shù)據(jù)和控制流的隱私性。另外,可行執(zhí)行環(huán)境保證運行在其中的程序可以被遠程驗證,并且允許建立安全通道進行數(shù)據(jù)的加密傳輸。在TEEX網(wǎng)絡(luò)中,每一個計算者都需要擁有支持可信執(zhí)行環(huán)境的計算機,用戶需要在發(fā)送隱私數(shù)據(jù)之前鑒定計算者的身份。
原生執(zhí)行環(huán)境
TEEX提供了一個鏈下執(zhí)行環(huán)境,沒有額外的運行時開銷,可以支持接近原生的性能。由于執(zhí)行和共識的解耦,所以執(zhí)行過程可以立即返回,不需要等待鏈上冗長的確認時間。此外,我們支持分布式計算群組,以此提供優(yōu)于單點計算的性能。另外,我們提供基于TEE的通用開發(fā)工具和接近原生的執(zhí)行環(huán)境,并提供完備的用戶庫。用戶可以利用C/C++進行開發(fā)程序,并運行在安全環(huán)境中,就好像在原生Linux操作系統(tǒng)下一樣。
軟硬件兼顧的設(shè)計方案
在可行執(zhí)行環(huán)境的基礎(chǔ)上,我們利用了密碼學(xué)機制實現(xiàn)了數(shù)據(jù)和執(zhí)行流的可驗證性,從而保證了執(zhí)行的完整性。在TEEX網(wǎng)絡(luò)中,敏感數(shù)據(jù)只可能在可信環(huán)境中被解密,同時秘鑰被維護在TEE-DS(基于可信執(zhí)行環(huán)境的分布式存儲)來保證充分的隱私性。對于現(xiàn)有的針對可信執(zhí)行環(huán)境的攻擊,我們采用了一些軟件方法進行加固。我們也利用諸如秘鑰分片的方式減少單點被攻擊的影響。
系統(tǒng)架構(gòu)
應(yīng)用層
主要包括應(yīng)用程序,為終端用戶提供功能接口,例如用戶端應(yīng)用、執(zhí)行器、任務(wù)分發(fā)器、錢包等等。我們會提供專門的TEEX軟件開發(fā)工具來處理和TEEX網(wǎng)絡(luò)、區(qū)塊鏈以及可信硬件之間的復(fù)雜通信協(xié)議,并協(xié)助開發(fā)上層應(yīng)用程序。
TEEX網(wǎng)絡(luò)層
主要包括大量計算者和任務(wù)分配器。計算者會運行著受TEE保護的代碼,并負責(zé)隱私計算任務(wù)的執(zhí)行和維護。分配器用于接收用戶的計算任務(wù)并分配給相應(yīng)的計算者。我們提供了一個基于TEE的分布式存儲服務(wù)來協(xié)助處理私密數(shù)據(jù)(例如服務(wù)的私鑰)。
公共網(wǎng)絡(luò)層
主要包括公有區(qū)塊鏈系統(tǒng),這里主要指公共的智能合約系統(tǒng),例如以太坊。公有區(qū)塊鏈系統(tǒng)主要用于處理驗證和結(jié)算交易這類公有共識部分。此外,考慮到公鏈存儲限制,我們也利用了一些公有存儲系統(tǒng),例如IPFS。
TEE (可信執(zhí)行環(huán)境)
TEE(可信執(zhí)行環(huán)境)是計算機芯片中的小黑盒,可以保護運行在其中的代碼和數(shù)據(jù)不會被任何外部軟件篡改和竊取,即便是高權(quán)限軟件(例如操作系統(tǒng))。同時TEE提供了遠程驗證的功能,用戶可以主動驗證計算方的行為是否符合預(yù)期,這保證了計算者可以在不獲得任何私密數(shù)據(jù)的同時,提供有效的工作量證明。
另外TEE支持建立安全信道,保證在和用戶或者其他TEE通信時,數(shù)據(jù)都是加密的,無法被竊取。
完全隔離
可信執(zhí)行環(huán)境是計算機處理器上的一塊安全區(qū)域,它能夠保證運行在其中的代碼和數(shù)據(jù)的隱私性和完整性。在軟件層面上,可信執(zhí)行環(huán)境是一塊隔離的執(zhí)行空間,提供了豐富的安全特性,例如隔離執(zhí)行、應(yīng)用執(zhí)行的完整性、數(shù)據(jù)的隱私性等。
遠程驗證
Intel SGX提供了一套遠程驗證機制,用戶可以驗證遠端計算機是否在真實的可信執(zhí)行環(huán)境中執(zhí)行正確的代碼,同時可以和遠端機器建立安全通道。在初始化階段,運行在可信執(zhí)行環(huán)境中軟件可以取得一份包含驗證信息的報告,并且由硬件簽名,證明其確實運行在enclave中。遠端用戶在取得這份報告之后,可以向Intel驗證服務(wù)發(fā)起請求,驗證報告的有效性。