ERC:後量子金鑰註冊表 — CRYSTALS-Kyber、Dilithium 與 SLH-DSA 金鑰的鏈上管理

ERC:後量子金鑰註冊表 — CRYSTALS-Kyber、Dilithium 與 SLH-DSA 金鑰的鏈上管理

Ethereum Magicians·

AI 生成摘要

我正在提議一項新的 ERC 標準,為 NIST 標準化的後量子加密金鑰(特別是 ML-KEM、ML-DSA 和 SLH-DSA)定義鏈上註冊、輪換、撤銷與遷移的標準介面。這並非要在協議層取代 secp256k1,而是一個任何合約現在都能選擇加入的平行後量子身分層,無需等待共識硬分叉。

摘要

我正在提議一項新的 ERC,它定義了一個標準介面,用於後量子加密金鑰的鏈上註冊、輪換、撤銷和遷移——特別是 NIST 標準化演算法:ML-KEM (FIPS 203)、ML-DSA (FIPS 204) 和 SLH-DSA (FIPS 205)。

這並非提議在協議層級取代 secp256k1。這是一個平行的後量子身份層,任何合約今天都可以選擇加入,而無需等待共識層的硬分叉。

程式碼庫: https://github.com/Valisthea/styx-erc-pq-key-registry 作者: Valisthea (@Valisthea) 相關項目: ERC: 加密代幣標準、ERC: 加密遺忘介面、ERC: FHE 計算驗證(另行提交)

問題所在

以太坊依賴的每一個加密原語,都會被運行 Shor 演算法且足夠強大的量子計算機破解:secp256k1(交易簽名)、ECDH(金鑰交換)、BN254 和 BLS12-381(ZK 證明配對)。

這並非理論上的焦慮。目前存在三個具體的威脅:

現在收割,稍後解密 (Harvest-now-decrypt-later)。 國家級對手現在正在記錄加密流量和簽名交易。當量子計算機出現時,他們將追溯性地破解一切。任何曾在鏈上暴露的公鑰都會洩露其私鑰。每一筆簽名交易都是可偽造的。今天使用經典方案加密的數據,在未來的量子攻擊者面前已經處於危險之中。

缺乏標準的 PQ 金鑰基礎設施。 若干項目已在以太坊上實驗過後量子簽名(EF 研究中的 XMSS、實驗性錢包中的 Dilithium、學術論文中的混合簽名方案)。但目前還沒有標準的方法在鏈上註冊、發現、輪換或驗證 PQ 金鑰。每個項目都發明自己的註冊表。錢包無法互操作。協議無法查詢任意地址的 PQ 金鑰。

FHE 金鑰交換在量子面前是脆弱的。 FHE 方案(TFHE、BFV)使用被認為具備量子抗性的晶格加密。但建立共享 FHE 金鑰通常依賴於經典的 ECDH——這是一個量子脆弱的步驟。你可能擁有世界上最安全的量子加密技術,但仍會在金鑰交換環節失去一切。Kyber (ML-KEM) 解決了這個問題,但目前還沒有人標準化 Kyber 金鑰在鏈上的存放位置。

監管壓力。 NIST 於 2024 年敲定了 PQ 標準。NSA CNSA 2.0 強制要求國家安全系統進行 PQ 轉型。歐盟 ENISA 發布了 PQ 遷移指南。區塊鏈上的金融機構將需要 PQ 金鑰部署的可審計證明。目前沒有可供參考的標準。

此標準的作用

一個註冊表,任何以太坊地址都可以在其中註冊具有完整生命週期的 PQ 金鑰對:

REGISTERED(已註冊) → ACTIVE(活躍) → ROTATED(已輪換) → REVOKED(已撤銷)

REGISTERED — 金鑰已在鏈上,但尚未成為其所有者/演算法對的活躍金鑰。適用於在金鑰儀式前預先部署備用金鑰。

ACTIVE — 該所有者、演算法和用途(簽名或封裝)的當前金鑰。每個 (所有者, 演算法, 用途) 元組僅能有一個活躍金鑰。

ROTATED — 已被較新的金鑰取代。對於驗證歷史簽名仍然有效。週一製作的 Dilithium 簽名在週五仍應能通過驗證,即使金鑰在週三進行了輪換。

REVOKED — 永久失效。可能表示金鑰已洩露。使用已撤銷金鑰簽署的歷史簽名應被視為可疑。

核心介面

interface IERCWWWW {
    // 帶有所有權證明的註冊
    function registerPQKeyWithProof(
        address owner, bytes4 algorithm, KeyPurpose purpose,
        bytes calldata publicKey, bytes calldata proofOfPossession,
        uint256 validityPeriod
    ) external returns (bytes32 keyId);
    
