撰文:Oliver Jaros,CMT Digital 分析师、Shlok Khemani,decentralised.co
编译:Yangz,Techub News
Uber 的旧金山总部与大多数科技公司类似,有着开放式的楼层设计,员工们可以自由活动,分享自己的想法。然而,在主楼层的中心,有那么一间鲜有员工涉足的房间。金属和玻璃的外墙、一个可以让透明玻璃变得不透明的开关,以及频繁出现的安保人员,都让这个房间显得十分神秘。
这就是 Uber 的「作战室」,一个全天候运作的空间,主要供高管们集思广益,以解决公司面临的最大问题。为了保密,这个房间严格按照「need to know」原则开放。而这种保密措施是极其必要的,毕竟为占据网约车市场的主导地位,Uber 需要在全球范围内与竞争对手展开激烈的竞争,而对手们不会放过任何可能泄露其战略的机会。在作战室里发生的一切只会留在这个房间里。
Uber 的作战室内部 ;来源:
Andrew Chen
,a16z
这种在原本可进入空间内设置私人隔间的做法很常见。苹果公司在开展秘密项目时,会将指定团队安置在与总部分开的其他建筑中。国会大厦和其他美国政府大楼都设有敏感信息设施(SCIF),为敏感讨论提供隔音墙和电磁屏蔽。我们自己家里或入驻的酒店房间也会设有保险箱。
安全飞地(Secure Enclaves)已经延展到了物理世界之外。如今,我们主要通过计算机来存储数据和处理信息。随着我们对硅基机器的依赖性的不断增长,攻击和泄露的风险也在增加。就像 Uber 的作战室一样,计算机需要一个独立的空间来存储最敏感的数据并执行关键计算。这个空间被称为可信执行环境(TEE)。
虽然 TEE 已成为加密货币行业的热门词汇,但其目的和功能却经常被误解。我们希望通过本文来改变这一现状。在此,我们将向您解释关于 TEE 的一切必要知识,包括它们是什么、为什么重要、我们每天使用它们的方式,以及它们如何帮助构建更好的 Web3 应用。
TEE 已无处不在
首先,我们先来了解一下 TEE 的定义。
TEE 是设备主处理器内的专用安全区域,可确保正在处理的数据和代码的机密性。TEE 提供了一个独立于主操作系统的隔离执行环境,对于维护处理敏感信息的应用的数据安全至关重要。
TEE 主要提供两种保证。
-
隔离执行:TEE 在隔离环境中运行代码。这意味着,即使主操作系统受到破坏,TEE 中的代码和数据仍然是安全的。
-
内存加密:在 TEE 内处理的数据都经过加密。这可确保即使攻击者访问了物理内存,也无法破译 TEE 中存储的敏感信息。
而要了解 TEE 的重要性,你们手中可能正在用于阅读本文的设备 iPhone,就是很好的说明。FaceID 已成为 iPhone 验证用户访问设备的主要方式。在几百毫秒的时间里,设备内部进行了如下流程:
-
首先,点阵投影仪会将 3 万多个不可见的红外线(IR)点阵投射到用户脸上。红外摄像头捕捉这一图案和面部的红外图像。在弱光条件下,泛光照明器可提高可见度。
-
其次,处理器接收这些原始数据,并创建面部的数学模型,包括深度数据、轮廓和独特特征。
-
最后,数学模型与 FaceID 初始设置时存储的模型进行比对。如果模型足够精确,就会向 iOS 系统发送「成功」信号,设备就会解锁。如果比对失败,设备将保持锁定状态。
解锁手机时,投射在脸部的 3 万个红外点;来源:YouTube
FaceID 不仅用于解锁设备,还用于验证其他操作,如登录应用以及进行支付。因此,任何安全漏洞都会造成严重后果。如果模型创建和比对过程遭到破坏,非设备所有者就可以解锁设备、访问所有者的个人数据并进行欺诈性金融交易。如果攻击者设法提取存储的用户面部数学模型,就会导致生物识别数据被盗,并严重侵犯隐私。
当然,苹果公司在实施 FaceID 时很讲究方法。所有的处理和存储都是通过 The Secure Enclave 进行的,这是一个内置在 iPhone 和其他苹果设备中的独立处理器,其功能与其他内存和进程隔离。它的设计目的是,即使设备的其他部分受到攻击,攻击者也无法访问它。除了生物识别技术,它还能存储和保护用户的支付信息、密码、钥匙链和健康数据。
苹果的 The Secure Enclave 只是 TEE 的一个例子。由于大多数计算机都要处理敏感数据和计算,几乎所有的处理器制造商现在都提供了某种形式的 TEE。英特尔提供软件防护扩展(SGX),AMD 有 AMD 安全处理器,ARM 有 TrustZone,高通提供 Secure Foundation,而 Nvidia 的最新 GPU 则带有保密计算功能。
TEE 也有软件变体。例如,AWS Nitro Enclaves 允许用户创建隔离的计算环境,以保护和处理亚马逊常规 EC2 实例中的高度敏感数据。同样,谷歌云和微软 Azure 也提供保密计算。
苹果公司最近还宣布推出私有云计算(Private Cloud Compute),这是一个云智能系统,旨在私下处理设备无法在本地提供服务的人工智能请求。类似的,OpenAI 也在为人工智能云计算开发安全基础设施。
TEE 之所以令人兴奋,部分原因是它们在个人电脑和云服务提供商中无处不在。它使开发人员能够创建受益于用户敏感数据的应用,而不必担心数据泄露和安全漏洞。它还能通过生物识别身份验证和密码等创新技术直接改善用户体验。
那么,这些与加密货币有什么关系呢?
远程证明
TEE 为外部无法篡改的计算提供了可能,而区块链技术也能提供类似的计算保证。智能合约本质上是计算机代码,一旦部署,就会自动执行,外部参与者无法更改。
不过,在区块链上运行计算有一些限制:
-
与普通计算机相比,区块链的处理能力有限。例如,以太坊上的一个区块每 12 秒生成一次,最多只能容纳 2 MB 的数据。这比软盘的容量还小,而软盘已是一种过时的技术。虽然区块链的速度越来越快,功能也越来越强大,但它们仍然无法执行复杂的算法,比如 FaceID 背后的算法。
-
区块链缺乏原生隐私。所有分类账数据对所有人都是可见的,因此不适合依赖个人身份、银行余额、信用评分和病史等隐私信息的应用。
TEE 并无这些限制。虽然 TEE 的速度比普通处理器慢,但它们仍然比区块链快上几个数量级。此外,TEE 本身具有隐私保护功能,默认情况下会对所有处理过的数据进行加密。
当然,需要隐私和更强计算能力的链上应用可以从 TEE 的互补功能中获益。但是,区块链是高度可信的计算环境,账本上的每个数据点都应可追溯到其来源,并在众多独立计算机上复制。相比之下,TEE 流程发生在本地物理或云环境中。
所以,我们需要一种方法来结合这两种技术,这就需要用到远程验证。那么,何为远程证明,让我们绕道中世纪,先了解一下背景。
在电话、电报和互联网等技术发明之前,由人类信使传递手写信件是远距离发送信息的唯一方式。但是,收信人如何才能确保信息真正来自原定的发信人,并且没有被篡改呢?数百年来,蜡封成为了这一问题的解决方案。
装有信件的信封会用热蜡盖上独特而复杂的图案,通常是国王、贵族或宗教人物的纹章或标志。由于每个图案对发信人来说都是独一无二的,没有原始印章几乎无法复制,因此收信人可以确信信件的真实性。此外,只要印章完好无损,收件人也可以确信信息未被篡改。
英国国玺(Great Seal of the Realm):用来象征君主批准国家文件的印章
远程证明相当于现代的印章,即由 TEE 生成的加密证明,允许持有者验证其中运行的代码的完整性和真实性,并确认 TEE 未被篡改。其工作原理如下:
-
TEE 生成一份报告,其中包含有关其状态和内部运行代码的信息。
-
该报告使用只有真正的 TEE 硬件才能使用的密钥进行加密签名。
-
签名后的报告将发送给远程验证器。
-
验证器会检查签名,确保报告来自真正的 TEE 硬件。然后检查报告内容,确认预期代码正在运行且未被修改。
-
如果验证成功,远程方就可以信任 TEE 及其内部运行的代码。
为了将区块链与 TEE 进行结合,这些报告可以发布在链上,并由指定的智能合约验证证明。
那么,TEE 如何帮助我们构建更好的加密货币应用呢?
TEE 在区块链中的实际用例
作为以太坊 MEV 基础设施中的「领导者」,Flashbot 的解决方案 MEV-boost 将区块提议者与区块构建者分开,并在两者之间引入了一个名为「中继器」的可信实体中介。中继器验证区块的有效性,进行拍卖以选出获胜的区块,并防止验证者利用构建者发现的 MEV 机会。
MEV-Boost 架构
然而,如果中继器是中心化的,比如三个中继器处理超过 80% 的区块,仍会出现问题。正如这篇博文所概述的,这种中心化存在着中继器审查交易、与构建者串通给予某些交易优先于其他交易的风险,以及中继器本身可能窃取 MEV 的风险。
那么,为什么智能合约不直接实施中继功能呢?首先,中继软件非常复杂,无法直接在链上运行。此外,使用中继器是为了保持输入(由构建者创建的区块)的私密性,以免 MEV 被盗。
TEE 就能很好解决这一问题。通过在 TEE 中运行中继软件,中继器不仅可以保持输入区块的私密性,同时还能证明获胜区块是在没有串通的情况下公平选出的。目前,Flashbots 正在开发的 SUAVE(正在测试中)就是一种由 TEE 驱动的基础设施。
最近,本刊和 CMT Digital 探讨了有关解决者(Solver)网络和意图(Intent)如何帮助链抽象并解决加密货币应用的用户体验问题,我们都提到了这么一个解决方案,即订单流拍卖,它是在 MEV boost 中进行的拍卖的通用版本,而 TEE 可以提高这些订单流拍卖的公平性和效率。
此外,TEE 对 DePIN 应用也有很大帮助。DePIN 是贡献资源(如带宽、计算、能源、移动数据或 GPU)以换取代币奖励的设备网络,因此供应方完全有动机通过改变 DePIN 软件来欺骗系统,例如,显示同一设备的重复贡献,以赚取更多奖励。
不过,正如我们所见,大多数现代设备都有某种形式的内置 TEE。DePIN 项目可以要求生成通过 TEE 创建的设备唯一标识符的证明,确保设备是真实的,并运行预期的安全软件,进而远程验证贡献是否合法且安全。Bagel 就是一个正在探索使用 TEE 的数据 DePIN 项目。
另外,TEE 在 Joel 近日探讨的 Passkey 技术中也发挥了重要作用。Passkey 是一种将私钥存储在本地设备或云解决方案 TEE 中的身份验证机制,用户无需管理助记词,且支持跨平台钱包,允许社交和生物认证,并简化了密钥的恢复流程。
Clave 和 Capsule 将该技术运用于嵌入式消费钱包,而硬件钱包公司 Ledger 则使用 TEE 生成和存储私钥。CMT Digital 投资的 Lit Protocol 为应用、钱包、协议和人工智能代理的开发者提供去中心化签名、加密和计算的基础设施。该协议使用 TEE 作为其密钥管理和计算网络的一部分。
TEE 也有其他变体。随着生成式 AI 的发展,要区分 AI 生成的图像和真实图像变得越来越困难。为此,索尼、尼康和佳能等大型相机制造商正在集成为捕获的图像实时分配数字签名的技术。它们还为第三方提供基础设施,通过验证证明来检查图像的出处。虽然这种基础设施目前是中心化的,但我们希望这些证明将来能在链上得到验证。
上周,我写了一篇关于 zkTLS 如何以可验证的方式将 Web2 信息引入 Web3 的文章。我们讨论了使用 zkTLS 的两种方法,包括多方计算(MPC)与代理。而 TEE 提供了第三种方法,即在设备的安全飞地中处理服务器连接,并在链上发布计算证明。Clique 就是一个正在实施基于 TEE 的 zkTLS 的项目。
此外,以太坊 L2 解决方案 Scroll 和 Taiko 正在尝试多证明方法,旨在将 TEE 与 ZK 证明集成在一起。TEE 可以更快、更经济高效地生成证明,且不会增加最终时间。它们通过增加证明机制的多样性以及减少错误和漏洞补充了 ZK 证明。
在基础设施层面,也出现了一些支持越来越多的应用使用 TEE 远程证明的项目。Automata 正在推出一个模块化验证链,作为 Eigenlayer AVS,充当远程验证的注册中心,使其可公开验证并易于访问。Automata 与各种 EVM 链兼容,可在整个 EVM 生态中实现可组合的 TEE 证明。
另外,Flashbots 正在开发一种 TEE 协处理器 Sirrah,用于在 TEE 节点和区块链之间建立安全通道。Flashbots 还为开发人员提供代码,以创建可轻松验证 TEE 证明的 Solidity 应用。他们正在使用上文提到的 Automata 验证链。
「玫瑰是带刺的」
虽然 TEE 用途广泛,且已应用于加密货币的各个领域,但采用该技术并非没有挑战。希望采用 TEE 的构建者们能够牢记其中一些要点。
首先,最主要的考虑因素是 TEE 需要一个可信设置。这意味着,开发人员和用户必须相信设备制造商或云提供商会坚持安全保证,不会拥有(或向政府等外部行为者提供)进入系统的后门。
另一个潜在问题是边信道攻击(SCA)。想象一下在教室里进行的选择题测试,虽然你看不到任何人的试卷,但你完全可以观察到边上同学在选择不同答案时花费时间的长短。
边信道攻击的原理类似。攻击者利用功耗或时序变化等间接信息来推断 TEE 内处理的敏感数据。要减少这些漏洞,需要仔细实施加密操作和恒定时间算法,以尽量减少 TEE 代码执行过程中的可观测变化。
英特尔 SGX 等 TEE 已被证实存在漏洞。2020 年的 SGAxe 攻击利用英特尔 SGX 中的漏洞从安全飞地中提取了加密密钥,可能会泄露云环境中的敏感数据。 2021 年,研究人员展示了「SmashEx」攻击,该攻击可导致 SGX 飞地崩溃,并可能泄露机密信息。「Prime+Probe」技术也是一种边信道攻击,可通过观察缓存访问模式从 SGX 外围设备中提取加密密钥。所有这些例子都凸显了安全研究人员与潜在攻击者之间的 「猫鼠游戏」。
世界上大多数服务器都使用 Linux 的一个原因就是它强大的安全性。这得益于它的开放源代码特性,以及成千上万的程序员不断测试软件并解决出现的漏洞。同样的方法也适用于硬件。OpenTitan 是一个开源项目,旨在使硅信任根(RoT,TEE 的另一个术语)更加透明、可信且安全。
未来展望
除了 TEE 之外,还有其他几种隐私保护技术可供构建者使用,比如零知识证明、多方计算和全同态加密。对这些技术进行全面比较超出了本文的讨论范围,但 TEE 有两个比较突出的优势。
首先是其普遍性。其他技术的基础架构仍处于萌芽阶段,而 TEE 已成为主流,并集成到了大多数现代计算机中,为希望利用隐私技术的创始人们降低了技术风险。其次,与其他技术相比,TEE 的处理开销要低得多。虽然这一特性涉及到安全权衡,但对于许多使用案例来说,它不失为一种实用的解决方案。
最后,如果您正在考虑 TEE 是否适合您的产品,请自问以下问题:
-
产品是否需要在链上证明复杂的链外计算?
-
应用输入或主要数据点是否需要隐私化?
如果答案都是肯定的,那么 TEE 就值得一试。
不过,考虑到 TEE 仍容易受到攻击的事实,请时刻保持警惕。如果应用的安全价值低于攻击成本(攻击成本可能高达数百万美元),您可以考虑单独使用 TEE。但是,如果你正在构建「安全至上」的应用,如钱包和 Rollup,则应考虑使用去中心化 TEE 网络(如 Lit Protocol),或将 TEE 与其他技术(如 ZK 证明)结合使用。
与构建者不同,投资者可能更关心 TEE 的价值体现,以及是否会有价值数十亿美元的公司因这项技术崛起。
从短期来看,在许多团队不断尝试使用 TEE 的过程中,我们认为价值将在基础设施层面产生,包括特定于 TEE 的 Rollup(如 Automata 和 Sirrah),以及为使用 TEE 的其他应用提供关键构件的协议(如 Lit)。随着更多 TEE 协处理器的推出,链外隐私计算的成本将会降低。
而从长远来看,我们预计利用 TEE 的应用和产品的价值将超过基础设施层。不过,需要注意的是,用户采用这些应用并不是因为它们使用了 TEE,而是因为它们是解决真正问题的优秀产品。我们已在 Capsule 等钱包中看到了这一趋势,与浏览器钱包相比,Capsule 的用户体验得到了极大改善。许多 DePIN 项目可能仅使用 TEE 进行身份验证,而不是将其作为核心产品的一部分,但它们也将积累巨大的价值。
每过一周,我们对「我们正处于从胖协议论向胖应用论转变的阶段」这一论断的信心就会增强一分。我们希望 TEE 等技术也能顺应这一趋势。X 上的 timeline 不会告诉你这一点,但随着 TEE 等技术的成熟,加密货币领域将迎来前所未有的激动人心的时刻。