跳到主要内容

4 篇博文 含有标签「隐私」

查看所有标签

Web3 生态系统中的可信执行环境 (TEE):深度解析

· 阅读需 76 分钟

1. TEE 技术概述

定义与架构: 可信执行环境 (Trusted Execution Environment, TEE) 是处理器中的一个安全区域,用于保护加载到其中的代码和数据的机密性与完整性。实际上,TEE 就像 CPU 内部一个隔离的“飞地” (enclave)——一种黑盒,敏感计算可以在其中运行,免受系统其余部分的干扰。在 TEE 飞地内运行的代码受到保护,即使是受损的操作系统或虚拟机监控程序 (hypervisor) 也无法读取或篡改飞地的数据或代码。TEE 提供的关键安全属性包括:

  • 隔离性: 飞地的内存与其他进程甚至操作系统内核隔离。即使攻击者获得了机器的完全管理员权限,他们也无法直接检查或修改飞地内存。
  • 完整性: 硬件确保在 TEE 中执行的代码不会被外部攻击篡改。任何对飞地代码或运行时状态的篡改都将被检测到,从而防止产生被篡改的结果。
  • 机密性: 飞地内部的数据在内存中保持加密状态,仅在 CPU 内部使用时才解密,因此秘密数据不会以明文形式暴露给外部世界。
  • 远程证明: TEE 可以生成加密证明 (attestations),向远程方证明其是真实的,并且特定的可信代码正在其中运行。这意味着用户可以在向飞地提供秘密数据之前,验证其处于可信状态 (例如,在真实硬件上运行预期的代码)。

可信执行环境作为智能合约执行的安全飞地“黑盒”的概念图。加密的输入 (数据和合约代码) 在安全飞地内解密和处理,只有加密的结果才会离开飞地。这确保了敏感的合约数据对 TEE 之外的任何人都是保密的。

在底层,TEE 是通过 CPU 中基于硬件的内存加密和访问控制来实现的。例如,当创建一个 TEE 飞地时,CPU 会为其分配一个受保护的内存区域,并使用专用密钥 (烧录在硬件中或由安全协处理器管理) 来即时加密/解密数据。外部软件任何读取飞地内存的尝试都只会得到加密字节。这种独特的 CPU 级保护允许即使用户级代码也能定义私有内存区域 (飞地),即使是特权恶意软件或恶意的系统管理员也无法窥探或修改。本质上,TEE 为应用程序提供了比正常操作环境更高级别的安全性,同时比专用的安全元件或硬件安全模块更具灵活性。

关键硬件实现: 目前存在多种硬件 TEE 技术,每种技术架构不同,但目标相似,都是在系统内创建一个安全飞地:

  • 英特尔 SGX (Software Guard Extensions): 英特尔 SGX 是应用最广泛的 TEE 实现之一。它允许应用程序在进程级别创建飞地,内存加密和访问控制由 CPU 强制执行。开发者必须将其代码划分为“可信”代码 (在飞地内) 和“不可信”代码 (普通世界),并使用特殊指令 (ECALL/OCALL) 在飞地内外传输数据。SGX 为飞地提供了强大的隔离性,并通过英特尔的证明服务 (IAS) 支持远程证明。许多区块链项目——特别是 Secret Network 和 Oasis Network——都基于 SGX 飞地构建了隐私保护的智能合约功能。然而,SGX 在复杂 x86 架构上的设计导致了一些漏洞 (见 §4),并且英特尔的证明机制引入了中心化的信任依赖。

  • ARM TrustZone: TrustZone 采用了一种不同的方法,将处理器的整个执行环境分为两个世界:安全世界普通世界。敏感代码在安全世界中运行,该世界可以访问某些受保护的内存和外围设备,而普通世界则运行常规的操作系统和应用程序。世界之间的切换由 CPU 控制。TrustZone 通常用于移动和物联网设备,用于安全 UI、支付处理或数字版权管理等。在区块链背景下,TrustZone 可以通过允许私钥或敏感逻辑在手机的安全飞地中运行,从而实现移动优先的 Web3 应用。然而,TrustZone 飞地的粒度通常较大 (在操作系统或虚拟机级别),并且在当前的 Web3 项目中不像 SGX 那样被广泛采用。

  • AMD SEV (Secure Encrypted Virtualization): AMD 的 SEV 技术针对虚拟化环境。SEV 不是要求应用级别的飞地,而是可以加密整个虚拟机的内存。它使用一个嵌入式安全处理器来管理加密密钥并执行内存加密,从而使虚拟机的内存即使对宿主机 hypervisor 也是保密的。这使得 SEV 非常适合云或服务器用例:例如,一个区块链节点或链下工作者可以在一个完全加密的虚拟机内运行,保护其数据免受恶意云提供商的侵害。SEV 的设计意味着开发者划分代码的工作量更少 (你可以在一个受保护的虚拟机中运行现有应用程序甚至整个操作系统)。更新的迭代版本如 SEV-SNP 增加了篡改检测等功能,并允许虚拟机所有者在不依赖中心化服务的情况下证明其虚拟机。SEV 与在基于云的区块链基础设施中使用 TEE 高度相关。

其他新兴或小众的 TEE 实现包括英特尔 TDX (Trust Domain Extensions,用于在较新的英特尔芯片上为虚拟机提供类似飞地的保护)、开源 TEE 如 Keystone (RISC-V),以及移动设备中的安全飞地芯片 (如苹果的安全飞地,尽管通常不开放给任意代码运行)。每种 TEE 都有其自己的开发模型和信任假设,但都共享硬件隔离的安全执行这一核心理念。

2. TEE 在 Web3 中的应用

可信执行环境已成为解决 Web3 一些最棘手挑战的强大工具。通过提供一个安全、私密的计算层,TEE 为区块链应用在隐私、可扩展性、预言机安全和完整性等领域开辟了新的可能性。下面我们探讨主要的应​​用领域:

隐私保护智能合约

TEE 在 Web3 中最突出的用途之一是实现机密智能合约——这些程序在区块链上运行,但可以安全地处理私有数据。像以太坊这样的区块链默认是透明的:所有交易数据和合约状态都是公开的。这种透明度对于需要保密性的用例 (例如,私人金融交易、秘密投票、个人数据处理) 来说是个问题。TEE 通过充当连接到区块链的隐私保护计算飞地,提供了一个解决方案。

在一个由 TEE 驱动的智能合约系统中,交易输入可以被发送到验证者或工作节点上的安全飞地,在飞地内部进行处理,期间对外界保持加密,然后飞地可以将加密或哈希后的结果输出回链上。只有拥有解密密钥的授权方 (或合约逻辑本身) 才能访问明文结果。例如,Secret Network 在其共识节点中使用英特尔 SGX 来执行基于加密输入的 CosmWasm 智能合约,因此像账户余额、交易金额或合约状态等信息可以对公众隐藏,同时仍可在计算中使用。这催生了_秘密 DeFi_ 应用——例如,金额保密的私密代币交换,或出价被加密且仅在拍卖结束后才揭示的秘密拍卖。另一个例子是 Oasis Network 的 Parcel 和机密 ParaTime,它们允许数据被代币化并在保密约束下用于智能合约,从而实现了像信用评分或符合隐私法规的链上医疗数据等用例。

通过 TEE 实现的隐私保护智能合约对企业和机构采用区块链具有吸引力。组织可以利用智能合约,同时保持敏感的业务逻辑和数据机密。例如,银行可以使用支持 TEE 的合约来处理贷款申请或交易结算,而无需在链上暴露客户数据,同时仍能受益于区块链验证的透明度和完整性。这一能力直接解决了监管隐私要求 (如 GDPR 或 HIPAA),允许在医疗、金融和其他敏感行业合规地使用区块链。实际上,TEE 通过确保个人数据可以在飞地内处理,只有加密输出离开,从而促进了数据保护法的合规性,满足了监管机构对数据得到保障的要求。

除了机密性,TEE 还有助于在智能合约中强制执行_公平性_。例如,去中心化交易所可以在 TEE 内运行其撮合引擎,以防止矿工或验证者看到待处理订单并进行不公平的抢先交易 (front-running)。总而言之,TEE 为 Web3 带来了一个急需的隐私层,解锁了如机密 DeFi、私密投票/治理以及企业合约等在公共账本上以前不可行的应用。

可扩展性与链下计算

TEE 的另一个关键作用是通过将繁重的计算任务安全地卸载到链下环境,从而提高区块链的可扩展性。由于性能限制和链上执行的成本,区块链难以处理复杂或计算密集型的任务。支持 TEE 的链下计算允许这些任务在主链之外完成 (因此不消耗区块 gas 或减慢链上吞吐量),同时仍然保留对结果正确性的信任保证。实际上,TEE 可以作为 Web3 的一个_可验证的链下计算加速器_。

例如,iExec 平台使用 TEE 创建了一个去中心化的云计算市场,开发者可以在链下运行计算并获得受区块链信任的结果。dApp 可以请求一个计算任务 (比如一个复杂的人工智能模型推理或大数据分析) 由 iExec 的工作节点完成。这些工作节点在 SGX 飞地内执行任务,生成结果以及一份证明,证明正确的代码在真实的飞地中运行。然后结果返回到链上,智能合约可以在接受输出之前验证飞地的证明。这种架构允许在不牺牲信任的情况下处理繁重的工作负载,从而有效提升吞t量。iExec Orchestrator 与 Chainlink 的集成展示了这一点:Chainlink 预言机获取外部数据,然后将复杂的计算任务交给 iExec 的 TEE 工作者 (例如,聚合或评分数据),最后将安全的结果传递到链上。用例包括去中心化保险计算 (正如 iExec 所演示的),其中大量数据处理可以在链下廉价地完成,只有最终结果上链。

基于 TEE 的链下计算也支撑了一些 Layer-2 扩展解决方案。Oasis Labs 的早期原型 Ekiden (Oasis Network 的前身) 使用 SGX 飞地在链下并行执行交易,然后只将状态根提交到主链,这实际上类似于 rollup 的思想,但使用的是硬件信任。通过在 TEE 中执行合约,他们实现了高吞吐量,同时依靠飞地来维护安全性。另一个例子是 Sanders Network 即将推出的 Op-Succinct L2,它结合了 TEE 和 zkSNARKs:TEE 私密且快速地执行交易,然后生成 zk 证明来向以太坊证明这些执行的正确性。这种混合方法利用了 TEE 的速度和 ZK 的可验证性,提供了一个可扩展、私密的 L2 解决方案。

总的来说,TEE 可以运行接近原生性能的计算 (因为它们使用实际的 CPU 指令,只是增加了隔离),因此它们比纯粹的加密替代方案 (如同态加密或零知识证明) 在处理复杂逻辑时快几个数量级。通过将工作卸载到飞地,区块链可以处理更复杂的应用 (如机器学习、图像/音频处理、大规模分析),这些在链上是不切实际的。结果会附带一份证明返回,链上合约或用户可以验证其源自一个可信的飞地,从而保留数据完整性和正确性。这种模型通常被称为**“可验证的链下计算”**,TEE 是许多此类设计的基石 (例如,由英特尔、iExec 等开发的 Hyperledger Avalon 的可信计算框架,使用 TEE 在链下执行 EVM 字节码,并将正确性证明发布到链上)。

安全预言机与数据完整性

预言机将区块链与现实世界的数据连接起来,但它们引入了信任挑战:智能合约如何相信链下数据源是正确且未被篡改的?TEE 通过充当预言机节点的安全沙箱提供了一个解决方案。一个基于 TEE 的预言机节点可以从外部来源 (API、Web 服务) 获取数据,并在一个飞地内处理它,该飞地保证数据未被节点运营商或节点上的恶意软件操纵。然后,飞地可以对其提供的数据的真实性进行签名或证明。这显著提高了预言机的数据完整性和可信度。即使预言机运营商是恶意的,他们也无法在不破坏飞地证明 (区块链会检测到) 的情况下更改数据。

一个著名的例子是康奈尔大学开发的预言机系统 Town Crier,它是最早使用英特尔 SGX 飞地向以太坊合约提供经认证数据的系统之一。Town Crier 会在 SGX 飞地内检索数据 (例如,来自 HTTPS 网站),并将其连同证据 (飞地签名) 一起交付给合约,证明数据直接来自源头且未被伪造。Chainlink 认识到其价值,并于 2018 年收购了 Town Crier,将基于 TEE 的预言机集成到其去中心化网络中。如今,Chainlink 和其他预言机提供商都有 TEE 计划:例如,Chainlink 的 DECO公平排序服务 都涉及 TEE,以确保数据机密性和公平排序。正如一篇分析所指出的,“TEE 通过为数据处理提供防篡改环境,彻底改变了预言机的安全性……即使是节点运营商自己也无法在数据处理过程中操纵数据”。这对于高价值的金融数据源 (如 DeFi 的价格预言机) 尤其关键:TEE 可以防止即使是微小的篡改,这种篡改可能导致巨大的漏洞利用。

TEE 还使预言机能够处理敏感或专有数据,这些数据无法以明文形式发布在区块链上。例如,一个预言机网络可以使用飞地来聚合_私有_数据 (如机密的股票订单簿或个人健康数据),并仅将派生结果或验证过的证明提供给区块链,而不暴露原始的敏感输入。通过这种方式,TEE 拓宽了可以安全集成到智能合约中的数据范围,这对于_现实世界资产 (RWA) 代币化、信用评分、保险以及其他数据密集型链上服务_至关重要。

跨链桥方面,TEE 同样提高了完整性。跨链桥通常依赖一组验证者或多重签名来托管资产和验证链间转移,这使它们成为攻击的主要目标。通过在 TEE 内部运行跨链桥验证者逻辑,可以保护桥的私钥和验证过程免受篡改。即使验证者的操作系统被攻破,攻击者也应该无法从飞地内部提取私钥或伪造消息。TEE 可以强制桥交易完全按照协议规则处理,降低了人为操作员或恶意软件注入欺诈性转移的风险。此外,TEE 可以使原子交换和跨链交易在一个安全飞地中处理,该飞地要么完成双方操作,要么干净地中止,防止因干扰导致资金被卡住的情况。一些跨链桥项目和联盟已经探索了基于 TEE 的安全性,以减轻近年来频发的跨链桥黑客攻击。

链下数据的完整性与可验证性

在上述所有场景中,一个反复出现的主题是 TEE 有助于即使在区块链之外也能维护_数据完整性_。因为 TEE 可以证明它正在运行什么代码 (通过证明),并能确保代码在没有干扰的情况下运行,所以它提供了一种可验证计算的形式。用户和智能合约可以信任来自 TEE 的结果,就好像它们是在链上计算的一样,前提是证明检查通过。这种完整性保证是 TEE 有时被称为给链下数据和计算带来“信任锚”的原因。

然而,值得注意的是,这种信任模型将一些假设转移到了硬件上 (见 §4)。数据完整性的强度取决于 TEE 的安全性。如果飞地被攻破或证明被伪造,完整性可能会失效。尽管如此,在实践中,TEE (当保持最新时) 使某些攻击变得更加困难。例如,一个 DeFi 借贷平台可以使用 TEE 在链下根据用户的私有数据计算信用评分,智能合约只有在附有有效的飞地证明时才会接受该评分。这样,合约就知道评分是由批准的算法基于真实数据计算出来的,而不是盲目地相信用户或预言机。

TEE 还在新兴的去中心化身份 (DID) 和认证系统中发挥作用。它们可以安全地管理私钥、个人数据和认证过程,使用户的敏感信息永远不会暴露给区块链或 dApp 提供商。例如,移动设备上的 TEE 可以处理生物识别认证,并在生物识别检查通过时签署区块链交易,所有这些都无需泄露用户的生物特征。这在身份管理中同时提供了安全性和隐私性——如果 Web3 要以用户主权的方式处理护照、证书或 KYC 数据,这是一个必不可少的组成部分。

总而言之,TEE 在 Web3 中充当了一个多功能工具:它们为链上逻辑实现了机密性,通过链下安全计算实现了扩展,保护了预言机和跨链桥的完整性,并开辟了新的用途 (从私密身份到合规数据共享)。接下来,我们将看看利用这些能力的具体项目。

3. 利用 TEE 的知名 Web3 项目

一些领先的区块链项目已经围绕可信执行环境构建了其核心产品。下面我们深入探讨几个著名的例子,研究它们各自如何使用 TEE 技术以及带来了什么独特的价值:

Secret Network

Secret Network 是一个 Layer-1 区块链 (基于 Cosmos SDK 构建),它开创了使用 TEE 实现隐私保护智能合约的先河。Secret Network 中的所有验证节点都运行英特尔 SGX 飞地,这些飞地执行智能合约代码,使得合约状态和输入/输出即使对节点运营商也是加密的。这使得 Secret 成为首批隐私优先的智能合约平台之一——隐私不是一个可选的附加功能,而是网络在协议层面的默认特性。

在 Secret Network 的模型中,用户提交加密的交易,验证者将其加载到他们的 SGX 飞地中执行。飞地解密输入,运行合约 (用修改过的 CosmWasm 运行时编写),并产生加密的输出,这些输出被写入区块链。只有拥有正确查看密钥的用户 (或合约本身及其内部密钥) 才能解密和查看实际数据。这使得应用程序可以在链上使用私有数据而无需公开披露。

该网络已经展示了几个新颖的用例:

  • 秘密 DeFi: 例如,SecretSwap (一个 AMM),用户的账户余额和交易金额是私密的,从而减轻了抢先交易并保护了交易策略。流动性提供者和交易者可以在不向竞争对手广播他们的一举一动的情况下操作。
  • 秘密拍卖: 拍卖合约中,出价在拍卖结束前保持秘密,防止了基于他人出价的策略性行为。
  • 私密投票和治理: 代币持有者可以在不透露其投票选择的情况下对提案进行投票,而计票结果仍然可以被验证——确保了公平、无恐吓的治理。
  • 数据市场: 敏感数据集可以在计算中进行交易和使用,而无需向买家或节点暴露原始数据。

