Groth16·PLONK·STARK 도입 실무 FAQ: Trusted Setup 실패·증명 생성 속도 저하·가스 비용 최적화 10선
Groth16·PLONK·STARK 구현에서 Trusted Setup 실패 시 기존 ceremony 파일 백업 후 tau·alpha 등 비공개 파라미터를 재생성하고 CRS와 proving key을 안전하게 폐기하여 복구하며, 증명 생성 속도는 회로 게이트 수 최소화 및 libsnark·gnark의 FFT 최적화 모듈 활용으로 향상시킨다. 가스 비용 최적화는 Groth16에서 BLS12-256 pairing 활용 시 약 20% 절감되고, calldata에 압축 proof 전달 및 PLONK verifier 내 lookup 테이블 적용으로 추가 절감이 가능하다.
이 글의 핵심 주장과 근거
Trusted Setup 실패 복구
Groth16·PLONK·STARK 구현에서 Trusted Setup이 실패하면 먼저 기존 ceremony 파일을 백업하고, 동일 회로에 대한 새로운 trusted‑setup 절차를 수행합니다. 이 과정은 tau와 alpha 같은 비공개 파라미터를 재생성하고, 생성된 CRS와 proving key을 안전하게 폐기하는 단계를 포함합니다. 복구가 불가능한 경우, 투명형 프로토콜(PlonK-Transparent 또는 STARK)로 전환하여_setup 없이도 증명 생성을 이어갈 수 있습니다. 이 절차는 실무에서 자주 사용되며, 각 단계마다 무결성 검증을 위한 SHA‑256 해시와 파일백업 전략을 적용해 재현성을 보장합니다.
증명 생성 속도 최적화
Groth16의 증명 생성 속도는 회로 게이트 수와 FFT 친화적인 필드 선택에 크게 좌우됩니다. circuit 설계 단계에서 Low‑Degree 형태와 gate 최소화를 통해 FFT 연산 횟수를 줄이고, libsnark·gnark의 FFT 최적화 모듈을 활용해 성능을 향상시킵니다. PLONK은 proving_key를 재사용하여 회로당_setup 비용을 절감하고, STARK는 hash 기반 proof compression과 batch verification를 적용해 증명 생성 시간을 30~50% 단축할 수 있습니다. 또한 BLS12‑256으로 curve 전환이나 Poseidon 해시 사용 등 다양한 최적화 기법을 조합하면 전반적인 throughput을 크게 개선할 수 있습니다.
가스 비용 최적화
EVM 환경에서 ZKP 검증 시 가스 비용은 pairing 연산, hash 함수 선택, proof 사이즈 등에 비례합니다. Groth16은 BLS12‑381 대신 BLS12‑256을 사용해 pairing 비용을 약 20% 절감하고, calldata에 압축된 proof를 전달해 호출당 가스를 최소화합니다. PLONK은 verifier 계약 내부에 lookup table을 도입해 연산 수를 줄이고, STARK는 Keccak256 대신 Poseidon 해시를 사용해 가스 소모를 40~60% 감소시킵니다. 또한 proof 압축 포맷(예: BLS12‑381의 G1/G2 압축)과 early‑return 검증 로직을 적용하면 전체 가스 효율을 극대화할 수 있습니다.