회로마다 고유한 trusted setup 필요
permutation arguement를 사용하여 관계 연산을 증명하는 효율을 높임.
복잡한 다항식을 효율적으로 관리
단일 SRS를 다양한 회로에 적용할 수 있음
Transparent Setup : Halo2는 설정 시 비밀 정보를 생성하지 않고도 가능한 투명한 방식을 사용합니다. 예를 들어, 공개 난수 생성기나 공개적으로 검증 가능한 방식을 통해 SRS를 설정하므로, 설정 과정에서 특정 개인의 비밀 정보를 사용할 필요가 없음
재귀적 증명 (Recursive Proof Composition): Halo2는 재귀적 증명을 통해 증명 체계를 확장할 수 있는 기능을 갖추고 있으며, 설정 또한 회로 간에 일관되게 적용할 수 있습니다. 이를 통해 복잡한 증명을 작은 단계로 나누고, 동일한 설정으로 각각의 증명을 조합하여 사용할 수 있어 투명성과 범용성이 동시에 강화됩니다.
| 특성 | Common Reference String (CRS) | Structured Reference String (SRS) |
|---|---|---|
| 신뢰 설정 | 필요 | 필요할 수도 있고, transparent로도 가능 |
| 범용성 | 제한적, 특정 회로에 종속 | 범용적이며, 다양한 회로에서 재사용 가능 |
| 업데이트 가능성 | 불가능 | 가능 |
| 적용방식 | 고정된 특정 계산이나 회로에 최적화된 형태 | 다양한 계산에 유연하게 적용 가능 |
| 특징 | Groth16 | PLONK | Halo2 |
|---|---|---|---|
| 설정 방식 | Trusted Setup (회로별 설정 필요) | 범용 SRS (Trusted Setup 필요) | Transparent Setup (신뢰 설정 불필요) |
| 증명 크기 | 작음 | 다소 큼 | 다소 큼, 복잡성에 따라 변동 가능 |
| 검증 속도 | 매우 빠름 | 빠름 | 적당히 빠름 |
| 재귀 증명 | 지원하지 않음 | 제한적 | 지원(복잡한 연산에 유리) |
| 범용성 | 제한적 (회로별로 설정 필요) | 범용적 (여러 회로에 적용 가능) | 매우 범용적 |
| 주요 용도 | 스마트 계약, 블록체인 | 블록체인, 일반 ZKP 시스템 | 확장성 있는 ZKP 시스템, 복잡한 증명 구조 |