Secret Network 实质上在协议层面整合了 TEE,创造了一个独特的价值主张:它提供_可编程的隐私_。他们解决的挑战包括在去中心化的验证者集合中协调飞地证明,以及管理密钥分发,以便合约可以解密输入,同时对验证者保密。从各方面来看,Secret 已经证明了在公共区块链上由 TEE 驱动的机密性的可行性,确立了自己在该领域的领导者地位。

Oasis Network

Oasis Network 是另一个旨在实现可扩展性和隐私的 Layer-1,其架构广泛利用了 TEE (英特尔 SGX)。Oasis 引入了一种创新的设计,将共识与计算分离到不同的层,称为共识层ParaTime 层。共识层处理区块链的排序和最终性,而每个 ParaTime 可以是智能合约的运行时环境。值得注意的是,Oasis 的 Emerald ParaTime 是一个 EVM 兼容的环境,而 Sapphire 是一个机密的 EVM,它使用 TEE 来保持智能合约状态的私密性。

Oasis 对 TEE 的使用专注于大规模的机密计算。通过将繁重的计算隔离在可并行的 ParaTime 中 (可以在许多节点上运行),他们实现了高吞吐量;通过在这些 ParaTime 节点内使用 TEE,他们确保了计算可以包含敏感数据而无需泄露。例如,一个机构可以在 Oasis 上运行信用评分算法,将私有数据输入到一个机密的 ParaTime 中——数据对节点保持加密 (因为它在飞地中处理),只有评分结果出来。与此同时,Oasis 共识只记录了计算正确发生的证明。

技术上,Oasis 在原生 SGX 之上增加了额外的安全层。他们实现了一个_“分层的信任根”_:使用英特尔的 SGX Quoting Enclave 和一个定制的轻量级内核来验证硬件的可信度,并对飞地的系统调用进行沙箱化。这减少了攻击面 (通过过滤飞地可以进行的操作系统调用),并防范了某些已知的 SGX 攻击。Oasis 还引入了诸如持久化飞地 (以便飞地可以在重启后保持状态) 和安全日志记录等功能,以减轻回滚攻击 (即节点可能试图重放旧的飞地状态)。这些创新在他们的技术论文中有所描述,也是 Oasis 被视为 TEE 区块链计算领域_研究驱动_项目的原因之一。

从生态系统的角度来看,Oasis 将自己定位为私密 DeFi (允许银行在不泄露客户数据的情况下参与) 和数据代币化 (个人或公司可以以机密方式与 AI 模型共享数据并获得报酬,所有这些都通过区块链实现) 等领域。他们还与企业合作进行试点 (例如,与宝马在数据隐私方面合作,以及与其他公司在医学研究数据共享方面合作)。总的来说,Oasis Network 展示了将 TEE 与可扩展架构相结合如何能够同时解决隐私_和_性能问题,使其成为基于 TEE 的 Web3 解决方案中的重要参与者。

Sanders Network

Sanders Network 是 Polkadot 生态系统中的一个去中心化云计算网络,它使用 TEE 提供机密和高性能的计算服务。它是 Polkadot 上的一个平行链,这意味着它受益于 Polkadot 的安全性和互操作性,但它引入了自己新颖的运行时,用于在安全飞地中进行链下计算。

Sanders 的核心思想是维护一个由工作节点 (称为 Sanders 矿工) 组成的庞大网络,这些节点在 TEE (目前特别是英特尔 SGX) 内部执行任务并产生可验证的结果。这些任务可以从运行智能合约的片段到用户请求的通用计算。因为工作者在 SGX 中运行,Sanders 确保了计算是以机密性 (输入数据对工作者运营商隐藏) 和完整性 (结果附有证明) 完成的。这有效地创建了一个_无需信任的云_,用户可以在其中部署工作负载,知道主机无法窥探或篡改它们。

可以把 Sanders 想象成类似于亚马逊 EC2 或 AWS Lambda,但是是去中心化的:开发者可以将代码部署到 Sanders 的网络中,让它在全球许多支持 SGX 的机器上运行,并用 Sanders 的代币支付服务费用。一些突出的用例:

  • Web3 分析和 AI: 一个项目可以在 Sanders 飞地中分析用户数据或运行 AI 算法,这样原始用户数据保持加密 (保护隐私),只有聚合的洞察离开飞地。
  • 游戏后端和元宇宙: Sanders 可以在链下处理密集的游戏逻辑或虚拟世界模拟,只将承诺或哈希发送到区块链,从而在不信任任何单个服务器的情况下实现更丰富的游戏体验。
  • 链上服务: Sanders 已经构建了一个名为 Sanders Cloud 的链下计算平台。例如,它可以作为机器人、去中心化 Web 服务,甚至是将交易发布到 DEX 智能合约并附带 TEE 证明的链下订单簿的后端。

Sanders 强调它可以水平扩展机密计算:需要更多容量?增加更多 TEE 工作节点。这与单一区块链的计算容量受共识限制不同。因此,Sanders 为那些既需要无需信任的安全性又计算密集型的 dApp 开辟了可能性。重要的是,Sanders 不仅仅依赖硬件信任;它正在与 Polkadot 的共识机制集成 (例如,对不良结果进行质押和惩罚),甚至探索将 TEE 与零知识证明相结合 (如前所述,他们即将推出的 L2 使用 TEE 来加速执行,并使用 ZKP 在以太坊上简洁地验证它)。这种混合方法通过在 TEE 之上增加加密验证,有助于减轻任何单一 TEE 妥协的风险。

总而言之,Sanders Network 利用 TEE 为 Web3 提供了一个去中心化的、机密的云,允许在有安全保证的情况下进行链下计算。这释放了一类既需要大量计算又需要数据隐私的区块链应用,弥合了链上和链下世界之间的差距。

iExec

iExec 是一个建立在以太坊上的去中心化云计算资源市场。与前三个 (它们是自己的链或平行链) 不同,iExec 作为一个与以太坊智能合约协调的 Layer-2 或链下网络运作。TEE (特别是英特尔 SGX) 是 iExec 建立链下计算信任的方法的基石。

iExec 网络由不同提供商贡献的工作节点组成。这些工作者可以执行用户 (dApp 开发者、数据提供商等) 请求的任务。为了确保这些链下计算是可信的,iExec 引入了一个**“可信链下计算”框架:任务可以在 SGX 飞地内执行,结果附带一个飞地签名,证明任务是在一个安全节点上正确执行的。iExec 与英特尔合作推出了这一可信计算功能,甚至加入了机密计算联盟以推进标准。他们的共识协议,称为贡献证明 (Proof-of-Contribution, PoCo)**,在需要时聚合多个工作者的投票/证明,以就正确结果达成共识。在许多情况下,如果代码是确定性的并且对 SGX 的信任度很高,单个飞地的证明可能就足够了;为了获得更高的保证,iExec 可以在多个 TEE 中复制任务,并使用共识或多数票。

iExec 的平台支持几个有趣的用例:

  • 去中心化预言机计算:如前所述,iExec 可以与 Chainlink 合作。Chainlink 节点可能会获取原始数据,然后将其交给 iExec SGX 工作者执行计算 (例如,专有算法或 AI 推理),最后将结果返回到链上。这扩展了预言机的功能,使其不仅仅是中继数据——它们现在可以提供_计算服务_ (如调用 AI 模型或聚合多个来源),并由 TEE 确保诚实。
  • AI 和 DePIN (去中心化物理基础设施网络):iExec 正将自己定位为去中心化 AI 应用的信任层。例如,一个使用机器学习模型的 dApp 可以在飞地中运行该模型,以保护模型本身 (如果是专有的) 和输入的用户数据。在 DePIN (如分布式物联网网络) 的背景下,TEE 可用于边缘设备,以信任传感器读数和对这些读数的计算。
  • 安全数据货币化:数据提供商可以在 iExec 的市场上以加密形式提供其数据集。买家可以发送他们的算法在 TEE 内对数据运行 (这样数据提供商的原始数据永远不会被泄露,保护了他们的知识产权,算法的细节也可以被隐藏)。计算结果返回给买家,对数据提供商的相应支付通过智能合约处理。这种通常被称为_安全数据交换_的方案,得益于 TEE 的机密性。

总的来说,iExec 提供了连接以太坊智能合约和安全链下执行的粘合剂。它展示了TEE “工作者”如何可以联网形成一个去中心化云,并配有市场 (使用 iExec 的 RLC 代币进行支付) 和共识机制。通过领导企业以太坊联盟的可信计算工作组并为标准做出贡献 (如 Hyperledger Avalon),iExec 也推动了 TEE 在企业区块链场景中的更广泛采用。

其他项目与生态系统

除了上述四个项目,还有一些其他值得注意的项目:

  • Integritee – 另一个 Polkadot 平行链,类似于 Sanders (实际上,它源于能源网络基金会的 TEE 工作)。Integritee 使用 TEE 为企业创建“平行链即服务”,结合了链上和链下飞地处理。
  • Automata Network – 一个用于 Web3 隐私的中间件协议,利用 TEE 进行私密交易、匿名投票和抗 MEV 的交易处理。Automata 作为一个提供服务的链下网络运行,例如私密 RPC 中继,并被提及使用 TEE 来实现屏蔽身份和无 gas 私密交易等功能。
  • Hyperledger Sawtooth (PoET) – 在企业领域,Sawtooth 引入了一种名为“流逝时间证明”的共识算法,该算法依赖于 SGX。每个验证者运行一个飞地,等待一个随机时间并产生一个证明;等待时间最短的那个“赢得”区块,这是一个由 SGX 强制执行的公平抽奖。虽然 Sawtooth 本身不是一个 Web3 项目 (更像是企业区块链),但这是 TEE 在共识机制中的一个创造性应用。
  • 企业/联盟链 – 许多企业区块链解决方案 (例如,ConsenSys Quorum, IBM Blockchain) 都集成了 TEE,以实现机密的联盟交易,其中只有授权节点才能看到某些数据。例如,企业以太坊联盟的可信计算框架 (TCF) 蓝图使用 TEE 在链下执行私密合约,并在链上提交默克尔证明。

这些项目共同展示了 TEE 的多功能性:它们驱动着整个以隐私为中心的 L1,充当链下网络,保护像预言机和跨链桥这样的基础设施,甚至支撑着共识算法。接下来,我们将考虑在去中心化环境中使用 TEE 的更广泛的优势和挑战。

4. TEE 在去中心化环境中的优势与挑战

在区块链系统中采用可信执行环境既带来了显著的技术优势,也带来了值得注意的挑战和权衡。我们将审视这两个方面:TEE 为去中心化应用提供了什么,以及它们的使用会带来什么问题或风险。

优势与技术强项

  • 强大的安全性与隐私: 最首要的好处是机密性和完整性保证。TEE 允许敏感代码在确信不会被外部恶意软件窥探或篡改的情况下运行。这为链下计算提供了一种前所未有的信任水平。对于区块链而言,这意味着可以利用私有数据 (增强 dApp 的功能) 而不牺牲安全性。即使在不受信任的环境中 (云服务器、由第三方运行的验证节点),TEE 也能确保秘密的安全。这对于在加密系统中管理私钥、用户数据和专有算法尤其有益。例如,硬件钱包或云签名服务可能会使用 TEE 在内部签署区块链交易,这样私钥就永远不会以明文形式暴露,从而将便利性与安全性结合起来。

  • 接近原生的性能: 与纯粹的加密安全计算方法 (如 ZK 证明或同态加密) 不同,TEE 的开销相对较小。代码直接在 CPU 上运行,因此在飞地内的计算速度与在外部运行大致相同 (有一些飞地转换和内存加密的开销,在 SGX 中通常是单位数百分比的性能下降)。这意味着 TEE 可以高效地处理计算密集型任务,从而实现一些用例 (如实时数据源、复杂智能合约、机器学习),如果使用加密协议来完成,速度会慢几个数量级。飞地的低延迟使其适用于需要快速响应的场景 (例如,由 TEE 保护的高频交易机器人,或用户体验会因高延迟而受损的交互式应用和游戏)。

  • 提高可扩展性 (通过卸载): 通过允许繁重的计算在链下安全地完成,TEE 有助于缓解主链的拥堵和 gas 成本。它们支持 Layer-2 设计和侧链协议,其中区块链仅用于验证或最终结算,而大部分计算在并行的飞地中进行。这种模块化 (计算密集型逻辑在 TEE 中,共识在链上) 可以极大地提高去中心化应用的吞吐量和可扩展性。例如,一个 DEX 可以在 TEE 中进行链下撮合,只将匹配的交易发布到链上,从而增加吞吐量并减少链上 gas。

  • 更好的用户体验与功能: 有了 TEE,dApp 可以提供机密性或复杂分析等功能,从而吸引更多用户 (包括机构)。TEE 还支持无 gas 或元交易,通过在链下安全地执行它们然后提交结果,正如 Automata 使用 TEE 来减少私密交易的 gas 所指出的。此外,将敏感状态存储在链下的飞地中可以减少在链上发布的数据量,这有利于用户隐私和网络效率 (需要存储/验证的链上数据更少)。

  • 与其他技术的组合性: 有趣的是,TEE 可以补充其他技术 (这不仅仅是 TEE 固有的好处,而是在组合中体现的)。它们可以充当连接混合解决方案的粘合剂:例如,在飞地中运行一个程序,并同时生成其执行的 ZK 证明,其中飞地有助于加速证明过程的某些部分。或者在 MPC 网络中使用 TEE 来处理某些任务,减少通信轮次。我们将在 §5 中讨论比较,但许多项目强调 TEE 不必_取代_加密技术——它们可以并肩工作以增强安全性 (Sanders 的口号:“TEE 的优势在于支持他人,而不是取代他们”)。

信任假设与安全漏洞

尽管 TEE 有其优势,但它们也引入了特定的信任假设,并且并非无懈可击。理解这些挑战至关重要:

  • 硬件信任与中心化: 使用 TEE,你本质上是在信任芯片供应商及其硬件设计和供应链的安全性。例如,使用英特尔 SGX 意味着信任英特尔没有后门,其制造过程是安全的,并且 CPU 的微码正确地实现了飞地隔离。与纯粹的加密技术 (依赖于所有用户之间分布的数学假设) 相比,这是一个更中心化的信任模型。此外,SGX 的证明历来依赖于联系英特尔的证明服务,这意味着如果英特尔下线或决定撤销密钥,全球的飞地都可能受到影响。这种对单一公司基础设施的依赖引发了担忧:它可能成为单点故障,甚至是政府监管的目标 (例如,美国的出口管制理论上可以限制谁可以使用强大的 TEE)。AMD SEV 通过允许更去中心化的证明 (虚拟机所有者可以证明他们的虚拟机) 来缓解这个问题,但仍然需要信任 AMD 的芯片和固件。中心化风险常常被认为与区块链的去中心化精神有些背道而驰。像 Keystone (开源 TEE) 这样的项目和其他研究正在探索减少对专有黑盒依赖的方法,但这些尚未成为主流。

  • 侧信道及其他漏洞: TEE 并非万能灵药;它可以通过间接手段被攻击。侧信道攻击利用了这样一个事实:即使直接内存访问被阻止,飞地的操作也可能通过时序、缓存使用、功耗、电磁辐射等方式对系统产生微妙的影响。在过去几年中,学术界已经展示了许多针对英特尔 SGX 的攻击:从 Foreshadow (通过 L1 缓存时序泄漏提取飞地秘密) 到 Plundervolt (通过特权指令进行电压故障注入) 再到 SGAxe (提取证明密钥) 等等。这些复杂的攻击表明,TEE 可以在不破坏加密保护的情况下被攻破——而是通过利用微架构行为或实现中的缺陷。因此,人们承认_“研究人员已经识别出各种潜在的攻击向量,这些向量可能利用硬件漏洞或 TEE 操作中的时序差异”_。虽然这些攻击并非易事,并且通常需要本地访问或恶意硬件,但它们是真实存在的威胁。TEE 通常也无法防范物理攻击,如果对手手中有芯片 (例如,芯片开盖、探测总线等可以击败大多数商用 TEE)。

    供应商对侧信道发现的反应是发布微码补丁和飞地 SDK 更新以减轻已知的泄漏 (有时以牺牲性能为代价)。但这仍然是一场猫鼠游戏。对于 Web3 来说,这意味着如果有人在 SGX 上发现了一个新的侧信道,一个在 SGX 中运行的_“安全”_ DeFi 合约可能会被利用 (例如,泄露秘密数据或操纵执行)。因此,依赖 TEE 意味着接受一个硬件层面的潜在漏洞面,这超出了典型的区块链威胁模型。加强 TEE 以抵御这些攻击是一个活跃的研究领域 (例如,通过设计具有恒定时间操作的飞地代码,避免依赖秘密的内存访问模式,以及使用像混淆 RAM 这样的技术)。一些项目还通过次要检查来增强 TEE——例如,与 ZK 证明结合,或者让多个飞地在不同的硬件供应商上运行以减少单一芯片风险。

  • 性能与资源限制: 尽管 TEE 对于 CPU 密集型任务能以接近原生的速度运行,但它们确实存在一些开销和限制。进入飞地 (一个 ECALL) 和退出 (OCALL) 都有成本,内存页的加密/解密也是如此。这可能会影响非常频繁的飞地边界穿越的性能。飞地通常也有内存大小限制。例如,早期的 SGX 有一个有限的飞地页缓存 (Enclave Page Cache),当飞地使用更多内存时,页面必须被交换 (并加密),这会极大地降低性能。即使是较新的 TEE 通常也不允许轻易使用_所有_系统 RAM——有一个可能会有上限的安全内存区域。这意味着非常大规模的计算或数据集可能难以完全在 TEE 内部处理。在 Web3 的背景下,这可能会限制可以在飞地中运行的智能合约或机器学习模型的复杂性。开发者必须优化内存并可能拆分工作负载。

  • 证明与密钥管理的复杂性: 在去中心化环境中使用 TEE 需要强大的证明工作流:每个节点都需要向其他节点证明它正在运行一个带有预期代码的真实飞地。在链上设置这种证明验证可能很复杂。它通常涉及将供应商的公共证明密钥或证书硬编码到协议中,并将验证逻辑写入智能合约或链下客户端。这在协议设计中引入了开销,任何变更 (如英特尔将其证明签名密钥格式从 EPID 更改为 DCAP) 都可能导致维护负担。此外,在 TEE 内部管理密钥 (用于解密数据或签署结果) 增加了另一层复杂性。飞地密钥管理中的错误可能会破坏安全性 (例如,如果一个飞地因 bug 无意中暴露了解密密钥,其所有的机密性承诺都会崩溃)。最佳实践包括使用 TEE 的 sealing API 来安全地存储密钥,并在需要时轮换密钥,但这同样需要开发者仔细设计。

  • 拒绝服务与可用性: 一个可能较少被讨论的问题是:TEE 对可用性没有帮助,甚至可能引入新的 DoS 途径。例如,攻击者可能会用处理成本高昂的输入淹没一个基于 TEE 的服务,因为他们知道操作员无法轻易检查或中断飞地 (因为它被隔离了)。此外,如果发现了一个漏洞并且补丁需要固件更新,那么在这个周期内,许多飞地服务可能不得不暂停 (为了安全),直到节点被打上补丁,从而导致停机。在区块链共识中,想象一下如果发现了一个关键的 SGX bug——像 Secret 这样的网络可能不得不暂停,直到修复完成,因为对飞地的信任将被打破。在去中心化网络中协调此类响应是具有挑战性的。

