📖 용어
🇰🇷 쉽게 설명
🔰 초보
🕵️ 영지식 증명 ZKP
비밀을 상대방에게 넘기지 않고도 '내가 그 사실을 알고 있다'는 걸 납득시키는 방법이에요. 증명하는 쪽(증명자)은 상대방(검증자)을 완전히 확신시키면서도, 검증자는 정작 비밀은 전혀 알 수 없어요.
💡
흔한 오해 — 영지식 증명을 쓰면 블록체인이 완전히 익명이 될까요? 꼭 그렇지는 않아요! 숨겨지는 건 세부 내용(누가 얼마를 보냈는지)이고, 거래가 유효하다는 증명은 여전히 기록되고 누구나 확인할 수 있어요. '투명한 프라이버시'라고 이해하면 딱 맞아요.
🚪 쉽게 풀면 — 열쇠 없이 열쇠를 가진 걸 증명하기
잠긴 방이 하나 있고 내가 열쇠를 갖고 있다고 주장한다고 해 봐요. 제일 간단한 증명 방법은 열쇠를 상대방에게 보여주는 거죠. 그런데 그러면 상대방도 열쇠를 알게 돼버려요. 영지식 증명은 다른 방법을 써요. 방 안에 들어가 안에 있는 사람만 꺼낼 수 있는 물건을 가져오는 걸 몇 번이고 반복해서, 운이 좋아서 맞힌 게 아님을 증명하는 거예요. 상대방은 내가 방에 들어갈 수 있다고 확신하게 되지만 열쇠 자체는 끝까지 보지 못해요. 실생활 예를 들면, 클럽 입장 시 생년월일을 보여주지 않고도 '만 18세 이상'임을 증명하는 것과 같아요. 직원은 딱 하나의 사실(나이 조건 충족)만 알게 되고, 그 외에는 아무것도 몰라요.
📐 ZKP가 반드시 갖춰야 할 세 가지 조건
| 조건 | 의미 |
|---|---|
| ✅ 완전성 | 사실이 정말 참이라면, 정직한 증명자는 언제나 검증자를 납득시킬 수 있어요 |
| 🛡️ 건전성 | 사실이 거짓이라면, 거짓말쟁이가 검증자를 속일 수 없어요(극히 희박한 확률 제외) |
| 🤐 영지식성 | 검증자는 '그 사실이 참이다'라는 것 외에 비밀 정보를 전혀 알 수 없어요 |
📊 이름이 헷갈리기 쉬운데, '영지식'은 증명자가 아무것도 모른다는 뜻이 아니에요. 비밀을 쥔 건 증명자고, 정보가 0이 되는 건 검증자 쪽이에요.
🪙 입문자가 크립토에서 만나는 ZKP
크게 두 가지 방식으로 쓰여요.
- 🙈 프라이버시 — 거래가 유효함(보내는 쪽에 잔액이 있고, 수식이 맞아떨어짐)을 증명하면서도 지갑 주소나 금액은 공개하지 않을 수 있어요. 지캐시(Zcash)는 2016년에 이 방식으로 보내는 사람·받는 사람·금액을 모두 숨기는 실드 트랜잭션을 선보였어요.
- ⚡ 확장성(zk-롤업) — 레이어 2가 수천 건의 거래를 오프체인에서 묶어 처리한 뒤, '이 거래들이 모두 유효하다'는 작은 '유효성 증명' 하나만 메인 체인에 제출해요. 메인 체인은 그 증명 하나만 검증하면 되니 속도가 빠르고 비용이 낮아져요. 이더리움 위의 스타크넷(Starknet)이 이런 방식의 zk-롤업이에요.
🧪 두 가지 대표 방식 — SNARK와 STARK
| 종류 | 강점 | 트레이드오프 |
|---|---|---|
| 🤏 zk-SNARK | 증명 크기가 작고 검증이 빠르고 저렴해요. 오래되고 많이 쓰여요. | 역사적으로 최초 한 번의 '신뢰 설정'이 정직하게 이뤄져야 했어요 |
| 🔭 zk-STARK | 신뢰 설정이 필요 없고(투명), 미래 지향적으로 평가받아요 | 증명 크기가 커서 검증 비용이 더 들어요 |
🧷 입문 단계에서는 어느 쪽이 낫다고 판단할 필요 없어요. '둘 다 영지식 증명이고, 내부 설계 방향이 다를 뿐'이라는 것만 알면 충분해요.
🚨 알아두면 좋은 것들
- 🔍 완전한 투명성은 아니에요 — 증명은 여전히 기록되고 누구나 확인할 수 있어요. ZKP가 숨기는 건 '내용'이지 '행위의 존재'가 아니에요
- 🧠 영지식은 검증자 기준 — 검증자가 추가 정보를 전혀 얻지 못한다는 게 핵심이고, '영지식'이라는 이름도 그래서 붙었어요
- ⚙️ 신뢰 설정이 중요해요 — 일부 zk-SNARK 시스템은 초기 설정 단계가 정직하게 진행되고 그 정보가 폐기되어야 해요. STARK는 이 과정 자체가 없어요
❓ 자주 묻는 질문
- 영지식 증명을 쓰면 블록체인이 완전히 익명이 되나요?
- 아니요. ZKP는 민감한 세부 정보를 숨기면서도 거래가 유효함을 증명해요. 증명 자체와 거래가 발생했다는 사실은 여전히 기록되고 누구나 확인할 수 있어요. '익명성'이 아니라 '프라이버시 + 검증 가능성'을 동시에 갖는 거예요.
- '영지식'이라는 말은 증명자가 아무것도 모른다는 뜻인가요?
- 정반대예요. 비밀을 쥐고 있는 건 증명자예요. '영지식'은 검증자 쪽에서 보는 말로, 검증자가 '그 사실이 참이다'라는 것 외에 추가 정보를 전혀 얻지 못한다는 뜻이에요.
- zk-SNARK와 zk-STARK는 어떻게 다른가요?
- 둘 다 영지식 증명의 한 종류예요. zk-SNARK는 증명 크기가 작고 검증이 빠르고 저렴하지만, 역사적으로 최초 '신뢰 설정(trusted setup)'이 필요했어요. zk-STARK는 신뢰 설정이 없어 더 미래 지향적으로 평가되지만, 증명 크기가 커서 검증 비용이 더 들어요.