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