EVM 上 PQ 簽名的 Gas/Security-Bit:數據集 + 方法論

本文為機器翻譯
展示原文

每安全比特的 Gas 值:EVM 上 PQ 簽名的標準化基準測試

祝大家節日快樂。

關於本帖中AA/ERC-4337/PQ簽名的討論,請繼續跟進:

我最終找到了一個不斷隱晦出現的缺失環節:

我們沒有標準化的單位來比較 EVM 上不同安全級別的不同簽名方案。

大多數比較都使用“每次驗證的氣體消耗量”,但這實際上混雜了多種因素:

  • 不同的安全目標(例如,~128 位 ECDSA 與 Cat3/Cat5 PQ 方案),

  • 不同的驗證表面(EOA 與 ERC-1271 / AA),

  • 有時基準測試範圍也不同(純粹的驗證與完整的 handleOps 管道)。

這使得回答諸如以下基本工程問題變得困難:
“在明確的假設條件下,ML-DSA-65 在 EVM 上相對於 Falcon 是否可行?”


我建造的

一個小型基準測試實驗室 + 數據集,具有明確的來源和明確的安全性分母:

倉庫: GitHub - pipavlo82/gas-per-secure-bit:PQ 簽名和 VRF 的每安全位 Gas 基準測試。

核心思想:

gas_per_secure_bit = gas_verify / security_bits

我特意列出了兩個分母,因為兩種觀點都很有用:

指標 A — 基線歸一化(128 位基線)

這回答了以下問題: “每個 128 位基準單元的成本是多少?”

gas_per_128b = gas_verify / 128

並不是說每個方案都是 128 位安全的;這只是一個預算/標準化工具。

指標 B — 安全等效位(已聲明的約定)

這回答了以下問題: “在已聲明的規範化約定下,每個‘安全位’的成本是多少?”

gas_per_sec_equiv_bit = gas_verify / security_equiv_bits

目前,我的簽名採用以下明確的約定:

方案NIST類別(如適用)安全等效位
ECDSA(secp256k1) 128
ML-DSA-65(FIPS-204,第 3 類) 3 192
獵鷹-1024(5類) 5 256

我使用簡單的映射 Cat{1,3,5} → {128,192,256} 作為聲明的規範化約定(歡迎更好的社區約定)。

注意: security_equiv_bits是一個聲明的用於可比性的規範化約定。它並非安全證明,也不是 NIST 提供的“比特”值。

類別來源:


溯源性和可重複性

目前所有數據均為單次運行的 gas 快照(未取平均值),並具有完整的來源信息:
repocommitbench_namechain_profilenotes字段。

沒有隱藏的平均值計算,也沒有“N 次最佳”的選擇——只有其他人可以重新運行的可復現快照。


結果(當前快照)

圖表(安全等效位)

原始 SVG 文件(推薦):

https://raw.githubusercontent.com/pipavlo82/gas-per-secure-bit/main/docs/gas-per-sec-equiv-bit-chart.svg

GitHub頁面:

https://github.com/pipavlo82/gas-per-secure-bit/blob/0b126bc2d2ee82f6f25c91b565106b243d4b077c/docs/gas-per-sec-equiv-bit-chart.svg

(這些長椅的表面材質並不完全相同;請將其視為標準化數據集視圖,而非單一排名。)

幾個關鍵行(基線歸一化——除以 128)

方案/臺架氣體每128桶氣體筆記
ECDSA ecrecover 21,126 165經典基線;非 PQ 安全(Shor)
Falcon 獲取用戶操作哈希218,333 1,705小型AA基元
ML-DSA-65 PreA (隔離熱路) 1,499,354 11,714優化計算核心
獵鷹完全驗證10,336,055 80,751 PQ 完全驗證
ML-DSA-65 驗證 POC 68,901,612 538,294端到端概念驗證

安全等效歸一化(除以 security_equiv_bits)

方案/臺架氣體安全等效位每秒氣體當量
Falcon 獲取用戶操作哈希218,333 256 853
ML-DSA-65 PreA 1,499,354 192 7,809
獵鷹完全驗證10,336,055 256 40,375
ML-DSA-65 驗證 POC 68,901,612 192 358,863

讓我印象深刻的是:

  • ML-DSA-65 PreA 的能耗約為7,809 gas/安全當量比特(Cat3 等效)。

  • Falcon-1024 完全驗證著陸點約為40,375 氣體/安全等效比特(Cat5 等效)

對於這些特定的臥推凳來說,這大約是5.2 倍的差距

並非“ML-DSA 整體上優於 Falcon”;而是一個範圍更窄的論斷:
如果避免在鏈上重新計算繁重的公共結構,一些 ML-DSA 驗證面可以變得更加 EVM 友好。


“PreA”的含義(以及它如何改變現狀)

在標準的 ML-DSA 驗證中,很大一部分成本實際上是:
ExpandA + 將公共矩陣轉換為 NTT 域。

“PreA”路徑通過接受預先計算的A_ntt ,並將其與CommitA綁定,來隔離熱算術核心(NTT域中的A·z − c·t₁),以防止矩陣替換。

在我的方案中, A_ntt由公鑰種子( rho )派生而來,然後通過 CommitA 進行綁定以防止替換。

這是一個明確的工程設計要點(尤其是在 AA 環境中):將大型公共結構移到鏈下,但保持其加密綁定。

粗略分解(當前線束):

  • 使用鏈上 ExpandA+NTT(A) 的完整 compute_w 計算量約為 6480 萬 gas

  • 孤立基質多層核心(PreA):約150萬氣體

執行:


這對AA/ERC-7913為何重要?

在AA中,你所關心的單位很少是“孤立地驗證一個簽名”。
您關心的是穩定的 ABI 表面候選方案之間的可比性

ERC-7913提供了一個通用的驗證接口。

我的工作假設是:如果我們希望通過精心設計(而不是猜測)來推廣 PQ,我們需要:

  • 共享基準測試方案

  • 顯式安全分母,

  • 以及類似的表面(純驗證與AA管線)。


歡迎提出問題/反饋

1) EVM 上的哈希/XOF 佈線
對於 EVM 實現:我們想要 (a) 嚴格的 FIPS SHAKE 佈線,(b) 基於 Keccak 的非一致性變體,還是 (c) 在數據集中顯式標記的雙模實現?

2)雙指標方法是否合理?
基線歸一化對預算編制很有用;安全等效比特對每個安全單位的誠實效率很有用。對同時報告這兩項指標有任何異議嗎?

3) PreA 標準化選項
在匿名戒酒互助會(AA)的背景下,哪種方法最不壞?

  • 調用數據(很大,但無狀態),

  • 每個密鑰的存儲空間,

  • 預編譯,

  • 混合綁定與 CommitA 綁定?


可重複性快速入門

git clone https://github.com/pipavlo82/gas-per-secure-bit cd gas-per-secure-bitRESET_DATA=0 MLDSA_REF= "feature/mldsa-ntt-opt-phase12-erc7913-packedA" \./scripts/run_vendor_mldsa.shRESET_DATA=0 ./scripts/run_ecdsa.shQA_REF=main RESET_DATA=0 ./scripts/run_vendor_quantumaccount.sh tail -n 20 data/results.csv

感謝閱讀——我非常樂意接受關於慣例、更好的威脅模型框架以及接下來要添加哪些方案/面的建議。


鏈接


來源
免責聲明:以上內容僅為作者觀點,不代表Followin的任何立場,不構成與Followin相關的任何投資建議。
喜歡
收藏
評論