区块链安分布式计算平台TEEX介绍
TEEX是一个安全的分布式计算平台,是基于现有区块链系统的第二层解决方案。TEEX为用户、算力提供方、服务提供方提供了一套完备的激励模型,建立了一个去中心化的、灵活易用的计算资源共享市场。
解耦和任务分发
不同于现有公链系统使用冗余计算和全局共识机制,TEEX采用基于可信执行环境的可验证计算策略来保证执行的完整性和不可篡改性。TEEX将执行和共识层完全解耦开,并且引入了任务分发策略,意味着计算者可以同时为不同的计算任务提供算力,保证了参与的计算者越多,TEEX网络可以提供的吞吐量越高。
基于TEE的隐私保护
TEEX将任务执行下放到链下的可行执行环境(例如intel-SGX)中,从而通过硬件保证执行过程中数据和控制流的隐私性。另外,可行执行环境保证运行在其中的程序可以被远程验证,并且允许建立安全通道进行数据的加密传输。在TEEX网络中,每一个计算者都需要拥有支持可信执行环境的计算机,用户需要在发送隐私数据之前鉴定计算者的身份。
原生执行环境
TEEX提供了一个链下执行环境,没有额外的运行时开销,可以支持接近原生的性能。由于执行和共识的解耦,所以执行过程可以立即返回,不需要等待链上冗长的确认时间。此外,我们支持分布式计算群组,以此提供优于单点计算的性能。另外,我们提供基于TEE的通用开发工具和接近原生的执行环境,并提供完备的用户库。用户可以利用C/C++进行开发程序,并运行在安全环境中,就好像在原生Linux操作系统下一样。
软硬件兼顾的设计方案
在可行执行环境的基础上,我们利用了密码学机制实现了数据和执行流的可验证性,从而保证了执行的完整性。在TEEX网络中,敏感数据只可能在可信环境中被解密,同时秘钥被维护在TEE-DS(基于可信执行环境的分布式存储)来保证充分的隐私性。对于现有的针对可信执行环境的攻击,我们采用了一些软件方法进行加固。我们也利用诸如秘钥分片的方式减少单点被攻击的影响。
系统架构
应用层
主要包括应用程序,为终端用户提供功能接口,例如用户端应用、执行器、任务分发器、钱包等等。我们会提供专门的TEEX软件开发工具来处理和TEEX网络、区块链以及可信硬件之间的复杂通信协议,并协助开发上层应用程序。
TEEX网络层
主要包括大量计算者和任务分配器。计算者会运行着受TEE保护的代码,并负责隐私计算任务的执行和维护。分配器用于接收用户的计算任务并分配给相应的计算者。我们提供了一个基于TEE的分布式存储服务来协助处理私密数据(例如服务的私钥)。
公共网络层
主要包括公有区块链系统,这里主要指公共的智能合约系统,例如以太坊。公有区块链系统主要用于处理验证和结算交易这类公有共识部分。此外,考虑到公链存储限制,我们也利用了一些公有存储系统,例如IPFS。
TEE (可信执行环境)
TEE(可信执行环境)是计算机芯片中的小黑盒,可以保护运行在其中的代码和数据不会被任何外部软件篡改和窃取,即便是高权限软件(例如操作系统)。同时TEE提供了远程验证的功能,用户可以主动验证计算方的行为是否符合预期,这保证了计算者可以在不获得任何私密数据的同时,提供有效的工作量证明。
另外TEE支持建立安全信道,保证在和用户或者其他TEE通信时,数据都是加密的,无法被窃取。
完全隔离
可信执行环境是计算机处理器上的一块安全区域,它能够保证运行在其中的代码和数据的隐私性和完整性。在软件层面上,可信执行环境是一块隔离的执行空间,提供了丰富的安全特性,例如隔离执行、应用执行的完整性、数据的隐私性等。
远程验证
Intel SGX提供了一套远程验证机制,用户可以验证远端计算机是否在真实的可信执行环境中执行正确的代码,同时可以和远端机器建立安全通道。在初始化阶段,运行在可信执行环境中软件可以取得一份包含验证信息的报告,并且由硬件签名,证明其确实运行在enclave中。远端用户在取得这份报告之后,可以向Intel验证服务发起请求,验证报告的有效性。
中国观察