newsence

可罰沒的條件式密鑰釋放:一種可部署的見證人加密加密經濟近似方案

ethresear.ch·26 天前

這篇文章介紹了 Nihilium,這是一個利用客戶端零知識證明與經濟罰沒機制來近似見證人加密的系統,為無需信任託管人的條件式數據存取提供了一種可部署的解決方案。

內容提要: 見證人加密(Witness Encryption, WE)自 2013 年以來在理論上已成為可能,但在密碼學上仍無法部署。我花了幾年時間構建了一個系統,利用客戶端零知識證明(ZK proofs)、同態雙方密鑰生成和經濟罰沒(slashing)來近似其核心特性——目前已有兩個運行的測試實現。本文將探討該問題、框架,並誠實地說明信任邊界所在。


問題

見證人加密描述了一種看似簡單的原語:加密一條消息,使其只能由能夠為某個 NP 命題提供有效見證(witness)的人解密。條件本身即是密鑰。無需信任第三方,無需託管人,只需證明。

目前尚不存在通用的安全構造。最初的多線性映射(multilinear map)構造已被破解。規避性 LWE(Evasive LWE)方法很有前景,但尚未能部署。與此同時,見證人加密本可以解決的問題——私鑰恢復、綁定身份的數據傳輸、去信任的條件訪問——正被託管人和社交恢復機制所修補,而這些機制恰恰引入了密碼學本應消除的失效模式。


替代方案

是否可以構建一個系統,將秘密在密碼學上與某個條件綁定——滿足該條件是恢復秘密的必要且充分條件——且無需信任第三方,秘密也從不以明文形式存在?封存和拆封需要與處理器通信,但處理器對秘密或條件一無所知。

答案是肯定的——但需要做一個替代。與其追求「任何一方在沒有有效見證的情況下無法解密」的數學保證,不如構建一種經濟保證,即「任何一方都不會解密」——因為這樣做會不可逆轉地摧毀其質押的資本。

這是一個加密經濟構造,而非純粹的密碼學構造。其目標不是提高密碼學安全的上限,而是將底線提高到足以實現真正的用戶體驗(UX),同時不犧牲自主託管。


提議的原語(非正式)

一個提供以下特性的系統:

  • 針對除可公開罰沒的運營者之外的所有人的機密性

  • 釋放條件的密碼學驗證

  • 具有無許可執行機制的公開可歸因錯誤行為

  • 兼容未來對運營者角色的密碼學替代


設計原則

在描述構造之前,有四個原則約束著設計:

原語組合而非發明。 Nihilium 沒有引入新的密碼學原語。它組合了 Shamir 秘密共享、ECElGamal 同態加密、零知識證明、基於 EVM 的質押與罰沒,以及用於時間戳的默克爾樹(Merkle trees)——全部使用成熟的庫。其貢獻在於實現目標特性的新穎配置。

價值分解。 被封存的永遠不是資產本身——而是一個孤立存在時毫無價值的組件。沒有加密文件的密碼毫無獨立價值;沒有密碼的加密文件也毫無獨立價值。兩者結合才具有完整的資產價值。這意味著處理器的質押只需超過攻擊者僅從封存組件中能提取的價值——在正確使用的情況下,該價值為零。最初看起來有問題的「質押與資產價值」對比其實是錯誤的框架。

客戶端證明負擔。 與服務器評估條件的 MPC 和門限系統不同,Nihilium 反轉了責任:客戶端證明,處理器驗證。處理器保持無狀態且輕量化。條件語言可以無限擴展,無需更新處理器軟件。在拆封之前,條件內容對處理器是隱藏的。

僅用於執行的區塊鏈。 EVM 提供不可篡改的合約、抗審查的罰沒以及無許可的質押註冊。在正常運行中,只有數據流(datastream)需要定期的鏈上交易。除非觸發罰沒或強制執行,否則客戶端和處理器在鏈下交互。


