区块链技术因其独特的密码学机制和共识机制,应用于数据的声明发布、授权使用等场景,解决节点间互不信任的问题。但区块链去中心化的共识架构,也为数据流通中的数据隐私保护、复杂数据处理等环节带来了一些问题。区块链上所有数据数据都是公开的,无法存储和计算敏感数据(如金融交易、个人敏感信息等),区块链底层资源的限制,也决定了其无法应对复杂的应用场景。
为此,我们引入了与区块链相连接的英特尔 SGX 可信计算环境,为智能合约提供了区块链所不能提供的机密性,可拓展的计算节点也解决了区块链本身无法应对复杂应用场景的问题,在保留区块链去中心化、用户互信的基础之上,通过可信硬件执行机密性高、需要相对复杂计算能力的程序,并通过区块链对执行结果进行记录和验证,实现可追溯的特性。
一、区块链及智能合约:解决数据流通中相互信任问题
区块链技术因其独特的密码学机制和共识机制可实现虚拟资产的确权、授权、停权。在数据流通领域,则可应用于数据的声明发布、授权使用等场景。
数据拥有者通过智能合约,指明数据类型、数据标签等信息,并制定使用者身份信息,智能合约发布后将按约定自动执行,并受所有区块链参与者监督。基于区块链多副本分布式账本的特性,以及合约执行和记录添加所依赖的公开共识机制,节点的任何行为都是可预期的,所有节点之间无需信任也可以进行交互。
区块链在数据流通场景中,具有以下优势:不缓存数据、保护数据版权、可追溯数据来源且保证不会被篡改、有效遏制造假等。其去中心化的共识架构有效解决了数据交换和流通环节中数据归属不明的痛点。
但区块链去中心化的共识架构,也为数据流通中的数据隐私保护、复杂数据处理等环节带来了一些问题。为了验证链上交易的合法性和时序性,区块链上所有数据数据都是公开的,无法存储和计算敏感数据(如金融交易、个人敏感信息等)。区块链本身对计算能力、存储容量和交易吞吐量方面的限制也对以智能合约形式进行的链上数据流通、数据交换产生了阻碍。 以目前使用者最多的分布式智能合约平台以太坊为例,仅以简单的应用(如令牌)而言,其计算成本就超过普通的云计算平台 8 个数量级,智能合约中交互应用的复杂性受到高度限制。 没有在关键计算性能和机密保护性上做出改进,智能合约可能无法大规模被应用于实际场景中。
二、英特尔 SGX 模块:提供可信执行环境(TEE)
目前研究人员已就这些挑战,提出了零知识证明、安全多方计算等解决方案。但这些方法通常使用范围有限,仅限于加密货币应用程序和一些简单的智能合约应用场景,而安全多方计算中又涉及到秘密共享等复杂密码学问题,并没有很好地解决智能合约应用复杂度受限的问题。而包括 Intel SGX(Software Guard eXtensions) 在内的可信硬件,为解决机密保护和计算复杂性的问题提供了通用的高性能解决方案。
SGX 提供了一个被称为「飞地(enclave)」的可信执行环境(TEE,Trusted Execution Environment)。它可以防止其他应用程序,包括操作系统、BIOS 系统等窥探和篡改受保护应用程序的状态及可信环境内的数据。同时,SGX 引入了引入 Attestation 鉴证机制,在芯片中封装了远程验证机制逻辑,由 Intel 或其代理响应请求,对程序及其结果是否可信进行鉴证。
SGX 及与之相似的可信硬件为智能合约数据提供了区块链所不能提供的机密性,而通过链下可信计算环境,SGX 也解决了智能合约和区块链无法应对复杂计算场景的问题。
通过 SGX 等可信硬件与区块链的结合,能够在保留区块链去中心化、用户互信的基础之上,通过可信硬件执行机密性高、需要相对复杂计算能力的程序,并通过区块链对执行结果进行记录和验证,实现可追溯的特性。
三、构建可信区块链,提供可信数据流通环境
可信区块链将基础区块链系统与 SGX 等可信执行环境相结合。在数据流通场景之下,数据源方、数据需求方、数据流通平台方、监管方共通参与到区块链网络中,并由参与方在某些节点上(数据源节点或平台方节点)搭建与区块链网络相连接的分布式链下数据存储网络及 SGX 计算客户端。
在实际操作中,由数据源方、需求方、流通平台方、监管方共同签署数据请求智能合约,合约成立后,即自动在计算客户端中创建一个 SGX enclave,根据合约中所指明的数据类型、地址、需求、分析算法,提取加密后数据,在 enclave 可信环境中对数据进行解密,并依照分析算法对数据进行分析处理。处理完成后,原始数据由 enclave 销毁,中间结果写回到区块链上。
可信区块链依靠使用了有可信计算环境的计算节点来执行智能合约中指明的计算,确保了原始数据及计算过程的安全性、隐秘性,并通过区块链的可验证、可追溯机制对执行结果进行跟踪。SGX 可信计算环境与区块链底层架构相互独立,对区块链底层共识机制、选型等无特殊要求,只要求区块链能够节点对 SGX 进行远程认证,因此可信区块链能够根据性能和安全需求独立扩展计算节点和区块链节点。