可组合性与生态系统限制

  • 与其他合约的可组合性有限: 在像以太坊这样的公共智能合约平台上,合约可以轻松地调用其他合约,并且所有状态都是公开的,这使得 DeFi 货币乐高和丰富的组合成为可能。在基于 TEE 的合约模型中,私有状态不能在不破坏机密性的情况下自由共享或组合。例如,如果一个飞地中的合约 A 需要与合约 B 交互,并且两者都持有某些秘密数据,它们如何协作?它们要么必须执行一个复杂的安全多方协议 (这抵消了 TEE 的一些简单性),要么它们合并成一个飞地 (降低了模块化)。这是 Secret Network 和其他项目面临的挑战:带有隐私的跨合约调用并非易事。一些解决方案涉及让单个飞地处理多个合约的执行,以便它可以内部管理共享的秘密,但这可能使系统更加单体化。因此,私密合约的可组合性比公共合约更有限,或者需要新的设计模式。同样,将基于 TEE 的模块集成到现有的区块链 dApp 中需要仔细的接口设计——通常只有飞地的结果被发布到链上,这可能是一个 snark 或一个哈希,其他合约只能使用这些有限的信息。这无疑是一种权衡;像 Secret 这样的项目提供查看密钥并允许在需要时共享秘密,但这并不像正常的链上可组合性那样无缝。

  • 标准化与互操作性: TEE 生态系统目前缺乏跨供应商的统一标准。英特尔 SGX、AMD SEV、ARM TrustZone 都有不同的编程模型和证明方法。这种碎片化意味着为 SGX 飞地编写的 dApp 不能轻易地移植到 TrustZone 等。在区块链中,这可能将一个项目绑定到特定的硬件 (例如,Secret 和 Oasis 目前都绑定到带有 SGX 的 x86 服务器)。如果将来他们想支持 ARM 节点 (比如,移动设备上的验证者),这将需要额外的开发,并可能需要不同的证明验证逻辑。有一些努力 (如 CCC – 机密计算联盟) 旨在标准化证明和飞地 API,但我们还没有完全实现。缺乏标准也影响了开发者工具——人们可能会发现 SGX SDK 很成熟,但随后需要适应另一个具有不同 SDK 的 TEE。这种互操作性挑战可能会减缓采用速度并增加成本。

  • 开发者学习曲线: 构建在 TEE 内部运行的应用程序需要许多区块链开发者可能不具备的专业知识。通常需要底层 C/C++ 编程 (对于 SGX/TrustZone) 或对内存安全和抗侧信道编码的理解。调试飞地代码是出了名的棘手 (出于安全原因,你无法在飞地运行时轻易地看到其内部情况!)。尽管存在框架和更高级的语言 (如 Oasis 在其机密运行时中使用 Rust,甚至有在飞地中运行 WebAssembly 的工具),但开发者体验仍然比典型的智能合约开发或链下 web2 开发要粗糙。这种陡峭的学习曲线和不成熟的工具可能会吓退开发者,或者如果处理不当会导致错误。还有一个方面是需要硬件来进行测试——运行 SGX 代码需要支持 SGX 的 CPU 或模拟器 (速度较慢),因此入门门槛更高。因此,如今相对较少的开发者深入了解飞地开发,使得审计和社区支持比在,比如说,成熟的 solidity 社区中更为稀缺。

  • 运营成本: 运行基于 TEE 的基础设施可能成本更高。硬件本身可能更昂贵或稀缺 (例如,某些云提供商对支持 SGX 的虚拟机收取额外费用)。运营中也有开销:保持固件最新 (为了安全补丁)、管理证明网络等,这对于小项目来说可能很繁重。如果每个节点都必须有特定的 CPU,这可能会减少潜在的验证者池 (不是每个人都有所需的硬件),从而影响去中心化,并可能导致更多地使用云托管。

总而言之,虽然 TEE 解锁了强大的功能,但它们也带来了信任权衡 (硬件信任 vs. 数学信任)、潜在的安全弱点 (特别是侧信道) 以及在去中心化环境中的集成障碍。使用 TEE 的项目必须仔细地围绕这些问题进行工程设计——采用深度防御 (不要假设 TEE 是不可破解的),保持可信计算基础最小化,并对用户透明地说明信任假设 (以便清楚地知道,例如,除了区块链共识之外,还在信任英特尔的硬件)。

5. TEE 与其他隐私保护技术 (ZKP, FHE, MPC) 的对比

可信执行环境是实现 Web3 隐私和安全的一种方法,但还有其他主要技术,包括零知识证明 (Zero-Knowledge Proofs, ZKPs)全同态加密 (Fully Homomorphic Encryption, FHE)安全多方计算 (Secure Multi-Party Computation, MPC)。这些技术中的每一种都有不同的信任模型和性能特征。在许多情况下,它们并非相互排斥——它们可以相互补充——但比较它们在性能、信任和开发者可用性方面的权衡是很有用的:

简要定义这些替代技术:

  • ZKP: 加密证明 (如 zk-SNARKs, zk-STARKs),允许一方在不透露_为什么_陈述为真的情况下 (隐藏秘密输入),向他人证明一个陈述是真实的 (例如,“我知道一个满足此计算的秘密”)。在区块链中,ZKP 用于私密交易 (例如,Zcash, Aztec) 和可扩展性 (发布正确执行证明的 rollups)。它们确保了强大的隐私 (没有秘密数据泄露,只有证明) 和由数学保证的完整性,但生成这些证明可能在计算上非常繁重,并且电路必须仔细设计。
  • FHE: 一种加密方案,允许对加密数据进行任意计算,使得解密后的结果与对明文进行计算的结果相匹配。理论上,FHE 提供了终极隐私——数据始终保持加密——你不需要信任任何人来处理原始数据。但 FHE 对于通用计算极其缓慢 (尽管研究正在改进);由于性能原因,它目前主要仍处于实验或专门用途。
  • MPC: 多方共同计算一个关于他们私有输入的函数,而无需向彼此透露这些输入的协议。它通常涉及在各方之间秘密共享数据并执行加密操作,以便输出是正确的,但单个输入保持隐藏。MPC 可以分散信任 (没有单点能看到所有数据),并且对于某些操作可能很高效,但通常会产生通信和协调开销,并且对于大型网络来说实现可能很复杂。

以下是一个比较表,总结了关键差异:

技术信任模型性能数据隐私开发者可用性
TEE (Intel SGX 等)信任硬件制造商 (在某些情况下是中心化的证明服务器)。假设芯片是安全的;如果硬件被攻破,安全性就会被破坏。接近原生的执行速度;开销极小。适合实时计算和大型工作负载。可扩展性受限于支持 TEE 的节点的可用性。数据在飞地_内部_是明文,但对外部世界是加密的。如果硬件可靠,则具有强大的机密性,但如果飞地被攻破,秘密就会暴露 (没有额外的数学保护)。中等复杂性。通常可以重用现有代码/语言 (C, Rust),只需稍作修改即可在飞地中运行。是这些技术中入门门槛最低的——无需学习高级密码学——但需要系统编程和 TEE 特定 SDK 的知识。
ZKP (zk-SNARK/STARK)信任数学假设 (例如,加密问题的难度) 和有时是可信设置 (对于 SNARKs)。运行时不依赖任何单一方。证明生成在计算上非常繁重 (特别是对于复杂程序),通常比原生慢几个数量级。链上验证速度快 (几毫秒)。由于证明时间长,不适合大数据计算。可扩展性:适合简洁验证 (rollups),但证明者是瓶颈。非常强的隐私——可以在不透露任何私有输入的情况下证明正确性。只泄露极少信息 (如证明大小)。非常适合金融隐私等。高复杂性。需要学习专门的语言 (电路、像 Circom 或 Noir 这样的 zkDSL) 并以算术电路的方式思考。调试困难。专家较少。
FHE信任数学 (格问题)。没有可信方;只要加密不被破解,安全性就成立。对于通用用途非常慢。对加密数据的操作比对明文慢几个数量级。随着硬件改进和更好的算法有所扩展,但目前在区块链环境中用于实时用途不切实际。终极隐私——数据在整个计算过程中都保持加密。如果性能允许,这对于敏感数据 (例如,医疗、跨机构分析) 是理想的。非常专业。开发者需要密码学背景。存在一些库 (如 Microsoft SEAL, TFHE),但在 FHE 中编写任意程序是困难且迂回的。尚未成为 dApp 的常规开发目标。

| MPC | 信任分散在多方之间。假设有一个阈值的参与方是诚实的 (在一定数量内没有共谋)。不需要硬件信任。如果太多方共谋,信任就会失败。 | 通常比原生慢,因为有通信轮次,但通常比 FHE 快。性能各异:简单操作 (加、乘) 可以很高效;复杂逻辑可能会导致通信成本激增。延迟对网络速度敏感。可通过分片或部分信任假设提高可扩展性。 | 如果假设成立,则具有强隐私性——没有单个节点能看到整个输入。但某些信息可能通过输出泄露,或者如果参与方掉线 (此外,它缺乏 ZK 的简洁性——你得到结果但没有易于共享的证明,除非再次运行协议)。 | 高复杂性。需要为每个用例设计自定义协议或使用框架 (如 SPDZ 或 Partisia 的产品)。开发者必须思考加密协议,并常常需要协调多个节点的部署。集成到区块链应用中可能很复杂 (需要链下轮次)。 |

引用: 上述比较借鉴了 Sanders Network 的分析等来源,这些来源强调 TEE 在速度和易用性方面表现出色,而 ZK 和 FHE 则以牺牲大量计算为代价,专注于最大限度的去信任化,MPC 则分散了信任但引入了网络开销。

从表中可以清楚地看出一些关键的权衡:

  • 性能: TEE 在原始速度和低延迟方面具有巨大优势。MPC 通常可以处理中等复杂性,但速度有所减慢;ZK 生成证明慢但验证快 (异步使用);FHE 目前对于任意任务是迄今为止最慢的 (尽管对于简单的加法/乘法等有限操作还可以)。如果你的应用需要实时的复杂处理 (如交互式应用、高频决策),TEE 或许 MPC (在良好连接下少数参与方) 是目前唯一可行的选择。在这种场景下,ZK 和 FHE 会太慢。

  • 信任模型: ZKP 和 FHE 是纯粹无需信任的 (只信任数学)。MPC 将信任转移到对参与者诚实度的假设上 (可以通过拥有众多参与方或经济激励来加强)。TEE 将信任置于硬件和供应商身上。这是一个根本性的区别:TEE 将一个_受信任的第三方_ (芯片) 引入了通常无需信任的区块链世界。相比之下,ZK 和 FHE 常因更符合去中心化精神而受到称赞——没有特殊的实体需要信任,只有计算难度。MPC 介于两者之间:信任是去中心化的,但并未消除 (如果 M 个节点中有 N 个共谋,隐私就会被破坏)。因此,为了最大限度的去信任化 (例如,一个真正抗审查、去中心化的系统),人们可能倾向于加密解决方案。另一方面,许多实际系统很乐意假设英特尔是诚实的,或者一组主要验证者不会共谋,用一点信任换取效率的巨大提升。

  • 安全性/漏洞: 如前所述,TEE 可能因硬件 bug 或侧信道而受到破坏。如果底层数学 (比如椭圆曲线或格问题) 被破解,ZK 和 FHE 的安全性可能会被破坏,但这些都是经过充分研究的问题,攻击很可能会被注意到 (此外,参数选择可以减轻已知风险)。如果协议不是为主动攻击者设计的,MPC 的安全性可能会被其破坏 (一些 MPC 协议假设参与者是“诚实但好奇的”,如果有人公然作弊,可能会失败)。在区块链背景下,TEE 泄露可能更具灾难性 (所有基于飞地的合约在打补丁前都可能处于危险之中),而 ZK 加密技术的破解 (比如发现 ZK rollup 使用的哈希函数存在缺陷) 也可能是灾难性的,但通常被认为可能性较小,因为其假设更简单。攻击面非常不同:TEE 必须担心功耗分析之类的事情,而 ZK 则必须担心数学上的突破。

  • 数据隐私: FHE 和 ZK 提供了最强的隐私保证——数据始终受到加密保护。MPC 确保数据是秘密共享的,因此没有单一方能看到它 (尽管如果输出是公开的或协议设计不仔细,某些信息可能会泄露)。TEE 使数据对外部保密,但_在_飞地内部数据是解密的;如果有人以某种方式控制了飞地,数据的机密性就会丧失。此外,TEE 通常允许代码对数据做任何事情 (包括如果代码是恶意的,通过侧信道或网络无意中泄露数据)。因此,TEE 要求你不仅信任硬件,还要信任飞地_代码_。相比之下,ZKP 证明了代码的属性而从不泄露秘密,所以你甚至不必信任代码 (除了它确实具有被证明的属性)。如果一个飞地应用程序有一个将数据泄露到日志文件的 bug,TEE 硬件不会阻止它——而 ZK 证明系统根本不会透露除预期证明之外的任何东西。这是一个细微差别:TEE 防范外部对手,但不一定防范飞地程序本身的逻辑 bug,而 ZK 的设计强制采用更具声明性的方法 (你只证明预期的内容,不多也不少)。

  • 可组合性与集成: TEE 相当容易集成到现有系统中——你可以拿一个现有程序,放入飞地,在不怎么改变编程模型的情况下获得一些安全优势。ZK 和 FHE 通常需要将程序重写为电路或限制性形式,这可能是一项巨大的工作。例如,用 ZK 编写一个简单的 AI 模型验证涉及将其转换为一系列算术运算和约束,这与仅仅在 TEE 中运行 TensorFlow 并证明结果相去甚远。MPC 同样可能需要为每个用例定制协议。因此,从开发者生产力和成本的角度来看,TEE 很有吸引力。我们看到 TEE 在某些领域的采用速度更快,正是因为你可以利用现有的软件生态系统 (许多库只需稍作调整即可在飞地中运行)。ZK/MPC 需要稀缺的专业工程人才。然而,另一方面,TEE 产生的解决方案通常更加孤立 (你必须信任那个飞地或那组节点),而 ZK 给你一个任何人都可以在链上检查的证明,使其具有高度的可组合性 (任何合约都可以验证一个 zk 证明)。所以 ZK 的结果是_可移植的_——它们产生一个小小的证明,任何数量的其他合约或用户都可以用它来获得信任。TEE 的结果通常以与特定硬件相关的证明形式出现,并且可能不简洁;它们可能不容易共享或与链无关 (尽管你可以发布结果的签名,并让合约编程为如果它们知道飞地的公钥就接受它)。

在实践中,我们正在看到混合方法:例如,Sanders Network 认为 TEE、MPC 和 ZK 各自在不同领域大放异彩,并且可以相互补充。一个具体的例子是去中心化身份:人们可能会使用 ZK 证明来证明一个身份凭证而不泄露它,但该凭证可能是由一个基于 TEE 的流程验证和颁发的,该流程私下检查了你的文件。或者考虑扩展:ZK rollups 为大量交易提供了简洁的证明,但生成这些证明可以通过使用 TEE 来更快地进行一些计算来加速 (然后只证明一个更小的陈述)。这种组合有时可以降低对 TEE 的信任要求 (例如,使用 TEE 来提高性能,但仍然通过 ZK 证明或链上挑战游戏来验证最终的正确性,这样被攻破的 TEE 就无法在不被发现的情况下作弊)。同时,MPC 可以与 TEE 结合,让每个参与方的计算节点都是一个 TEE,增加一个额外的层次,这样即使一些参与方共谋,他们仍然无法看到彼此的数据,除非他们也破解了硬件安全。

