作者:LINDABELL 來源:ChainFeeds
隨著隱私保護需求的日益增長,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 交易的安全性。不過,目前大部分的專案都依賴單一中心化供應商,這可能會帶來一定的風險。未來,或許可以相容於更多的硬體供應商,並透過設定節點比例,以確保節點在不同硬體上運行,以進一步減少因過度依賴某一供應商而帶來的中心化風險。