在十月,“TEE(受信執行環境)”這一術語開始頻繁出現在 X 動態中。這讓我感到驚訝,因為 TEE 傳統上是一個小眾話題,主要在系統安全學術界討論。作為曾在系統安全實驗室進行研究的人員,我很高興看到這一發展。然而,我也好奇為什麼 TEE 突然在 Web3 領域獲得關注。我還注意到,缺乏能夠向大眾普及 TEE 概念的內容,這激勵我寫下這篇文章。
TEE 是一個複雜的概念,沒有計算機科學背景的人可能很難完全理解。因此,本文從基本的 TEE 概念入手,解釋了為什麼 Web3 想要利用 TEE,並討論了當前 Web3 項目中實現 TEE 的案例以及其侷限性。
總之,本文將涵蓋以下主題:
我認為大多數讀者可能不具備完全理解 TEE 到底是什麼的必要背景知識。由於 TEE 是一個相對複雜的概念,因此我將盡量提供簡單的解釋。
大多數 Web2 服務器通過授權設置來管理數據訪問。然而,由於這種方式純粹是基於軟件的,如果獲取了更高權限,這種方式基本上就變得無效。例如,如果攻擊者獲得了服務器操作系統的內核級權限,他們可能會訪問服務器上所有權限控制的數據,包括加密密鑰。在這種極端情況下,僅通過軟件手段幾乎無法防止數據被盜。TEE(受信執行環境)試圖通過硬件級別的安全性從根本上解決這個問題。TEE 通常被稱為“機密計算”,但這其實是一個更廣泛的概念,包括確保用戶數據隱私的計算機制,如 ZK、MPC 和 FHE。
來源:Jujutsu Kaisen
舉個簡單的類比,TEE 就像內存中的加密區。TEE 內的數據都是加密的,外部無法直接訪問原始數據。即使是操作系統內核也無法讀取或修改其原始數據。因此,即使攻擊者獲得了服務器的管理員權限,他們也無法解密 TEE 內的數據。這個加密區域通常被稱為“安全區域”(Enclave)。
創建安全區域並在其中處理數據需要特定的指令集,類似於操作碼(opcode)。這些指令使用存儲在硬件保護區域中的加密密鑰,在安全區域內對數據進行計算。由於 TEE 是硬件級別的安全模塊,其實現因 CPU 芯片廠商而異。例如,Intel 支持 SGX,AMD 支持 SEV,ARM 支持 TrustZone。從更廣泛的角度來看,這些實現都共享“通過硬件加密保護內存”的概念。
首先,讓我們瞭解最常見的 TEE — Intel SGX、AMD SEV 和 ARM TrustZone 的工作原理,然後介紹一些較新的 TEE 實現。
Intel SGX
SGX 在進程級別創建和訪問安全區域。下圖清楚地展示了啟用了 SGX 的程序如何操作。
在開發過程中,開發人員必須區分受信任代碼和不受信任代碼。需要由安全區域保護的變量或函數被指定為受信任代碼,而其他操作則歸類為不受信任代碼。當不受信任代碼需要將數據輸入到受信任代碼中,或受信任代碼必須與不受信任代碼交互時,便使用名為 ECALL 和 OCALL 的特殊系統調用。
如果用戶需要直接與安全區域內的數據進行交互,例如提供輸入或接收輸出,他們可以通過使用 SSL 等協議建立的安全通道進行通信。
AMD SEV
與在進程級別創建安全區域的 SGX 不同,SEV 在虛擬機級別創建安全區域。分配給虛擬機的內存會被加密,並通過獨立的密鑰進行管理,保護數據不被服務器操作系統或其他虛擬機訪問。雖然虛擬機通常因其沙箱隔離而被認為是安全的,但無法完全排除會破壞這種隔離的漏洞。SEV 旨在在這種情況下提供安全保障。
SEV 在創建虛擬機時通過一個與 CPU 物理隔離的安全處理器生成加密密鑰。這些密鑰隨後用於加密虛擬機內存。下圖展示了 SGX 和 SEV 之間的區別。
SGX 要求開發人員明確將代碼劃分為不受信任和受信任的部分。相比之下,SEV 對整個虛擬機內存進行加密,因此在實現上相對減少了開發人員的工作量。
ARM TrustZone
與主要為桌面和服務器生產 CPU 的 Intel 和 AMD 不同,ARM 設計的是用於輕量級系統,如移動設備和嵌入式設備的芯片。因此,ARM 的安全區域實現與用於高層架構的 SGX 或 SEV 略有不同。
TrustZone 在硬件級別將系統劃分為安全世界(Secure World)和普通世界(Normal World)。使用 TrustZone 的開發人員必須在安全世界中實現安全關鍵功能,而普通功能則在普通世界中運行。這兩個世界之間的過渡通過被稱為安全監控調用(Secure Monitor Calls)的特殊系統調用進行,類似於 SGX。
一個主要區別是,TrustZone 的安全區域不僅僅侷限於 CPU 或內存,它還包括整個系統,包括系統總線、外設和中斷控制器。蘋果也在其產品中使用了一個稱為 Secure Enclave 的 TEE,功能上與 TrustZone 非常相似。
正如我們稍後討論的,許多原始的 TEE,包括 Intel SGX,由於結構性問題,已遭遇側信道漏洞和開發挑戰。為了應對這些問題,廠商已發佈了改進版。隨著對安全雲計算需求的上升,像 AWS、Azure 和 GCP 這樣的平臺也開始提供他們自己的 TEE 服務。最近,TEE 概念已擴展到 GPU 領域。一些 Web3 的應用場景現在已經開始實施這些高級 TEE,以下將介紹它們。
雲 TEE:AWS Nitro、Azure Confidential Computing、Google Cloud Confidential Computing
隨著對雲算力服務需求的增加,提供商開始開發自己的 TEE 解決方案。AWS 的 Nitro 是一種與 EC2 實例配合使用的安全計算環境。通過使用專用的 Nitro 安全芯片進行認證和密鑰管理,Nitro 實現了計算環境的物理隔離。Nitro 的虛擬機監控程序通過芯片提供的功能保護了安全內存區域,有效防止了用戶和雲提供商的攻擊。
Azure 支持多種 TEE 規範,包括 Intel SGX、AMD SEV-SNP 以及其自有的基於虛擬化的隔離。這種硬件環境選擇的靈活性為用戶提供了更多選擇,但在用戶使用多個 TEE 時,可能會增加攻擊面。
Google Cloud 提供了利用受信執行環境(TEE)的保密計算服務,重點針對 AI/ML 工作負載。雖然與 AWS Nitro 不同,Google Cloud 與 Azure 一樣,利用現有的 TEE 基礎設施提供基於虛擬化的隔離。其主要區別在於,Google Cloud 支持像 Intel AMX 這樣的 CPU 加速器來處理密集型 AI/ML 任務,並通過 NVIDIA 提供基於 GPU 的保密計算,稍後將詳細介紹。
ARM CCA
ARM CCA 於 2021 年底發佈,專為雲環境量身定製,與 TrustZone 針對單一嵌入式或移動環境設計不同。TrustZone 靜態管理預定的安全內存區域,而 CCA 允許動態創建“Realm”(安全區域)。這使得在單個物理設置內可以創建多個隔離的環境。
CCA 可類比為 ARM 版本的 Intel SGX,儘管有顯著差異。雖然 SGX 有內存限制,CCA 提供靈活的內存分配。此外,CCA 採用了與 SGX 不同的安全方法,通過加密整個物理內存,而不僅僅是 SGX 中指定的安全區域。
Intel TDX
Intel 推出了 TDX,這是一項在虛擬機層面加密內存的技術,類似於 AMD 的 SEV。此版本解決了關於 SGX(v1) 的反饋問題,包括 256MB 的安全區大小限制以及由於進程級別安全區創建導致的開發複雜性。與 SEV 的主要區別在於,TDX 部分信任操作系統,特別是虛擬機監控程序,用於虛擬機資源管理。此外,虛擬機加密機制也有所不同。
AMD SEV-SNP
SEV-SNP 增強了現有 SEV 模型的安全性。原始 SEV 依賴的信任模型留下了漏洞,允許虛擬機監控程序修改內存映射。SEV-SNP 通過增加硬件管理器來跟蹤內存狀態,防止這種修改。
此外,SEV-SNP 使用戶能夠直接進行遠程認證,從而減少信任錨點。SEV-SNP 還引入了反向映射表(Reverse Map Table)來監控內存頁面的狀態和所有權,從而防禦惡意虛擬機監控程序攻擊模型。
GPU TEE:NVIDIA 保密計算
TEE 的發展傳統上集中在 CPU 上,因為其依賴於硬件廠商。然而,處理如安全 AI 訓練和訓練數據保護等複雜計算的需求突顯了 GPU TEE 的必要性。為此,NVIDIA 在 2023 年向 H100 GPU 引入了保密計算功能。
NVIDIA 保密計算提供了獨立加密和管理的 GPU 實例,在與 CPU TEE 結合時確保端到端的安全性。目前,它通過與 AMD SEV-SNP 或 Intel TDX 集成來構建保密計算管道。
在審視 Web3 項目時,您常常會看到聲稱通過在 GitHub 上上傳代碼實現社區治理的說法。但如何驗證服務器上部署的程序與 GitHub 上的代碼是否一致呢?
區塊鏈提供了一個環境,智能合約因持續的共識機制始終是公開且不可修改的。與此相比,典型的 Web2 服務器允許管理員隨時更新程序。為了驗證真實性,用戶需要比較通過 GitHub 等平臺構建的開源程序的二進制文件的哈希值,或者通過開發者簽名檢查完整性。
同樣的原則適用於 TEE 區域內的程序。為了讓用戶完全信任服務器上部署的程序,他們必須驗證(證明)在安全區域內的代碼和數據是否保持不變。以 SGX 為例,它使用存儲在特殊 慶安全區域中的密鑰與 IAS(Intel 驗證服務)進行通信。IAS 驗證安全區域及其內部數據的完整性,然後將結果返回給用戶。總而言之,TEE 需要與硬件廠商提供的驗證服務器通信,以確保安全區域的完整性。
為什麼在 Web3 中使用 TEE?
對於大眾來說,TEE 可能顯得不太熟悉,因為它的知識通常侷限於專業領域。然而,TEE 的出現與 Web3 的原則非常契合。使用 TEE 的基本前提是“信任任何人”。當正確實現時,TEE 可以保護用戶數據免受程序部署者、物理服務器所有者,甚至是操作系統內核的干擾。
儘管當前區塊鏈項目在結構上已經實現了顯著的去中心化,但許多項目仍依賴於鏈下服務器環境,如排序節點、鏈下中繼節點和看守機器人。需要處理敏感用戶信息的協議,例如 KYC 或生物識別數據,或者那些旨在支持私人交易的協議,面臨著信任服務提供商的問題。這些問題可以通過在安全區域內部處理數據來大大緩解。
因此,TEE 在今年下半年受到了廣泛關注,特別是在數據隱私和可信 AI 代理等與 AI 相關的主題中。然而,早在此之前,就有嘗試將 TEE 集成到 Web3 生態系統中的案例。本文將介紹一些已在 Web3 生態系統中應用 TEE 的項目,涉及的領域不僅限於 AI 部分。
Marlin
Marlin 是一個可驗證計算協議,旨在通過 TEE 或 ZK 技術提供安全的計算環境。它們的主要目標之一是開發一個去中心化的 Web。Marlin 管理兩個子網絡:Oyster 和 Kalypso,其中 Oyster 作為基於 TEE 的協處理協議。
1)Oyster CVM
Oyster CVM(為方便起見稱為 Oyster)充當 P2P TEE 市場。用戶通過 Oyster 的鏈下市場購買 AWS Nitro Enclave 計算環境,並在其中部署程序鏡像。以下是 Oyster 的抽象結構:
來源: https://docs.marlin.org/oyster/protocol/cvm/workflow/
Oyster 的結構與 Akash 非常相似。在 Oyster 中,區塊鏈的作用是驗證每個 TEE 計算環境是否正常運行,這通過名為提供者的觀察者來實現。Providers 會實時檢查安全區域的可用性,並將其發現報告給 Oyster 網絡。它們會質押 $POND 代幣,若參與惡意活動,代幣可能會被罰沒。此外,還有一個去中心化的實體網絡,稱為“審計員”,負責監督提供者的罰沒。每個週期,審計員會被分配任務,並向隨機選擇的安全區域發送審計請求,這些請求是通過安全區域內部生成的種子來選擇的。
然而,Oyster 實現了一個名為 NitroProver 的合約,在鏈上驗證遠程證明結果,允許用戶在鏈上驗證其購買的 TEE 的完整性。
用戶部署的實例可以通過智能合約和 Web2 API 進行訪問。計算結果可以通過將其作為預言機的方式整合到合約中。如儀表盤所示,這一功能不僅適用於智能合約,還能去中心化 Web2 服務。
與 Akash 相似,Oyster 也可能面臨攻擊者接管實例的風險,特別是當鏈下市場存在漏洞時。在這種情況下,儘管安全區域的數據可能保持安全,但存儲在安全區域外的原始數據和服務操作權限可能會受到威脅。對於存儲在不可信內存中的敏感數據,開發者必須加密這些數據並單獨存儲。Marlin 目前提供了一個基於 MPC 的外部存儲,使用持久密鑰來處理這些情況。
2) Oyster Serverless
Oyster CVM 作為一個 P2P TEE 市場運作,而 Oyster Serverless 則類似於 AWS Lambda(或函數即服務)與 TEE 的結合。使用 Oyster Serverless,用戶可以在不租用實例的情況下執行函數,按需付費。
Oyster Serverless 的執行流程如下:
通過 Oyster Serverless,用戶可以通過智能合約發送 Web2 API 請求或調用智能合約,同時通過 TEE 保證執行的完整性。用戶還可以訂閱 Serverless 服務進行定期執行,這對預言機抓取器特別有用。
Phala Network
之前在我們的 AI 與加密文章中討論過,Phala 已經顯著轉向了 AI 協處理器。
Phala Network 的基本設計包括 Workers 和 Gatekeepers。Workers 作為常規節點,執行客戶的計算任務。而 Gatekeepers 管理密鑰,使 Workers 能夠解密並計算加密的狀態值。Workers 處理通過 Intel SGX 加密的合約狀態值,讀取或寫入這些值需要 Gatekeepers 提供的密鑰。
來源:https://docs.phala.network/tech-specs/blockchain
Phala 通過支持在 Intel TDX 環境中的機密虛擬機(Confidential VM)SDK 擴展了其產品線。最近,他們與 Flashbot 合作推出了 Dstack。該產品提供了一個遠程證明 API,用於驗證在機密虛擬機中部署的多個 Docker 容器鏡像的操作狀態。通過 Dstack 的遠程證明,用戶可以通過專門的瀏覽器確保透明性。
另一個重要的進展是他們推出的機密 AI 推理產品,旨在應對近期 AI 項目的激增。Phala Network 現在支持相對較新的 Nvidia 機密計算,旨在通過 ZK/FHE 技術提升 AI 推理服務。此前,這項技術由於高開銷而面臨挑戰,限制了其實際應用。
來源: https://docs.phala.network/overview/phala-network/confidential-ai-inference
下圖展示了 Phala Network 機密 AI 推理系統的結構。該系統利用像 Intel TDX 和 AMD SEV 這樣的虛擬機級別受信執行環境(TEE)來部署 AI 模型。它通過 Nvidia 機密計算進行 AI 推理,並安全地將結果傳回 CPU 安全區域。與常規模型相比,這種方法可能會產生較大的開銷,因為它涉及兩輪安全區域計算。然而,預計它將比完全依賴 CPU 性能的現有 TEE 基礎 AI 推理方法提供顯著的性能提升。根據 Phala Network 發佈的論文,基於 Llama3 的 LLM 推理開銷大約為 6–8%。
其他
在 AI 與加密領域,其他使用 TEE 作為協處理器的例子包括 iExec RLC、PIN AI 和 Super Protocol。iExec RLC 和 PIN AI 分別專注於通過 TEE 保護 AI 模型和訓練數據。Super Protocol 正在準備推出一個類似於 Marlin 的 TEE 計算環境交易市場。然而,關於這些項目的詳細技術信息尚未公開,我們將在它們產品發佈後提供更新。
Oasis(前稱 Rose)
Oasis,前身為 Rose,是一個第 1 層(Layer1)區塊鏈,旨在通過在 SGX enclave 中運行執行客戶端來保護用戶隱私。儘管它是一個相對成熟的鏈,Oasis 在其執行層創新性地實現了多虛擬機(multi-VM)支持。
執行層稱為 Paratime,包括三個組件:Cipher,一個基於 WASM 的機密虛擬機(VM);Sapphire,一個基於 EVM 的機密虛擬機;以及 Emerald,一個標準的 EVM 兼容虛擬機。Oasis 從根本上保護智能合約及其計算過程,防止節點對其進行任意修改,確保執行客戶端始終在 TEE enclave 中運行。下圖展示了這一結構。
來源:https://docs.oasis.io/general/oasis-network/
當用戶發送交易時,他們通過 Oasis 節點的密鑰管理器在安全區域中生成一個臨時密鑰,並使用該密鑰對交易數據進行加密,然後將其傳送到計算模塊。計算模塊從密鑰管理器中獲取臨時密鑰的私鑰,用於解密安全區域內的數據,執行智能合約並修改節點的狀態值。由於交易執行結果也以加密形式交付給用戶,因此既操作 Oasis 節點客戶端的服務器,也無法觀察交易內容。
Oasis 強調其在使用機密 Paratime 創建處理敏感個人信息的 DApp 方面的優勢。該功能允許開發需要身份驗證的服務,如 SocialFi、信用借貸、CEX 集成服務和基於信譽的服務。這些應用可以在安全的安全區域中安全地接收並驗證用戶的生物識別或 KYC 信息。
Secret Network
Secret Network 是 Cosmos 生態系統中的第 1 層鏈,也是最早基於 TEE 的區塊鏈之一。它利用 Intel SGX enclave 對鏈的狀態值進行加密,支持用戶的私密交易。
在 Secret Network 中,每個合約都有一個獨特的密鑰,該密鑰存儲在每個節點的安全區域中。當用戶通過使用公鑰加密的交易調用合約時,節點會在 TEE 內解密交易數據並與合約的狀態值進行交互。這些修改過的狀態值將被記錄到區塊中,並保持加密狀態。
合約本身可以以字節碼或源代碼形式與外部實體共享。然而,網絡通過防止直接觀察用戶發送的交易數據,並阻止外部觀察或篡改當前合約狀態值來確保用戶交易隱私。
由於所有智能合約的狀態值都被加密,因此查看這些值需要解密。Secret Network 通過引入查看密鑰(viewing keys)來解決這個問題。這些密鑰將特定用戶的密碼綁定到合約上,僅授權用戶可以查看合約的狀態值。
Clique,Quex Protocol
與之前介紹的基於 TEE 的第 1 層鏈不同,Clique 和 Quex Protocol 提供的基礎設施使得一般的 DApp 可以將私密計算委託給鏈下 TEE 環境。這些計算結果可以在智能合約層面使用。它們主要用於可驗證的激勵分配機制、鏈下訂單簿、預言機和 KYC 數據保護等應用場景。
一些 ZK L2 鏈採用多重證明系統來解決零知識證明固有的不穩定性,通常會結合 TEE 證明。現代零知識證明機制尚未成熟到完全信任其安全性,當 ZK 電路出現與健全性相關的漏洞時,需要付出大量努力進行修復。因此,使用 ZK 證明或 ZK-EVM 的鏈採用 TEE 證明,通過在 安全區域內的本地虛擬機重新執行區塊來檢測潛在的漏洞。目前,採用包括 TEE 在內的多重證明系統的 L2 鏈有 Taiko、Scroll 和 Ternoa。我們將簡要探討它們使用多重證明系統的動機及其結構。
Taiko
Taiko 是目前最為突出的(計劃成為)基於 Rollup 的鏈。Rollup 鏈將排序工作委託給 Ethereum 的區塊提議者,而無需維護一個獨立的中心化排序器。根據 Taiko 的基於 Rollup 的示意圖,L2 搜索者將交易捆綁並批量傳遞給 L1,L1 的區塊提議者隨後將這些交易與 L1 交易一同重建,生成 L1 區塊並捕獲 MEV。
來源:https://docs.taiko.xyz/core-concepts/multi-proofs/
在 Taiko 中,TEE 並不在區塊構建階段使用,而是在證明生成階段使用,我們將在後文解釋。Taiko 由於其去中心化的結構,不需要驗證排序器故障。然而,如果 L2 節點客戶端代碼存在漏洞,一個完全去中心化的設置無法迅速處理這些問題。因此,需要高級別的有效性證明來確保安全性,這使得 Taiko 的挑戰設計比其他 Rollup 更加複雜。
Taiko 的區塊經歷三個階段的確認:提出(proposed)、證明(proved)和驗證(verified)。當區塊的有效性由 Taiko 的 L1 合約(rollup 合約)檢查時,它被視為提出階段。經過並行證明者驗證後,它進入證明階段;而當其父區塊被證明後,它進入驗證階段。為了驗證區塊,Taiko 使用三種類型的證明:基於 SGX V2 的 TEE 證明、基於簡潔的 RiscZero 的 ZK 證明和依賴中心化多籤的 Guardian 證明。
Taiko 採用一種對抗模型進行區塊驗證,在證明者之間建立了一個安全層級:TEE、ZK、ZK+TEE 和 Guardian。該設置允許挑戰者在識別由更高層級模型生成的錯誤證明時獲得更高的獎勵。每個區塊所需的證明會被隨機分配,權重如下:5% 為 SGX+ZKP,20% 為 ZKP,其餘使用 SGX。這確保了 ZK 證明者在成功挑戰時總能獲得更高的獎勵。
讀者可能會好奇,SGX 證明者如何生成和驗證證明。SGX 證明者的主要作用是證明 Taiko 的區塊是通過標準計算生成的。這些證明者生成狀態值變化的證明,並通過在 TEE 環境中通過本地虛擬機重新執行區塊,結合安全區域證明結果來驗證環境。
與 ZK 證明生成相比,TEE 基礎的證明生成在相似的安全假設下以更低的成本驗證計算完整性。驗證這些證明涉及簡單的檢查,例如確保證明中使用的 ECDSA 簽名與證明者的簽名匹配。
總之,基於 TEE 的有效性證明可以看作是一種驗證鏈完整性的方法,它通過生成安全性稍低的證明,但相較於 ZK 證明,成本大大降低。
Scroll
Scroll 是採用多重證明系統的著名 Rollup,它與 Automata(一個稍後將介紹的證明層)合作,為所有區塊生成 ZK 證明和 TEE 證明。這一合作激活了一個爭議系統,以解決兩種證明之間的衝突。
來源:https://scroll.io/blog/scaling-security
Scroll 計劃支持各種硬件環境(目前僅支持 SGX),包括 Intel SGX、AMD SEV 和 AWS Nitro,以最小化硬件依賴性。它們通過使用門限簽名從不同環境收集證明,來解決 TEE 中可能出現的安全問題。
Ternoa
Ternoa 優先檢測由中心化 L2 實體引發的惡意行為,而不是解決執行本身的漏洞。與 Taiko 或 Scroll 使用 TEE 證明者來補充現有的 ZK 證明不同,Ternoa 在 TEE 環境中使用觀察者來檢測 L2 排序者和驗證者的惡意行為,重點關注無法僅通過交易數據評估的領域。例如,RPC 節點基於 IP 地址審查交易、排序者更改排序算法,或故意未提交批量數據等。
Ternoa 操作一個名為完整性驗證鏈(Integrity Verification Chain,IVC)的獨立 L2 網絡,用於與 Rollup 實體相關的驗證任務。Rollup 框架提供者將最新的排序者鏡像提交給 IVC。當一個新的 Rollup 請求部署時,IVC 會返回存儲在 TEE 中的服務鏡像。部署後,觀察者會定期驗證已部署的 Rollup 是否按照預期使用排序者鏡像。然後,他們提交完整性證明,將驗證結果和來自 TEE 環境的證明報告合併,確認鏈的完整性。
Flashbots BuilderNet
Flashbots 被廣泛視為一個 MEV 解決方案提供商,一直在探索受信執行環境(TEE)在區塊鏈技術中的應用。其主要的研究工作包括:
在本文中,我們將簡要概述 Flashbots 當前的角色,並討論其最近推出的 BuilderNet,這是一個旨在去中心化區塊構建的計劃。Flashbots 已宣佈通過 BuilderNet 完成其現有解決方案的完全遷移。
以太坊採用了一個提議者-構建者分離(Proposer-Builder Separation,PBS)模型。該系統將區塊創建分為兩個角色:
這一結構導致了一些去中心化應用與構建者之間的鏈下合謀,以獲取鉅額的 MEV 利潤。因此,少數構建者,如 Beaverbuild 和 Titan Builder,壟斷了超過 90% 的以太坊區塊。在嚴重的情況下,這些構建者甚至可能對任意交易進行審查。例如,像 Tornado Cash 這樣的合規交易被主要構建者積極審查。
BuilderNet 通過增強交易隱私性和降低區塊構建者參與的門檻來解決這些問題。其結構大致可以總結如下:
來源:https://buildernet.org/docs/architecture
構建者節點接收用戶交易(訂單流),由各個節點運營商管理。每個運營商在 Intel TDX 環境中操作開源構建器實例。用戶可以自由驗證每個運營商的 TEE 環境併發送加密交易。運營商隨後共享接收到的訂單流,提交區塊到 MEV-boost 中繼,並在區塊提交成功後將區塊獎勵分發給搜索者和其他參與區塊創建的人員。
該結構提供了幾個去中心化的好處:
Puffer Finance
Puffer Finance 推出了一個名為 Secure Signer 的工具,旨在減少由於客戶端錯誤或漏洞導致以太坊驗證者被罰款的風險。該工具使用基於 SGX 安全區域的簽名器,以提供更高的安全性。
來源:https://docs.puffer.fi/technology/secure-signer/
Secure Signer 通過在 SGX enclave 中生成和存儲 BLS 驗證者密鑰,僅在必要時訪問這些密鑰來運行。其邏輯非常簡單:在受信執行環境(TEE)提供的安全保障下,它可以檢測驗證者的錯誤或惡意行為。這是通過確保在簽署區塊或證明之前,插槽嚴格增加來實現的。Puffer Finance 強調,這種設置使驗證者能夠達到與硬件錢包相當的安全級別,超越了軟件解決方案提供的典型保護。
Unichain
Unichain 是 Uniswap 計劃於明年第一季度推出的以太坊 L2 鏈,在其白皮書中分享了使用受信執行環境(TEE)去中心化 L2 區塊構建機制的計劃。雖然詳細的技術規格尚未發佈,但以下是他們關鍵提案的摘要:
此外,Unichain 還打算開發各種基於 TEE 的功能,包括加密內存池、定時交易和受 TEE 保護的智能合約。
Automata
儘管區塊鏈在架構方面已經取得了顯著的去中心化成就,但由於依賴於服務器運營商,許多元素仍然缺乏足夠的抗審查性。Automata 旨在提供基於 TEE 的解決方案,最小化服務器運營商依賴和區塊鏈架構中的數據暴露。Automata 的重要實現包括開源的 SGX Prover 和 Verifier,TEE Compile(用於驗證 TEE 中部署的可執行文件與源代碼的匹配),以及通過 TEE 內存池和區塊構建器為區塊構建機制增加隱私的 TEE Builde。此外,Automata 還允許將 TEE 的遠程證明結果發佈到鏈上,這使得它可以公開驗證並集成到智能合約中。
Automata 當前運行著 1RPC,這是一個基於 TEE 的 RPC 服務,旨在通過安全區域保護交易提交者的身份信息,如 IP 和設備詳情。Automata 強調,由於賬戶抽象的開發,UserOp 的商業化可能導致 RPC 服務通過 AI 集成推斷出特定用戶的 UserOp 模式,可能會洩露隱私。1RPC 的結構簡單明瞭,它與用戶建立安全連接,將交易(UserOp)傳入 TEE,並通過在安全區域中部署的代碼進行處理。然而,1RPC 僅保護 UserOp 的元數據,實際的交易方和交易內容在與鏈上的入口點交互時仍然會暴露。確保交易隱私的更根本方法是通過 TEE 保護內存池和區塊構建層。這可以通過與 Automata 的 TEE Builder 集成來實現。
最終將 TEE 元宇宙推向 Web3 的是基於 TEE 的 Twitter AI 代理。許多人可能第一次接觸 TEE 是在 10 月底,當時一個名為 @tee_hee_he 的 AI 代理在 X 上亮相,並在以太坊上發行了它的 memecoin。@tee_hee_he 是由 Nous Research 和 Flashbots 的 Teleport 項目聯合開發的 AI 代理。它的出現是為了解決當時流行的 AI 代理賬戶無法證明它們實際上是在轉發 AI 模型生成的結果的問題。開發者設計了一個模型,儘量減少了在推特(現為X平臺)賬戶設置、加密錢包創建和 AI 模型結果轉發等過程中中心化實體的干預。
來源:@tee_hee_he/setting-your-pet-rock-free-3e7895201f46””>@tee\_hee\_he/setting-your-pet-rock-free-3e7895201f46"">https://medium.com/@tee\_hee\_he/setting-your-pet-rock-free-3e7895201f46
他們將 AI 代理部署在 Intel TDX 環境中,通過瀏覽器模擬生成電子郵件、X 賬戶密碼和 OAuth 代幣用於推特(現為X平臺)訪問,然後移除所有恢復選項。
最近,TEE 在 AI-Pool 中被用於類似的場景,其中 @123skely 成功進行了籌款。目前,AI Meme 代幣部署合約並公開地址後,技術上更先進的狙擊機器人通常會獲得大部分流動性並操控價格。AI-Pool 試圖通過讓 AI 執行某種類型的預售來解決這一問題。
來源:https://x.com/0xCygaar/status/1871421277832954055
另一個有趣的案例是 DeepWorm,一個具有生物神經網絡的 AI 代理,模擬了蠕蟲的大腦。與其他 AI 代理類似,DeepWorm 將其蠕蟲大腦的安全區域鏡像上傳至 Marlin Network,以保護其模型並提供可驗證性。
來源:https://x.com/deepwormxyz/status/1867190794354078135
由於 @tee_hee_he 開源了部署所需的所有代碼,部署可信的、無法“跑路”(rug pull)的、基於 TEE 的 AI 代理變得相當容易。最近,Phala Network 在 TEE 中部署了 a16z 的 Eliza。正如 a16z 在其 2025 年加密市場展望報告中所強調的,基於 TEE 的 AI 代理市場預計將在未來的 AI 代理 Meme 代幣市場中發揮至關重要的基礎設施作用。
Azuki Bobu
Azuki,作為知名的以太坊 NFT 項目,於去年十月與 Flashbots 合作舉辦了一場獨特的社交活動。
來源: https://x.com/Azuki/status/1841906534151864557
該活動通過將 X 賬戶上傳權限委託給 Flashbots 和 Bobu,讓他們同時發佈推文,類似於一個快閃活動。活動取得了成功,以下是活動成果圖。
此活動由 Flashbots 和 Azuki 設計,結構如下:
Azuki 通過在 Docker Hub 上發佈 Enclave 的 Docker 鏡像,確保了活動過程的可靠性。它們還將證書透明日誌驗證腳本和 TEE 環境的遠程證明結果上傳到 GitHub。儘管 Flashbots 識別出 RPC 和區塊鏈節點的依賴性仍是潛在風險,但這些風險可以通過使用 TEE RPC 或基於 TEE 的 Rollups(如 Unichain)來緩解。
雖然該項目沒有實現技術上的突破,但值得注意的是,它僅通過使用 TEE 技術棧就成功地進行了一個值得信賴的社交活動。
與典型的軟件解決方案相比,TEE 提供了更高的安全性,因為它提供了硬件級的安全保障,軟件無法直接破壞。然而,由於一些侷限性,TEE 在實際產品中的採用速度較慢,我們將在下面介紹這些侷限性。
1) 中心化證明機制
如前所述,用戶可以利用遠程證明機制來驗證TEE保護區域的完整性,並確保保護區內的數據未被篡改。然而,這一驗證過程不可避免地依賴於芯片製造商的服務器。不同廠商的信任度有所不同——例如,SGX/TDX 完全依賴於 Intel 的證明服務器,而 SEV 則允許虛擬機所有者直接進行證明。這是 TEE 結構中的固有問題,TEE 研究人員正在通過開發開源 TEE 來解決這一問題,我們稍後會提到。
2) 旁道攻擊
TEE絕不應暴露安全區內存儲的數據。然而,由於 TEE 只能加密安全區內的數據,因此可能會出現利用附加信息而非原始數據進行攻擊的漏洞。自 2015 年 Intel SGX 公開發布以來,許多重要的邊信道攻擊在頂級系統安全會議上被揭示出來。以下是 TEE 使用場景中潛在的攻擊情境,按其影響分類:
儘管 TEE 不是一個能夠消除所有攻擊向量的系統,並且由於其固有特性,它可能會洩漏不同級別的信息,但這些攻擊通常需要強有力的前提條件,例如攻擊者和受害者的代碼運行在同一 CPU 核心上。這也使得一些人將其稱為“帶著格洛克的男人”安全模型。
來源:https://x.com/hdevalence/status/1613247598139428864
然而,由於TEE的基本原則是“不要相信任何人”,我認為 TEE 應該能夠在這種模型下保護數據,從而充分發揮其作為安全模塊的作用。
3) TEE 的實際/近期漏洞
在 TEE 實現中,尤其是 SGX 中,已發現了許多漏洞,大多數漏洞已成功修復。然而,TEE 系統複雜的硬件架構意味著每次硬件發佈時都可能出現新的漏洞。除了學術研究,已經有影響 Web3 項目的實際攻擊事件,這些事件值得詳細審查。
這些案例表明,“完全安全的 TEE”是無法實現的,用戶應當意識到新硬件發佈時可能存在的漏洞。
在11月,Paradigm 的 Georgios Konstantopoulos 概述了一個關於機密硬件演進的框架,將安全硬件分為五個不同的級別:
目前,像 Phala Network 的機密 AI 推理這樣的項目運行在級別 3,而大多數服務仍處於級別 2,使用雲 TEE 或 Intel TDX。儘管基於 Web3 的 TEE 項目最終應該過渡到級別 4 硬件,但當前的性能限制使得這一目標暫時不可行。然而,隨著像 Paradigm 等主要風險投資公司以及 Flashbots 和 Nethermind 等研究團隊致力於 TEE 的民主化,再加上 TEE 與 Web3 原則的契合,它有望成為 Web3 項目的關鍵基礎設施。
Ecosystem Explorer 是 ChainLight 的報告,提供了從安全角度對 Web3 生態系統中流行項目的內部分析,由我們的研究分析師編寫。我們的使命是幫助安全研究人員和開發者共同學習、成長,並致力於使 Web3 變得更安全。我們會定期發佈免費的報告。
要獲取由獲獎專家撰寫的最新研究和報告: 👉 關注 @ChainLight_io @c4lvin
ChainLight 成立於 2016 年,擁有獲獎的專家團隊,提供量身定製的安全解決方案,強化您的智能合約,助力您在區塊鏈上蓬勃發展。
在十月,“TEE(受信執行環境)”這一術語開始頻繁出現在 X 動態中。這讓我感到驚訝,因為 TEE 傳統上是一個小眾話題,主要在系統安全學術界討論。作為曾在系統安全實驗室進行研究的人員,我很高興看到這一發展。然而,我也好奇為什麼 TEE 突然在 Web3 領域獲得關注。我還注意到,缺乏能夠向大眾普及 TEE 概念的內容,這激勵我寫下這篇文章。
TEE 是一個複雜的概念,沒有計算機科學背景的人可能很難完全理解。因此,本文從基本的 TEE 概念入手,解釋了為什麼 Web3 想要利用 TEE,並討論了當前 Web3 項目中實現 TEE 的案例以及其侷限性。
總之,本文將涵蓋以下主題:
我認為大多數讀者可能不具備完全理解 TEE 到底是什麼的必要背景知識。由於 TEE 是一個相對複雜的概念,因此我將盡量提供簡單的解釋。
大多數 Web2 服務器通過授權設置來管理數據訪問。然而,由於這種方式純粹是基於軟件的,如果獲取了更高權限,這種方式基本上就變得無效。例如,如果攻擊者獲得了服務器操作系統的內核級權限,他們可能會訪問服務器上所有權限控制的數據,包括加密密鑰。在這種極端情況下,僅通過軟件手段幾乎無法防止數據被盜。TEE(受信執行環境)試圖通過硬件級別的安全性從根本上解決這個問題。TEE 通常被稱為“機密計算”,但這其實是一個更廣泛的概念,包括確保用戶數據隱私的計算機制,如 ZK、MPC 和 FHE。
來源:Jujutsu Kaisen
舉個簡單的類比,TEE 就像內存中的加密區。TEE 內的數據都是加密的,外部無法直接訪問原始數據。即使是操作系統內核也無法讀取或修改其原始數據。因此,即使攻擊者獲得了服務器的管理員權限,他們也無法解密 TEE 內的數據。這個加密區域通常被稱為“安全區域”(Enclave)。
創建安全區域並在其中處理數據需要特定的指令集,類似於操作碼(opcode)。這些指令使用存儲在硬件保護區域中的加密密鑰,在安全區域內對數據進行計算。由於 TEE 是硬件級別的安全模塊,其實現因 CPU 芯片廠商而異。例如,Intel 支持 SGX,AMD 支持 SEV,ARM 支持 TrustZone。從更廣泛的角度來看,這些實現都共享“通過硬件加密保護內存”的概念。
首先,讓我們瞭解最常見的 TEE — Intel SGX、AMD SEV 和 ARM TrustZone 的工作原理,然後介紹一些較新的 TEE 實現。
Intel SGX
SGX 在進程級別創建和訪問安全區域。下圖清楚地展示了啟用了 SGX 的程序如何操作。
在開發過程中,開發人員必須區分受信任代碼和不受信任代碼。需要由安全區域保護的變量或函數被指定為受信任代碼,而其他操作則歸類為不受信任代碼。當不受信任代碼需要將數據輸入到受信任代碼中,或受信任代碼必須與不受信任代碼交互時,便使用名為 ECALL 和 OCALL 的特殊系統調用。
如果用戶需要直接與安全區域內的數據進行交互,例如提供輸入或接收輸出,他們可以通過使用 SSL 等協議建立的安全通道進行通信。
AMD SEV
與在進程級別創建安全區域的 SGX 不同,SEV 在虛擬機級別創建安全區域。分配給虛擬機的內存會被加密,並通過獨立的密鑰進行管理,保護數據不被服務器操作系統或其他虛擬機訪問。雖然虛擬機通常因其沙箱隔離而被認為是安全的,但無法完全排除會破壞這種隔離的漏洞。SEV 旨在在這種情況下提供安全保障。
SEV 在創建虛擬機時通過一個與 CPU 物理隔離的安全處理器生成加密密鑰。這些密鑰隨後用於加密虛擬機內存。下圖展示了 SGX 和 SEV 之間的區別。
SGX 要求開發人員明確將代碼劃分為不受信任和受信任的部分。相比之下,SEV 對整個虛擬機內存進行加密,因此在實現上相對減少了開發人員的工作量。
ARM TrustZone
與主要為桌面和服務器生產 CPU 的 Intel 和 AMD 不同,ARM 設計的是用於輕量級系統,如移動設備和嵌入式設備的芯片。因此,ARM 的安全區域實現與用於高層架構的 SGX 或 SEV 略有不同。
TrustZone 在硬件級別將系統劃分為安全世界(Secure World)和普通世界(Normal World)。使用 TrustZone 的開發人員必須在安全世界中實現安全關鍵功能,而普通功能則在普通世界中運行。這兩個世界之間的過渡通過被稱為安全監控調用(Secure Monitor Calls)的特殊系統調用進行,類似於 SGX。
一個主要區別是,TrustZone 的安全區域不僅僅侷限於 CPU 或內存,它還包括整個系統,包括系統總線、外設和中斷控制器。蘋果也在其產品中使用了一個稱為 Secure Enclave 的 TEE,功能上與 TrustZone 非常相似。
正如我們稍後討論的,許多原始的 TEE,包括 Intel SGX,由於結構性問題,已遭遇側信道漏洞和開發挑戰。為了應對這些問題,廠商已發佈了改進版。隨著對安全雲計算需求的上升,像 AWS、Azure 和 GCP 這樣的平臺也開始提供他們自己的 TEE 服務。最近,TEE 概念已擴展到 GPU 領域。一些 Web3 的應用場景現在已經開始實施這些高級 TEE,以下將介紹它們。
雲 TEE:AWS Nitro、Azure Confidential Computing、Google Cloud Confidential Computing
隨著對雲算力服務需求的增加,提供商開始開發自己的 TEE 解決方案。AWS 的 Nitro 是一種與 EC2 實例配合使用的安全計算環境。通過使用專用的 Nitro 安全芯片進行認證和密鑰管理,Nitro 實現了計算環境的物理隔離。Nitro 的虛擬機監控程序通過芯片提供的功能保護了安全內存區域,有效防止了用戶和雲提供商的攻擊。
Azure 支持多種 TEE 規範,包括 Intel SGX、AMD SEV-SNP 以及其自有的基於虛擬化的隔離。這種硬件環境選擇的靈活性為用戶提供了更多選擇,但在用戶使用多個 TEE 時,可能會增加攻擊面。
Google Cloud 提供了利用受信執行環境(TEE)的保密計算服務,重點針對 AI/ML 工作負載。雖然與 AWS Nitro 不同,Google Cloud 與 Azure 一樣,利用現有的 TEE 基礎設施提供基於虛擬化的隔離。其主要區別在於,Google Cloud 支持像 Intel AMX 這樣的 CPU 加速器來處理密集型 AI/ML 任務,並通過 NVIDIA 提供基於 GPU 的保密計算,稍後將詳細介紹。
ARM CCA
ARM CCA 於 2021 年底發佈,專為雲環境量身定製,與 TrustZone 針對單一嵌入式或移動環境設計不同。TrustZone 靜態管理預定的安全內存區域,而 CCA 允許動態創建“Realm”(安全區域)。這使得在單個物理設置內可以創建多個隔離的環境。
CCA 可類比為 ARM 版本的 Intel SGX,儘管有顯著差異。雖然 SGX 有內存限制,CCA 提供靈活的內存分配。此外,CCA 採用了與 SGX 不同的安全方法,通過加密整個物理內存,而不僅僅是 SGX 中指定的安全區域。
Intel TDX
Intel 推出了 TDX,這是一項在虛擬機層面加密內存的技術,類似於 AMD 的 SEV。此版本解決了關於 SGX(v1) 的反饋問題,包括 256MB 的安全區大小限制以及由於進程級別安全區創建導致的開發複雜性。與 SEV 的主要區別在於,TDX 部分信任操作系統,特別是虛擬機監控程序,用於虛擬機資源管理。此外,虛擬機加密機制也有所不同。
AMD SEV-SNP
SEV-SNP 增強了現有 SEV 模型的安全性。原始 SEV 依賴的信任模型留下了漏洞,允許虛擬機監控程序修改內存映射。SEV-SNP 通過增加硬件管理器來跟蹤內存狀態,防止這種修改。
此外,SEV-SNP 使用戶能夠直接進行遠程認證,從而減少信任錨點。SEV-SNP 還引入了反向映射表(Reverse Map Table)來監控內存頁面的狀態和所有權,從而防禦惡意虛擬機監控程序攻擊模型。
GPU TEE:NVIDIA 保密計算
TEE 的發展傳統上集中在 CPU 上,因為其依賴於硬件廠商。然而,處理如安全 AI 訓練和訓練數據保護等複雜計算的需求突顯了 GPU TEE 的必要性。為此,NVIDIA 在 2023 年向 H100 GPU 引入了保密計算功能。
NVIDIA 保密計算提供了獨立加密和管理的 GPU 實例,在與 CPU TEE 結合時確保端到端的安全性。目前,它通過與 AMD SEV-SNP 或 Intel TDX 集成來構建保密計算管道。
在審視 Web3 項目時,您常常會看到聲稱通過在 GitHub 上上傳代碼實現社區治理的說法。但如何驗證服務器上部署的程序與 GitHub 上的代碼是否一致呢?
區塊鏈提供了一個環境,智能合約因持續的共識機制始終是公開且不可修改的。與此相比,典型的 Web2 服務器允許管理員隨時更新程序。為了驗證真實性,用戶需要比較通過 GitHub 等平臺構建的開源程序的二進制文件的哈希值,或者通過開發者簽名檢查完整性。
同樣的原則適用於 TEE 區域內的程序。為了讓用戶完全信任服務器上部署的程序,他們必須驗證(證明)在安全區域內的代碼和數據是否保持不變。以 SGX 為例,它使用存儲在特殊 慶安全區域中的密鑰與 IAS(Intel 驗證服務)進行通信。IAS 驗證安全區域及其內部數據的完整性,然後將結果返回給用戶。總而言之,TEE 需要與硬件廠商提供的驗證服務器通信,以確保安全區域的完整性。
為什麼在 Web3 中使用 TEE?
對於大眾來說,TEE 可能顯得不太熟悉,因為它的知識通常侷限於專業領域。然而,TEE 的出現與 Web3 的原則非常契合。使用 TEE 的基本前提是“信任任何人”。當正確實現時,TEE 可以保護用戶數據免受程序部署者、物理服務器所有者,甚至是操作系統內核的干擾。
儘管當前區塊鏈項目在結構上已經實現了顯著的去中心化,但許多項目仍依賴於鏈下服務器環境,如排序節點、鏈下中繼節點和看守機器人。需要處理敏感用戶信息的協議,例如 KYC 或生物識別數據,或者那些旨在支持私人交易的協議,面臨著信任服務提供商的問題。這些問題可以通過在安全區域內部處理數據來大大緩解。
因此,TEE 在今年下半年受到了廣泛關注,特別是在數據隱私和可信 AI 代理等與 AI 相關的主題中。然而,早在此之前,就有嘗試將 TEE 集成到 Web3 生態系統中的案例。本文將介紹一些已在 Web3 生態系統中應用 TEE 的項目,涉及的領域不僅限於 AI 部分。
Marlin
Marlin 是一個可驗證計算協議,旨在通過 TEE 或 ZK 技術提供安全的計算環境。它們的主要目標之一是開發一個去中心化的 Web。Marlin 管理兩個子網絡:Oyster 和 Kalypso,其中 Oyster 作為基於 TEE 的協處理協議。
1)Oyster CVM
Oyster CVM(為方便起見稱為 Oyster)充當 P2P TEE 市場。用戶通過 Oyster 的鏈下市場購買 AWS Nitro Enclave 計算環境,並在其中部署程序鏡像。以下是 Oyster 的抽象結構:
來源: https://docs.marlin.org/oyster/protocol/cvm/workflow/
Oyster 的結構與 Akash 非常相似。在 Oyster 中,區塊鏈的作用是驗證每個 TEE 計算環境是否正常運行,這通過名為提供者的觀察者來實現。Providers 會實時檢查安全區域的可用性,並將其發現報告給 Oyster 網絡。它們會質押 $POND 代幣,若參與惡意活動,代幣可能會被罰沒。此外,還有一個去中心化的實體網絡,稱為“審計員”,負責監督提供者的罰沒。每個週期,審計員會被分配任務,並向隨機選擇的安全區域發送審計請求,這些請求是通過安全區域內部生成的種子來選擇的。
然而,Oyster 實現了一個名為 NitroProver 的合約,在鏈上驗證遠程證明結果,允許用戶在鏈上驗證其購買的 TEE 的完整性。
用戶部署的實例可以通過智能合約和 Web2 API 進行訪問。計算結果可以通過將其作為預言機的方式整合到合約中。如儀表盤所示,這一功能不僅適用於智能合約,還能去中心化 Web2 服務。
與 Akash 相似,Oyster 也可能面臨攻擊者接管實例的風險,特別是當鏈下市場存在漏洞時。在這種情況下,儘管安全區域的數據可能保持安全,但存儲在安全區域外的原始數據和服務操作權限可能會受到威脅。對於存儲在不可信內存中的敏感數據,開發者必須加密這些數據並單獨存儲。Marlin 目前提供了一個基於 MPC 的外部存儲,使用持久密鑰來處理這些情況。
2) Oyster Serverless
Oyster CVM 作為一個 P2P TEE 市場運作,而 Oyster Serverless 則類似於 AWS Lambda(或函數即服務)與 TEE 的結合。使用 Oyster Serverless,用戶可以在不租用實例的情況下執行函數,按需付費。
Oyster Serverless 的執行流程如下:
通過 Oyster Serverless,用戶可以通過智能合約發送 Web2 API 請求或調用智能合約,同時通過 TEE 保證執行的完整性。用戶還可以訂閱 Serverless 服務進行定期執行,這對預言機抓取器特別有用。
Phala Network
之前在我們的 AI 與加密文章中討論過,Phala 已經顯著轉向了 AI 協處理器。
Phala Network 的基本設計包括 Workers 和 Gatekeepers。Workers 作為常規節點,執行客戶的計算任務。而 Gatekeepers 管理密鑰,使 Workers 能夠解密並計算加密的狀態值。Workers 處理通過 Intel SGX 加密的合約狀態值,讀取或寫入這些值需要 Gatekeepers 提供的密鑰。
來源:https://docs.phala.network/tech-specs/blockchain
Phala 通過支持在 Intel TDX 環境中的機密虛擬機(Confidential VM)SDK 擴展了其產品線。最近,他們與 Flashbot 合作推出了 Dstack。該產品提供了一個遠程證明 API,用於驗證在機密虛擬機中部署的多個 Docker 容器鏡像的操作狀態。通過 Dstack 的遠程證明,用戶可以通過專門的瀏覽器確保透明性。
另一個重要的進展是他們推出的機密 AI 推理產品,旨在應對近期 AI 項目的激增。Phala Network 現在支持相對較新的 Nvidia 機密計算,旨在通過 ZK/FHE 技術提升 AI 推理服務。此前,這項技術由於高開銷而面臨挑戰,限制了其實際應用。
來源: https://docs.phala.network/overview/phala-network/confidential-ai-inference
下圖展示了 Phala Network 機密 AI 推理系統的結構。該系統利用像 Intel TDX 和 AMD SEV 這樣的虛擬機級別受信執行環境(TEE)來部署 AI 模型。它通過 Nvidia 機密計算進行 AI 推理,並安全地將結果傳回 CPU 安全區域。與常規模型相比,這種方法可能會產生較大的開銷,因為它涉及兩輪安全區域計算。然而,預計它將比完全依賴 CPU 性能的現有 TEE 基礎 AI 推理方法提供顯著的性能提升。根據 Phala Network 發佈的論文,基於 Llama3 的 LLM 推理開銷大約為 6–8%。
其他
在 AI 與加密領域,其他使用 TEE 作為協處理器的例子包括 iExec RLC、PIN AI 和 Super Protocol。iExec RLC 和 PIN AI 分別專注於通過 TEE 保護 AI 模型和訓練數據。Super Protocol 正在準備推出一個類似於 Marlin 的 TEE 計算環境交易市場。然而,關於這些項目的詳細技術信息尚未公開,我們將在它們產品發佈後提供更新。
Oasis(前稱 Rose)
Oasis,前身為 Rose,是一個第 1 層(Layer1)區塊鏈,旨在通過在 SGX enclave 中運行執行客戶端來保護用戶隱私。儘管它是一個相對成熟的鏈,Oasis 在其執行層創新性地實現了多虛擬機(multi-VM)支持。
執行層稱為 Paratime,包括三個組件:Cipher,一個基於 WASM 的機密虛擬機(VM);Sapphire,一個基於 EVM 的機密虛擬機;以及 Emerald,一個標準的 EVM 兼容虛擬機。Oasis 從根本上保護智能合約及其計算過程,防止節點對其進行任意修改,確保執行客戶端始終在 TEE enclave 中運行。下圖展示了這一結構。
來源:https://docs.oasis.io/general/oasis-network/
當用戶發送交易時,他們通過 Oasis 節點的密鑰管理器在安全區域中生成一個臨時密鑰,並使用該密鑰對交易數據進行加密,然後將其傳送到計算模塊。計算模塊從密鑰管理器中獲取臨時密鑰的私鑰,用於解密安全區域內的數據,執行智能合約並修改節點的狀態值。由於交易執行結果也以加密形式交付給用戶,因此既操作 Oasis 節點客戶端的服務器,也無法觀察交易內容。
Oasis 強調其在使用機密 Paratime 創建處理敏感個人信息的 DApp 方面的優勢。該功能允許開發需要身份驗證的服務,如 SocialFi、信用借貸、CEX 集成服務和基於信譽的服務。這些應用可以在安全的安全區域中安全地接收並驗證用戶的生物識別或 KYC 信息。
Secret Network
Secret Network 是 Cosmos 生態系統中的第 1 層鏈,也是最早基於 TEE 的區塊鏈之一。它利用 Intel SGX enclave 對鏈的狀態值進行加密,支持用戶的私密交易。
在 Secret Network 中,每個合約都有一個獨特的密鑰,該密鑰存儲在每個節點的安全區域中。當用戶通過使用公鑰加密的交易調用合約時,節點會在 TEE 內解密交易數據並與合約的狀態值進行交互。這些修改過的狀態值將被記錄到區塊中,並保持加密狀態。
合約本身可以以字節碼或源代碼形式與外部實體共享。然而,網絡通過防止直接觀察用戶發送的交易數據,並阻止外部觀察或篡改當前合約狀態值來確保用戶交易隱私。
由於所有智能合約的狀態值都被加密,因此查看這些值需要解密。Secret Network 通過引入查看密鑰(viewing keys)來解決這個問題。這些密鑰將特定用戶的密碼綁定到合約上,僅授權用戶可以查看合約的狀態值。
Clique,Quex Protocol
與之前介紹的基於 TEE 的第 1 層鏈不同,Clique 和 Quex Protocol 提供的基礎設施使得一般的 DApp 可以將私密計算委託給鏈下 TEE 環境。這些計算結果可以在智能合約層面使用。它們主要用於可驗證的激勵分配機制、鏈下訂單簿、預言機和 KYC 數據保護等應用場景。
一些 ZK L2 鏈採用多重證明系統來解決零知識證明固有的不穩定性,通常會結合 TEE 證明。現代零知識證明機制尚未成熟到完全信任其安全性,當 ZK 電路出現與健全性相關的漏洞時,需要付出大量努力進行修復。因此,使用 ZK 證明或 ZK-EVM 的鏈採用 TEE 證明,通過在 安全區域內的本地虛擬機重新執行區塊來檢測潛在的漏洞。目前,採用包括 TEE 在內的多重證明系統的 L2 鏈有 Taiko、Scroll 和 Ternoa。我們將簡要探討它們使用多重證明系統的動機及其結構。
Taiko
Taiko 是目前最為突出的(計劃成為)基於 Rollup 的鏈。Rollup 鏈將排序工作委託給 Ethereum 的區塊提議者,而無需維護一個獨立的中心化排序器。根據 Taiko 的基於 Rollup 的示意圖,L2 搜索者將交易捆綁並批量傳遞給 L1,L1 的區塊提議者隨後將這些交易與 L1 交易一同重建,生成 L1 區塊並捕獲 MEV。
來源:https://docs.taiko.xyz/core-concepts/multi-proofs/
在 Taiko 中,TEE 並不在區塊構建階段使用,而是在證明生成階段使用,我們將在後文解釋。Taiko 由於其去中心化的結構,不需要驗證排序器故障。然而,如果 L2 節點客戶端代碼存在漏洞,一個完全去中心化的設置無法迅速處理這些問題。因此,需要高級別的有效性證明來確保安全性,這使得 Taiko 的挑戰設計比其他 Rollup 更加複雜。
Taiko 的區塊經歷三個階段的確認:提出(proposed)、證明(proved)和驗證(verified)。當區塊的有效性由 Taiko 的 L1 合約(rollup 合約)檢查時,它被視為提出階段。經過並行證明者驗證後,它進入證明階段;而當其父區塊被證明後,它進入驗證階段。為了驗證區塊,Taiko 使用三種類型的證明:基於 SGX V2 的 TEE 證明、基於簡潔的 RiscZero 的 ZK 證明和依賴中心化多籤的 Guardian 證明。
Taiko 採用一種對抗模型進行區塊驗證,在證明者之間建立了一個安全層級:TEE、ZK、ZK+TEE 和 Guardian。該設置允許挑戰者在識別由更高層級模型生成的錯誤證明時獲得更高的獎勵。每個區塊所需的證明會被隨機分配,權重如下:5% 為 SGX+ZKP,20% 為 ZKP,其餘使用 SGX。這確保了 ZK 證明者在成功挑戰時總能獲得更高的獎勵。
讀者可能會好奇,SGX 證明者如何生成和驗證證明。SGX 證明者的主要作用是證明 Taiko 的區塊是通過標準計算生成的。這些證明者生成狀態值變化的證明,並通過在 TEE 環境中通過本地虛擬機重新執行區塊,結合安全區域證明結果來驗證環境。
與 ZK 證明生成相比,TEE 基礎的證明生成在相似的安全假設下以更低的成本驗證計算完整性。驗證這些證明涉及簡單的檢查,例如確保證明中使用的 ECDSA 簽名與證明者的簽名匹配。
總之,基於 TEE 的有效性證明可以看作是一種驗證鏈完整性的方法,它通過生成安全性稍低的證明,但相較於 ZK 證明,成本大大降低。
Scroll
Scroll 是採用多重證明系統的著名 Rollup,它與 Automata(一個稍後將介紹的證明層)合作,為所有區塊生成 ZK 證明和 TEE 證明。這一合作激活了一個爭議系統,以解決兩種證明之間的衝突。
來源:https://scroll.io/blog/scaling-security
Scroll 計劃支持各種硬件環境(目前僅支持 SGX),包括 Intel SGX、AMD SEV 和 AWS Nitro,以最小化硬件依賴性。它們通過使用門限簽名從不同環境收集證明,來解決 TEE 中可能出現的安全問題。
Ternoa
Ternoa 優先檢測由中心化 L2 實體引發的惡意行為,而不是解決執行本身的漏洞。與 Taiko 或 Scroll 使用 TEE 證明者來補充現有的 ZK 證明不同,Ternoa 在 TEE 環境中使用觀察者來檢測 L2 排序者和驗證者的惡意行為,重點關注無法僅通過交易數據評估的領域。例如,RPC 節點基於 IP 地址審查交易、排序者更改排序算法,或故意未提交批量數據等。
Ternoa 操作一個名為完整性驗證鏈(Integrity Verification Chain,IVC)的獨立 L2 網絡,用於與 Rollup 實體相關的驗證任務。Rollup 框架提供者將最新的排序者鏡像提交給 IVC。當一個新的 Rollup 請求部署時,IVC 會返回存儲在 TEE 中的服務鏡像。部署後,觀察者會定期驗證已部署的 Rollup 是否按照預期使用排序者鏡像。然後,他們提交完整性證明,將驗證結果和來自 TEE 環境的證明報告合併,確認鏈的完整性。
Flashbots BuilderNet
Flashbots 被廣泛視為一個 MEV 解決方案提供商,一直在探索受信執行環境(TEE)在區塊鏈技術中的應用。其主要的研究工作包括:
在本文中,我們將簡要概述 Flashbots 當前的角色,並討論其最近推出的 BuilderNet,這是一個旨在去中心化區塊構建的計劃。Flashbots 已宣佈通過 BuilderNet 完成其現有解決方案的完全遷移。
以太坊採用了一個提議者-構建者分離(Proposer-Builder Separation,PBS)模型。該系統將區塊創建分為兩個角色:
這一結構導致了一些去中心化應用與構建者之間的鏈下合謀,以獲取鉅額的 MEV 利潤。因此,少數構建者,如 Beaverbuild 和 Titan Builder,壟斷了超過 90% 的以太坊區塊。在嚴重的情況下,這些構建者甚至可能對任意交易進行審查。例如,像 Tornado Cash 這樣的合規交易被主要構建者積極審查。
BuilderNet 通過增強交易隱私性和降低區塊構建者參與的門檻來解決這些問題。其結構大致可以總結如下:
來源:https://buildernet.org/docs/architecture
構建者節點接收用戶交易(訂單流),由各個節點運營商管理。每個運營商在 Intel TDX 環境中操作開源構建器實例。用戶可以自由驗證每個運營商的 TEE 環境併發送加密交易。運營商隨後共享接收到的訂單流,提交區塊到 MEV-boost 中繼,並在區塊提交成功後將區塊獎勵分發給搜索者和其他參與區塊創建的人員。
該結構提供了幾個去中心化的好處:
Puffer Finance
Puffer Finance 推出了一個名為 Secure Signer 的工具,旨在減少由於客戶端錯誤或漏洞導致以太坊驗證者被罰款的風險。該工具使用基於 SGX 安全區域的簽名器,以提供更高的安全性。
來源:https://docs.puffer.fi/technology/secure-signer/
Secure Signer 通過在 SGX enclave 中生成和存儲 BLS 驗證者密鑰,僅在必要時訪問這些密鑰來運行。其邏輯非常簡單:在受信執行環境(TEE)提供的安全保障下,它可以檢測驗證者的錯誤或惡意行為。這是通過確保在簽署區塊或證明之前,插槽嚴格增加來實現的。Puffer Finance 強調,這種設置使驗證者能夠達到與硬件錢包相當的安全級別,超越了軟件解決方案提供的典型保護。
Unichain
Unichain 是 Uniswap 計劃於明年第一季度推出的以太坊 L2 鏈,在其白皮書中分享了使用受信執行環境(TEE)去中心化 L2 區塊構建機制的計劃。雖然詳細的技術規格尚未發佈,但以下是他們關鍵提案的摘要:
此外,Unichain 還打算開發各種基於 TEE 的功能,包括加密內存池、定時交易和受 TEE 保護的智能合約。
Automata
儘管區塊鏈在架構方面已經取得了顯著的去中心化成就,但由於依賴於服務器運營商,許多元素仍然缺乏足夠的抗審查性。Automata 旨在提供基於 TEE 的解決方案,最小化服務器運營商依賴和區塊鏈架構中的數據暴露。Automata 的重要實現包括開源的 SGX Prover 和 Verifier,TEE Compile(用於驗證 TEE 中部署的可執行文件與源代碼的匹配),以及通過 TEE 內存池和區塊構建器為區塊構建機制增加隱私的 TEE Builde。此外,Automata 還允許將 TEE 的遠程證明結果發佈到鏈上,這使得它可以公開驗證並集成到智能合約中。
Automata 當前運行著 1RPC,這是一個基於 TEE 的 RPC 服務,旨在通過安全區域保護交易提交者的身份信息,如 IP 和設備詳情。Automata 強調,由於賬戶抽象的開發,UserOp 的商業化可能導致 RPC 服務通過 AI 集成推斷出特定用戶的 UserOp 模式,可能會洩露隱私。1RPC 的結構簡單明瞭,它與用戶建立安全連接,將交易(UserOp)傳入 TEE,並通過在安全區域中部署的代碼進行處理。然而,1RPC 僅保護 UserOp 的元數據,實際的交易方和交易內容在與鏈上的入口點交互時仍然會暴露。確保交易隱私的更根本方法是通過 TEE 保護內存池和區塊構建層。這可以通過與 Automata 的 TEE Builder 集成來實現。
最終將 TEE 元宇宙推向 Web3 的是基於 TEE 的 Twitter AI 代理。許多人可能第一次接觸 TEE 是在 10 月底,當時一個名為 @tee_hee_he 的 AI 代理在 X 上亮相,並在以太坊上發行了它的 memecoin。@tee_hee_he 是由 Nous Research 和 Flashbots 的 Teleport 項目聯合開發的 AI 代理。它的出現是為了解決當時流行的 AI 代理賬戶無法證明它們實際上是在轉發 AI 模型生成的結果的問題。開發者設計了一個模型,儘量減少了在推特(現為X平臺)賬戶設置、加密錢包創建和 AI 模型結果轉發等過程中中心化實體的干預。
來源:@tee_hee_he/setting-your-pet-rock-free-3e7895201f46””>@tee\_hee\_he/setting-your-pet-rock-free-3e7895201f46"">https://medium.com/@tee\_hee\_he/setting-your-pet-rock-free-3e7895201f46
他們將 AI 代理部署在 Intel TDX 環境中,通過瀏覽器模擬生成電子郵件、X 賬戶密碼和 OAuth 代幣用於推特(現為X平臺)訪問,然後移除所有恢復選項。
最近,TEE 在 AI-Pool 中被用於類似的場景,其中 @123skely 成功進行了籌款。目前,AI Meme 代幣部署合約並公開地址後,技術上更先進的狙擊機器人通常會獲得大部分流動性並操控價格。AI-Pool 試圖通過讓 AI 執行某種類型的預售來解決這一問題。
來源:https://x.com/0xCygaar/status/1871421277832954055
另一個有趣的案例是 DeepWorm,一個具有生物神經網絡的 AI 代理,模擬了蠕蟲的大腦。與其他 AI 代理類似,DeepWorm 將其蠕蟲大腦的安全區域鏡像上傳至 Marlin Network,以保護其模型並提供可驗證性。
來源:https://x.com/deepwormxyz/status/1867190794354078135
由於 @tee_hee_he 開源了部署所需的所有代碼,部署可信的、無法“跑路”(rug pull)的、基於 TEE 的 AI 代理變得相當容易。最近,Phala Network 在 TEE 中部署了 a16z 的 Eliza。正如 a16z 在其 2025 年加密市場展望報告中所強調的,基於 TEE 的 AI 代理市場預計將在未來的 AI 代理 Meme 代幣市場中發揮至關重要的基礎設施作用。
Azuki Bobu
Azuki,作為知名的以太坊 NFT 項目,於去年十月與 Flashbots 合作舉辦了一場獨特的社交活動。
來源: https://x.com/Azuki/status/1841906534151864557
該活動通過將 X 賬戶上傳權限委託給 Flashbots 和 Bobu,讓他們同時發佈推文,類似於一個快閃活動。活動取得了成功,以下是活動成果圖。
此活動由 Flashbots 和 Azuki 設計,結構如下:
Azuki 通過在 Docker Hub 上發佈 Enclave 的 Docker 鏡像,確保了活動過程的可靠性。它們還將證書透明日誌驗證腳本和 TEE 環境的遠程證明結果上傳到 GitHub。儘管 Flashbots 識別出 RPC 和區塊鏈節點的依賴性仍是潛在風險,但這些風險可以通過使用 TEE RPC 或基於 TEE 的 Rollups(如 Unichain)來緩解。
雖然該項目沒有實現技術上的突破,但值得注意的是,它僅通過使用 TEE 技術棧就成功地進行了一個值得信賴的社交活動。
與典型的軟件解決方案相比,TEE 提供了更高的安全性,因為它提供了硬件級的安全保障,軟件無法直接破壞。然而,由於一些侷限性,TEE 在實際產品中的採用速度較慢,我們將在下面介紹這些侷限性。
1) 中心化證明機制
如前所述,用戶可以利用遠程證明機制來驗證TEE保護區域的完整性,並確保保護區內的數據未被篡改。然而,這一驗證過程不可避免地依賴於芯片製造商的服務器。不同廠商的信任度有所不同——例如,SGX/TDX 完全依賴於 Intel 的證明服務器,而 SEV 則允許虛擬機所有者直接進行證明。這是 TEE 結構中的固有問題,TEE 研究人員正在通過開發開源 TEE 來解決這一問題,我們稍後會提到。
2) 旁道攻擊
TEE絕不應暴露安全區內存儲的數據。然而,由於 TEE 只能加密安全區內的數據,因此可能會出現利用附加信息而非原始數據進行攻擊的漏洞。自 2015 年 Intel SGX 公開發布以來,許多重要的邊信道攻擊在頂級系統安全會議上被揭示出來。以下是 TEE 使用場景中潛在的攻擊情境,按其影響分類:
儘管 TEE 不是一個能夠消除所有攻擊向量的系統,並且由於其固有特性,它可能會洩漏不同級別的信息,但這些攻擊通常需要強有力的前提條件,例如攻擊者和受害者的代碼運行在同一 CPU 核心上。這也使得一些人將其稱為“帶著格洛克的男人”安全模型。
來源:https://x.com/hdevalence/status/1613247598139428864
然而,由於TEE的基本原則是“不要相信任何人”,我認為 TEE 應該能夠在這種模型下保護數據,從而充分發揮其作為安全模塊的作用。
3) TEE 的實際/近期漏洞
在 TEE 實現中,尤其是 SGX 中,已發現了許多漏洞,大多數漏洞已成功修復。然而,TEE 系統複雜的硬件架構意味著每次硬件發佈時都可能出現新的漏洞。除了學術研究,已經有影響 Web3 項目的實際攻擊事件,這些事件值得詳細審查。
這些案例表明,“完全安全的 TEE”是無法實現的,用戶應當意識到新硬件發佈時可能存在的漏洞。
在11月,Paradigm 的 Georgios Konstantopoulos 概述了一個關於機密硬件演進的框架,將安全硬件分為五個不同的級別:
目前,像 Phala Network 的機密 AI 推理這樣的項目運行在級別 3,而大多數服務仍處於級別 2,使用雲 TEE 或 Intel TDX。儘管基於 Web3 的 TEE 項目最終應該過渡到級別 4 硬件,但當前的性能限制使得這一目標暫時不可行。然而,隨著像 Paradigm 等主要風險投資公司以及 Flashbots 和 Nethermind 等研究團隊致力於 TEE 的民主化,再加上 TEE 與 Web3 原則的契合,它有望成為 Web3 項目的關鍵基礎設施。
Ecosystem Explorer 是 ChainLight 的報告,提供了從安全角度對 Web3 生態系統中流行項目的內部分析,由我們的研究分析師編寫。我們的使命是幫助安全研究人員和開發者共同學習、成長,並致力於使 Web3 變得更安全。我們會定期發佈免費的報告。
要獲取由獲獎專家撰寫的最新研究和報告: 👉 關注 @ChainLight_io @c4lvin
ChainLight 成立於 2016 年,擁有獲獎的專家團隊,提供量身定製的安全解決方案,強化您的智能合約,助力您在區塊鏈上蓬勃發展。