系統角色

該協議有四種類型的角色:

客戶端(The Client) 持有秘密並承擔密碼學操作的全責——定義拆封條件、生成所有零知識證明,並在 ZK 電路中執行同態加密操作。

處理器(The Processor) 是一個獨立的運營者,通過經濟質押承諾進行條件解密。處理器持有 EdDSA 簽名密鑰和 ECElGamal 解密密鑰(均在 Baby Jubjub 曲線上)。他們簽署封存承諾,在拆封時驗證鏈式證明執行,並在驗證成功後解密同態密文。他們完全無狀態,無需協調即可水平擴展,且獨立運行——他們不是共識網絡中的節點。每個處理器都是獨立可罰沒的,處理器的質押是面臨所有承諾風險的信譽資本:單次可證明的錯誤行為將導致永久沒收全部質押。

數據流(The Datastream) 是一個由質押支持的時間戳和數據錨定機制。它使用兩層默克爾樹,每個運營者有一個智能合約,隨每個以太坊區塊更新。其關鍵功能是錨定啟動拆封的「揭示值」(reveal value)——為所有拆封嘗試創建強制性的公開可觀察性。它還產生由質押支持的「排除聲明」:簽名斷言某個值在指定時間窗口內不存在於數據流中。如果被證偽,運營者將被罰沒。強制包含機制提供了抗審查性。此外,還將存在一個完全鏈上的版本以保證活性。

區塊鏈 (EVM) 作為無許可的執行層——處理處理器和數據流的質押註冊與罰沒、公鑰註冊以及拆封條件驗證合約註冊表。


運作原理

該項目名為 Nihilium。完整架構尚未開源,但概念結構如下:

雙方密鑰生成。 處理器生成一個密鑰組件,客戶端在 ZK 電路內生成第二個組件。這些組件在同態密文中組合——最終密鑰僅以加密和的形式存在,在構建過程中從不以明文出現。處理器持有該密文的解密密鑰,但在沒有出示有效證明的情況下解密是可罰沒的行為。如果解密後的密鑰在有效的拆封流程之外被觀察到,歸因是明確的:處理器是唯一能夠產生它的一方。任何人都可以發起無許可的鏈上罰沒挑戰;處理器必須出示有效的拆封證明,否則將失去質押。

鏈式證明。 一個可組合的條件管道,支持 ZK 證明驗證器和傳統的鏈上合約。各步驟之間傳遞類型化信號,支持 OR 邏輯的分叉,並在封存時承諾於單個哈希根中——實現綁定而不洩露。執行在處理器端鏈下進行;鏈上合約作為挑戰層,使正常操作幾乎不消耗 Gas。ZK 協處理器可以將整個鏈條壓縮為鏈上的固定大小證明——目前尚未實現,但架構支持。

條件可以在視覺化編輯器中使用可重用模塊庫進行組裝(見下例)。

對稱執行。 罰沒提前披露的同一機制也反向強制執行抗審查性:拒絕有效拆封請求的處理器將面臨同樣的罰沒。對於任何一種違規行為都是二進制式的毀滅——這不是社交保證,而是雙向運行的同一證明。

公開可觀察性。 每次拆封嘗試在解密發生前都是公開可見的。為了啟動拆封,客戶端必須向數據流插入一個揭示值——這是任何監控者都能觀察到的強制性步驟。封存秘密的所有者可以實時監控意外嘗試,而無需信任任何一方來報告。這種結構性的可觀察性也使基於時間的條件變得有意義:只有在拆封嘗試本身無法隱藏的情況下,時間鎖和撤銷窗口才有效。任何嘗試都會留下公開的、帶時間戳的鏈上痕跡——這是見證人加密和 MPC 構造所不具備的審計特性。

