← Gritz World Engine
faq

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 테이블 적용으로 추가 절감이 가능하다.

이 글의 핵심 주장과 근거

핵심 주장
'invalid proof' 오류의 주요 원인은 circuit 설계와 setup 파라미터 불일치(게이트 수, constraint 형태), Field mismatch(BLS12-381 vs BLS12-256), hash 함수 차이, 증명 압축/디코딩 과정에서의 endianness 오류이다.
직접 근거: [1] ZeroInput 직접 경험 (Groth16·PLONK·STARK 도입 실무 FAQ (자주 묻는 질문 10선))

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 검증 로직을 적용하면 전체 가스 효율을 극대화할 수 있습니다.

자주 묻는 질문

Trusted Setup 없이 Groth16을 사용할 수 있나요?

Groth16은 기본적으로 Trusted Setup이 필요합니다. 대신 투명형 프로토콜인 PLONK‑Transparent 또는 STARK를 사용하여/setup 없이도 증명을 생성할 수 있습니다.

PLONK에서 proving key을 재사용해도 안전한가요?

PLONK은 universal하고 updatable한 SRS를 제공하므로, 같은 degree의 회로라면 proving key을 여러 회로에 재사용해도 안전합니다. 다만 다른 degree의 회로는 별도의 키를 생성해야 합니다.

가스 비용 최적화에서 가장 중요한 포인트는?

Groth16은 pairing 연산 최소화를 위해 BLS12‑256 사용, PLONK은 lookup table 도입, STARK는 Poseidon 해시 교체와 같은 기술이 핵심이며, 이를 통해 전체 가스 소모를 40~60% 절감할 수 있습니다.