
임의의 환(ring)에 대한 KKW 영지식 증명 시스템의 효율적인 구현으로, 증명자와 검증자에게 선형 증명 시간과 128비트 보안을 제공합니다.
KKW 2018에서 제시된 NIZKPoK의 효율적인 구현
Reverie는 Improved Non-Interactive Zero Knowledge with Applications to Post-Quantum Signatures에 기술된 MPC-in-the-head NIZKPoK의 구현(prover 및 verifier)입니다. Reverie는 복잡한 술어에 대해 구체적인 prover 효율성(작은 상수를 갖는 선형 증명 시간)을 제공하는 것을 목표로 합니다. 이 구현은 128비트(고전적) 보안을 제공하며 임의의 환(ring)을 지원하고, 가장 효율적인 것은 Z2와 Z64입니다.
Reverie는 단순화된 인터페이스와 스트리밍 인터페이스를 갖춘 라이브러리뿐만 아니라, Bristol 형식으로 지정된 명제를 증명/검증하기 위한 CLI 프로그램도 제공하여 쉽게 실험할 수 있게 합니다.
Reverie는 비교적 최신 nightly Rust가 필요합니다.
SSE+AESNI 사용
time RUSTFLAGS="-C target-cpu=native -C target-feature=+aes,+ssse3,+sse2" cargo run --release
또는 AVX2+AESNI를 사용하면 더 좋습니다.
time RUSTFLAGS="-C target-cpu=native -C target-feature=+aes,+ssse3,+sse2,+avx2" cargo run --release