可信执行环境 (TEE) 是计算机主处理器中安全、隔离的区域,旨在保护代码和数据的机密性和完整性。 TEE 也称为飞地,提供硬件强制屏障,将敏感计算与主机系统的操作系统、虚拟机管理程序和其他应用程序分开,确保即使是完全控制机器的管理员也能保护数据。 [1] [2]
可信执行环境的核心目的是为了能够安全地执行代码和机密地处理数据。这是通过硬件级别的隔离来实现的,它创建了一个受保护的容器,任何外部软件(包括宿主操作系统)都无法访问。TEE 的安全性基于“硬件信任根”,通常涉及在制造过程中嵌入到处理器中的不可变的私钥,从而防止环境被用户控制的软件模拟或破坏。 [3]
这项技术最初出现在 20 世纪 90 年代,用于数字版权管理 (DRM) 和安全支付等应用。 [1] 这个概念在 2000 年代中期由开放移动终端平台 (OMTP) 在其“高级可信环境:OMTP TR1”标准中得到了更正式的定义。 [3] 近年来,TEE 在 区块链 和 Web3 领域获得了显著的关注,成为实现隐私、增强可扩展性和降低最大可提取价值 (MEV) 等安全风险的实用解决方案。 [4]
TEE 通常与纯粹的密码学隐私解决方案(如 零知识证明 (ZKP) 和全同态加密 (FHE))进行比较。虽然 ZKP 提供了一种基于数学证明的“无需信任”模型,但 TEE 依赖于对硬件制造商的信任。然而,对于通用计算而言,TEE 通常被认为性能更高、更灵活,能够运行现有的应用程序,而无需定制的领域特定语言或复杂的证明系统。 [1] [3]
TEE 的功能建立在几个关键原则之上,这些原则共同提供了一个安全的计算环境:
- 保密性:加载到 TEE 内部的代码和数据在内存中加密。主机操作系统(包括内核或虚拟机监控程序)在内的任何 enclave 外部的软件都无法访问它们。
- 隔离性:硬件级别的分离可防止主机系统访问或干扰 TEE 内部运行的进程。TEE 强制执行严格的内存访问控制,并且主机操作系统尝试读取 TEE 的受保护内存的任何尝试都会被硬件阻止。
- 可证明性:TEE 可以生成密码学证明(称为“证明”),证明其来源和正在执行的确切代码。这允许远程第三方验证计算是否由运行可信、未篡改软件的真实 TEE 执行。 [1]
TEE内的代码和数据生命周期涉及多个硬件管理步骤,以确保从启动到退出的安全性:
- 初始化:在系统启动时,BIOS/UEFI初始化硬件并为TEE分配一个内存区域。专用的内存加密引擎(MEE)加密此RAM区域。
- 加载:加密的代码和数据从存储加载到TEE的受保护内存中,并在enclave内解密以供使用。
- 执行:应用程序使用特殊的CPU指令进入enclave,这个过程类似于传统操作系统中从用户模式切换到内核模式。
- 交互:由于存储和网卡等外设位于TEE的信任边界之外,所有I/O操作都通过共享内存处理。从这些不受信任的组件进入TEE的数据必须经过验证。对于安全的网络通信,TEE可以在内部生成自己的密钥对,以建立传输层安全(TLS)会话。
- 退出:TEE使用安全API或退出函数与非TEE资源交互。 [1]
远程证明是一项关键功能,允许 TEE 向远程方证明其完整性。该过程通常包括四个步骤:
- 测量:CPU 测量可信计算基,其中包括启动固件、操作系统和应用程序二进制文件。
- 存储:此测量结果存储在 CPU 内的安全硬件寄存器中。
- 签名:CPU 使用唯一的私有证明密钥对测量结果进行签名,该密钥在制造过程中嵌入到硬件中。
- 验证:签名的测量结果(或“证明报告”)被发送到远程验证器。验证器可以检查签名以确认 enclave 的真实性,并验证正在执行正确的代码。 [2]
几家主要的硬件制造商已经开发了自己的TEE技术:
- Intel: Software Guard Extensions (SGX) 及其后续产品 Trust Domain Extensions (TDX)。
- AMD: Secure Encrypted Virtualization (SEV)。
- ARM: Confidential Compute Architecture (CCA)。
- NVIDIA: 在其 Hopper 和 Blackwell GPU 架构上的 Enclaves。 [1]
在区块链中采用可信执行环境(TEE)之前,TEE已广泛应用于各个领域,以保护敏感数据和知识产权:
- 数字版权管理(DRM):保护高价值内容,如4K电影和优质音频,免受未经授权的复制。
- 金融服务:保护移动钱包、非接触式支付和销售点(POS)终端的安全。
- 身份验证:为生物识别数据处理提供安全环境,包括面部识别、指纹扫描和语音授权,类似于iPhone中的Apple Secure Enclave。
- 企业和政府:在移动设备和服务器基础设施上安全地处理机密信息。 [3] [5]
TEE 为区块链领域的几个关键挑战提供了解决方案,包括隐私、可扩展性和安全性。截至 2025 年 9 月,据报道有超过 50 个团队正在积极开发基于 TEE 的区块链项目。 [2]
TEE 使得创建保密的智能合约成为可能,其中逻辑、数据输入和状态对公众甚至对运行网络的节点运营商保持私密。这允许在链上处理敏感信息的应用程序,例如医疗保健或财务数据。节点运营商的 TEE 可以在不访问数据本身的情况下对这些私有数据执行计算。 [1]
"TEE 使得节点运营商能够在不知道在其服务器上处理的私有数据的情况下参与网络。" [1]
计算密集型任务可以从主区块链卸载到支持TEE的节点。这些节点安全地链下执行任务,并将结果和正确执行的证明提交回链上。这减少了网络负载和交易成本,从而提高了吞吐量。这种模型用于一些Layer 2扩展解决方案和去中心化云计算平台。 [3]
最大可提取价值 (MEV) 是指通过重新排序、插入或审查交易从区块链中提取的利润。TEE 正在被实施以对抗 MEV,方法是创建私有交易池和可验证的区块构建者。在这种系统中,用户将其交易提交给在 TEE 内部运行其操作的区块构建者。TEE 确保交易数据在区块中最终确定之前保持机密,从而防止 MEV 搜索者抢先交易或进行夹层攻击。这种方法旨在通过创建一个同时快速、去中心化和私有的系统来解决“MEV 三难困境”。 [5]
TEE可以为预言机计算提供安全的环境,确保输入智能合约的外部数据的完整性。它们还可以作为可信的中介,促进不同区块链网络之间安全的数据交换和资产转移,从而增强跨链互操作性。 [3]
Web3生态系统中许多项目已将TEE集成到其架构中:
- Secret Network:首个默认启动私有智能合约的区块链,使用Intel SGX。它基于Cosmos SDK构建,支持机密状态和交易。
- Oasis Network:一个使用TEE驱动Sapphire的平台,Sapphire是其与EVM兼容的机密ParaTime,可在类似以太坊的环境中实现私有dApp。
- Unichain:由Uniswap团队开发的乐观rollup,于2024年10月推出。它与Flashbots合作,在其区块构建过程中使用TEE(最初是Intel TDX),以创建抗MEV的基础设施。
- Flashbots:一个专注于MEV的研究组织,正在开发一种利用TEE的“可验证区块构建器”(rollup-boost)。这项技术是Unichain设计的核心组成部分。
- iExec:一个去中心化云计算平台,使用Intel SGX进行安全的链下计算。
- Scroll 和 Taiko:以太坊 rollup,使用TEE作为与ZK证明器并行的第二种证明器,以增加冗余并增强安全性。
其他值得注意的项目包括Cycles Protocol、Automata、Phala和Marlin。 [2] [5] [4]
尽管可信执行环境 (TEE) 很有用,但它们在安全模型和对中心化硬件的依赖方面面临着重大挑战和批评。
TEE的整个安全模型依赖于对硬件制造商(例如,英特尔、AMD)的信任。这引入了一个中心化的故障点,并且与许多区块链项目的去中心化精神背道而驰。存在制造商可能被政府机构强迫引入后门,或者在复杂的供应链中引入缺陷的风险。 [2] [3]
TEE已被证明容易受到多种攻击,这些攻击会损害其机密性和完整性保证。
- 侧信道攻击:这些攻击通过观察硬件操作中的模式来提取信息。例如,Spectre利用推测执行,而Plundervolt则通过操纵CPU电压来诱导SGX enclave内部的故障并提取秘密。
- 微处理器漏洞:TEE容易受到像Meltdown这样的通用硬件错误的影响。
- 物理攻击:研究表明,现有的TEE设计都无法完全防御具有物理芯片访问权限的复杂攻击者。
- 实现错误:TEE的隔离机制或内部运行的软件中的缺陷可能会损害其安全性。例如,英特尔的SGX技术在“sgx.fail”等网站上记录了漏洞历史记录。 [1] [5]
Blockworks Research的Daniel Shapiro指出Unichain等协议的风险,他说:“随着链的增长,攻击的动机也会同步增长。可能会出现新的安全漏洞,从而危及用户资金。” [5]
为了解决TEE固有的局限性,开发人员和研究人员提出了各种缓解策略,并正在探索下一代设计。
建议开发者在设计系统时,假设可信执行环境(TEE)最终可能被攻破。
- 为失败而设计:系统架构应使 TEE 漏洞利用成为“麻烦,而不是生存风险”。例如,TEE 不应是保护系统完整性的唯一组件。
- 隐私优先于完整性:TEE 更适合用于保密性。不鼓励将其作为交易验证等完整性关键任务的唯一机制,因为一旦攻破,攻击者可能会伪造资产。
- 不经意随机存取存储器 (ORAM):此技术可用于模糊 TEE 与主机 RAM 交互时的内存访问模式,从而降低侧信道泄漏的风险,但会牺牲性能。
- 前向保密和密钥轮换:定期更换加密密钥可以限制漏洞利用的影响,因为被盗密钥不能用于解密受旧密钥保护的过去数据。 [1]
为了防止单点故障,基于TEE的系统通常采用分布式密钥管理。Ekiden协议首创了一种模型,其中由受信任节点组成的“密钥管理委员会”(KMC)使用阈值密码学来管理敏感密钥。KMC向各个工作节点颁发短期、有限访问权限的密钥,这些节点必须通过远程证明来证明其合法性才能接收密钥。该系统包括主动密钥轮换,以进一步增强安全性。 [2]
目前正在进行研究,以开发不需要信任制造商的TEE。提议的解决方案包括使用物理不可克隆函数(PUF)来保护信任根,结合掩蔽技术来保护计算免受物理攻击,以及构建具有开源硬件和经过正式验证、可重现构建的TEE,以确保设计完整性。 [4]