很多涉及隐私保护的项目在介绍自己的时候,都会提到自己使用了TEE技术。TEE到底是何方神圣呢?今天的万向区块链小课堂就带大家了解一下这个知识点。
区块链中的智能合约实现了合约的自动化编写与执行,有助于提高系统效率,因而广受欢迎。但由于其运行在具有去中心化、分布式记账等特点的区块链上,使得智能合约的数据会被复制到区块链上的所有节点中,一定程度上增加了受攻击面,导致智能合约面临回滚攻击、重入攻击等安全风险,威胁数据的隐私性和安全性。
隐私保护是当前区块链领域的难点,同时也是热点。因此,在一些高度重视数据安全隐私的应用中,仅靠智能合约已难以满足应用需求,行业内越来越多的企业和研究机构正在探索区块链+可信执行环境(Trusted Execution Environment,TEE)的解决方案,以提升智能合约对抗安全风险的能力。
什么是TEE?
TEE是一种可信的代码执行环境,由致力于开发、制定和发布安全芯片技术标准的全球平台组织(Global Platform)提出。它通过将环境内的操作执行与外部隔离来确保环境中代码、应用和数据资产的隐私性和完整性。它比起安卓、Linux等多媒体操作系统(Rich Operating System),能为环境中的受信应用提供更安全的执行环境,比起单一的安全模块(Secure Element),在功能上有更强的延展性,所以目前已广泛应用于移动支付、智能设备等领域。
TEE如何做到可信
TEE中所有数据资产、代码和底层可行操作系统(Trusted OS)的初始状态都要经设计者签名验证后才可以安装使用,而且环境中的这些元素都是不可改变、相互隔离的,也就是说一个元素失效或被篡改并不会影响到环境中的其他元素,从而确保整体环境的可信性。
TEE在区块链中的应用潜力
TEE与公链
目前的一些热门公链(如以太坊区块链),使用的大多是工作量证明(PoW)、权益证明(PoS)、委托权益证明(DPoS)这几类常见的共识机制。这些共识机制都属于随机性协议,缺乏确定性。它们通过某种概率机制选出为系统添加新区块的节点,系统再通过点对点传输协议将新出区块广播给系统里的所有节点,这中做法可以确保传输效率,但难以保证传输过程中信息的一致性。
信息传输不一致就无法支撑智能合约维持系统中的应用状态,容易使智能合约因状态不稳受到回滚攻击(Rollback Attack),威胁系统数据的安全与隐私。这种风险是TEE也难以规避的。所以在采用非确定性共识机制的公链中,智能合约必须在设计之初就考虑到如何在执行过程中应对回滚攻击这一问题,不能单纯依赖TEE保障系统执行的安全性。
TEE与联盟链
与上文提及的公链不同,Hyperledger Fabric这类联盟使用的共识机制大都是确定性的,即应用户需求产生的新区块经过节点验证后就是确定且正确的,TEE与这类区块链的适配性更高,更有应用潜力。
目前TEE在许可链中的应用已取得了显著进展。比如Visa开发的LucidiTEE区块链系统,它能在不储存输入和输出数据的情况下记录每个处理器的安全隔层里进行了哪些计算。另外,该系统中的“交换协议”确保所有数据结果都能得到公平的传递,只要有一个接收者收到了数据结果,那么就可以放心地相信所有接收方都受到了该结果。
另外, Hyperledger 在2019年10月发布的Avalon项目(之前叫可信计算框架)也采用了TEE(可信执行环境)、MPC(安全多方计算)和ZK(零知识证明)等多种安全技术确保数据的正确性和隐私性,进而解决区块链项目在可扩展性和隐私性方面的挑战。
总的来说,TEE与区块链的有机结合将创造出更加牢固的系统结构,更好地满足实际应用对数据安全和隐私性的高要求。各大研究机构和企业也在大力探索区块链+TEE的数据安全解决方案,推出了越来越多的相关落地项目。因此我们相信TEE将为提高区块链系统的安全性提供有力支持,有望成为保障区块链数据安全隐私的第二重保险。
参考文章
1、What is a Trusted Execution Environment (TEE)? https://www.trustonic.com/news/technology/what-is-a-trusted-execution-environment-tee/
2、Blockchains in Trusted Execution Environments (TEEs) https://medium.com/@nadeem.bhati/blockchains-in-trusted-execution-environments-tees-9343b6c3f9e8