面對 MPC 與 ZK 技術在效能及技術上的挑戰,TEE 能帶來哪些改變?
作者:LINDABELL,ChainFeeds Research
隨著隱私保護需求的日益增長,TEE 再次成為討論的焦點。雖然 TEE 在數年前就已經被討論過,但由於硬體安全性問題未能廣泛採用。然而,隨著 MPC 和 ZK 技術在性能和技術要求方面遇到挑戰,許多研究者和開發者重新關注了 TEE。
這種趨勢也引發了 Twitter 上關於 TEE 是否會取代 ZK 技術的討論。有些使用者認為,TEE 和 ZK 是互補關係,而非競爭關係,因為它們解決的是不同的問題,二者都不完美。還有用戶指出,AWS 和 Intel 提供的安全性比 Rollup 的多重簽章保護更高。考慮到 TEE 在設計空間上的擴展性,這是 ZK 無法實現的,因此這種權衡是值得的。
什麼是 TEE?
TEE 其實不是一個陌生的概念。我們常用的蘋果手機就應用了 TEE 技術,即「Secure Enclave」,其主要功能是保護使用者的敏感資訊和執行加密操作。 Secure Enclave 整合在系統級晶片中,與主處理器隔離以確保高安全性。舉個例子,每當你使用 Touch ID 或 Face ID 時,Secure Enclave 都會驗證你的生物識別信息,並保護這些信息不被洩露。
TEE 全稱為 Trusted Execution Environment(可信任執行環境),是電腦或行動裝置內的安全區域,獨立於主作業系統運作。其主要特點包括:與主作業系統隔離,即使主作業系統受到攻擊,內部資料和執行仍然安全;透過硬體支援和加密技術,防止內部的程式碼和資料在運行過程中被篡改;使用加密技術保護敏感數據,防止外洩。
目前,常見的 TEE 實作方式有以下幾種:
- Intel SGX:提供硬體支援的隔離執行環境,建立一個安全的記憶體區域(enclave)來保護敏感資料和程式碼。
- ARM TrustZone:在處理器內創造了一個安全世界和一個正常世界,安全世界運行敏感操作,正常世界處理普通任務。
- AWS Nitro Enclaves:基於 AWS Nitro TPM 安全晶片,提供在雲端的可信任執行環境,專為處理機密資料的雲端運算場景設計。
在加密市場,TEE 技術最常用於在可信任和安全的環境中進行鏈下計算。同時,TEE 的遠端證明(Remote Attestation)功能可讓遠端使用者驗證在 TEE 中執行的程式碼的完整性,確保資料處理的安全性。然而,TEE 也存在去中心化不足的問題,因為它們依賴如 Intel 和 AWS 等中心化供應商。如果這些硬體存在後門或漏洞,系統安全性可能會受到威脅。但作為輔助手段,TEE 技術易於建置且成本較低,適合需要高安全性和隱私保護的應用情境。這些優點也使得 TEE 技術能夠應用於各種加密應用,如隱私保護及增強 Layer2 安全性等。
TEE 專案盤點
Flashbots:透過 SGX 實現隱私交易和去中心化區塊構建
Flashbots 於 2022 年開始探索 SGX 等可信任執行環境相關的隱私技術,並將其作為交易供應鏈上無需信任協作的重要建構模組。2023 年 3 月,Flashbots 成功在 Intel 開發的可信任執行環境 SGX enclave 中運行了一個區塊構建器,向實現隱私交易和區塊構建者去中心化的方向邁進了一步。借助 SGX enclave,區塊構建者和其他基礎設施供應商無法看到用戶交易的內容,且構建者在 enclave 內構建可驗證的有效區塊,並如實報告其出價,可能可以消除對 mev-boost 中繼的需求。此外,這項技術有助於減少獨家訂單流的風險,使交易在保持私密的同時,仍然可供所有在 enclave 內運行的區塊構建者訪問。
雖然 TEE 確實能夠提供外部資源存取及隱私保護,但其效能相較於非 TEE 技術而言並不高。而且存在一些中心化風險。 Flashbots 發現,僅依賴 TEE 並不能解決所有問題,還需要結合其他安全措施,並引入其他實體來驗證 TEE 的運算和程式碼,以確保系統的透明性和可信賴性。因此,Flashbots 構思了一個由 TEE 組成的網絡(Kettles),同時還有一個可信賴的無權限公共鏈(SUAVE Chain)負責管理這個網絡,並託管 TEE 中要運行的程式等。這就是 SUAVE 的基本構想。
SUAVE(Single Unified Auction for Value Expression)是旨在解決 MEV 相關挑戰的基礎設施,專注於將記憶體池和區塊生成的角色從現有的區塊鏈中分離出來,形成一個獨立的網路(排序層),可作為任何區塊鏈即插即用的記憶體池和去中心化區塊建構者。
(更多 SUAVE 介紹可以參考 ChainFeeds 先前文章)
SUAVE 將分兩階段推出。首版為 SUAVE Centauri,包含隱私權訂單流拍賣(OFA)和 SUAVE Devnet(測試網)。這個版本的實現並不涉及密碼學和 TEE 技術。第二個版本是 Andromeda,將在受信任的執行環境(如 SGX)中執行執行節點。為了確保離線運行的 TEE 節點上的計算和程式碼如預期運行,Flashbots 透過 TEE 的遠端證明功能,使智慧合約能夠驗證來自 TEE 的訊息。具體步驟包括:為 Solidity 程式碼添加新的預編譯功能以產生遠端證明;利用 SGX 處理器產生證明;在鏈上完全驗證證明;並使用 Automata-V3-DCAP 庫來驗證這些證明。
總結起來,SUAVE 將透過整合 TEE 來取代當前的第三方,SUAVE 系統中運行的應用程式(如訂單流拍賣或區塊構建器)都將在 TEE 內運行,並且透過鏈上遠端證明確保 TEE 計算和程式碼完整性。
Taiko:透過 SGX 建構多重證明系統 Raiko
TEE 的概念還可以擴展到 Rollup,以建構多重證明系統。多重證明指的是為一個區塊產生多種類型的證明,類似於以太坊的多客戶端機制。這種機制能夠確保即使一個證明有漏洞,其他證明仍然有效。
在多重證明機制下,任何有興趣產生證明的使用者都可以運行一個節點,提取交易和所有狀態存取的 Merkle 證明等資料。使用這些數據產生不同類型的證明,然後將所有證明一起提交到智能合約中,由智能合約驗證證明的正確性。對於 TEE 產生的證明,需要檢查 ECDSA 簽章是否由預期位址簽署。當所有證明通過驗證並確認區塊哈希一致後,該區塊將被標記為已證明,並記錄在鏈上。
Taiko 正在利用 Intel SGX 技術建構多重證明系統 Raiko,用於驗證 Taiko 和以太坊區塊。透過使用 SGX,Taiko 能夠確保執行關鍵任務時的資料隱私和安全性,即使存在潛在漏洞,TEE 也能提供額外的保護,防止攻擊者破壞證明系統。 SGX 證明可以在單一電腦上運行,只需幾秒鐘即可完成,不會影響產生證明的效率。此外,Taiko 推出了一個新架構,支援將客戶程式編譯為能夠在 ZK 和 TEE 中運行的格式,確保區塊狀態轉換的正確性,並通過基準測試和監控評估效能和效率。
儘管 TEE 提供了許多優勢,但在實現過程中仍面臨一些挑戰。例如,SGX 設定需要支援不同雲端供應商的 CPU,並優化驗證過程中的 Gas 成本。此外,還需要建立一個安全通道來驗證計算和程式碼的正確性。為了解決這些挑戰,Taiko 使用 Gramine OS 將運行的應用程式封裝在可信任 enclave 中,並提供易於使用的 Docker 和 Kubernetes 配置,使得任何擁有 SGX 功能的 CPU 的用戶都可以輕鬆部署和管理這些應用程式。
根據 Taiko 的公告,Raiko 目前支援 SP1、Risc0 和 SGX,並不斷努力整合 Jolt 和 Powdr。未來,Taiko 計畫整合更多 Riscv32 ZK-VM,擴展 Wasm ZK-VM ,與 Reth 直接整合以實現區塊的即時證明,及採用模組化架構以支援多鏈區塊證明。
Scroll:與 Automata 合作開發 TEE Prover
Scroll 的多重證明機制旨在實現三個目標:增強 L2 安全性、不增加終局時間及僅為 L2 交易引入邊際成本。因此,除了 ZK 證明,在選擇輔助證明機制時,Scroll 需要權衡終局性和成本效益。詐欺證明儘管安全性高,但終局時間太長。而 zkEVM 驗證器雖然強大,但開發成本高且複雜。最後,Scroll 選擇了以 Justin Drake 提出的 TEE Prover 作為輔助證明機制。
TEE Prover 在受保護的 TEE 環境中運行,能夠快速執行交易並產生證明,因此並不會增加終局性。此外,TEE Prover 的另一個重要優勢在於其效率。證明過程相關的開銷可以忽略不計。
目前,Scroll 正在與模組化證明層 Automata 合作開發 Scroll 的 TEE Prover。 Automata 是一個模組化的驗證層,旨在透過 TEE 協處理器將機器級信任擴展至以太坊。 Scroll 的 TEE Prover 由鏈上和鏈下兩個主要元件組成:
- SGX Prover:鏈下元件,運行在 enclave 中,用於檢查在 enclave 內執行區塊後的狀態根是否與現有狀態根匹配,隨後向 SGX Verifier 提交執行證明(PoE)。
- SGX Verifier:這是一個部署在 L1 鏈上的智慧合約,需要驗證 SGX Prover 提出的狀態轉換及 Intel SGX enclave 提交的證明報告是否正確。
SGX Prover 會監控排序器在 L1 上提交的交易批次,確保其在執行狀態轉換時所使用的資料完整且未被竄改。然後,SGX Prover 會產生一個包含所有必要資訊的區塊證明(PoB),確保所有參與驗證和執行的節點都使用相同的資料集。執行完畢後,SGX Prover 會提交執行證明(PoE)到 L1。隨後,SGX Verifier 將檢查 PoE 是否由有效的 SGX Prover 簽署。
SGX Prover 使用 Rust 程式語言編寫,並使用 SputnikVM 作為其執行智能合約的 EVM 引擎。此實作可以在支援 SGX 硬體模式的機器上編譯和運行,同時也可以在非 SGX 環境中進行偵錯。而 SGX Verifier 則使用了 Automata 開源的 DCAP v3 驗證函式庫,可以對 Scroll 測試網的整個區塊歷史進行驗證。
此外,為了減少對 TEE 實現和硬體製造商的信任問題,Scroll 也正在研究一種協議,聚合來自不同硬體和用戶端的 TEE Prover。該協議將結合閾值簽名方案。閾值簽名方案是一種密碼學技術,允許多個參與者共同產生一個簽名,只有至少達到特定數量的參與者同意時,簽名才有效。具體來說,TEE Prover 需要多個(例如 N 個)TEE 證明者中至少 T 個證明者產生一致的證明。
Automata:利用 TEE 協處理器增強區塊鏈的安全性和隱私性
Automata Network 是一個模組化驗證層,將硬體作為共同的 Root of Trust,啟用了許多用例,包括基於 TEE 驗證器的多驗證器系統,為 RPC 中繼提供公平性和隱私及在加密 enclave 中構建區塊等。
上文也提到,Scroll 的多證明系統就是與 Automata 合作開發的。除此之外,Automata 也將 TEE 協處理器作為多證明 AVS 引進了 EigenLayer 主網。 TEE 協處理器是一種執行特定計算任務的硬件,用於補充或擴展主鏈的能力。Automata Network 的 TEE 協處理器透過在被 TEE 隔離區內執行安全運算,擴展了區塊鏈的功能。
具體而言,Multi-Prover AVS 是一個任務控制中心,負責根據不同協議的要求協調和管理多個獨立的驗證器。各個協議可以公開發布需要驗證的任務,然後可以組織一個由長期獎勵激勵的承諾 TEE 委員會。實際進行驗證的節點(操作者)可以註冊參與這些任務,並且可以互相合作以確保安全。而持有代幣並願意支持協議安全性的用戶為質押者,他們將質押權委託給信任的操作者。這種質押增強了協議在初期階段所需的經濟安全性,因為質押的資金作為一種保障,激勵操作員誠實和高效地工作。 EigenLayer 創建了一個無需許可的市場,允許質押者、營運商和協議自由參與。
Secret Network:基於 SGX 技術達到隱私權保護
隱私公鏈 Secret Network 主要透過 Secret Contract 和 TEE 實現資料隱私保護。為了實現這一目標,Secret Network 採用了 Intel SGX 可信賴執行環境技術,且為了保障網路一致性,Secret Network 只允許使用 Intel SGX 晶片,而不支援其他 TEE 技術。
Secret Network 採用遠端認證流程來驗證 SGX 安全區的完整性和安全性。每個全節點在註冊前都會建立認證報告,證明其 CPU 使用了最新的硬體升級,並在鏈上進行驗證。新節點獲得共識的共享金鑰後,便能並行處理網路中的運算與交易,以保障網路的整體安全性。為了減少可能的攻擊向量,Secret Network 選擇使用 SGX-SPS(伺服器平台服務)而不是 SGX-ME(管理引擎)。
在具體實作上,Secret Network 使用 SGX 進行具有加密輸入、輸出和狀態的計算。這意味著資料在其生命週期內始終保持加密狀態,防止未經授權的存取。而且 Secret Network 的每個驗證節點使用支援 Intel SGX 的 CPU 來處理交易,確保敏感資料僅在每個驗證節點的安全區內解密,而外部無法存取這些資料。
Oasis:採用 SGX 建構隱私智能合約
隱私運算網路 Oasis 採用模組化架構,將共識和智慧合約執行分別分為共識層和 ParaTimes 層。作為智慧合約執行層,ParaTimes 由多個平行 ParaTime 組成,每個 ParaTime 代表一個具有共享狀態的運算環境。這允許 Oasis 在一個環境中處理複雜計算任務,在另一個環境中處理簡單交易。
ParaTimes 可以分為隱私和非隱私兩種類型,不同的 ParaTimes 可以運行不同的虛擬機,還可以設計為許可或無許可系統。作為 Oasis 的核心價值主張之一,Oasis 結合 TEE 技術推出了兩種隱私智能合約:Cipher 及 Sapphire。二者都採用了 Inte SGX 的 TEE 技術。加密資料和智能合約會一起進入 TEE 中,資料會被解密並由智能合約處理,隨後在輸出時還會再次加密。這個過程確保了資料在整個處理過程中保持機密,不會洩漏給節點操作員或應用程式開發者。差別在於,Sapphire 是隱私 EVM 相容的 ParaTime,而 Cipher 是用於執行 Wasm 智能合約的隱私 ParaTime。
Bool Network:結合 MPC、ZKP 和 TEE 技術,增強比特幣驗證的安全性和去中心化
Bool Network 融合了 MPC、ZKP 及 TEE 三種技術,將外部驗證者群集改造為動態隱藏委員會(DHC),以增強網路安全性。
在動態隱藏委員會中,為了解決驗證過程中外部驗證節點需要共識簽章導致的私鑰暴露問題,Bool Network 引進了 TEE 技術。例如,透過 Intel SGX 技術,將私鑰封裝在 TEE 中,使節點設備可以在本地的安全區域內運行,而係統中的其他元件無法存取資料。透過遠端證明,見證者節點可以出示證明以驗證其確實在 TEE 中運行並存放金鑰,其他節點或智慧合約則可以在鏈上驗證這些報告。
此外,BOOL Network 是完全開放准入的,任何擁有 TEE 設備的主體都可以透過質押 BOOL 成為驗證節點。
Marlin:結合 TEE 和 ZK 協處理器實現去中心化雲端運算
Marlin 是一個可驗證運算協議,結合了可信任執行環境和 ZK 協處理器,將複雜工作負載委託給去中心化雲端。
Marlin 包括多種類型的硬體和子網路。其 TEE 技術主要應用於子網路 Marlin Oyster 。 Oyster 是一個開放平台,允許開發者在不可信任的第三方主機上部署客製化運算任務或服務。Oyster 目前主要依賴 AWS Nitro Enclaves,這是一個基於 AWS Nitro TPM 安全晶片的可信任執行環境。為了實現去中心化的願景,Oyster 未來可能會相容於更多的硬體供應商。此外,Oyster 允許 DAO 透過智慧合約呼叫直接設定 enclave,無需特定成員管理 SSH 或其他認證金鑰。這種方法減少了對人工操作的依賴。
Phala Network :基於 TEE 的多重證明系統 SGX-Prover
Phala Network 是一個去中心化的鏈下運算基礎設施,致力於透過 TEE 實現資料隱私和安全運算。目前,Phala Network 僅支援 Intel SGX 作為其 TEE 硬體。基於去中心化 TEE 網絡,Phala Network 建構了基於 TEE 的多重證明系統 Phala SGX-Prover。具體來說,鏈下模組 sgx-prover 運行狀態轉換程式後會產生包含計算結果的 TEE Proof,並將其提交給鏈上的 sgx-verifier 進行驗證。
而為了解決使用者對 SGX 中心化的擔憂,Phala Network 引入了 Gatekeeper 和 Worker 兩種角色。 Gatekeeper 由 PHA 代幣持有者透過 NPoS 選舉產生,負責管理網路金鑰並監督經濟模型。而 Workers 則是運行在 SGX 硬體上。透過引入金鑰輪換機制,Gatekeepers 可以確保 TEE 網路的安全。
目前,Phala Network 擁有超過 3 萬個由全球用戶註冊和運行的 TEE 設備。此外,Phala Network 也正在探索基於 TEE 的快速終局性解決方案。理論上,可以基於 TEE 證明來實現快速終局性,僅在必要時提供 ZK 證明。
總結
面對 Twitter 上的爭論,Uniswap CEO Hayden Adams 也發表了自己的觀點,他表示,「TEE 收到的負面評價都帶有追求完美反而阻礙了好結果的意味。任何事物都存在取捨。在保護區塊鏈領域,可用的工具應該是越多越好。
而透過對上述這些用例的探索,可以看出 TEE 技術在解決隱私及安全性方面的應用潛力。例如,Flashbots 透過 TEE 實現隱私交易和去中心化構建,Taiko 和 Scroll 則利用 TEE 實現多重證明製度,確保 L2 交易的安全性。不過,目前大部分的專案都依賴單一中心化供應商,這可能會帶來一定的風險。未來,或許可以相容於更多的硬體供應商,並透過設定節點比例,以確保節點在不同硬體上運行,以進一步減少因過度依賴某一供應商而帶來的中心化風險。
免責聲明:作為區塊鏈資訊平台,本站所發布文章僅代表作者及來賓個人觀點,與 Web3Caff 立場無關。文章內的資訊僅供參考,均不構成任何投資建議及要約,並請您遵守所在國家或地區的相關法律法規。