오늘 끝나면
영지식 증명
- ✓영지식 증명의 핵심 문제를 한 문장으로 설명한다
- ✓오른쪽 실습에서 영지식이 어떻게 움직이는지 관찰한다
- ✓다음 강의와 이어지는 한계를 말할 수 있다
실습 미션
비밀을 안 밝히고 증명하기 — 동굴 비유 이 문장이 실제로 무슨 뜻인지 실습에서 한 번 손으로 확인한다.
성공 조건
- □실습의 기본값을 먼저 관찰
- □입력값이나 모드를 한 번 이상 바꿔 결과 비교
- □왜 결과가 바뀌었는지 한 문장으로 설명
암호 & 보안 · 18
영지식
증명
비밀을 안 밝히고도 안다는 걸 증명하는 것. 비밀번호를 한 글자도 안 말하고 안다고 납득시키기. 말 안 되는 것 같은데 진짜 됨.
비밀은 안다, 근데 안 밝힘
보통 “안다”를 증명하려면 보여줘야 함. 비밀번호 안다? 그럼 쳐봐.
근데 치는 순간 비밀이 노출됨. 영지식 증명은 이걸 뒤집음.
비밀은 한 글자도 안 보여줌/ “나 이거 안다”는 사실만 확신시킴. 핵심은 보여주기를 도전 통과로 바꾸는 것.
“안다고? 그럼 비밀번호 쳐봐”
→ 치는 순간 비밀 노출
“안 보여줄게.대신 도전을 통과할게”
→ 비밀은 끝까지 비공개
알리바바 동굴 이야기
유명한 비유가 고리형 동굴임. 입구에서 길이 좌·우로 갈라졌다가 안쪽에서 다시 만남.
두 길이 만나는 가운데엔 잠긴 비밀 문이 있음. 주문을 알면 문을 열고 반대쪽으로 건너감.
증명자(나)는 “나 그 주문 안다”고 주장함. 검증자(너)는 주문은 절대 안 듣고 그게 사실인지만 확인하고 싶음.
랜덤 도전을 반복 통과
방법은 이럼. 내가 먼저 동굴에 들어가 좌·우 아무 쪽으로 감. 그 다음 검증자가 입구에서 랜덤으로 한쪽을 외침— “왼쪽으로 나와!”
주문 알면 어느 쪽에 있든 문 열고 부른 쪽으로 나옴 → 항상 통과. 주문 모르면 내가 있던 쪽이 우연히 맞아야만 통과 → 50% 운.
오른쪽에서 직접 돌려봄. 한 번은 운으로 넘어감. 근데 여러 번 반복하면 운으로 계속 맞을 확률이 뚝뚝 떨어짐.
비밀 주문은 화면에 안 나옴. 증명자는 알기에 항상 부른 쪽으로 나옴.
아직 안 돌림. 한 번도 안 거치면 그냥 운빨일 수도 있음.
운일 확률은 1/2ⁿ로 급감
한 라운드 운으로 통과할 확률은 1/2. 두 번 연속이면 1/4, 열 번이면 1/1024.
n번 반복하면 운으로 다 맞을 확률은 1/2ⁿ. 지수로 줄어서 순식간에 0에 가까워짐.
그래서 충분히 반복하면 검증자는 결론 내림. “운으론 불가능하다. 진짜 주문을 아는 거다.”
10번이면 운빨은 사실상 0%
신뢰는 100%, 비밀은 비공개
진짜 신기한 점. 신뢰도가 100%에 수렴하는 내내, 비밀은 단 한 번도 공개 안 됨.
검증자가 들은 건 “왼쪽으로 나와” 같은 도전과 매번 통과했다는 결과뿐. 주문도 비밀번호도 안 들음. 근데 안다는 확신은 얻음.
이게 실제 암호에 쓰임. 비밀번호를 서버에 안 보내고 로그인하거나, 블록체인에서 잔액·신원을 노출 없이 증명할 때 — 다 영지식 증명임.
Q. 영지식 증명이 신기한 점은?
비밀(예: 비밀번호)을 한 번도 안 보여주고 그걸 안다는 사실만 확신시키는 것. 보여주기가 아니라 랜덤 도전을 반복 통과해 증명하니까, 신뢰도가 100%에 수렴해도 비밀 자체는 끝까지 비공개임.| 검증자가 들은 것 | 왼쪽/오른쪽 외침그냥 도전 |
| 검증자가 본 것 | 매번 통과결과만 |
| 비밀 주문 | 전혀 안 들음끝까지 비공개 |
| 얻은 결론 | 안다고 확신신뢰도 100% |