总而言之,TEE 提供了一条非常_实用和直接的路径_来实现安全计算,只需适度的假设 (硬件信任),而 ZK 和 FHE 提供了一条更_理论化和无需信任的路径_,但计算成本高昂,MPC 则提供了一条_分布式信任的路径_,但有网络成本。在 Web3 中,正确的选择取决于应用需求:

  • 如果你需要_对私有数据进行快速、复杂的计算_ (如 AI、大数据集)——TEE (或少数参与方的 MPC) 是目前唯一可行的方式。
  • 如果你需要_最大限度的去中心化和可验证性_——ZK 证明大放异彩 (例如,私密加密货币交易偏爱 ZKP,如 Zcash,因为用户除了数学不想信任任何东西)。
  • 如果你需要_多个利益相关者之间的协作计算_——MPC 天然适合 (如多方密钥管理或拍卖)。
  • 如果你有_极其敏感的数据并且长期隐私是必须的_——如果性能提高,FHE 可能会很有吸引力,因为即使多年后有人拿到了你的密文,没有密钥他们也学不到任何东西;而飞地被攻破可能会追溯性地泄露秘密,如果日志被保留的话。

值得注意的是,区块链领域正在并行积极探索所有这些技术。我们很可能会看到组合:例如,集成 TEE 的 Layer 2 解决方案用于对交易进行排序,然后使用 ZKP 来证明 TEE 遵守了规则 (这是以太坊研究中正在探索的一个概念),或者使用 TEE 的 MPC 网络,在每个节点中使用 TEE 来降低 MPC 协议的复杂性 (因为每个节点内部是安全的,可以模拟多个参与方)。

最终,TEE vs ZK vs MPC vs FHE 并非一个零和选择——它们各自针对安全性、性能和去信任化这个三角形中的不同点。正如一篇文章所说,所有四种技术都面临着性能、成本和安全的“不可能三角”——没有单一的解决方案在所有方面都优越。最优的设计通常是为问题的不同部分使用正确的工具。

6. 在主流区块链生态系统中的采用情况

可信执行环境在不同的区块链生态系统中有着不同程度的采用,这通常受到这些社区的优先事项和集成难易度的影响。在这里,我们评估 TEE 在一些主要生态系统中的使用情况 (或探索情况):以太坊、Cosmos 和 Polkadot,并简要提及其他生态系统。

以太坊 (及通用 Layer-1)

在以太坊主网本身,TEE 并非核心协议的一部分,但它们已被用于应用程序和 Layer-2。以太坊的理念倾向于加密安全 (例如,新兴的 ZK-rollups),但 TEE 在预言机和以太坊的链下执行中找到了自己的角色:

  • 预言机服务: 如前所述,Chainlink 已经整合了基于 TEE 的解决方案,如 Town Crier。虽然并非所有 Chainlink 节点都默认使用 TEE,但对于需要额外信任的数据源,该技术是可用的。此外,API3 (另一个预言机项目) 也提到使用英特尔 SGX 来运行 API 并签署数据以确保真实性。这些服务以更强的保证向以太坊合约提供数据。

  • Layer-2 和 Rollups: 以太坊社区中关于在 rollup 排序器或验证器中使用 TEE 的研究和辩论正在进行中。例如,_ConsenSys 的“ZK-Portal”_概念和其他人已经提出使用 TEE 在 optimistic rollups 中强制执行正确的排序,或保护排序器免受审查。我们看到的一篇 Medium 文章甚至建议,到 2025 年,TEE 可能会成为某些 L2 中用于高频交易保护等功能的默认特性。像 Catalyst (一个高频交易 DEX) 和 Flashbots (用于 MEV 中继) 这样的项目已经研究了 TEE,以在交易到达区块链之前强制执行公平排序。

  • 企业以太坊: 在联盟链或许可的以太坊网络中,TEE 的采用更为广泛。企业以太坊联盟的可信计算框架 (TCF) 基本上是将 TEE 集成到以太坊客户端的蓝图。Hyperledger Avalon (前身为 EEA TCF) 允许以太坊智能合约的部分在 TEE 中链下执行,然后在链上验证。IBM、微软和 iExec 等几家公司都对此做出了贡献。虽然这在公共以太坊上尚未普及,但在私有部署中 (例如,一组银行使用 Quorum 或 Besu),可以使用 TEE,这样即使是联盟成员也看不到彼此的数据,只能看到授权的结果。这可以在企业环境中满足隐私要求。

  • 知名项目: 除了在以太坊上运行的 iExec,还有像 Enigma 这样的项目 (最初是 MIT 的一个 MPC 项目,后来转向使用 SGX;它后来成为 Cosmos 上的 Secret Network)。另一个是早期以太坊讨论中的去中心化云服务 (DCS)。最近,OAuth (Oasis Ethereum ParaTime) 允许 solidity 合约通过使用 Oasis 的 TEE 后端但在以太坊上结算来实现机密运行。此外,一些基于以太坊的 DApp,如医疗数据共享或游戏,也通过拥有一个与它们的合约交互的链下飞地组件来试验 TEE。

所以以太坊的采用有些间接——它没有改变协议来要求 TEE,但它有一套丰富的可选服务和扩展,为需要它们的人利用 TEE。重要的是,以太坊研究人员仍然保持谨慎:提出建立一个“仅 TEE 分片”或深度集成 TEE 的建议遭到了社区的怀疑,因为存在信任问题。相反,TEE 被视为以太坊的_“协处理器”_,而不是核心组件。

Cosmos 生态系统

Cosmos 生态系统通过其模块化的 SDK 和主权链,对实验持友好态度,而 Secret Network (上文已述) 是 Cosmos 中 TEE 采用的一个典型例子。Secret Network 实际上是一个带有 Tendermint 共识的 Cosmos SDK 链,经过修改以强制其验证者使用 SGX。它是继主要的 Cosmos Hub 之后最著名的 Cosmos 区域之一,表明 TEE 技术在该社区得到了显著采用。Secret 在提供跨链隐私方面的成功 (通过其 IBC 连接,Secret 可以作为其他 Cosmos 链的隐私中心) 是 TEE 在 L1 集成的一个值得注意的案例。

另一个与 Cosmos 相关的项目是 Oasis Network (虽然不是基于 Cosmos SDK 构建,但它是由一些对 Tendermint 有贡献的同一些人设计的,并共享类似的模块化架构理念)。Oasis 是独立的,但可以通过桥等方式连接到 Cosmos。Secret 和 Oasis 都表明,在 Cosmos 的世界里,通过 TEE 实现_“隐私即特性”_的想法获得了足够的吸引力,足以支持专门的网络。

Cosmos 甚至有一个为跨链应用提供_“隐私提供者”_的概念——例如,一个链上的应用可以通过 IBC 调用 Secret Network 上的合约来执行机密计算,然后取回结果。这种可组合性现在正在兴起。

此外,Anoma 项目 (不完全是 Cosmos,但在互操作性方面相关) 已经讨论过在以意图为中心的架构中使用 TEE,尽管这更多是理论上的。

简而言之,Cosmos 至少有一个主要链完全拥抱 TEE (Secret),并且其他链与之互动,这说明了在该领域健康的采用情况。Cosmos 的模块化可能会允许更多这样的链 (例如,可以想象一个专门从事基于 TEE 的预言机或身份的 Cosmos 区域)。

Polkadot 与 Substrate

Polkadot 的设计允许平行链专业化,事实上 Polkadot 托管了多个使用 TEE 的平行链

  • Sanders Network: 已经描述过;一个提供基于 TEE 的计算云的平行链。Sanders 已经作为平行链上线,通过 XCMP (跨链消息传递) 为其他链提供服务。例如,另一个 Polkadot 项目可以将一个机密任务卸载给 Sanders 的工作者,并取回一个证明或结果。Sanders 的原生代币经济学激励运行 TEE 节点,并且它拥有一个相当大的社区,这标志着强劲的采用。
  • Integritee: 另一个专注于使用 TEE 的企业和数据隐私解决方案的平行链。Integritee 允许团队部署他们自己的私有侧链 (称为 Teewasms),其中执行在飞地中完成。它针对的用例是为那些仍希望锚定 Polkadot 安全性的公司进行机密数据处理。
  • /Root 或 Crust?: 在一些与 Polkadot 相关的项目中,曾有过使用 TEE 进行去中心化存储或随机信标的想法。例如,Crust Network (去中心化存储) 最初计划了一个基于 TEE 的存储证明 (尽管后来转向了另一种设计)。而 Polkadot 的随机平行链 (Entropy) 考虑过 TEE 与 VRF 的对比。

Polkadot 对链上治理和升级的依赖意味着平行链可以迅速整合新技术。Sanders 和 Integritee 都经历了升级,以改进它们的 TEE 集成 (比如支持新的 SGX 功能或完善证明方法)。Web3 基金会也资助了早期的基于 Substrate 的 TEE 项目,如 SubstraTEE (一个早期的原型,展示了在 TEE 中进行链下合约执行并在链上验证)。

因此,Polkadot 生态系统显示出多个独立的团队在 TEE 技术上下注,这表明了一个积极的采用趋势。这正在成为 Polkadot 的一个卖点:“如果你需要机密智能合约或链下计算,我们有专门的平行链”。

其他生态系统与总体采用情况

  • 企业与联盟: 在公共加密货币之外,Hyperledger 和企业链已经稳步地在许可设置中采用 TEE。例如,巴塞尔委员会测试了一个基于 TEE 的贸易融资区块链。总的模式是:在隐私或数据机密性是必须的,并且参与者是已知的 (因此他们甚至可能集体投资于硬件安全模块) 的地方,TEE 找到了一个舒适的家。这些可能不会成为加密新闻的头条,但在供应链、银行联盟或医疗数据共享网络等领域,TEE 通常是首选 (作为信任第三方或使用重型密码学的替代方案)。

  • 以太坊之外的 Layer-1: 一些较新的 L1 已经涉足 TEE。NEAR Protocol 有一个早期的基于 TEE 的私密合约分片概念 (尚未实现)。Celo 曾考虑过 TEE 用于轻客户端证明 (他们的 Plumo 证明现在依赖于 snarks,但他们曾研究过使用 SGX 为移动设备压缩链数据)。Concordium,一个受监管的隐私 L1,使用 ZK 实现匿名性,但也探索 TEE 用于身份验证。Dfinity/Internet Computer 在其节点机器中使用安全飞地,但用于引导信任 (而不是用于合约执行,因为他们的“链密钥”密码学处理了这个问题)。

  • 比特币:虽然比特币本身不使用 TEE,但有一些侧链项目。例如,用于比特币密钥的基于 TEE 的托管解决方案 (如 Vault 系统),或者在 DLC (离散对数合约) 中的某些提案中使用可能由 TEE 保护的预言机。总的来说,比特币社区更为保守,不会轻易信任英特尔作为共识的一部分,但作为辅助技术 (带有安全元件的硬件钱包),它已经被接受。

  • 监管机构与政府: 一个有趣的采用方面是:一些 CBDC (央行数字货币) 研究已经着眼于使用 TEE 来强制执行隐私,同时允许可审计性。例如,法国银行进行了一些实验,他们使用 TEE 来处理对其他私密交易的某些合规性检查。这表明即使是监管机构也认为 TEE 是平衡隐私与监督的一种方式——你可以有一个 CBDC,其中交易对公众是加密的,但监管机构的飞地可以在某些条件下审查它们 (这是假设性的,但在政策圈中被讨论)。

  • 采用指标: 很难量化采用情况,但我们可以看一些指标,如:项目数量、投资资金、基础设施的可用性。在这方面,今天 (2025 年) 我们有:至少 3-4 个公共链 (Secret, Oasis, Sanders, Integritee, Automata 作为链下) 明确使用 TEE;主要的预言机网络正在整合它;大型科技公司支持机密计算 (微软 Azure、谷歌云提供 TEE 虚拟机——这些服务正被区块链节点作为选项使用)。机密计算联盟现在包括专注于区块链的成员 (以太坊基金会、Chainlink、Fortanix 等),显示了跨行业的合作。这些都指向一个增长但小众的采用——TEE 在 Web3 中尚未普及,但它们已经在需要隐私和安全链下计算的领域开辟了重要的利基市场。

7. 商业与监管考量

在区块链应用中使用 TEE 引发了几个利益相关者必须考虑的商业和监管问题:

隐私合规与机构采用

TEE 采用的商业驱动力之一是在利用区块链技术的同时,需要遵守数据隐私法规 (如欧洲的 GDPR,美国的 HIPAA 用于健康数据)。公共区块链默认在全球广播数据,这与要求保护敏感个人数据的法规相冲突。TEE 提供了一种在链上保持数据机密并仅以受控方式共享的方法,从而实现合规。正如所指出的,“TEE 通过隔离敏感用户数据并确保其得到安全处理,促进了数据隐私法规的合规性”。这一能力对于将企业和机构引入 Web3 至关重要,因为他们不能冒险违反法律。例如,一个处理患者信息的医疗 dApp 可以使用 TEE 来确保没有原始患者数据泄露到链上,满足 HIPAA 对加密和访问控制的要求。同样,一家欧洲银行可以使用基于 TEE 的链来代币化和交易资产,而无需暴露客户的个人详细信息,这与 GDPR 一致。

这有一个积极的监管角度:一些监管机构已经表示,像 TEE (以及相关的机密计算概念) 这样的解决方案是受欢迎的,因为它们提供了隐私的技术强制执行。我们看到世界经济论坛和其他机构强调 TEE 是将_“设计即隐私”_构建到区块链系统中的一种手段 (本质上是在协议层面嵌入合规性)。因此,从商业角度来看,TEE 可以通过消除一个关键障碍 (数据机密性) 来加速机构采用。如果公司知道有硬件保障他们的数据,他们就更愿意使用或构建在区块链上。

另一个合规方面是可审计性与监督。企业通常需要审计日志和向审计员证明他们控制数据的能力。TEE 实际上可以在这里提供帮助,通过生成证明报告和安全日志来记录访问了什么。例如,Oasis 在飞地中的“持久化日志记录”提供了一个防篡改的敏感操作日志。企业可以向监管机构展示该日志,以证明,比如说,只有授权的代码运行,并且只对客户数据进行了某些查询。这种_经证明的审计_可能比你信任系统管理员日志的传统系统更能满足监管机构的要求。

信任与责任

另一方面,引入 TEE 改变了信任结构,从而也改变了区块链解决方案中的责任模型。如果一个 DeFi 平台使用 TEE,并且由于硬件缺陷出了问题,谁来负责?例如,考虑一个场景,英特尔 SGX 的一个 bug 导致秘密交换交易细节泄露,使用户蒙受损失 (被抢先交易等)。用户信任了平台的安全声明。是平台的错,还是英特尔的错?法律上,用户可能会追究平台 (平台反过来可能需要追究英特尔)。这使事情复杂化,因为你的安全模型中有一个_第三方技术提供商_ (CPU 供应商)。使用 TEE 的企业必须在合同和风险评估中考虑这一点。一些企业可能会在使用其 TEE 于关键基础设施时寻求硬件供应商的保修或支持。

还有一个中心化担忧:如果一个区块链的安全性依赖于单一公司的硬件 (英特尔或 AMD),监管机构可能会对此持怀疑态度。例如,政府能否传唤或胁迫该公司来破坏某些飞地?这并非纯粹的理论担忧——考虑出口管制法:高级加密硬件可能受到监管。如果大部分加密基础设施依赖于 TEE,可以想象政府可能会试图插入后门 (尽管没有证据表明这一点,但_观念_很重要)。一些隐私倡导者向监管机构指出这一点:TEE 集中了信任,如果有什么的话,监管机构应该仔细审查它们。相反,希望有更多控制权的监管机构可能_更喜欢_ TEE 而不是像 ZK 这样的基于数学的隐私,因为对于 TEE,至少有一个概念,即执法部门在绝对必要时可以带着法院命令接触硬件供应商 (例如,获取主证明密钥之类的——不是说这很容易或可能,但这是 ZK 所没有的途径)。所以监管机构的接受度可能会分化:隐私监管机构 (数据保护机构) 支持 TEE 的合规性,而执法部门可能持谨慎乐观态度,因为 TEE 不像强加密那样“走向黑暗”——有一个理论上的杠杆 (硬件) 他们可能会尝试拉动。

企业需要通过可能参与认证来应对这种情况。硬件模块有像 FIPS 140 或通用标准这样的安全认证。目前,SGX 和其他一些产品有一些认证 (例如,SGX 在某些用途上有通用标准 EAL 的东西)。如果一个区块链平台能够指出其使用的飞地技术已通过高标准认证,监管机构和合作伙伴可能会更放心。例如,一个 CBDC 项目可能要求任何使用的 TEE 都经过 FIPS 认证,以便他们信任其随机数生成等。这引入了额外的流程,并可能限制于某些硬件版本。

生态系统与成本考量

从商业角度来看,使用 TEE 可能会影响区块链运营的成本结构。节点必须有特定的 CPU (可能更昂贵或能效更低)。这可能意味着更高的云托管账单或资本支出。例如,如果一个项目强制所有验证者使用带有 SGX 的英特尔至强处理器,这就是一个限制——验证者不能只是任何有树莓派或旧笔记本电脑的人;他们需要那种硬件。这可能会集中化谁可以参与 (可能有利于那些能负担得起高端服务器或使用提供 SGX 虚拟机的云提供商的人)。在极端情况下,这可能会推动网络变得更加许可化或依赖云提供商,这是一个去中心化的权衡,也是一个商业权衡 (网络可能需要补贴节点提供商)。

