newsence
歡迎

你的個人知識庫

從開放網路上發現值得讀的內容,收藏真正重要的。AI 為你摘要、串連、整理你所知道的一切。

ERC:加密失憶介面 — 實現區塊鏈被遺忘權的可驗證金鑰銷毀機制

ERC:加密失憶介面 — 實現區塊鏈被遺忘權的可驗證金鑰銷毀機制

Ethereum Magicians·大約 3 小時前

我正在提議一項新的 ERC 標準,為加密失憶定義一套標準介面,透過在僅限附加的帳本上實現可驗證且不可逆的加密金鑰銷毀,讓不可篡改的區塊鏈也能具備可靠的被遺忘權。

摘要

我正提議一項新的 ERC,旨在定義一個**密碼學遺忘(cryptographic amnesia)**的標準介面——即在僅限附加(append-only)的帳本上,實現可證明的、不可逆的加密金鑰銷毀。

在銷毀儀式完成後,鏈上的加密數據在數學上將與隨機雜訊無異。宇宙中將不再存在任何金鑰可以對其進行解密。密文雖保留在鏈上,但已成為永久的雜訊。

這是第一個能在不可篡改的區塊鏈上,實現具公信力之**被遺忘權(right to be forgotten)**的標準。

儲存庫: https://github.com/Valisthea/styx-erc-cryptographic-amnesia

作者: Valisthea

相關提案: ERC: 加密代幣標準(Encrypted Token Standard,另行提交)

問題所在

區塊鏈永不遺忘。這原本是一項特性——直到它變成一種負擔。

  • GDPR 第 17 條 — 歐盟法律要求數據控制者必須根據請求刪除個人數據。在公共區塊鏈上,刪除在架構上是不可能的。目前沒有任何標準能解決這個問題。在鏈上處理歐盟用戶數據的專案,正處於缺乏技術解決方案的法律灰色地帶。

  • 治理污染 — DAO 投票會產生永久的政治記錄。在治理週期結束後,個人的投票立場可能成為脅迫、報復和派系鬥爭的把柄。結果固然重要,但每個人的投票過程不應永遠留存。

  • 密封報價拍賣 — 在確定獲勝者後,落選的標單應變為永久無法訪問。現今,如果加密金鑰遭到破解,即使是數十年後,加密的標單仍有被還原的風險。

  • 醫療與法律記錄 — 臨時性的鏈上存儲(如臨床試驗、法律訴訟、舉報人報告),在超過定義的期限後,保留數據會產生風險而非價值。

  • 金鑰洩露限制 — 當懷疑加密金鑰洩露時,目前缺乏標準方法來證明金鑰已銷毀,以限制損害範圍。

為什麼「直接刪除金鑰」行不通

從單一伺服器刪除金鑰無法證明任何事情。金鑰可能存在於備份、記憶體轉儲(RAM dumps)、HSM 快照或管理員的記憶中。沒有密碼學證據能證明刪除確實發生過。

本標準透過帶有個人證明的分布式銷毀來解決此問題:主金鑰透過 Shamir 秘密分享(Shamir Secret Sharing)拆分給獨立的保管人。每位保管人獨立透過零知識證明(ZK proof)證明其分片已被銷毀。Shamir SSS 的門檻特性保證了只要有足夠的分片被銷毀,無論剩餘方保留了什麼,重建金鑰在數學上都是不可能的。

運作原理

儀式生命週期

閒置(IDLE)→ 待定(PENDING,VDF 倒數)→ 活躍(ACTIVE,接受銷毀證明)→ 已完成(COMPLETED,遺忘達成)
→ 失敗(FAILED,超時,可重試)

階段 1 — 發起。 授權方調用 initiateOblivion(sessionId)。這會啟動一個可驗證延遲函數(VDF)時間鎖倒數。敏感數據建議至少 24 小時,推薦 72 小時。

階段 2 — VDF 延遲。 倒數計時可防止受迫或恐慌性的銷毀。利益相關者會看到 OblivionInitiated 事件並採取行動:檢索其數據、取消儀式,或透過保管人絕對多數進行否決。

階段 3 — 銷毀證明。 在 VDF 延遲結束後,保管人提交其金鑰分片已銷毀的 ZK 證明。每份證明都證實保管人曾持有有效的 Shamir 分片,並已承諾參與銷毀儀式。

階段 4 — 完成。 當達到銷毀門檻(對於 k-of-n 方案,需要 n-k+1 份證明)時,會發出 AmnesiaAchieved 事件。isForgotten(sessionId) 將返回 true —— 且為永久、不可逆。

如果截止日期已過但證明不足 → 失敗(FAILED)。金鑰不會被銷毀。可以發起新的儀式(設有冷卻時間和嘗試次數限制)。

核心介面

interface IERCYYYY {
    // 生命週期
    function initiateOblivion(bytes32 sessionId) external returns (uint256 vdfUnlockTime, uint256 deadline);
    function submitDestructionProof(bytes32 sessionId, uint256 custodianIndex, bytes calldata proof) external returns (bool ceremonyComplete);
    function cancelOblivion(bytes32 sessionId) external;
    function vetoCeremony(bytes32 sessionId, bytes calldata vetoProof) external;
    
    // 查詢
    function isForgotten(bytes32 sessionId) external view returns (bool);
    function isForgoable(bytes32 sessionId) external view returns (bool);
    function ceremonyInfo(bytes32 sessionId) external view returns (CeremonyInfo memory);
    
