영지식 증명 (Zero-Knowledge Proof)

컴퓨터과학·AI
한 줄 정의: 어떤 사실을 증명하는 사람이 그 사실이 참이라는 것 외에는 아무 추가 정보도 노출하지 않고 상대방을 납득시킬 수 있는 암호학적 증명 방식입니다.

쉽게 풀면

입구가 두 갈래로 갈라졌다가 안쪽 비밀문 하나로 다시 이어지는 동굴을 생각해봅시다. 이 비밀문은 암호를 알아야만 열립니다. 증명자가 두 입구 중 아무 곳으로나 들어간 뒤, 검증자가 무작위로 "왼쪽으로 나오세요" 혹은 "오른쪽으로 나오세요"라고 외쳤을 때 매번 지정된 쪽으로 나올 수 있다면, 증명자가 비밀문의 암호를 알고 있다고 확신할 수 있습니다. 그런데 이 과정을 지켜본 사람은 증명자가 "암호를 안다"는 사실만 알 뿐, 암호가 정확히 무엇인지는 전혀 알 수 없습니다. 영지식 증명은 이런 방식으로, 비밀번호나 원본 데이터 같은 민감한 정보를 직접 드러내지 않고도 "내가 이것을 알고 있다" 또는 "이 조건을 만족한다"는 사실만을 상대방에게 증명하는 기법입니다.

왜 중요한가

디지털 환경에서는 신원 확인, 자격 증명, 거래 검증 등 곳곳에서 민감한 원본 정보를 상대방에게 넘겨야 하는 상황이 발생합니다. 영지식 증명은 이 원본 정보를 노출하지 않고도 신뢰를 구축할 수 있게 해주기 때문에, 프라이버시 보호 기술과 분산 시스템 보안 연구의 핵심 축으로 다뤄집니다. 특히 블록체인의 확장성과 프라이버시를 동시에 확보하려는 연구, 그리고 개인정보를 최소한으로 공개하면서 규제를 준수하려는 응용 분야에서 자주 인용됩니다.

논문에서는 이렇게 쓰입니다

"사용자는 영지식 증명(zero-knowledge proof)을 이용해 실제 비밀번호나 신원 정보를 서버에 전송하지 않고도 자신이 정당한 사용자임을 증명할 수 있었다."

이 문장은 인증 과정에서 민감한 원본 정보를 네트워크로 전송하는 대신, 그 정보를 알고 있다는 증거만을 주고받아 프라이버시를 지키면서도 신뢰할 수 있는 인증을 수행했다는 뜻입니다. 최근에는 zk-SNARK와 같은 구체적인 구현이 블록체인의 프라이버시 보호 거래나 신원 검증 시스템에 널리 활용됩니다.

"제안된 롤업 구조는 다수의 거래 내역을 오프체인에서 처리한 뒤, 그 결과가 올바르다는 영지식 증명 하나만을 온체인에 제출함으로써 검증 비용을 크게 절감했다."

블록체인 확장성 연구에서 영지식 증명은 대량의 연산 결과를 압축된 하나의 증거로 요약해, 모든 노드가 원본 데이터를 다시 계산하지 않고도 결과의 정확성을 신뢰할 수 있게 해준다는 맥락으로 쓰입니다.

"본 시스템은 사용자의 나이나 소득 정보를 직접 노출하지 않고도 특정 자격 조건 충족 여부만을 영지식 증명 방식으로 제3자에게 전달하도록 설계되었다."

전자신원인증이나 개인정보 보호 응용 연구에서는, 원본 속성값 대신 조건 충족 여부만 증명함으로써 최소 정보 공개(minimal disclosure) 원칙을 지킬 수 있다는 점을 강조할 때 이런 표현이 사용됩니다.

조금 더 깊게 보면

영지식 증명이 성립하려면 완전성(completeness), 건전성(soundness), 영지식성(zero-knowledge)이라는 세 가지 성질을 만족해야 합니다. 완전성은 참인 명제라면 정직한 증명자가 검증자를 항상 납득시킬 수 있다는 것이고, 건전성은 거짓인 명제를 증명자가 속임수로 통과시킬 확률이 매우 낮아야 한다는 것이며, 영지식성은 증명 과정에서 명제의 진위 외에 어떤 추가 정보도 새어나가지 않아야 한다는 것입니다. 실제 논문에서는 증명자와 검증자가 여러 번 메시지를 주고받는 대화형(interactive) 방식과, 한 번의 증명 데이터로 검증이 끝나는 비대화형(non-interactive) 방식인 zk-SNARK, zk-STARK 등이 자주 비교됩니다. 이 방식들은 증명 크기, 생성·검증에 걸리는 계산 비용, 신뢰 설정(trusted setup)의 필요 여부 등에서 서로 다른 장단점을 가지므로, 논문을 읽을 때는 어떤 구체적 기법을 사용했는지 함께 확인하는 것이 좋습니다.

주의할 점

영지식 증명은 "증명자가 실제로 그 정보를 알고 있다"는 것만 보장할 뿐, 그 정보가 담긴 원본 데이터 전체의 무결성이나 위변조 여부까지 자동으로 검증해주지는 않습니다. 대규모 데이터의 위변조 여부를 빠르게 확인하고 특정 부분만 콕 집어 검증하는 데는 흔히 머클 트리와 같은 별도의 구조가 함께 사용됩니다.

관련 용어