보안 비트(Bit) 당 가스 비용: 이더리움 가상 머신(EVM) 에서 PQ 서명에 대한 정규화된 벤치마크
모두 즐거운 휴일 보내세요.
이 스레드 에서 논의된 AA/ 이더리움 요청 사항(ERC)-4337/PQ 서명에 대한 후속 조치입니다.
결국 저는 암묵적으로 계속 언급되는 누락된 부분 하나를 찾아냈습니다.
이더리움 가상 머신(EVM) 에서 서로 다른 보안 수준의 서명 방식을 비교할 수 있는 표준화된 단위가 없습니다.
대부분의 비교에서는 "검증당 가스량"을 사용하지만, 이는 암묵적으로 혼합을 의미합니다.
서로 다른 보안 목표(예: 약 128 비트(Bit) ECDSA 대 Cat3/Cat5 PQ 방식)
서로 다른 검증 표면(EOA 대 이더리움 요청 사항(ERC)-1271/AA),
때로는 벤치마크 범위가 다를 수 있습니다(순수 검증 vs. 전체 handleOps 파이프라인).
그 때문에 다음과 같은 기본적인 공학 질문에 답하기가 어렵습니다.
"명시적인 가정 하에, ML-DSA-65는 Falcon에 비해 이더리움 가상 머신(EVM) 에서 실행 가능한가?"
내가 만든 것
출처와 보안 기준이 명확하게 명시된 소규모 벤치마크 랩 및 데이터셋:
리포지토리: GitHub - pipavlo82/gas-per-secure-bit: PQ 서명 및 VRF에 대한 보안 비트(Bit) 당 가스 벤치마킹.
핵심 아이디어:
gas_per_secure_bit = gas_verify / security_bits저는 의도적으로 두 가지 관점을 제시합니다. 왜냐하면 두 관점 모두 유용하기 때문입니다.
측정 항목 A — 기준선 정규화(128 비트(Bit) 기준선)
이는 "128 비트(Bit) 기준 단위당 비용은 얼마입니까?" 라는 질문에 대한 답변입니다.
gas_per_128b = gas_verify / 128이는 모든 보안 체계가 128 비트(Bit) 보안을 보장한다는 주장 이 아니라 , 단지 예산 책정 및 정규화 도구일 뿐입니다.
메트릭 B — 보안 동등 비츠(Bits) (선언된 규칙)
이는 "명시된 정규화 규칙 하에서 각 '보안 비트(Bit)'의 비용은 얼마나 되는가?" 라는 질문에 대한 답변입니다.
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에서 제공하는 "비츠(Bits)" 값도 아닙니다.
카테고리 출처:
출처 및 재현성
현재 모든 수치는 전체 출처 정보가 포함된 단일 실행 가스 스냅샷(평균값 없음)입니다.
repo , commit , bench_name , chain_profile 및 notes 필드가 있습니다.
숨겨진 평균 계산이나 "N개 중 최고" 선택 방식은 없습니다. 다른 사람들이 재현할 수 있는 스냅샷만 제공합니다.
결과 (현재 스냅샷)
차트(보안 등급 비츠(Bits))
원본 SVG 파일(권장):
GitHub 페이지:
(이 벤치들은 모두 표면이 동일하지 않습니다. 이것은 단일 순위가 아니라 정규화된 데이터 세트 보기로 간주하십시오.)
몇 가지 핵심 행 (기준선 정규화 - 128로 나누기)
| 계획/벤치 | 가스 | 128b당 가스 | 메모 |
|---|---|---|---|
| ECDSA ecrecover | 21,126 | 165 | 고전적인 기준선; PQ 보안이 확보되지 않음(Shor) |
| 팔콘 getUserOpHash | 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 | 엔드투엔드 POC |
보안 동등성 정규화(보안 동등 비트로 나누기)
| 계획/벤치 | 가스 | 보안_동등 비트 | 가스_초당_등가_비트 |
|---|---|---|---|
| 팔콘 getUserOpHash | 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 는 보안 등급 비트(Bit) 당 약 7,809 가스 (Cat3 등급 상당)의 비용으로 출시되었습니다.
Falcon-1024 전체 검증 비용은 보안 비트(Bit) 당 약 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: 약 64.8M 가스
분리된 매트릭스 다중 코어(PreA): 약 1.5M 가스
구현:
ML-DSA-65 검증 도구: GitHub - pipavlo82/ml-dsa-65-ethereum-verification
벤치마크 랩: GitHub - pipavlo82/gas-per-secure-bit: PQ 서명 및 VRF에 대한 보안 비트(Bit) 당 가스 벤치마킹.
이것이 AA/ 이더리움 요청 사항(ERC)-7913에 중요한 이유는 무엇일까요?
AA에서 여러분이 중요하게 생각하는 부분은 "서명 하나만 개별적으로 확인하는 것"이 아닙니다.
당신은 안정적인 ABI 표면 과 후보 물질 간의 비교 가능성을 중요하게 생각합니다.
이더리움 요청 사항(ERC) -7913은 일반적인 검증 인터페이스를 제공합니다.
제 예상은 다음과 같습니다. PQ 도입을 추측이 아닌 계획적으로 이루어지도록 하려면 다음이 필요합니다.
공유 벤치마크 스키마,
명시적인 보안 분모,
그리고 유사한 표면(순수 검증 vs AA 파이프라인).
질문/피드백 환영합니다
1) 이더리움 가상 머신(EVM) 의 해시 /XOF 배선
이더리움 가상 머신(EVM) 구현과 관련하여 (a) 엄격한 FIPS SHAKE 연결 방식, (b) Keccak 기반 비표준 변형 방식, 또는 (c) 데이터 세트에 명시적 레이블이 지정된 이중 모드 구현 방식 중 어떤 방식을 원하십니까?
2) 이중 측정 접근법은 합리적인가?
기준선 정규화는 예산 책정에 유용하고, 보안 동등 비츠(Bits) 보안 단위당 효율성을 높이는 데 유용합니다. 이 두 가지 모두 보고하는 것에 대해 이의가 있으신가요?
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읽어주셔서 감사합니다. 관례에 대한 수정, 더 나은 위협 모델 구성, 그리고 다음에 추가할 체계/표면에 대한 제안을 언제든 환영합니다.
모래밭
벤치마크 저장소: GitHub - pipavlo82/gas-per-secure-bit: PQ 서명 및 VRF에 대한 보안 비트(Bit) 당 가스 벤치마킹.
ML-DSA-65 구현: GitHub - pipavlo82/ml-dsa-65-ethereum-verification
차트(원본 SVG): https://raw.githubusercontent.com/pipavlo82/gas-per-secure-bit/main/docs/gas-per-sec-equiv-bit-chart.svg
이더리움 요청 사항(ERC)-7913: 이더리움 요청 사항(ERC)-7913: 서명 검증기
원래 AA/PQ 논의: 양자 후 이더리움 거래로 가는 길은 계정 추상화(AA)로 포장되어 있습니다.