    // 事件
    event OblivionInitiated(bytes32 indexed sessionId, address indexed initiator, uint256 vdfUnlockTime, uint256 deadline);
    event ShareDestroyed(bytes32 indexed sessionId, uint256 indexed custodianIndex, bytes32 proofHash, uint256 proofsTotal, uint256 thresholdNeeded);
    event AmnesiaAchieved(bytes32 indexed sessionId, uint256 completedAt);
}

擴展功能

合規性complianceReceipt(sessionId) 返回 ABI 編碼的審計軌跡(時間戳、保管人證明哈希、VDF 參數)。retentionPeriod(sessionId) 在法律保留期限屆滿前阻止遺忘操作。專為受監管環境設計。

鉤子(Hooks)onAmnesiaAchieved(sessionId) 為依賴合約提供的回調函數。在狀態轉換完成後調用。即使回調失敗(Revert)也不會阻止遺忘(不可逆性是神聖的)。

關鍵設計決策

Shamir SSS 優於 MPC — MPC 要求所有保管人同時在線。Shamir 允許異步、獨立的分片銷毀。這對於跨司法管轄區、地理分布的保管人至關重要。

VDF 優於簡單時間鎖 — 區塊高度時間鎖可能被驗證者操縱(±15秒)。VDF 提供了一種獨立於區塊產出的、經過時間流逝的密碼學保證。

失敗(FAILED)保留金鑰 — 如果一個儀式僅部分完成,銷毀了一些分片但不足以達成目標,會導致狀態不明。失敗狀態意味著什麼都沒有改變 —— 可以安全地重試。

不可逆性不容妥協 — 一旦 isForgotten() 返回 true,它絕不能再返回 false。這是整個法律和密碼學保證的核心。可逆的遺忘不是真正的遺忘。

信任模型(誠實披露)

ZK 銷毀證明僅證明保管人參與了儀式曾知曉有效的 Shamir 分片。它無法證明分片已從所有可能的存儲位置物理刪除 —— 這在軟體層面上根本無法證明。

安全性保證依賴於:

  • ≥ (n-k+1) 位保管人誠實地銷毀其分片
  • HSM 執行安全刪除(硬體信任)
  • 保管人的機構多樣性(不同的組織、司法管轄區、硬體供應商)

我們在「安全考量」中明確記錄了這一點。這不是弱點,而是必須理解的信任邊界。

與其他標準的交互

本標準旨在補充「加密代幣標準」(Encrypted Token Standard):

  • 加密代幣在全同態加密(FHE)金鑰 K 下存儲餘額
  • 金鑰 K 被拆分為 Shamir 分片並分發給保管人
  • 治理週期結束,計票完成
  • initiateOblivion(sessionId) → VDF 倒數
  • 保管人提交銷毀證明
  • 達到門檻 → AmnesiaAchieved
  • 所有在 K 下加密的數據現在成為永久雜訊
  • 統計結果保留,個人投票被遺忘。零政治債務。

先前技術

我目前尚未發現任何現有的 ERC 或 EIP 處理區塊鏈上的可證明金鑰銷毀或被遺忘權。最相關的工作包括:

  • EIP-2135(可消耗介面)— 代幣可以被「消耗」,但數據依然存在
  • 區塊鏈上的 GDPR 文獻 — 提出鏈外存儲配合鏈上哈希的學術論文,但沒有金鑰銷毀的標準介面
  • Aztec 的票據花費模型 — 無效譜(nullifiers)將票據標記為已花費,但如果金鑰存在,加密數據仍可解密

如果有人知曉該領域的其他先前工作,歡迎提供參考。

社群提問

  • 最小保管人數量 — 草案建議最少 5 位,生產環境建議 7 位以上。這是否足夠,或者標準應強制要求更高的最小值?
  • VDF 構造 — 標準是否應強制要求特定的 VDF(如 Wesolowski 或 Pietrzak),還是應保持構造無關(agnostic)?
  • 儀式嘗試限制 — 草案包含 maxCeremonyAttempts()(建議值:3)。達到最大嘗試次數後,需要治理覆蓋。這是否是正確的安全閥?
  • 取消(Cancel)與否決(Veto) — 草案同時包含 cancelOblivion()(由發起者/治理方執行)和 vetoCeremony()(由保管人絕對多數執行)。否決機制是否有必要,還是取消機制已足夠?
  • 遺忘後的代幣行為 — 金鑰銷毀後,encryptedBalanceOf() 應返回什麼?密文(現在是雜訊)?代幣合約是否應進入「凍結」狀態?這與加密代幣標準的交互需要社群意見。
  • 法律充分性 — 是否有人諮詢過歐盟數據保護律師,關於「帶有可證明銷毀金鑰的加密數據」是否滿足 GDPR 第 17 條?根據目前的監管解釋,我認為是滿足的,但正式的法律分析將強化此標準。

歡迎提供反饋。這是一個未知的領域 —— 目前沒有現行標準解決此問題。

— Valisthea

        1 則貼文 - 1 位參與者

        [閱讀完整主題](https://ethereum-magicians.org/t/erc-cryptographic-amnesia-interface-provable-key-destruction-for-the-right-to-be-forgotten-on-blockchain/28215)
https://ethereum-magicians.org/t/erc-cryptographic-amnesia-interface-provable-key-destruction-for-the-right-to-be-forgotten-on-blockchain/28215