    // 生命週期管理
    function activateKey(bytes32 keyId) external;
    function rotateKey(bytes32 oldKeyId, bytes32 newKeyId) external;
    function revokeKey(bytes32 keyId, RevocationReason reason) external;
    
    // 查詢
    function activeKeyFor(address owner, bytes4 algorithm, KeyPurpose purpose) external view returns (bytes32);
    function publicKeyOf(bytes32 keyId) external view returns (bytes memory);
    function isKeyUsable(bytes32 keyId) external view returns (bool);
    function rotationChain(bytes32 keyId) external view returns (bytes32[] memory);
    
    // 演算法支持
    function isAlgorithmSupported(bytes4 algorithm) external view returns (bool);
    function expectedKeySize(bytes4 algorithm) external view returns (uint256);
}

演算法識別碼

// 金鑰封裝 — FIPS 203 (ML-KEM / Kyber)
bytes4 ALG_ML_KEM_512  = 0x4B454D31;  // NIST 第 1 級
bytes4 ALG_ML_KEM_768  = 0x4B454D33;  // NIST 第 3 級
bytes4 ALG_ML_KEM_1024 = 0x4B454D35;  // NIST 第 5 級

// 數位簽名 — FIPS 204 (ML-DSA / Dilithium)
bytes4 ALG_ML_DSA_44   = 0x44534132;  // NIST 第 2 級
bytes4 ALG_ML_DSA_65   = 0x44534133;  // NIST 第 3 級
bytes4 ALG_ML_DSA_87   = 0x44534135;  // NIST 第 5 級

// 基於雜湊的簽名 — FIPS 205 (SLH-DSA / SPHINCS+)
bytes4 ALG_SLH_DSA_128 = 0x534C4831;  // NIST 第 1 級
bytes4 ALG_SLH_DSA_192 = 0x534C4833;  // NIST 第 3 級
bytes4 ALG_SLH_DSA_256 = 0x534C4835;  // NIST 第 5 級

擴展功能

雙重簽名 (Dual-Signing)verifyDualSignature() 同時驗證同一個 EIP-712 摘要的經典 secp256k1 簽名和 PQ 簽名。這是過渡時期的深度防禦:即使其中一個方案被破解,另一個仍然提供保護。isDualSignReady(address) 用於檢查帳戶是否同時啟用了這兩類金鑰。

金鑰認證 (Key Attestation) — 關於金鑰品質的第三方認證。HSM 製造商認證「此金鑰是在 FIPS 140-3 認證模組內生成的」。審計師認證「此金鑰是使用適當的熵生成的」。鏈上認證類型包括:HSM_GENERATED、FIPS_VALIDATED、AUDITED、ENTROPY_PROOF。

關鍵設計決策

註冊時的所有權證明。 註冊者必須使用正在註冊的 PQ 私鑰簽署一條規範消息。這證明了:(a) 他們擁有相應的私鑰,(b) 金鑰是可用的,(c) 公鑰字節格式正確。如果沒有這一點,註冊表可能會被無效或惡意的金鑰污染。

鏈上計算金鑰 ID。 keyId = keccak256(chainId, contractAddress, owner, algorithm, keccak256(publicKey))。不可預測、不可偽造、無搶跑風險。這是從我們提交的其他 ERC 中吸取的教訓。

金鑰過期。 註冊時可選 validityPeriod。2026 年註冊的 ML-DSA-44 (NIST 第 2 級) 金鑰到 2036 年可能就不再足夠安全。過期機制強制執行定期輪換,這是 PKI 中的標準做法(X.509 證書都有有效期)。

撤銷原因使用枚舉而非字串。 KEY_COMPROMISED(金鑰洩露)、ALGORITHM_DEPRECATED(演算法棄用)、OWNER_REQUEST(所有者請求)、GOVERNANCE_ACTION(治理行動)、SUPERSEDED(被取代)。節省 Gas、可索引且機器可讀。

鏈上 PQ 簽名驗證是可選的。 Dilithium-3 驗證成本約為 150 萬 Gas。SLH-DSA-256f 成本超過 1000 萬。對於大多數用例,你會在鏈上查詢公鑰並在鏈下驗證。鏈上驗證是一個單獨的擴展,用於極少數需要去中心化鏈上驗證的情況(例如,根據 PQ 簽名釋放資金)。

支持多種演算法,而非僅有一種。 Kyber 用於金鑰交換(FHE 金鑰分發、加密消息)。Dilithium 用於快速的通用簽名。SLH-DSA 用於最大程度的保守安全性——基於雜湊,不依賴晶格假設,即使晶格問題被破解也能生存。不同的用例需要不同的工具。