另一方面,一些企业可能会觉得这是可以接受的,因为他们_想要_已知的验证者或有一个白名单 (尤其是在企业联盟中)。但在公共加密网络中,这引起了辩论——例如,当要求使用 SGX 时,人们会问“这是否意味着只有大型数据中心才能运行节点?”这影响了社区情绪,从而影响了市场采用。例如,一些加密纯粹主义者可能会避开一个需要 TEE 的链,称其为“不够去信任化”或过于中心化。因此,项目必须处理公关和社区教育,明确信任假设是什么,以及为什么它仍然是安全的。我们看到 Secret Network 通过解释对英特尔更新的严格监控以及如果验证者不更新飞地就会被惩罚等方式来应对 FUD,基本上是在硬件信任之上建立了一个社会信任层。

另一个考虑因素是合作伙伴关系与支持。围绕 TEE 的商业生态系统包括大型科技公司 (英特尔、AMD、ARM、微软、谷歌等)。使用 TEE 的区块链项目通常与这些公司合作 (例如,iExec 与英特尔合作,Secret Network 与英特尔在证明改进方面合作,Oasis 与微软在机密 AI 方面合作等)。这些合作伙伴关系可以提供资金、技术援助和信誉。这是一个战略要点:与机密计算行业结盟可以打开大门 (用于融资或企业试点),但也意味着一个加密项目可能与大公司结盟,这在社区中有意识形态上的影响。

监管不确定性

随着使用 TEE 的区块链应用增长,可能会出现新的监管问题。例如:

  • 数据管辖权: 如果数据在某个国家的 TEE 内部处理,它被认为是“在该国处理”还是无处处理 (因为它被加密了)?一些隐私法要求公民的数据不得离开某些地区。TEE 可能会模糊界限——你可能在某个云区域有一个飞地,但只有加密数据进出。监管机构可能需要澄清他们如何看待这种处理。
  • 出口管制: 先进的加密技术可能受到出口限制。TEE 涉及内存加密——历史上这不成问题 (因为带有这些功能的 CPU 在全球销售),但如果这种情况发生变化,可能会影响供应。此外,一些国家可能出于国家安全原因禁止或不鼓励使用外国 TEE (例如,中国有自己的等同于 SGX 的技术,因为他们不信任英特尔的,并且可能不允许 SGX 用于敏感用途)。
  • 法律强制: 一个场景:政府能否传唤节点运营商从飞地中提取数据?通常他们不能,因为即使是运营商也看不到内部。但如果他们传唤英特尔要求提供特定的证明密钥呢?英特尔的设计是,即使是他们也无法解密飞地内存 (他们向 CPU 发行密钥,由 CPU 完成工作)。但如果存在后门或者英特尔可以签署一个特殊的固件来转储内存,这是一个令人担忧的假设。法律上,像英特尔这样的公司如果被要求破坏其安全性,可能会拒绝 (他们很可能会这样做,以免破坏对其产品的信任)。但仅仅是这种可能性就可能出现在关于合法访问的监管讨论中。使用 TEE 的企业应随时关注任何此类发展,尽管目前没有公开的机制让英特尔/AMD 提取飞地数据——这正是 TEE 的意义所在。

市场差异化与新服务

从商业的积极方面来看,TEE 催生了可以货币化的新产品和服务。例如:

  • 机密数据市场: 正如 iExec 和 Ocean Protocol 等所指出的,公司持有有价值的数据,如果他们能保证数据不会泄露,就可以将其货币化。TEE 实现了“数据租赁”,即数据永远不离开飞地,只有洞察离开。这可以解锁新的收入来源和商业模式。我们看到 Web3 中的初创公司向企业提供机密计算服务,本质上是在销售“从区块链或跨公司数据中获取洞察而不暴露任何东西”的理念。
  • 企业 DeFi: 金融机构常常将缺乏隐私作为不参与 DeFi 或公共区块链的原因。如果 TEE 能保证其头寸或交易的隐私,他们可能会参与,为生态系统带来更多流动性和业务。迎合这一需求的项目 (如 Secret 的秘密贷款,或 Oasis 的带有合规控制的私密 AMM) 正在定位以吸引机构用户。如果成功,这可能是一个巨大的市场 (想象一下机构 AMM 池,其中身份和金额被屏蔽,但飞地确保内部完成了像 AML 这样的合规检查——这是一个可以在监管舒适度下为 DeFi 带来大笔资金的产品)。
  • 保险与风险管理: 随着 TEE 降低某些风险 (如预言机操纵),我们可能会看到智能合约平台的保险费降低或出现新的保险产品。相反,TEE 引入了新的风险 (如飞地的技术故障),这本身可能成为可保事件。加密保险领域正在萌芽;他们如何对待依赖 TEE 的系统将很有趣。一个平台可能会宣传它使用 TEE 来降低数据泄露的风险,从而使其更容易/更便宜地投保,从而获得竞争优势。

总之,支持 TEE 的 Web3 的商业和监管格局是关于平衡信任与创新。TEE 提供了一条遵守法律和解锁企业用例的途径 (这对主流采用是一个巨大的加分项),但它们也带来了对硬件提供商的依赖和必须透明管理的复杂性。利益相关者需要与科技巨头 (寻求支持) 和监管机构 (寻求清晰度和保证) 进行接触,以充分实现 TEE 在区块链中的潜力。如果做得好,TEE 可能成为一个基石,允许区块链与处理敏感数据的行业深度整合,从而将 Web3 的触角延伸到以前因隐私问题而禁入的领域。

结论

可信执行环境已成为 Web3 工具箱中的一个强大组件,催生了一类需要机密性和安全链下计算的新型去中心化应用。我们已经看到,像英特尔 SGX、ARM TrustZone 和 AMD SEV 这样的 TEE 为计算提供了一个硬件隔离的“保险箱”,这一特性已被用于隐私保护智能合约、可验证预言机、可扩展的链下处理等。跨生态系统的项目——从 Secret Network 在 Cosmos 上的私密合约,到 Oasis 的机密 ParaTimes,再到 Sanders 在 Polkadot 上的 TEE 云,以及 iExec 在以太坊上的链下市场——都展示了 TEE 被集成到区块链平台中的多样化方式。

技术上,TEE 提供了速度和强大数据机密性的引人注目的优势,但它们也带来了自身的挑战:需要信任硬件供应商、潜在的侧信道漏洞,以及在集成和可组合性方面的障碍。我们将 TEE 与加密替代方案 (ZKP、FHE、MPC) 进行了比较,发现每种技术都有其利基市场:TEE 在性能和易用性方面表现出色,而 ZK 和 FHE 以高昂的成本提供最大限度的去信任化,MPC 则在参与者之间分散信任。事实上,许多前沿解决方案都是混合的,将 TEE 与加密方法结合使用,以取长补短。

基于 TEE 的解决方案的采用正在稳步增长。以太坊 dApp 利用 TEE 实现预言机安全和私密计算,Cosmos 和 Polkadot 通过专门的链提供原生支持,企业区块链的努力正在拥抱 TEE 以实现合规。在商业上,TEE 可以成为连接去中心化技术与监管的桥梁——允许敏感数据在硬件安全的保障下在链上处理,这为机构使用和新服务打开了大门。同时,使用 TEE 意味着要接受新的信任范式,并确保区块链的去中心化精神不被不透明的芯片所破坏。

总而言之,可信执行环境在 Web3 的演进中扮演着至关重要的角色:它们解决了隐私和可扩展性这两个最紧迫的问题,虽然它们不是万能药 (也并非没有争议),但它们显著扩展了去中心化应用的功能。随着技术的成熟——硬件安全性的提高和证明标准的完善——以及更多项目展示其价值,我们可以期待 TEE (以及互补的加密技术) 成为旨在以安全可信的方式释放 Web3 全部潜力的区块链架构的标准组件。未来很可能出现分层解决方案,其中硬件和密码学携手合作,提供既高性能又可证明安全的系统,满足用户、开发者和监管机构的需求。

参考资料: 本报告中的信息收集自各种最新来源,包括官方项目文档和博客、行业分析以及学术研究,并在全文中引用。值得注意的参考文献包括 Metaschool 2025 年关于 Web3 中 TEE 的指南、Sanders Network 的比较、ChainCatcher 等对 FHE/TEE/ZKP/MPC 的技术见解,以及 Binance Research 等关于监管合规的声明。这些来源提供了更多细节,建议希望更深入探讨特定方面的读者参考。

区块链中的可编程隐私:链下计算与链上验证

· 阅读需 52 分钟
Dora Noda
Software Engineer

公共区块链以牺牲隐私为代价提供了透明度和完整性——每笔交易和合约状态都对所有参与者公开。这种开放性带来了诸如 MEV (矿工可提取价值) 攻击、复制交易以及敏感商业逻辑泄露等问题。可编程隐私旨在通过允许在不泄露数据本身的情况下对私有数据进行计算来解决这些问题。两种新兴的密码学范式正在使这成为可能:全同态加密虚拟机 (FHE-VM)零知识 (ZK) 协处理器。这些方法实现了链下或加密计算与链上验证,在保留信任的同时保护了机密性。在本报告中,我们将深入探讨 FHE-VM 和 ZK 协处理器的架构,比较它们的优缺点,并探索它们在金融、身份、医疗、数据市场和去中心化机器学习等领域的用例。

全同态加密虚拟机 (FHE-VM)

全同态加密 (FHE) 允许在不解密数据的情况下对加密数据进行任意计算。FHE 虚拟机将此功能集成到区块链智能合约中,实现了加密的合约状态和逻辑。在一个支持 FHE 的区块链(对于 EVM 兼容的设计,通常称为 fhEVM)中,所有输入、合约存储和输出在整个执行过程中都保持加密状态。这意味着验证者可以在不了解任何敏感值的情况下处理交易和更新状态,从而实现具有数据机密性的链上执行。

FHE-VM 的架构与设计

一个典型的 FHE-VM 扩展了标准的智能合约运行时(如以太坊虚拟机),增加了对加密数据类型和操作的原生支持。例如,Zama 的 FHEVM 引入了加密整数(euint8euint32 等)、加密布尔值(ebool),甚至加密数组作为一等类型。像 Solidity 这样的智能合约语言通过库或新的操作码进行了增强,使开发者可以直接对密文执行算术(addmul 等)、逻辑和比较操作。在底层,这些操作调用 FHE 原语(例如,使用 TFHE 库)来操作加密位并产生加密结果。

加密状态存储也得到支持,以便合约变量在区块链状态中保持加密。执行流程通常如下:

  1. 客户端加密: 用户在发送交易前,使用公共 FHE 密钥在本地加密其输入。加密密钥是公开的(用于加密和评估),而解密密钥则保持私密。在某些设计中,每个用户管理自己的密钥;在其他设计中,使用单个全局 FHE 密钥(下文将讨论)。
  2. 链上同态计算: 矿工/验证者使用加密的操作码执行合约。他们对密文执行相同的确定性同态操作,因此可以在加密的新状态上达成共识。关键是,验证者永远看不到明文数据——他们只看到“乱码”的密文,但仍然可以一致地处理它。
  3. 解密(可选): 如果需要公开或在链下使用某个结果,拥有私钥的授权方可以解密输出的密文。否则,结果将保持加密状态,并可用作后续交易的输入(允许对持久的加密状态进行连续计算)。

一个主要的设计考虑是密钥管理。一种方法是每个用户一个密钥,即每个用户持有自己的私钥,只有他们才能解密与他们相关的输出。这最大限度地保护了隐私(其他任何人都无法解密你的数据),但同态操作无法混合使用不同密钥加密的数据,除非使用复杂的多密钥协议。另一种方法,被 Zama 的 FHEVM 采用,是全局 FHE 密钥:一个单一的公钥加密所有合约数据,而一组分布式的验证者持有门限解密密钥的份额。公共加密和评估密钥在链上发布,因此任何人都可以向网络加密数据;私钥被分割给验证者,他们可以在门限方案下集体解密(如果需要)。为了防止验证者串通损害隐私,Zama 采用了一种门限 FHE 协议(基于他们的 Noah’s Ark 研究),并使用“噪声泛洪”来确保部分解密的安全性。只有当足够数量的验证者合作时,才能恢复明文,例如响应一个读取请求。然而,在正常操作中,没有任何单个节点能看到明文——数据在链上始终保持加密。

访问控制是另一个关键组成部分。FHE-VM 实现包括细粒度的控制,以管理谁(如果有的话)可以触发解密或访问某些加密字段。例如,Cypher 的 fhEV M支持对密文的访问控制列表,允许开发者指定哪些地址或合约可以与某些数据交互或重新加密。一些框架支持重加密:即在不暴露明文的情况下,将一个加密值从一个用户的密钥转移到另一个用户的密钥。这对于数据市场等场景非常有用,数据所有者可以用自己的密钥加密数据集,在购买后,将其重加密为买家的密钥——所有操作都在链上完成,无需公开解密。

确保正确性和隐私性

有人可能会问:如果所有数据都是加密的,我们如何强制执行合约逻辑的正确性?如果链无法“看到”值,它如何防止无效操作?FHE 本身不提供正确性证明——验证者可以执行同态步骤,但他们无法在不解密的情况下判断用户的加密输入是否有效,或者是否应该执行某个条件分支。零知识证明 (ZKPs) 可以补充 FHE 来解决这个问题。在 FHE-VM 中,通常用户在需要时必须提供一个 ZK 证明来证实某些明文条件。例如,Zama 的设计在每个加密输入中都附带一个明文知识的零知识证明 (ZKPoK)。这证明了用户知道其密文对应的明文,并且该明文符合预期标准,而无需透露明文本身。这种**“认证密文”**可以防止恶意用户提交格式错误的加密或超出范围的值。同样,对于需要决策的操作(例如,确保账户余额 ≥ 提款金额),用户可以在执行加密操作之前提供一个 ZK 证明,证明该条件在明文上成立。这样,链既不解密也不查看值,但它能确信加密交易遵循了规则。

FHE Rollup 中的另一种方法是使用 ZKPs 进行链下验证。Fhenix(一个使用 FHE 的 L2 Rollup)选择了一种乐观模型,其中一个名为门限服务网络的独立网络组件可以解密或验证加密结果,任何不正确的计算都可以通过欺诈证明进行挑战。总的来说,结合 FHE + ZK 或欺诈证明可以确保加密执行保持无需信任。验证者要么仅在授权时集体解密,要么验证每个加密状态转换都是有效的证明,而无需看到明文。

性能考虑: FHE 操作的计算量非常大——比普通算术慢几个数量级。例如,在以太坊上进行一次简单的 64 位加法大约花费 3 Gas,而在 Zama 的 FHEVM 下对一个加密的 64 位整数 (euint64) 进行加法大约需要 188,000 Gas。即使是 8 位的加法也可能花费约 94k Gas。这种巨大的开销意味着在现有节点上直接实现将非常缓慢且成本高昂。FHE-VM 项目通过优化的密码学库(如 Zama 用于二进制门自举的 TFHE-rs 库)和定制的 EVM 修改来解决这个问题。例如,Cypher 修改后的 Geth 客户端增加了新的操作码,并在 C++/汇编中优化了同态指令的执行,以最小化开销。尽管如此,要实现可用的吞吐量还需要加速。正在进行的工作包括使用 GPU、FPGA 甚至专门的光子芯片来加速 FHE 计算。Zama 报告称,自 2024 年以来,他们的 FHE 性能提高了 100 倍,并计划通过 GPU/FPGA 加速实现数千 TPS。专用的 FHE 协处理器服务器(如 Optalysys 的 LightLocker Node)可以插入验证者节点,将加密操作卸载到硬件上,支持每个节点每秒超过 100 次加密的 ERC-20 转账。随着硬件和算法的改进,FHE 与明文计算之间的差距将缩小,使私有合约能够接近更实用的速度。

兼容性: FHE-VM 设计的一个关键目标是与现有的开发工作流程保持兼容。Cypher 和 Zama 的 fhEVM 实现允许开发者使用 Solidity 编写合约,只需进行最小的更改——使用一个库来声明加密类型和操作。以太坊工具链的其余部分(Remix、Hardhat 等)仍然可以使用,因为底层的修改主要在客户端/节点级别。这降低了入门门槛:开发者无需成为密码学专家就能编写机密智能合约。例如,两个数的简单加法可以写成 euint32 c = a + b;,FHEVM 会在幕后处理与加密相关的细节。这些合约甚至可以与普通合约互操作——例如,一个加密合约如果需要,可以向一个标准合约输出一个解密结果,从而允许在一个生态系统中混合使用私有和公共部分。

当前的 FHE-VM 项目: 有几个项目正在开拓这一领域。Zama(一家总部位于巴黎的 FHE 初创公司)开发了核心的 FHEVM 概念和库(TFHE-rs 和一个 fhevm-solidity 库)。他们不打算推出自己的链,而是为他人提供基础设施。Inco 是一个 L1 区块链(基于 Cosmos SDK 和 Evmos 构建),它集成了 Zama 的 FHEVM,创建了一个模块化的机密链。他们的测试网(名为 Gentry 和 Paillier)展示了加密的 ERC-20 转账和其他私有 DeFi 原语。Fhenix 是一个以太坊二层乐观 Rollup,使用 FHE 实现隐私。它选择了乐观(欺诈证明)方法而不是 ZK-Rollup,因为对每个区块同时进行 FHE ZK 的成本非常高。Fhenix 使用相同的 TFHE-rs 库(进行了一些修改),并引入了一个门限服务网络来以去中心化的方式处理解密。还有一些独立的团队,如 Fhenix (现已更名) 和一些初创公司正在探索 MPC + FHE 的混合方案。此外,Cypher (由 Z1 Labs 开发) 正在构建一个专注于 AI 和隐私的三层网络,使用一个具有秘密存储和联邦学习支持等功能的 fhEVM。这个生态系统虽然 nascent 但发展迅速,并得到了大量资金的支持——例如,Zama 在 2025 年前筹集了超过 1.3 亿美元,成为“独角兽”,以推进 FHE 技术。

