ERC-8228:加密失憶症——區塊鏈上可證明的密鑰銷毀機制

ERC-8228:加密失憶症——區塊鏈上可證明的密鑰銷毀機制

Ethereum Magicians·

AI 生成摘要

我正在提議一項名為 ERC-8228 的新標準,它定義了加密失憶症的標準介面,透過在不可篡改的帳本上實現可證明且不可逆的加密密鑰銷毀,讓區塊鏈也能具備被遺忘權。

摘要

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

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

這是第一個能在不可篡改的區塊鏈上實現可信**「被遺忘權」**的標準。

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

作者: Valisthea

相關提案: ERC: Encrypted Token Standard(另行提交)

問題所在

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

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

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

  • 密封報價拍賣 — 在確定獲勝者後,落選的報價應變為永久無法訪問。如今,如果加密金鑰被破解(即使是在幾十年後),加密的報價仍可被還原。

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

  • 金鑰洩漏限制 — 當懷疑加密金鑰洩漏時,目前沒有標準方法能證明已將其銷毀,以限制損害窗口。

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

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

本標準透過帶有個人證明的分布式銷毀來解決此問題:主金鑰透過 Shamir 秘密分享(Shamir Secret Sharing)拆分給獨立的保管人。每位保管人透過 ZK 證明(零知識證明)獨立證明其分片已被銷毀。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 狀態保留金鑰 — 一個僅銷毀部分分片但未達門檻的儀式會留下模糊狀態。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),還是應保持構造無關性?
  • 儀式嘗試限制 — 草案包含 maxCeremonyAttempts()(建議值:3)。達到最大嘗試次數後,需要治理覆蓋。這是否是正確的安全閥?
  • 取消 vs 否決 — 草案同時包含 cancelOblivion()(由發起者/治理方執行)和 vetoCeremony()(由保管人絕對多數執行)。否決機制是否有必要,還是取消機制就足夠了?
  • 遺忘後的代幣行為 — 金鑰銷毀後,encryptedBalanceOf() 應該返回什麼?密文(現在是雜訊)?代幣合約是否應進入「凍結」狀態?這與加密代幣標準的交互需要社群意見。
  • 法律充分性 — 是否有人諮詢過歐盟數據保護律師,關於「帶有可證明已銷毀金鑰的加密數據」是否滿足 GDPR 第 17 條?根據目前的監管解釋,我認為它是滿足的,但正式的法律分析將增強該標準的說服力。

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

— Valisthea

        1 則貼文 - 1 位參與者

        [閱讀完整主題](https://ethereum-magicians.org/t/erc-8228-cryptographic-amnesia/28215)

Ethereum Magicians

相關文章

其他收藏 · 0

收藏夾