門限冗餘。 跨多個獨立處理器的 Shamir 秘密共享提供了社交恢復,其中監護人是合約而非聯繫人。編排負擔(如監護人不在線、失去聯繫)被一組經濟質押的參與者所取代,其中任何子集都可以響應請求。恢復是一個證明,而不是一場對話。


超越原語之處

時間鎖。 用於時間鎖的見證人加密仍需要一個現實世界的時間錨點——在實踐中,這是一個來自不受單方控制、可靠且抗審查鏈的區塊頭 ZK 證明。Nihilium 的數據流錨定到以太坊區塊高度——即執行罰沒的同一條鏈。這並非巧合:所有的時間聲明、條件驗證和經濟執行都共享同一個信任源。純密碼學的 WE 時間鎖需要跨鏈信任假設才能使用相同的錨點;而在這裡,它是原生的。

撤銷。 見證人加密是「僅追加」的——一旦條件可以滿足,它就永遠可以滿足。Nihilium 的數據流運營者(多個、獨立質押、假設至少一個誠實且承諾可公開審計)可以產生由質押支持的排除聲明:密碼學簽名斷言某個值在時間 X 到 Y 之間不存在於數據流中。如果它確實存在且能被證明,運營者將被罰沒。這使得「有效證明且在窗口 T 到 T+N 內無撤銷信號」形式的條件成為可能——例如帶有取消窗口的死人開關、欺詐延遲期、監管干預窗口。這些在見證人加密原語中都無法表達。


對比

特性純 WENihiliumMPC 錢包社交恢復
今日可部署是 (測試網)
安全模型密碼學加密經濟密碼學社交信任
公開可罰沒運營者
條件表達力任何 NPZK + 合約特定應用
撤銷手動
抗審查性固有是 (對稱)部分
編排負擔低–中
秘密不可知
拆封可觀察性是 (數據流)
兼容未來密碼學替代不適用

處理器不是傳統意義上的受信任第三方——它是一個公開可罰沒的運營者,其錯誤行為是可歸因的,且可以無許可地發起挑戰。


範疇

該協議對封存值的性質完全不可知。任何可以表示為字節的秘密都可以被封存——私鑰、密碼、醫療記錄、法律文件、API 令牌。條件才是關鍵,而條件由應用程序定義。EVM 提供承重保證——不可篡改的合約、抗審查的罰沒、無許可的質押註冊——但在用戶層面,最重要的應用可能與區塊鏈毫無關係。

目前有兩個測試實現正在運行:使用 ZKPassport 的身份驗證文件傳輸,以及使用 ZKEmail 的「忘記密碼」恢復流程,其中恢復需要回覆電子郵件——無需重置鏈接,無需 2FA,無需服務器持有你的秘密。包括郵件服務器在內的參考實現將會開源。

「忘記密碼」:recovery.nihilium.io

基於身份的文件傳輸:transfer.nihilium.io


開放性問題

  • 能否在密碼學上加強「可檢測性假設」——即洩露的密鑰會在公開可驗證的環境中出現?

  • 對於「可罰沒的條件式密鑰釋放」作為一個獨立原語(區別於 WE 和 MPC),是否存在正式的安全定義?

  • 鏈式證明管道是否可以通過協處理器高效地編譯為單個 ZK 有效性證明,而不犧牲可組合性?


我的訴求

我分享這些內容是為了公開建立概念領域,並邀請大家對框架、信任邊界分析以及上述開放性問題提供嚴肅的反饋。歡迎與研究 WE 近似方案或相關原語的研究者合作,也歡迎與在相鄰問題領域構建產品的團隊交流。

項目名稱為 Nihilium:nihilium.io , x.com/nihiliumio

— Olaf

        1 則貼文 - 1 位參與者

        [閱讀完整主題](https://ethresear.ch/t/slashable-conditional-key-release-a-deployable-crypto-economic-approximation-of-witness-encryption/24336)
https://ethresear.ch/t/slashable-conditional-key-release-a-deployable-crypto-economic-approximation-of-witness-encryption/24336