Choosing the Right ZK Proof System: Groth16 vs PLONK vs STARK
신뢰할 수 있는 설정(trusted setup)을 통해 빠른 온체인 검증이 필요할 때는 Groth16를, 여러 회로에서 재사용 가능한 범용 설정이 필요할 때는 PLONK를, 그리고 증명 크기는 더 크더라도 투명하고 양자 내성이 있는 증명이 필요할 때는 STARK를 사용하세요.
이 글의 핵심 주장과 근거
Core Characteristics
Groth16은 신뢰할 수 있는 설정(trusted setup)이 필요하며 매우 작은 크기의 증명(약 200바이트)을 생성하는 zk-SNARK 증명 시스템입니다. 검증 속도가 빨라 저장 비용이 중요한 온체인 검증에 적합합니다. BN254 또는 BLS12-381과 같은 타원 곡선 상에서 작동하며, 이차 복잡도를 가진 모든 R1CS 회로를 증명할 수 있습니다.
PLONK Advantages
PLONK는 여러 서로 다른 회로에 재사용 가능한 범용 설정(universal setup)을 사용하여, 각 회로마다 별도의 신뢰 설정 세레모니(trusted ceremonies)를 거쳐야 할 필요성을 없앴습니다. 이를 통해 파라미터 생성에 드는 운영 오버헤드와 비용을 줄이는 동시에, Groth16과 유사한 증명 크기(약 200~300바이트)와 검증 속도를 유지합니다. 또한 PLONK는 다중 산술 제약 조건을 지원하며 다양한 증명 라이브러리와 통합될 수 있습니다.
STARK Trade‑offs
STARKs는 투명하며 신뢰할 수 있는 설정(trusted setup)이 필요하지 않아 파라미터 유출 위험을 제거합니다. 하지만 증명 크기가 더 크고(약 10KB), 검증 속도가 SNARKs보다 느려 온체인 사용에는 덜 이상적이지만, 많은 트랜잭션을 일괄 처리해야 하는 롤업과 같은 오프체인 확장 솔루션에는 가치가 있습니다. STARKs는 해시 기반 커밋먼트에 의존하며 양자 내성을 갖춘 것으로 간주됩니다.
조건부 한계 및 제약 사항
Groth16이 BN254 외의 곡선 환경에서 실행 → 증명 생성·검증 불가 (출처: Choosing the Right ZK Proof System). PLONK ceremony 참여자 부족 → toxic waste 위험으로 보안 모델 깨짐 가능 (같은 출처). 온‑체인 검증 시 가스 한계가 증명 크기에 직접 반영되므로, 컨트랙트 배포 전 증명 생성 시간과 회로 복잡도를 사전 벤치마킹해야 한다.