总之,FHE-VM 通过在链上对加密数据执行所有逻辑,实现了保护隐私的智能合约。这种范式确保了最大的机密性——在交易或状态中永远不会暴露任何敏感信息——同时利用现有的区块链共识来保证完整性。其代价是增加了验证者的计算负担以及密钥管理和证明集成的复杂性。接下来,我们将探讨一种替代范式,它将计算完全卸载到链下,仅使用链进行验证:零知识协处理器。

零知识协处理器 (ZK 协处理器)

ZK 协处理器是一种新的区块链架构模式,其中昂贵的计算在链下执行,其正确性的简洁零知识证明则在链上进行验证。这使得智能合约能够利用比链上执行所允许的更大的计算能力和数据,而无需牺牲无需信任性。术语协处理器是类比于硬件协处理器(如数学协处理器或 GPU),它们为 CPU 处理专门任务。在这里,区块链的“CPU”(如 EVM 等原生虚拟机)将某些任务委托给一个零知识证明系统,该系统充当密码学协处理器。ZK 协处理器返回一个结果一个证明该结果计算正确的证明,链上合约可以验证并使用该结果。

架构与工作流程

在典型设置中,dApp 开发者识别出其应用逻辑中对于链上执行来说过于昂贵或复杂的部分(例如,对历史数据的大量计算、重型算法、机器学习模型推理等)。他们将这些部分实现为一个链下程序(使用高级语言或电路 DSL),该程序可以为其执行生成零知识证明。链上组件是一个验证者智能合约,它检查证明并使结果可用于系统的其余部分。流程可以总结如下:

  1. 请求 – 链上合约触发一个请求,要求在链下完成某个计算。这可以由用户交易发起,也可以由一个合约调用 ZK 协处理器的接口。例如,一个 DeFi 合约可能会调用 “proveInterestRate(currentState)”,或者一个用户调用 “queryHistoricalData(query)”
  2. 链下执行与证明 – 一个链下服务(可能是一个去中心化的证明者网络或一个受信任的服务,取决于设计)接收请求。它收集所有需要的数据(链上状态、链下输入等),并在一个特殊的 ZK 虚拟机 (ZKVM) 或电路中执行计算。在执行过程中,会生成一个证明轨迹。最后,该服务生成一个简洁证明(例如,SNARK 或 STARK),证明*“在输入 X 上计算函数 F 得到输出 Y”*,并可选地证明数据完整性(下文将详细介绍)。
  3. 链上验证 – 证明和结果被返回到区块链(通常通过回调函数)。验证者合约使用高效的密码学验证(配对检查等)来检查证明的有效性。如果有效,合约现在可以信任输出 Y 是正确的。结果可以存储在状态中,作为事件发出,或输入到进一步的合约逻辑中。如果证明无效或在某个时间内未提供,请求可以被视为失败(并可能触发一些回退或超时逻辑)。

图 1:ZK 协处理器的架构(以 RISC Zero Bonsai 为例)。在链下,一个程序在 ZKVM 上运行,输入来自智能合约调用。执行证明通过一个中继合约返回到链上,该合约用验证后的结果调用一个回调函数。

关键是,无论链下计算有多复杂,链上验证的 Gas 成本是恒定的(或增长非常缓慢)。验证一个简洁证明可能花费几十万 Gas(以太坊区块的一小部分),但该证明可能代表了在链下完成的数百万个计算步骤。正如一位开发者所说,“想证明一个数字签名?大约 15 美元。想证明一百万个签名?也是大约 15 美元。”。这种可扩展性是一个巨大的优势:dApp 可以提供复杂的功能(大数据分析、复杂的金融模型等),而不会堵塞区块链。

ZK 协处理器系统的主要组件是:

  • 证明生成环境: 这可以是一个通用的 ZKVM(能够运行任意程序)或为特定计算量身定制的自定义电路。方法各不相同:
    • 一些项目为每个支持的查询或函数使用手工制作的电路(最大化该函数的效率)。
    • 其他项目提供一个领域特定语言 (DSL)嵌入式 DSL,开发者用它来编写他们的链下逻辑,然后编译成电路(在易用性和性能之间取得平衡)。
    • 最灵活的方法是 zkVM:一个虚拟机(通常基于 RISC 架构),程序可以用标准语言(Rust、C 等)编写并自动证明。这牺牲了性能(在电路中模拟 CPU 会增加开销),但换来了最佳的开发者体验
  • 数据访问与完整性: 一个独特的挑战是为链下计算提供正确的数据,特别是如果这些数据位于区块链上(过去的区块、合约状态等)。一个简单的解决方案是让证明者从一个存档节点读取并信任它——但这引入了信任假设。相反,ZK 协处理器通常通过链接到 Merkle 证明或状态承诺来证明所使用的任何链上数据都是真实的。例如,查询程序可能会接收一个区块号和一个存储槽或交易的 Merkle 证明,电路将根据已知的区块头哈希验证该证明。存在三种模式:
    1. 内联数据: 将所需数据放在链上(作为验证者的输入),以便直接检查。这对于大数据来说成本非常高,并且破坏了整个目的。
    2. 信任预言机: 让一个预言机服务将数据提供给证明并为其担保。这更简单,但重新引入了对第三方的信任。
    3. 通过 ZK 证明数据包含: 在零知识电路本身中包含数据在链历史中的包含证明。这利用了每个以太坊区块头都提交了整个先前状态(通过状态根)和交易历史的事实。通过在电路内验证数据的 Merkle Patricia 证明,输出证明向合约保证*“此计算使用了来自区块 N 的真实区块链数据”,无需额外的信任。 第三种方法是最无需信任的,并被像 Axiom 和 Xpansion 这样的高级 ZK 协处理器使用(它确实增加了证明成本,但为了安全性是可取的)。例如,Axiom 的系统在其电路中模拟了以太坊的区块结构、状态树和交易树,因此它可以证明诸如“账户 X 在区块 N 时的余额为 Y“一个具有某些属性的交易发生在区块 N”*之类的陈述。它利用了这样一个事实:给定一个最近的可信区块哈希,可以递归地证明历史数据的包含,而无需信任任何外部方。
  • 验证者合约: 这个链上合约包含验证密钥和接受或拒绝证明的逻辑。对于像 Groth16 或 PLONK 这样的 SNARKs,验证者可能会进行一些椭圆曲线配对;对于 STARKs,它可能会进行一些哈希计算。聚合和递归等性能优化可以最小化链上负载。例如,RISC Zero 的 Bonsai 使用一个 STARK-to-SNARK 包装器:它在链下运行一个基于 STARK 的 VM 以提高速度,然后生成一个小的 SNARK 证明来证明 STARK 的有效性。这将证明大小从几百千字节缩小到几百字节,使得链上验证变得可行且便宜。然后,Solidity 验证者只需检查 SNARK(这是一个常数时间操作)。

部署方面,ZK 协处理器可以作为类似二层的网络或纯粹的链下服务运行。一些,如 Axiom,最初是作为以太坊的专门服务(得到 Paradigm 的支持),开发者向 Axiom 的证明者网络提交查询,并在链上获得证明。Axiom 的口号是为以太坊合约提供*“对所有链上数据和对其的任意表达性计算的无需信任的访问”*。它实际上充当了一个查询预言机,其中答案由 ZKPs 而不是信任来验证。其他的,如 RISC Zero 的 Bonsai,提供了一个更开放的平台:任何开发者都可以上传一个程序(编译成与 RISC-V 兼容的 ZKVM),并通过一个中继合约使用 Bonsai 的证明服务。如图 1 所示的中继模式涉及一个合约,该合约协调请求和响应:dApp 合约调用中继来请求一个证明,链下服务监听此请求(例如,通过事件或直接调用),计算证明,然后中继在 dApp 合约上调用一个回调函数,并附带结果和证明。这种异步模型是必要的,因为证明可能需要几秒到几分钟,具体取决于复杂性。它引入了延迟(以及证明者会响应的活性假设),而 FHE-VM 计算则在块内同步发生。设计应用程序以处理这种异步工作流(可能类似于预言机响应)是使用 ZK 协处理器的一部分。

著名的 ZK 协处理器项目

  • Axiom: Axiom 是一个为以太坊量身定制的 ZK 协处理器,最初专注于证明历史链上数据查询。它使用 Halo2 证明框架(一种 Plonk-ish SNARK)来创建包含以太坊密码学结构的证明。在 Axiom 的系统中,开发者可以查询诸如*“合约 X 在区块 N 的状态是什么?”或对某个范围内的所有交易进行计算。在底层,Axiom 的电路必须实现以太坊的状态/树逻辑,甚至在电路内部执行椭圆曲线操作和 SNARK 验证以支持递归。Trail of Bits 在一次审计中指出了 Axiom 的 Halo2 电路模拟整个区块和状态的复杂性。审计后,Axiom 将其技术推广到一个 OpenVM,允许使用相同的基于 Halo2 的基础设施来证明任意 Rust 代码。(这反映了从领域特定电路转向更通用的 ZKVM 方法的趋势。)Axiom 团队展示了以太坊原生无法完成的 ZK 查询,实现了对任何历史数据的无状态访问*和密码学完整性。他们还强调了安全性,捕获并修复了约束不足的电路错误并确保了可靠性。虽然 Axiom 的初始产品在其转型期间被关闭,但他们的方法仍然是 ZK 协处理器领域的一个里程碑。
  • RISC Zero Bonsai: RISC Zero 是一个基于 RISC-V 架构的 ZKVM。他们的 zkVM 可以执行任意程序(用 Rust、C++ 和其他编译到 RISC-V 的语言编写)并生成一个 STARK 执行证明。Bonsai 是 RISC Zero 的云服务,按需提供这种证明,充当智能合约的协处理器。要使用它,开发者编写一个程序(例如,一个执行复杂数学或验证链下 API 响应的函数),将其上传到 Bonsai 服务,并部署一个相应的验证者合约。当合约需要该计算时,它会调用 Bonsai 中继,触发证明生成并通过回调返回结果。一个展示的应用示例是链下治理计算:RISC Zero 展示了一个 DAO 使用 Bonsai 在链下统计投票并计算复杂的投票指标,然后发布一个证明,以便链上治理合约能够以最小的 Gas 成本信任结果。RISC Zero 的技术强调开发者可以使用熟悉的编程范式——例如,编写一个 Rust 函数来计算某些东西——而电路创建的繁重工作由 zkVM 处理。然而,证明可能很大,因此如前所述,他们为链上验证实现了一个 SNARK 压缩。2023 年 8 月,他们成功地在以太坊的 Sepolia 测试网上验证了 RISC Zero 证明,每个证明的成本约为 30 万 Gas。这为以太坊 dApp 今天使用 Bonsai 作为扩展和隐私解决方案打开了大门。(Bonsai 仍处于 alpha 阶段,尚未准备好生产,并使用一个没有仪式的临时 SNARK 设置。)
  • 其他: 还有许多其他参与者和研究计划。Expansion/Xpansion(如一篇博客中所述)使用一种嵌入式 DSL 方法,开发者可以用一种专门的语言编写对链上数据的查询,它在内部处理证明生成。StarkWare 的 CairoPolygon 的 zkEVM 是更通用的 ZK-Rollup VM,但它们的技术可以通过在 L1 合约内验证证明来重新用于类似协处理器的用途。我们还看到 ZKML (ZK 机器学习) 领域的项目,它们实际上充当协处理器,在链上验证 ML 模型推理或训练结果。例如,一个 zkML 设置可以证明*“在私有输入上进行的神经网络推理产生了分类 X”*,而无需透露输入或在链上进行计算。这些是协处理器概念应用于 AI 的特例。

信任假设: ZK 协处理器依赖于密码学证明的可靠性。如果证明系统是安全的(并且任何可信设置都是诚实完成的),那么一个被接受的证明就保证了计算是正确的。不需要对证明者有额外的信任——即使是恶意的证明者也无法让验证者相信一个错误的陈述。然而,存在一个活性假设:必须有人实际执行链下计算并生成证明。在实践中,这可能是一个去中心化的网络(有激励或费用来完成工作)或一个单一的服务运营商。如果没有人提供证明,链上请求可能会保持未解决状态。另一个微妙的信任方面是对于不在区块链上的链下输入的数据可用性。如果计算依赖于某些私有或外部数据,验证者无法知道该数据是否被诚实提供,除非使用额外的措施(如数据承诺或预言机签名)。但对于纯粹的链上数据计算,所描述的机制确保了与链本身等效的无需信任性(Axiom 认为他们的证明为历史查询提供了“与以太坊在密码学上等效的安全性”)。

隐私: 零知识证明本身也支持隐私——证明者可以在证明关于它们陈述的同时保持输入隐藏。在协处理器上下文中,这意味着一个证明可以允许合约使用从私有数据派生的结果。例如,一个证明可能显示*“用户的信用评分 > 700,因此批准贷款”,而无需透露实际的信用评分或原始数据。Axiom 的用例更多是关于公开已知的数据(区块链历史),所以隐私不是重点。但 RISC Zero 的 zkVM 可以用来证明关于用户提供的秘密数据的断言:数据保留在链下,只有需要的结果上链。值得注意的是,与 FHE 不同,ZK 证明通常不提供状态的持续机密性——它是一次性的证明。如果一个工作流需要跨交易维护一个秘密状态,可以通过让合约存储一个状态的承诺*,并且每个证明都显示从旧承诺到新承诺的有效状态转换,同时隐藏秘密来构建它。这基本上是用于私有交易的 zk-rollups(如 Aztec 或 Zcash)的工作方式。因此,ZK 协处理器可以促进完全私有的状态机,但实现并非易事;它们通常用于一次性计算,其中输入或输出(或两者)可以根据需要保持私有。

开发者体验: 使用 ZK 协处理器通常需要学习新工具。编写自定义电路(上述选项 (1))相当复杂,通常只用于狭窄的目的。像 DSLs 或 zkVMs 这样的更高级别的选项使生活更容易,但仍然增加了开销:开发者必须编写和部署链下代码并管理交互。与 FHE-VM 相比,在 FHE-VM 中,加密主要在幕后处理,开发者编写正常的智能合约代码,而在这里,开发者需要划分他们的逻辑,并可能需要用不同的语言(Rust 等)为链下部分编写代码。然而,像 Noir、Leo、Circom DSLs 或 RISC Zero 的方法这样的举措正在迅速提高可访问性。例如,RISC Zero 提供了模板和 Foundry 集成,这样开发者可以在本地模拟他们的链下代码(为了正确性),然后通过 Bonsai 回调无缝地将其挂钩到 Solidity 测试中。随着时间的推移,我们可以期待开发框架能够抽象出一段逻辑是通过 ZK 证明还是在链上执行——编译器或工具可能会根据成本来决定。

FHE-VM vs ZK 协处理器:比较

FHE-VM 和 ZK 协处理器都实现了一种*“在私有数据上计算并进行链上保证”*的形式,但它们在架构上根本不同。下表总结了主要区别:

方面FHE-VM (加密的链上执行)ZK 协处理器 (链下证明)
计算发生地直接在链上(所有节点对密文执行同态操作)。链下(一个证明者或网络执行程序;只有一个证明在链上被验证)。
数据机密性完全加密: 数据在链上始终保持加密;验证者永远看不到明文。只有解密密钥的持有者才能解密输出。零知识: 证明者的私有输入永远不会在链上透露;证明除了公共输出中的内容外,不泄露任何秘密。然而,任何必须影响链上状态的计算中使用的数据都必须编码在输出或承诺中。秘密默认保留在链下。
信任模型信任共识执行和密码学:如果大多数验证者遵循协议,加密执行是确定性和正确的。计算正确性无需外部信任(所有节点重新计算)。隐私方面必须信任 FHE 方案的安全性(通常基于格的困难性)。在某些设计中,还需信任足够数量的验证者不会串通滥用门限密钥。信任证明系统的安全性(SNARK/STARK 的可靠性)。如果证明验证通过,结果在密码学上可以确定是正确的。链下证明者无法欺骗数学。对证明者实际完成工作存在活性假设。如果使用可信设置(例如 SNARK SRS),必须信任它是诚实生成的,或使用透明/无设置的系统。
链上成本和可扩展性每笔交易成本高: 同态操作计算成本极高,每个节点都必须执行。Gas 成本很高(例如,一个 8 位加法就需要 10 万+ Gas)。复杂合约受限于每个验证者在一个区块内能计算的内容。除非采用专用硬件,否则吞吐量远低于普通智能合约。通过更快的密码学和硬件加速可以提高可扩展性,但从根本上说,每个操作都会增加链的工作负载。验证成本低: 验证一个简洁证明是高效且大小恒定的,因此链上 Gas 适中(任何大小的计算都只需几十万 Gas)。这将复杂性与链上资源限制解耦——大型计算没有额外的链上成本。因此,它在链上负载方面是可扩展的。在链下,证明时间可能很长(对于大型任务可能需要几分钟或更长时间),并且可能需要强大的机器,但这不会直接减慢区块链。只要能及时生成证明(潜在的并行证明者网络),整体吞吐量可以很高。
延迟结果在同一交易/区块中立即可用,因为计算在执行期间发生。没有额外的往返——同步操作。然而,如果 FHE 操作很慢,较长的区块处理时间可能会增加区块链的延迟。本质上是异步的。通常需要一个交易来请求,并在稍后的交易(或回调)中提供证明/结果。这会引入延迟(可能从秒到小时,取决于证明复杂性和证明硬件)。不适合单个交易的即时最终性——更像一个异步作业模型。
隐私保证强: 所有内容(输入、输出、中间状态)都可以在链上保持加密。你可以拥有长期的加密状态,多个交易可以更新它而无需透露。只有授权的解密操作(如果有的话)才会揭示输出,并且这些操作可以通过密钥/ACL 控制。然而,必须管理像 Gas 使用或事件日志这样的侧信道考虑,以免它们泄露模式(fhEVM 设计力求通过对操作使用恒定 Gas 来实现数据无关的执行,以避免泄露)。选择性: 证明揭示了公共输出中的内容或验证所必需的内容(例如,对初始状态的承诺)。设计者可以确保只揭示预期的结果,而所有其他输入都保持零知识隐藏。但与 FHE 不同,区块链通常不存储隐藏状态——隐私是通过将数据完全保留在链下来实现的。如果需要持久的私有状态,合约可以存储一个对其的密码学承诺(因此状态更新每次仍然会揭示一个新的承诺)。隐私受限于你选择证明的内容;你可以灵活地证明例如一个阈值被满足而无需透露确切的值。
完整性强制执行通过设计,所有验证者都同态地重新计算下一个状态,因此如果一个恶意行为者提供了错误的密文结果,其他人会检测到不匹配——除非每个人都得到相同的结果,否则共识会失败。因此,完整性是通过冗余执行来强制执行的(就像普通区块链一样,只是在加密数据上)。通常使用额外的 ZK 证明来强制执行业务规则(例如,用户不能违反约束),因为验证者无法直接检查明文条件。完整性由验证者合约检查 ZK 证明来强制执行。只要证明验证通过,结果就保证与链下程序的某个有效执行一致。正确性不需要诚实多数假设——即使是单个诚实的验证者(合约代码本身)也足够了。链上合约会简单地拒绝任何错误的证明或缺失的证明(类似于它会拒绝一个无效的签名)。一个考虑因素是:如果证明者中止或延迟,合约可能需要回退逻辑(或者用户可能需要稍后重试),但它不会接受不正确的结果。
开发者体验优点:可以主要使用熟悉的智能合约语言(Solidity 等)及其扩展。机密性由平台处理——开发者主要关心加密什么以及谁持有密钥。加密合约和普通合约的组合是可能的,保持了 DeFi 的可组合性(只是带有加密变量)。缺点:必须理解 FHE 的限制——例如,没有特殊处理就不能直接对秘密数据进行条件跳转,电路深度有限(尽管 TFHE 中的自举允许任意长度的计算,但会牺牲时间)。调试加密逻辑可能很棘手,因为没有密钥就无法轻易地内省运行时值。此外,密钥管理和权限设置给合约设计增加了复杂性。优点:链下部分可能可以使用任何编程语言(特别是使用 zkVM)。可以在链下程序中利用现有的代码/库(但要注意 ZK 兼容性)。如果使用通用的 ZKVM,开发者不需要自定义密码学——他们编写普通代码并获得一个证明。此外,重型计算可以使用永远无法在链上运行的库(例如,机器学习代码)。缺点:开发者必须协调链下基础设施或使用证明服务。处理异步工作流并将其与链上逻辑集成需要更多的设计工作(例如,存储一个待处理状态,等待回调)。编写高效的电路或 zkVM 代码可能需要学习新的约束(例如,没有浮点数,使用定点数或特殊原语;避免会使证明时间爆炸的重度分支;为约束数量进行优化)。还有处理证明失败、超时等的负担,这些在常规 Solidity 中不是问题。工具生态系统正在增长,但对许多人来说这是一个新的范式。

这两种方法都在积极改进中,我们甚至看到了融合:如前所述,ZKPs 被用于 FHE-VM 内部进行某些检查,反之,一些研究人员建议使用 FHE 来保持 ZK 中证明者输入的私密性(这样云证明者就看不到你的秘密数据)。可以想象未来的系统会将它们结合起来——例如,在链下执行 FHE,然后向链证明其正确性,或者在链上使用 FHE,但向轻客户端 ZK 证明加密操作是正确完成的。每种技术都有其优势:FHE-VM 提供持续的隐私和实时交互,但计算成本高昂;而 ZK 协处理器提供可扩展性和灵活性,但有延迟和复杂性的代价。

用例与影响

可编程隐私的出现为各行各业开启了大量新的区块链应用。下面我们探讨 FHE-VM 和 ZK 协处理器(或混合方案)如何通过实现保护隐私的智能合约安全的数据经济来赋能各个领域。

机密 DeFi 与金融

在去中心化金融中,隐私可以减轻抢先交易、保护交易策略,并在需要时满足合规要求,而无需牺牲透明度。机密 DeFi 可以让用户与协议互动,而无需向全世界透露他们的头寸。

  • 私密交易与隐藏余额: 使用 FHE,可以在区块链 L1 上实现机密代币转账(加密的 ERC-20 余额和交易)或屏蔽池。没有观察者能看到你持有或转移了多少代币,从而消除了基于持仓的定向攻击风险。ZK 证明可以确保余额保持同步且没有双重花费(类似于 Zcash,但在智能合约平台上)。一个例子是机密 AMM (自动做市商),其中池子的储备和交易在链上是加密的。套利者或抢先交易者无法利用该池,因为他们在交易结算前无法观察到价格滑点,从而减少了 MEV。只有在一定延迟后或通过访问控制机制,某些数据才可能被披露以供审计。
  • 抗 MEV 的拍卖与交易: 矿工和机器人利用交易透明度来抢先交易。通过加密,你可以拥有一个加密的内存池或批量拍卖,其中订单以密文形式提交。只有在拍卖清算后,交易才会解密。这个概念,有时被称为公平订单流,可以通过门限解密(多个验证者集体解密批次)或通过 ZK 证明拍卖结果而无需透露单个出价来实现。例如,一个 ZK 协处理器可以在链下处理一批密封的出价,计算拍卖清算价格,并只输出该价格和获胜者以及证明。这保护了失败出价的公平性和隐私。
  • 机密借贷与衍生品: 在 DeFi 借贷中,用户可能不希望透露他们的贷款或抵押品规模(这会影响市场情绪或招致利用)。FHE-VM 可以维护一个加密的贷款账本,其中每笔贷款的细节都是加密的。智能合约逻辑仍然可以通过操作加密的健康因子来强制执行清算条件等规则。如果一笔贷款的抵押率低于阈值,合约(在 ZK 证明的帮助下)可以标记其进行清算,而无需暴露确切的值——它可能只在明文中产生一个“是/否”标志。同样,秘密的衍生品或期权头寸可以在链上管理,只披露聚合的风险指标。这可以防止复制交易并保护专有策略,从而鼓励更多机构参与。
  • 合规隐私: 并非所有金融环境都希望完全匿名;有时为了监管需要选择性披露。有了这些工具,我们可以实现受监管的隐私:例如,交易对公众是私密的,但受监管的交易所可以解密或接收关于某些属性的证明。可以通过 ZK 证明*“这笔交易不涉及黑名单地址,且双方都经过 KYC 验证”*,而无需向链透露身份。这种平衡可以满足反洗钱 (AML) 规则,同时对其他人保密用户的身份和头寸。FHE 可以允许一个链上合规官合约扫描加密交易以寻找风险信号(例如,解密密钥仅在法院命令下才能访问)。

数字身份与个人数据

身份系统将从链上隐私技术中获益匪浅。目前,由于隐私法和用户的不情愿,将个人凭证或属性放在公共账本上是不切实际的。有了 FHE 和 ZK,自主身份可以以保护隐私的方式实现:

  • 零知识凭证: 使用 ZK 证明(在一些身份项目中已经很常见),用户可以证明诸如*“我已年满 18 岁”“我有有效的驾驶执照”“我的收入超过 5 万美元(用于信用评分)”*之类的陈述,而无需透露任何其他个人信息。ZK 协处理器可以通过在链下处理更复杂的检查来增强这一点,例如,通过以类似 Axiom 的方式查询私有信用数据库来证明用户的信用评分高于某个阈值,只向区块链输出一个“是/否”的结果。
  • DeFi 上的机密 KYC: 想象一个 DeFi 协议,根据法律必须确保用户经过 KYC。使用 FHE-VM,用户的凭证可以加密存储在链上(或通过 DID 引用),智能合约可以执行 FHE 计算来验证 KYC 信息是否符合要求。例如,一个合约可以同态地检查加密用户配置文件中的姓名社保号是否与受制裁用户列表(也加密)匹配,或者用户的国家是否不受限制。合约只会得到一个加密的“通过/失败”,可以由网络验证者门限解密为一个布尔标志。只有用户是否被允许的事实被揭示,保护了个人身份信息 (PII) 的机密性,并符合 GDPR 原则。这种选择性披露确保了合规性和隐私。
  • 基于属性的访问与选择性披露: 用户可以持有一堆可验证的凭证(年龄、公民身份、技能等)作为加密属性。他们可以授权某些 dApp 对其进行计算,而无需披露所有内容。例如,一个去中心化的招聘 DApp 可以通过对加密的简历进行搜索(使用 FHE)来筛选候选人——例如,计算工作年限、检查是否有某个认证——只有在找到匹配项时,才在链下联系候选人。候选人的私人细节保持加密,除非他们选择透露。ZK 证明还可以让用户选择性地证明他们拥有属性的组合(例如,超过 21 岁在某个邮政编码内),而无需透露实际值。
  • 多方身份验证: 有时用户的身份需要由多方审查(例如,公司 A 的背景调查,公司 B 的信用检查)。使用同态和 ZK 工具,每个验证者可以贡献一个加密的分数或批准,智能合约可以将这些聚合为一个最终决定,而无需暴露单个贡献。例如,三个机构提供加密的“通过/失败”位,如果三个都是通过,合约就输出一个批准——用户或依赖方只看到最终结果,而不是哪个特定机构可能让他们失败,从而保护了用户在每个机构的记录隐私。这可以减少与例如一次失败的检查揭示特定问题相关的偏见和污名。

医疗保健与敏感数据共享

医疗数据高度敏感且受监管,但将来自多个来源的数据结合起来可以释放巨大价值(用于研究、保险、个性化医疗)。如果隐私问题得到解决,区块链可以为数据交换提供一个信任层。机密智能合约可以催生新的健康数据生态系统:

  • 安全的医疗数据交换: 患者可以将其医疗记录的引用以加密形式存储在链上。一个支持 FHE 的合约可以允许研究机构对一组患者数据进行分析,而无需解密。例如,一个合约可以计算一种药物在加密的患者结果中的平均疗效。只有聚合的统计结果被解密出来(并且可能只有在包含最少数量的患者时,以防止重新识别)。患者可以通过贡献他们的加密数据进行研究而获得微支付,因为他们知道自己的隐私得到了保护,因为即使是区块链和研究人员也只能看到密文或聚合证明。这促进了一个尊重隐私的医疗保健数据市场
  • 保护隐私的保险理赔: 健康保险理赔处理可以通过智能合约自动化,这些合约可以在不向保险公司暴露数据的情况下验证医疗数据的条件。一份理赔可以包括一个加密的诊断代码和加密的治疗费用;合约使用 FHE 检查保单规则(例如,覆盖范围、免赔额)对该加密数据。它可以输出一个批准和支付金额,而无需向保险公司的区块链透露实际诊断(只有患者和医生有密钥)。ZK 证明可以用来证明患者的数据来自认证医院的记录(使用类似 Axiom 的东西来验证医院的签名或记录包含),而无需透露记录本身。这确保了患者隐私,同时防止了欺诈。
  • 基因组与个人数据计算: 基因组数据极其敏感(它实际上是一个人的 DNA 蓝图)。然而,分析基因组可以提供有价值的健康见解。公司可以使用 FHE-VM 对用户上传的加密基因组进行计算。例如,一个智能合约可以在加密的基因组数据和加密的环境数据(可能来自可穿戴设备)上运行一个基因-环境风险模型,输出一个只有用户才能解密的风险评分。逻辑(可能是一个多基因风险评分算法)被编码在合约中并同态运行,因此基因组数据永远不会以明文形式出现。这样,用户可以在不向公司提供原始 DNA 数据的情况下获得见解——从而减轻了隐私和数据所有权方面的担忧。
  • 流行病学与公共卫生: 在大流行等情况下,共享数据对于模拟疾病传播至关重要,但隐私法可能会阻碍数据共享。ZK 协处理器可以允许公共卫生当局通过证明向医院网络的数据提交诸如*“X 地区在过去 24 小时内有多少人检测呈阳性?”*之类的查询。每家医院将患者测试记录保留在链下,但可以向当局的合约证明阳性计数,而无需透露是谁。同样,接触者追踪可以通过匹配加密的位置轨迹来完成:合约可以计算患者加密位置历史的交集以识别热点,只输出热点位置(以及可能只有卫生部门才能解密的受影响 ID 的加密列表)。个人的原始位置轨迹保持私密。

数据市场与协作

在不泄露数据的情况下对其进行计算的能力为数据共享开辟了新的商业模式。实体可以在知道其专有数据不会被暴露的情况下进行计算协作:

  • 安全的数据市场: 卖家可以在区块链市场上以加密形式提供数据。买家可以付费通过智能合约在加密数据集上运行特定的分析或机器学习模型,获得训练好的模型或聚合结果。卖家的原始数据永远不会向买家或公众透露——买家可能只收到一个模型(其权重中仍可能泄露一些信息,但差分隐私或控制输出粒度等技术可以减轻这种情况)。ZK 证明可以向买家保证计算是在承诺的数据集上正确完成的(例如,卖家不能通过在虚拟数据上运行模型来作弊,因为证明将其与承诺的加密数据集联系起来)。这种情况鼓励了数据共享:例如,一家公司可以通过允许批准的算法在加密的用户行为数据上运行来将其货币化,而无需交出数据本身。
  • 联邦学习与去中心化 AI: 在去中心化机器学习中,多方(例如,不同的公司或设备)希望在不相互共享数据的情况下共同训练一个模型。FHE-VM 在这里表现出色:它们可以实现联邦学习,其中各方的模型更新由合约进行同态聚合。因为更新是加密的,所以没有参与者能了解其他人的贡献。合约甚至可以在链上加密地执行部分训练循环(如梯度下降步骤),产生一个只有授权方才能解密的更新模型。ZK 可以通过证明各方的更新是按照训练算法计算的来补充这一点(防止恶意参与者毒害模型)。这意味着一个全局模型可以在链上进行完全可审计的训练,而每个贡献者的训练数据都保持私密。用例包括跨银行联合训练欺诈检测模型,或在不集中原始数据的情况下使用来自许多用户的数据改进 AI 助手。
  • 跨组织分析: 考虑两家公司希望为合作活动找到他们的客户交集,而不想向对方暴露他们完整的客户列表。他们可以各自加密他们的客户 ID 列表并上传一个承诺。一个支持 FHE 的合约可以在加密集上计算交集(使用像通过 FHE 的私有集交集等技术)。结果可能是一个加密的共同客户 ID 列表,只有相互信任的第三方(或客户自己,通过某种机制)才能解密。或者,一种 ZK 方法:一方以零知识向另一方证明*“我们有 N 个共同客户,这里是这些 ID 的加密”*,并附带一个证明,证明该加密确实对应于共同条目。这样,他们就可以对这 N 个客户进行营销活动,而无需交换完整的明文列表。类似的情景:在不透露单个供应商细节的情况下计算跨竞争对手的供应链指标,或银行在不共享完整客户数据的情况下整理信用信息。
  • 区块链上的安全多方计算 (MPC): FHE 和 ZK 基本上将 MPC 概念带到了链上。跨多个组织的复杂业务逻辑可以编码在智能合约中,使得每个组织的输入都是秘密共享或加密的。合约(作为 MPC 协调者)产生每个人都可以信任的输出,如利润分配、成本计算或联合风险评估。例如,假设几家能源公司希望结算一个电力交易市场。他们可以将加密的出价和报价输入到一个智能合约拍卖中;合约在加密的出价上计算清算价格和分配,并将每个公司的分配和成本只输出给该公司(通过加密到他们的公钥)。没有公司能看到其他公司的出价,保护了竞争信息,但拍卖结果是公平且可验证的。这种区块链透明度与 MPC 隐私的结合可以彻底改变目前依赖可信第三方的联盟和企业联盟。

去中心化机器学习 (ZKML 和 FHE-ML)

以可验证和私密的方式将机器学习引入区块链是一个新兴的前沿领域:

  • 可验证的 ML 推理: 使用 ZK 证明,可以证明*“机器学习模型 f,在给定输入 x 时,产生输出 y”,而无需透露 x(如果它是私有数据)或 f 的内部工作原理(如果模型权重是专有的)。这对于区块链上的 AI 服务至关重要——例如,一个提供预测或分类的去中心化 AI 预言机。ZK 协处理器可以在链下运行模型(因为模型可能很大且评估成本高昂)并发布结果的证明。例如,一个预言机可以证明陈述“提供的卫星图像显示至少 50% 的树木覆盖率”*以支持碳信用合约,而无需透露卫星图像,甚至可能无需透露模型。这被称为 ZKML,并且有项目正在优化适合电路的神经网络。它确保了智能合约中使用的 AI 输出的完整性(没有作弊或任意输出),并可以保护输入数据和模型参数的机密性。
  • 具有隐私和可审计性的训练: 训练一个 ML 模型计算量更大,但如果可以实现,它将允许基于区块链的模型市场。多个数据提供者可以在 FHE 下为训练模型做出贡献,以便训练算法在加密数据上运行。结果可能是一个只有买家才能解密的加密模型。在整个训练过程中,可以定期提供 ZK 证明,以证明训练遵循了协议(例如,防止恶意训练者插入后门)。虽然完全在链上进行 ML 训练由于成本原因还很遥远,但一种混合方法可以使用链下计算和 ZK 证明来处理关键部分。可以想象一个去中心化的类似 Kaggle 的竞赛,参与者在私有数据集上训练模型,并提交模型在加密测试数据上准确性的 ZK 证明来确定获胜者——所有这些都无需透露数据集或测试数据。
  • 个性化 AI 与数据所有权: 有了这些技术,用户可以保留其个人数据的所有权,同时仍然受益于 AI。例如,用户的移动设备可以使用 FHE 加密其使用数据,并将其发送到一个分析合约,该合约仅为他们计算一个个性化的 AI 模型(如推荐模型)。该模型是加密的,只有用户的设备才能解密和在本地使用。平台(也许是社交网络)永远看不到原始数据或模型,但用户获得了 AI 的好处。如果平台想要聚合的见解,它可以向合约请求某些聚合模式的 ZK 证明,而无需访问个人数据。

