← Gritz World Engine
faq

PLONK 증명 시스템 실무 FAQ: 커밋먼트 검증·음악제 최적화·Permutation Argument 디버깅

핵심 요약

PLONK은 보편적 업데이트 가능한 트러스트드 세팅을 제공하여 회로별 별도 세팅이 필요 없고, 하나의 파라미터를 다양한 애플리케이션에서 공유할 수 있다. 증명 크기는 Groth16의 288바이트 대비 평균 2.7KB로 10~100배 크지만, 검증 속도는 5ms 이하를 유지하여 온체인 검증에 충분한 성능을 제공한다. 현재 대부분의 롤업 및 온체인 서비스가 PLONK을 채택하고 있으며, 퀀텀 저항성이 필요한 경우에만 STARK가 선택된다.

이 글의 핵심 주장과 근거

핵심 주장
PLONK는 하나의 보편적 trusted setup으로 여러 회로를 재사용 가능하므로 초기 비용을 한 번만 부담하면 장기적으로 비용 효율적이다.
직접 근거: [1] ZeroInput 직접 경험 (Groth16·PLONK·STARK 도입 실무 체크리스트 (FAQ))
핵심 주장
작은 증명 크기 (Groth16, PLONK) 는 온체인 저장 비용을 낮추고 L1/L2에서 직접 검증을 효율적으로 수행할 수 있지만, 큰 증명 크기 (STARK) 는 오프체인 데이터 저장에 적합하다.
직접 근거: [1] ZeroInput 직접 경험 (Groth16·PLONK·STARK 도입 실무 체크리스트 (FAQ))
핵심 주장
Trusted Setup 단계에서 파라미터가 유출되면 전체 시스템의 신뢰성이 붕괴될 수 있으므로 Groth16와 PLONK 사용 시 초기 설정 보안을 철저히 관리해야 한다.
직접 근거: [1] ZeroInput 직접 경험 (Groth16·PLONK·STARK 도입 실무 체크리스트 (FAQ))

PLONK과 Groth16의 핵심 차이

- **트러스트드 세팅**: Groth16은 회로마다 별도 세팅이 필요하고, PLONK은 보편적·업데이트 가능한 파라미터 하나를 공유한다. - **증명 크기**: Groth16은 288바이트 수준, PLONK은 평균 2.7KB(10~100배 larger)로 larger하지만 여전히 온체인 검증에 충분히 빠름. - **검증 시간**: 양 모두 5ms 이하에서 검증이 가능하며, 실시간 서비스에 적합하다.

보편적 트러스트드 세팅과 업데이트 가능성

PLONK의 세팅은 초기 랜덤 값 s와 그 제곱들을 공개한 후, 검증키를 이용해 파라미터를 업데이트한다.이를 통해 새로운 회로나 확장된degree에 대해 추가 세팅 없이도 활용할 수 있다. 이 특성은 다양한 애플리케이션을 하나의 세팅으로 지원하는 유연성을 제공한다.

STARK와 PLONK 선택 가이드

- **보안 요구**: 퀀텀 저항성이 필수이면 STARK를, 일반적인 온체인 환경에서는 PLONK이 채택된다. - **성능 트레이드오프**: PLONK은 증명 크기가 크고 검증 비용이 다소 높아지만, 검증 속도와 가스 비용 면에서 현재 레이어2·롤업에 최적화되어 있다. - **생태계 지원**: Starknet 등 post‑quantum 프로젝트에서는 STARK를, 대부분의 Rollup 프로젝트에서는 PLONK 기반의 zk‑Rollup이 사용된다.

자주 묻는 질문

PLONK의 트러스트드 세팅은 어떻게 업데이트하나요?

초기 파라미터 s와 그 제곱들을 공개한 후, 검증키를 이용해 별도 세팅 없이 파라미터를 업데이트한다.

Groth16과 PLONK 중 증명 크기가 작은 경우는?

Groth16은 약 288바이트로 PLONK보다 훨씬 작으며, 소형 회로에 적합하다.

PLONK은 STARK 대비 어떤 점에서 우월한가?

검증이 빠르고 온체인 가스 비용이 낮아 현재 레이어2·롤업에서 널리 채택된다.