與其他標準的交互

這是 STYX 協議棧的金鑰基礎設施層 (Fortress / L0):

與加密代幣標準 (Encrypted Token Standard): FHE 金鑰交換使用 Kyber。用戶在此註冊表中註冊 ML-KEM-1024 金鑰。FHE 協處理器通過 activeKeyFor() 查找金鑰,執行 Kyber 封裝以建立共享密鑰,並將其用於 FHE 輸出的重新加密。

與加密遺忘介面 (Cryptographic Amnesia Interface): 遺忘儀式中的託管人在這裡註冊 Dilithium 金鑰。銷毀證明使用 PQ 簽名而非 secp256k1 簽署。這確保了儀式在面對量子對手時依然有效。

與 FHE 計算驗證標準 (FHE Computation Verification Standard): 驗證標準中使用的 ZK 證明系統(Nova、Halo2)依賴於橢圓曲線配對(BN254、BLS12-381),這些在量子面前是脆弱的。當 PQ 安全的證明系統成熟時,驗證標準可以引用此註冊表中的 PQ 金鑰進行證明者身份驗證。

先前技術

EIP-7212 — secp256r1 (P-256) 簽名驗證的預編譯。這是經典曲線,非 PQ。但其模式(非原生簽名的鏈上驗證)具有參考價值。

EIP-7560 研究 — 以太坊協議層級的 PQ 簽名研究。距離部署還有數年時間。本標準今天就提供了應用層級的 PQ 金鑰。

ERC-6492 — 預部署合約的簽名驗證。解決了「哪個金鑰簽署了這個?」的問題,但僅限於經典 ECDSA。

帳戶抽象 (ERC-4337) — 支持具有自定義簽名驗證的智能錢包。PQ 簽名可以在 4337 錢包的 validateUserOp 中進行驗證。此註冊表提供了此類錢包所需的金鑰查找功能。

NIST PQC 標準化 — FIPS 203/204/205 於 2024 年 8 月敲定。目前尚無 ERC 引用這些標準。

目前沒有 ERC 解決後量子金鑰管理問題。這是第一個。

社群問題

最低 NIST 級別 — 標準是否應強制執行最低安全級別?第 3 級是平衡點(安全性 vs. 性能)。第 1 級較快,但長期來看可能不足。第 5 級安全性最高但成本昂貴。建議的最低級別應該是多少?

FALCON 支持 — 預計 NIST 將標準化 FALCON 作為額外的簽名演算法(簽名比 Dilithium 小:666 字節 vs 3,309 字節)。我們現在應該為其保留演算法 ID,還是等待正式標準化?

金鑰存儲 vs. 金鑰雜湊 — PQ 公鑰體積較大(ML-DSA-87 高達 2,592 字節)。完整的鏈上存儲每次註冊成本約為 10 萬 Gas。另一種方案:僅存儲雜湊,在驗證時要求提供完整金鑰。全存儲方案允許在調用者不提供金鑰的情況下進行鏈上驗證。社群更傾向於哪種模式?

跨鏈金鑰可移植性 — 在以太坊主網註冊的 PQ 金鑰是否應在 L2 上自動識別?還是每個鏈應維護獨立的註冊表?跨鏈中繼機制增加了複雜性,但提升了用戶體驗。

協議層級的 PQ 就緒性 — 當以太坊最終在協議層級遷移到 PQ 簽名時,此註冊表可以作為現有的金鑰基礎設施。標準設計是否應考慮到未來的遷移?具體來說,是否應有一個 migrateToProtocol() 函數來鎖定註冊表金鑰並發出協議層級採納的就緒信號?

ERC-4337 集成 — 使用帳戶抽象的智能錢包可以在 validateUserOp 中使用此註冊表進行 PQ 簽名驗證。標準是否應包含顯示此集成的參考實現,還是將其視為超出範疇?

量子時間線 — 這與其說是技術問題,不如說是實踐問題。該標準旨在逐步採用。但項目註冊 PQ 金鑰的緊迫性如何?對於那些追蹤量子計算領域的人:你們目前對具備加密威脅能力的量子計算機出現時間的估計是多少?

PQ 轉型即將到來。問題在於,當它到來時,以太坊是否已經準備好標準的基礎設施,還是每個項目都在壓力下匆忙構建臨時解決方案。本標準即是該基礎設施。

— Valisthea

        1 則貼文 - 1 位參與者

        [閱讀完整主題](https://ethereum-magicians.org/t/erc-post-quantum-key-registry-on-chain-management-of-crystals-kyber-dilithium-and-slh-dsa-keys/28235)

Ethereum Magicians

相關文章

其他收藏 · 0

收藏夾