스킬캠퍼스

오늘 끝나면

영지식 증명

  • 영지식 증명의 핵심 문제를 한 문장으로 설명한다
  • 오른쪽 실습에서 영지식이 어떻게 움직이는지 관찰한다
  • 다음 강의와 이어지는 한계를 말할 수 있다

실습 미션

비밀을 안 밝히고 증명하기 — 동굴 비유 이 문장이 실제로 무슨 뜻인지 실습에서 한 번 손으로 확인한다.

성공 조건

  • 실습의 기본값을 먼저 관찰
  • 입력값이나 모드를 한 번 이상 바꿔 결과 비교
  • 왜 결과가 바뀌었는지 한 문장으로 설명

암호 & 보안 · 18

영지식
증명

비밀을 밝히지 않고도 안다는 사실을 증명한다. 비밀번호를 한 글자도 말하지 않고 안다고 납득시킨다.

P.01암호 & 보안 · 18

비밀은 알지만 밝히지 않는다

보통 “안다”를 증명하려면 보여줘야 한다. 비밀번호를 안다면 직접 쳐보라는 식이다.

그런데 치는 순간 비밀이 노출된다. 영지식 증명은 이걸 뒤집는다.

비밀은 한 글자도 보여주지 않는다.대신 “나 이거 안다”는 사실만 확신시킨다. 핵심은 보여주기를 도전 통과로 바꾸는 것이다.

보여주지 않고 · 안다는 것만 전달
두 가지 증명 방식
보통의 증명

“안다고? 그럼 비밀번호 쳐봐

치는 순간 비밀 노출

영지식 증명

안 보여줄게.대신 도전을 통과할게”

비밀은 끝까지 비공개

같은 “안다” · 다른 증명법
P.02암호 & 보안 · 18

알리바바 동굴 이야기

유명한 비유가 고리형 동굴이다. 입구에서 길이 좌우로 갈라졌다가 안쪽에서 다시 만난다.

두 길이 만나는 가운데에 잠긴 비밀 문이 있다. 주문을 알면 문을 열고 반대쪽으로 건너간다.

증명자(나)는 “나 그 주문 안다”고 주장한다. 검증자(너)는 주문은 절대 듣지 않고 그게 사실인지만 확인하고 싶어 한다.

고리형 동굴 · 가운데 비밀 문
고리형 동굴의 구조
왼쪽 길오른쪽 길주문 알면 통과두 길이 안쪽에서 만남
가운데 문이 좌·우를 이어줌
P.03암호 & 보안 · 18

랜덤 도전을 반복 통과

방법은 이렇다. 내가 먼저 동굴에 들어가 좌우 아무 쪽으로 간다. 그 다음 검증자가 입구에서 랜덤으로 한쪽을 외친다.“왼쪽으로 나와!”

주문을 알면 어느 쪽에 있든 문을 열고 부른 쪽으로 나오니 항상 통과한다. 주문을 모르면 내가 있던 쪽이 우연히 맞아야만 통과하니 50% 운이다.

한 번은 운으로 넘어간다. 그러나 여러 번 반복하면 운으로 계속 맞을 확률이 빠르게 떨어진다.

알면 항상 통과 · 모르면 50%만 운
알리바바 동굴 · 직접 돌려보기
고리형 동굴, 가운데 비밀 문
왼쪽 입구오른쪽 입구주문 필요증명자는 동굴 안
검증자, 랜덤으로 한쪽을 부름

비밀 주문은 화면에 나오지 않는다. 증명자는 알기에 항상 부른 쪽으로 나온다.

출력, 안다는 확신도
0%라운드 0

아직 안 돌렸다. 한 번도 안 거치면 그냥 운일 수도 있다.

P.04암호 & 보안 · 18

운일 확률은 1/2ⁿ로 급감

한 라운드를 운으로 통과할 확률은 1/2이다. 두 번 연속이면 1/4, 열 번이면 1/1024이다.

n번 반복하면 운으로 다 맞을 확률은 1/2ⁿ이다. 지수로 줄어서 순식간에 0에 가까워진다.

그래서 충분히 반복하면 검증자는 결론을 내린다. “운으로는 불가능하다. 진짜 주문을 아는 것이다.”

라운드가 쌓일수록 · 운빨은 0에 수렴
운으로 통과할 확률 = 1/2ⁿ
1
50%
2
25%
3
12.5%
5
3.1%
10
0.1%

10번이면 운빨은 사실상 0%

P.05암호 & 보안 · 18

신뢰는 100%, 비밀은 비공개

진짜 신기한 점은 따로 있다. 신뢰도가 100%에 수렴하는 내내, 비밀은 단 한 번도 공개되지 않는다.

검증자가 들은 건 “왼쪽으로 나와” 같은 도전과 매번 통과했다는 결과뿐이다. 주문도 비밀번호도 듣지 못한다. 그런데도 안다는 확신은 얻는다.

이게 실제 암호에 쓰인다. 비밀번호를 서버에 보내지 않고 로그인하거나, 블록체인에서 잔액과 신원을 노출 없이 증명할 때 전부 영지식 증명이다.

Q. 영지식 증명이 신기한 점은?비밀(예: 비밀번호)을 한 번도 보여주지 않고 그걸 안다는 사실만 확신시키는 것이다. 보여주기가 아니라 랜덤 도전을 반복 통과해 증명하니까, 신뢰도가 100%에 수렴해도 비밀 자체는 끝까지 비공개다.
확신은 차오르고 · 비밀은 끝까지 봉인
확신은 ↑ · 비밀은 봉인
검증자가 들은 것왼쪽/오른쪽 외침그냥 도전
검증자가 본 것매번 통과결과만
비밀 주문전혀 안 들음끝까지 비공개
얻은 결론안다고 확신신뢰도 100%

3줄 요약

  1. 1비밀을 안 밝히고 증명하기 — 동굴 비유
  2. 2영지식 증명은 고전 암호 → 키와 신뢰 → 웹 보안 → 블록체인 → 다음 시대 흐름 안의 한 칸이다.
  3. 3개념을 외우는 것보다 입력을 바꾸면 무엇이 달라지는지 보는 것이 우선이다.

완료 전 점검

복습 카드

영지식

비밀을 안 밝히고 증명하기 — 동굴 비유

암호를 잠그고 풀 때 쓰는 비밀 또는 공개 숫자

해시

데이터를 고정 길이 지문으로 바꾸는 함수