其他领域

  • 游戏: 链上游戏通常难以隐藏秘密信息(例如,隐藏的牌手、策略游戏中的战争迷雾)。FHE 可以实现隐藏状态游戏,其中游戏逻辑在加密状态上运行。例如,一个扑克游戏合约可以洗牌并发放加密的牌;玩家获得自己牌的解密,但合约和其他人只看到密文。下注逻辑可以使用 ZK 证明来确保玩家没有在某个行动上虚张声势(或者在最后以可验证的公平方式揭示获胜的手牌)。同样,用于 NFT 铸造或游戏结果的随机种子可以生成并证明其公平性,而无需暴露种子(防止操纵)。这可以极大地增强区块链游戏,使其能够支持与传统游戏相同的动态。
  • 投票与治理: DAO 可以使用隐私技术进行链上秘密投票,消除买票和压力。FHE-VM 可以统计以加密形式投出的选票,只有最终总数被解密。ZK 证明可以确保每张选票都是有效的(来自合格的选民,且未投过两次票),而无需透露谁投了什么票。这提供了可验证性(每个人都可以验证证明和计票),同时保持个人投票的秘密——这对于无偏见的治理至关重要。
  • 安全供应链与物联网: 在供应链中,合作伙伴可能希望共享某些属性的证明(来源、质量指标),而不想向竞争对手暴露全部细节。例如,食品运输上的物联网传感器可以持续向区块链发送加密的温度数据。合约可以使用 FHE 检查在整个运输过程中温度是否保持在安全范围内。如果超过了阈值,它可以触发警报或罚款,但不必公开整个温度日志——也许只公开一个证明或一个聚合值,如*“第 90 百分位的温度”*。这在尊重过程数据机密性的同时,建立了对供应链自动化的信任。

这些用例中的每一个都利用了核心能力:在不泄露数据的情况下对数据进行计算或验证。这种能力可以从根本上改变我们在去中心化系统中处理敏感信息的方式。它减少了在处理私有数据的领域中限制区块链采用的透明度与隐私之间的权衡。

结论

区块链技术正在进入一个可编程隐私的新时代,数据机密性与智能合约功能齐头并进。FHE-VM 和 ZK 协处理器的范式,虽然在技术上截然不同,但都致力于通过将我们能计算什么我们必须揭示什么解耦来扩展区块链应用范围。

全同态加密虚拟机将计算保持在链上并加密,保留了去中心化和可组合性,但要求在效率上取得进步。零知识协处理器将繁重的工作转移到链下,在密码学保证下实现了几乎无限的计算,并已在扩展和增强以太坊方面证明了其价值。它们(及其混合方案)之间的选择将取决于用例:如果需要与私有状态进行实时交互,FHE 方法可能更合适;如果需要极其复杂的计算或与现有代码集成,ZK 协处理器可能是更好的选择。在许多情况下,它们是互补的——事实上,我们看到 ZK 证明增强了 FHE 的完整性,而 FHE 可能通过为证明者处理私有数据来帮助 ZK。

对于开发者来说,这些技术将引入新的设计模式。我们将把加密变量和证明验证视为 dApp 架构的一等元素来思考。工具正在迅速发展:高级语言和 SDK 正在抽象化密码学细节(例如,Zama 的库使 FHE 类型像原生类型一样易于使用,或者 RISC Zero 的证明请求模板)。几年后,编写一个机密智能合约可能会感觉几乎和编写一个普通合约一样直接,只是默认“内置”了隐私。

数据经济的影响是深远的。当个人和企业能够控制其数据的可见性时,他们将更愿意将数据或逻辑放在链上。这可以解锁以前因隐私问题而无法实现的跨组织协作、新金融产品和 AI 模型。监管机构也可能开始接受这些技术,因为它们允许通过密码学手段进行合规检查和审计(例如,在链上证明税款已正确支付,而无需暴露所有交易)。

我们仍处于早期阶段——目前的 FHE-VM 原型有性能限制,而 ZK 证明虽然比以前快得多,但对于极其复杂的任务仍然可能成为瓶颈。但持续的研究和工程努力(包括专用硬件,如 Optalysys 等公司推动的光学 FHE 加速所证明的)正在迅速消除这些障碍。涌入该领域的资金(例如,Zama 的独角兽地位,Paradigm 对 Axiom 的投资)突显了一种强烈的信念,即隐私功能将像透明度对 Web1/2 一样对 Web3 至关重要

总之,通过 FHE-VM 和 ZK 协处理器实现的可编程隐私预示着一类新的 dApp,它们是无需信任、去中心化和机密的。从不透露任何细节的 DeFi 交易,到保护患者数据的健康研究,再到在世界各地训练而无需暴露原始数据的机器学习模型——可能性是巨大的。随着这些技术的成熟,区块链平台将不再强迫在效用和隐私之间做出权衡,从而在需要机密性的行业中实现更广泛的采用。Web3 的未来是,*用户和组织可以自信地在链上处理和计算敏感数据,因为他们知道区块链将在保护他们秘密的同时验证完整性*。

来源: 本报告中的信息来自该领域领先项目的技术文档和最新研究博客,包括 Cypher 和 Zama 的 FHEVM 文档、Trail of Bits 对 Axiom 电路的详细分析、RISC Zero 的开发者指南和博客文章,以及强调机密区块链技术用例的行业文章。这些来源及更多内容已在全文中引用,以提供进一步的阅读和对所描述的架构和应用的证据。

以太坊的匿名神话:研究人员如何揭露 15% 的验证者

· 阅读需 6 分钟
Dora Noda
Software Engineer

区块链技术(如以太坊)的核心承诺之一是一定程度的匿名性。被称为验证者的参与者应当在加密化名的面纱后运行,以保护其现实身份,从而保障其安全。

然而,来自 ETH Zurich 及其他机构的研究人员在最近的论文《Deanonymizing Ethereum Validators: The P2P Network Has a Privacy Issue》中揭示了这一假设的关键缺陷。他们展示了一种简单、低成本的方法,能够将验证者的公开标识直接关联到其运行机器的 IP 地址。

简而言之,以太坊验证者并不像许多人想象的那样匿名。该发现足以让研究人员获得以太坊基金会的漏洞赏金,彰显了此隐私泄露的严重性。

漏洞是如何产生的:Gossip 中的缺陷

要理解该漏洞,首先需要了解以太坊验证者之间的基本通信方式。网络拥有超过一百万的验证者,持续对链的状态进行“投票”。这些投票称为 attestations,并通过点对点( P2PP2P )网络广播给所有其他节点。

如果每个验证者都向所有人广播每一笔投票,网络将瞬间被淹没。为了解决这一问题,以太坊的设计者实现了一种巧妙的扩展方案:网络被划分为 64 条独立的通信通道,称为 subnets

  • 默认情况下,每个节点(运行验证者软件的计算机)只订阅这 64 条子网中的 两条。它的主要职责是忠实地转发这两条通道上看到的所有消息。
  • 当验证者需要投票时,其 attestation 会随机分配到 64 条子网中的一条进行广播。

漏洞正出现在这里。 想象有一个节点负责管理 12 号和 13 号通道。整天它只转发这两条通道的消息。但突然,它向你发送了一条属于 45 号通道的消息。

这是一条强有力的线索。为什么一个节点会处理它本不负责的通道消息?最合乎逻辑的推断是 该节点本身生成了这条消息。这意味着创建 45 号通道 attestation 的验证者正运行在这台机器上。

研究人员正是利用了这一原理。通过部署自己的监听节点,他们监控同伴发送 attestation 时所使用的子网。当同伴发送的消息来自其未正式订阅的子网时,研究人员即可高度自信地推断该同伴托管了相应的验证者。

该方法的效果令人震惊。仅使用 四个节点,历时三天,团队成功定位了超过 161,000 个验证者的 IP 地址,约占整个以太坊网络的 15%

为什么这很重要:去匿名化的风险

曝光验证者的 IP 地址绝非小事。这为针对性攻击打开了大门,威胁到单个运营者乃至整个以太坊网络的健康。

1. 针对性攻击与奖励盗窃
以太坊会提前几分钟公布下一个区块的提议验证者。攻击者若掌握该验证者的 IP 地址,可发动 拒绝服务(DDoS)攻击,使其离线。如果验证者错过了四秒的提议窗口,机会将转移给排在后面的验证者。若攻击者正是后者,则可窃取本应归属受害者的区块奖励和宝贵的交易费用(MEV)。

2. 对网络活性与安全性的威胁
资源充足的攻击者可以反复进行此类“抢块”攻击,使整个区块链变慢甚至停摆(活性攻击)。在更严重的情形下,攻击者可利用这些信息发起网络分区攻击,使网络不同部分对链的历史产生分歧,从而危及其完整性(安全攻击)。

3. 揭示中心化的现实
研究还揭示了网络去中心化的一些不舒服的真相:

  • 极端集中:团队发现有单个 IP 地址托管了超过 19,000 个验证者。单台机器的故障可能对网络产生不成比例的影响。
  • 对云服务的依赖:约 90% 被定位的验证者运行在 AWS、Hetzner 等云服务商上,而非个人家庭节点,这显示出显著的中心化倾向。
  • 隐藏的依赖关系:许多大型质押池声称其运营者是独立的,但研究发现不同、相互竞争的质押池的验证者竟共用同一台物理机器,形成了潜在的系统性风险。

缓解措施:验证者如何自我保护?

幸运的是,已有多种方式可以防御此类去匿名化技术。研究人员提出了以下几种缓解方案:

  • 制造更多噪声:验证者可以选择订阅超过两条子网,甚至全部 64 条。这会让观察者更难区分转发的消息与自行生成的消息。
  • 使用多节点:运营者可以将验证职责分散到不同 IP 的机器上。例如,一台节点负责 attestation,另一台私有节点仅用于提议高价值区块。
  • 私有对等:验证者可以与可信的私有节点建立专属连接,以在小范围内转发消息,隐藏真实来源。
  • 匿名广播协议:如 Dandelion 等更高级的方案,通过先在随机“茎”上传递再广泛广播,混淆消息来源,可予以实现。

结论

该研究有力地展示了分布式系统中性能与隐私之间的固有权衡。为了扩容,以太坊的 P2PP2P 网络采用的设计在一定程度上牺牲了最关键参与者的匿名性。

通过将此漏洞公之于众,研究人员为以太坊社区提供了认识问题并加以修复的知识与工具。这项工作是迈向更稳健、更安全、真正去中心化的未来网络的重要一步。

TEE 与区块链隐私:硬件与信任交叉口的 38 亿美元市场

· 阅读需 5 分钟

区块链行业在 2024 年面临关键拐点。虽然全球区块链技术市场预计到 2030 年将达到 4694.9 亿美元,但隐私仍是根本挑战。可信执行环境(TEE)已成为潜在解决方案,TEE 市场预计将从 2023 年的 12 亿美元增长至 2028 年的 38 亿美元。但这种基于硬件的方法真的能解决区块链的隐私悖论,还是会带来新风险?

硬件基础:理解 TEE 的承诺

可信执行环境就像电脑中的银行金库——但有关键区别。银行金库仅存放资产,而 TEE 创建一个隔离的计算环境,使敏感操作能够在完全屏蔽系统其余部分的情况下运行,即使系统被攻破也不受影响。

当前市场主要由三大实现主导:

  1. Intel SGX(Software Guard Extensions)

    • 市场份额:服务器 TEE 实现的 45%
    • 性能:加密操作的开销最高可达 40%
    • 安全特性:内存加密、远程认证
    • 重要用户:Microsoft Azure Confidential Computing、Fortanix
  2. ARM TrustZone

    • 市场份额:移动端 TEE 实现的 80%
    • 性能:大多数操作的开销 <5%
    • 安全特性:安全启动、生物特征保护
    • 关键应用:移动支付、DRM、安全认证
  3. AMD SEV(Secure Encrypted Virtualization)

    • 市场份额:服务器 TEE 实现的 25%
    • 性能:虚拟机加密的开销 2‑7%
    • 安全特性:虚拟机内存加密、嵌套页表保护
    • 重要用户:Google Cloud Confidential Computing、AWS Nitro Enclaves

真实影响:数据说明

下面审视三个已通过 TEE 改变区块链的关键应用场景:

1. MEV 保护:Flashbots 案例研究

Flashbots 对 TEE 的实现展示了显著成果:

  • TEE 前(2022):

    • 日均 MEV 提取额:710 万美元
    • 集中提取者:占 MEV 的 85%
    • 用户因夹层攻击损失:每日 320 万美元
  • TEE 后(2023):

    • 日均 MEV 提取额:430 万美元(下降 39%)
    • 去中心化提取:单一实体不超过 15% 的 MEV
    • 用户因夹层攻击损失:每日 80 万美元(下降 75%)

Flashbots 联合创始人 Phil Daian 表示:“TEE 从根本上改变了 MEV 生态。我们看到一个更民主、高效的市场,用户损害显著降低。”

2. 扩容方案:Scroll 的突破

Scroll 将 TEE 与零知识证明相结合,取得了令人瞩目的指标:

  • 交易吞吐量:3000 TPS(相较于以太坊的 15 TPS)
  • 单笔交易费用:0.05 美元(相较于以太坊主网的 2‑20 美元)
  • 验证时间:15 秒(相较于纯 ZK 方案的数分钟)
  • 安全保证:99.99%,双重验证(TEE + ZK)

加州大学伯克利分校区块链研究员 Sarah Wang 博士指出:“Scroll 的实现展示了 TEE 如何与密码学方案互补,而非取代。性能提升显著且不牺牲安全性。”

3. 私密 DeFi:新兴应用

多个 DeFi 协议已开始利用 TEE 实现私密交易:

  • Secret Network(使用 Intel SGX):
    • 已处理超过 50 万笔私密交易
    • 私密代币转账总额 1.5 亿美元
    • 前置抢跑降低 95%

技术现实:挑战与解决方案

侧信道攻击缓解

最新研究揭示了漏洞与对应方案:

  1. 功率分析攻击

    • 漏洞:密钥提取成功率 85%
    • 方案:Intel 最新 SGX 更新将成功率降至 <0.1%
    • 成本:额外性能开销 2%
  2. 缓存时序攻击

    • 漏洞:数据提取成功率 70%
    • 方案:AMD 的缓存分区技术
    • 影响:攻击面降低 99%

中央化风险分析

硬件依赖带来特定风险:

  • 硬件供应商市场份额(2023):
    • Intel:45%
    • AMD:25%
    • ARM:20%
    • 其他:10%

为缓解中心化担忧,Scroll 等项目实现了多供应商 TEE 验证:

  • 需要来自 2 家以上不同供应商的 TEE 达成共识
  • 与非 TEE 方案交叉验证
  • 开源验证工具

市场分析与未来预测

区块链领域的 TEE 采纳呈强劲增长:

  • 当前实施成本:

    • 服务器级 TEE 硬件:2000‑5000 美元
    • 集成成本:5‑10 万美元
    • 维护费用:每月 5000 美元
  • 预计成本下降:

    • 2024:‑15%
    • 2025:‑30%
    • 2026:‑50%

行业专家预测到 2025 年将出现三大关键发展:

  1. 硬件演进

    • 专用 TEE 处理器
    • 性能开销降低至 <1%
    • 加强侧信道防护
  2. 市场整合

    • 标准化出现
    • 跨平台兼容性提升
    • 开发者工具简化
  3. 应用扩展

    • 私密智能合约平台
    • 去中心化身份解决方案
    • 跨链隐私协议

前进之路

虽然 TEE 提供了诱人的解决方案,但成功仍需解决以下关键领域:

  1. 标准制定

    • 行业工作组成立
    • 跨供应商兼容的开放协议
    • 安全认证框架
  2. 开发者生态

    • 新工具与 SDK
    • 培训与认证项目
    • 参考实现
  3. 硬件创新

    • 下一代 TEE 架构
    • 成本与能耗下降
    • 增强安全特性

竞争格局

TEE 与其他隐私方案的对比:

方案性能安全性去中心化成本
TEE中高
MPC
FHE极高
ZK Proofs中高

结论

TEE 是一种务实的区块链隐私方案,能够在提供即时性能收益的同时逐步解决中心化问题。Flashbots、Scroll 等大型项目的快速采纳以及在安全与效率上的可量化改进,表明 TEE 将在区块链演进中扮演关键角色。

然而,成功并非板上钉钉。未来 24 个月将是行业应对硬件依赖、标准化努力以及持续的侧信道攻击挑战的关键时期。对于区块链开发者和企业而言,关键在于全面了解 TEE 的优势与局限,将其作为整体隐私策略的一部分,而非单一的灵丹妙药。