제로지식증명(ZK Proof) 입문 — 증명하되 드러내지 않는 기술의 원리

이서연
솔리디티 개발자 출신. 복잡한 기술을 누구나 이해할 수 있게 쓴다.
당신이 비밀번호를 알고 있다는 것을 증명하려면 비밀번호를 말해야 할까? 제로지식증명(Zero-Knowledge Proof, ZKP)은 그렇지 않다고 답한다. 비밀번호를 공개하지 않고도 "나는 이것을 알고 있다"는 사실을 수학적으로 증명할 수 있다. 이 개념이 블록체인에서 어떻게 작동하는지 처음부터 풀어본다.
제로지식증명 = "나는 X를 알고 있다"는 사실을, X를 공개하지 않고 수학적으로 증명하는 방법
왜 이 기술이 필요한가 — 프라이버시의 딜레마
현대 인터넷은 "신뢰하려면 공개하라"는 원칙 위에 서 있다. 나이를 증명하려면 주민번호를 보여줘야 한다. 자산 규모를 증명하려면 계좌 잔고를 열어야 한다. 학위를 증명하려면 학교 이름과 졸업 날짜를 알려야 한다.
그런데 이 정보들 중 실제로 필요한 것은 무엇인가? "이 사람이 만 18세 이상인가?" 라는 질문에 주민번호 전체가 필요한가? 아니다. "예(Yes)" 또는 "아니오(No)"만 필요하다. 제로지식증명은 바로 그 "Yes/No"만 전달하는 수학적 방법이다.
동굴 비유 — 가장 유명한 ZKP 설명
알리와 밥이 있다. 동굴 안에는 비밀 문이 있고, 특정 비밀번호를 알아야 열 수 있다. 알리는 밥에게 "나는 비밀번호를 알고 있다"고 주장한다. 어떻게 증명할까?
- 알리가 먼저 동굴 안으로 들어간다 (어느 쪽 길이든 선택)
- 밥이 동굴 입구에서 소리친다: "왼쪽 길로 나와!" 또는 "오른쪽 길로 나와!"
- 알리가 비밀번호를 알면 어느 쪽이든 문을 통과해 나올 수 있다
- 이 과정을 100번 반복하면, 알리가 우연히 맞출 확률은 2^(-100) → 사실상 0
1. 완전성(Completeness): 알리가 진짜 비밀번호를 알면, 밥을 설득할 수 있다
2. 건전성(Soundness): 모르면서 속일 확률은 사실상 0이다
3. 영지식성(Zero-Knowledge): 밥은 비밀번호 자체에 대해 아무것도 배우지 못한다
블록체인에서의 ZKP — zkSNARK와 zkSTARK
이론적 ZKP를 실제 블록체인에 적용하는 핵심 기술이 zkSNARK와 zkSTARK다. 두 기술은 같은 목표를 다른 방법으로 달성한다.
| 항목 | zkSNARK | zkSTARK |
|---|---|---|
| 신뢰 설정 | 필요 (Trusted Setup) | 불필요 (투명) |
| 증명 크기 | 매우 작음 (~200 bytes) | 큰 편 (~45KB) |
| 양자 내성 | 취약 | 안전 |
| 대표 사례 | Groth16, PLONK (zkSync) | StarkNet, StarkEx |
실제 적용 사례 — ZKP가 바꾸는 것들
1. ZK 롤업 — 이더리움 확장성
zkSync, Polygon zkEVM, Scroll이 여기에 해당한다. 수천 건의 트랜잭션을 한 번의 ZK 증명으로 이더리움에 제출한다. 이더리움은 증명 하나만 검증하면 되므로 처리 비용이 극적으로 줄어든다.
2. 신원 증명 — 프라이버시 보존 KYC
"이 사람은 만 18세 이상이다"를 주민번호 없이 증명한다. 정부나 기관이 나이를 인증하고, 그 인증의 ZK 증명만 서비스에 제출한다. 서비스는 나이만 확인하고 개인정보는 저장하지 않는다. Polygon ID, Worldcoin이 이 방향으로 개발 중이다.
3. 자산 증명 — 프라이버시 보존 담보
DeFi 대출에서 "나는 충분한 담보가 있다"는 것을 잔고 공개 없이 증명한다. 거대 금융기관이 자산 보유를 증명하는 데도 응용 가능하다.
4. 투표 시스템
"나는 유권자다"와 "나는 이미 투표했다"를 공개하지 않고 증명. 이중 투표 방지와 투표 내용 비밀 보장을 동시에 달성한다.
- 신원 증명시 개인정보 노출
- 온체인 거래 내역 완전 공개
- DeFi 레버리지 포지션 노출
- 투표 내역 추적 가능성
- ZK 증명 생성 시간 (초~분 단위)
- 개발 복잡도 — 전문 수학 지식 필요
- zkEVM의 EVM 완전 호환 아직 진행 중
- Trusted Setup 보안 신뢰 문제
ZKP의 미래 — 2026년 이후 방향
ZKP는 세 가지 방향으로 발전하고 있다. 첫째, 증명 생성 속도 개선 — GPU/FPGA 기반 증명 가속으로 현재 수분 걸리는 증명이 수초로 단축되고 있다. 둘째, Recursive ZK Proof — 증명의 증명. 여러 ZK 증명을 하나로 합산하는 방식으로 StarkNet의 SHARP가 이 방식을 채택했다. 셋째, zkML — AI 추론 결과를 ZK로 증명. "이 AI는 정직하게 추론했다"를 수학적으로 증명하는 새로운 연구 분야다.
ZKP = 비밀을 지키면서 진실을 증명하는 수학
블록체인 + ZKP = 투명성(블록체인) + 프라이버시(ZKP)의 결합
2026년 ZKP 트렌드: ZK 롤업 확산 / 프라이버시 보존 신원 / zkML
제로지식증명은 "공개하거나 숨기거나"라는 이분법을 넘어선다. 필요한 것만 증명하고, 나머지는 내 것으로 남긴다. 블록체인이 프라이버시와 투명성을 동시에 달성할 수 있는 거의 유일한 방법이다.
