의견.png

영지식증명

해시넷
Asadal (토론 | 기여)님의 2019년 2월 13일 (수) 23:40 판 (같이 보기)
이동: 둘러보기, 검색

영지식증명(零知識證明, zero-knowledge proof)이란 거래 상대방에게 어떠한 정보도 제공하지 않은 채, 자신이 해당 정보를 가지고 있다는 사실을 증명하는 것을 말한다.

역사

영지식 증명은 1985년 Shafi Goldwasser, Silvio Micali, Charles Rackoff의 논문 "The Knowledge Complexity of Interactive Proof-Systems"에서 처음 소개된 개념으로 현대 암호학에서는 영지식 증명을 다자간의 비대면 통신 프로토콜에서 정보보호 기능을 제공하기 위해 암호기술을 적용하는 암호 프로토콜 중 매우 중요한 고급 암호 프로토콜의 한 종류로 취급한다.[1] 암호화폐에서의 영지식 증명은 2013년 존스 홉킨스 대학의 연구진들이 실행한 제로코인(ZeroCoin)에서 처음 적용이 되었으며 제로코인은 이후 2014년 제로캐시라는 이름을 거쳐 2016년 지캐시(Zcash)로 자리를 잡았다.[2]

배경

영지식 증명은 간단히 말해 증명자가 자신이 알고 있는 지식과 정보를 공개하지 않으면서, 그 지식을 알고 있다는 사실을 검증자에게 증명하는 시스템이다. 여기서 증명자(Prover)는 자신이 해당 지식을 알고 있음을 증명하는 주체이며 검증자(Verifier)는 증명자가 해당 지식을 알고 있다는 사실을 검증해주는 주체이다.

영지식 증명의 이론적 기반은 대화형 증명 시스템(Interactive proof system)이다. 대화형 증명 시스템은 증명자와 검증자 상호 간 메시지를 교환하는 계산(Computation)을 모델링한 이론적인 컴퓨터 모델(abstract machine)을 말한다. 대화형 증명 시스템에서는 증명자는 전능하고 무한정의 계산 자원을 갖고 있지만 신뢰할 수 없는 존재인 반면, 검증자는 제한된 계산 자원을 갖고 있지만 신뢰할 수 있는 존재임을 전제로 한다. 따라서 지금까지 대화형 상호 증명 시스템에서는 증명자가 악역을 맡아 이들이 검증자를 속이려는 상황을 가정했다.

하지만 영지식 증명에서는 다음과 같은 상황에서 추가적으로 검증자도 악의적인 목적을 갖는다는 구성을 생각하였다. 예를 들어 증명자가 자신의 비밀번호를 알고 있고, 자신이 알고 있다는 사실을 증명하기 위해 관련된 정보를 검증자에게 보낸 상황을 가정하게 되면 이때 검증자는 전달 받은 증명자의 정보(비밀번호, 주민등록번호)들을 판매하여 부당한 이익을 챙길 수 있다는 가정이다. 이와 같은 경우를 예방하기 위해 영지식 증명은 기존의 대화형 증명 시스템에 1. 누구나 검증자가 정보를 누설하지 않는다는 걸 확인할 수 있는가 2. 검증자가 검증 과정 동안 알고 있어야 하는 정보의 비중은 어느 정도 인가와 같은 2가지 질문을 제시하였으며 이 의문점들을 해결하기 위해서 증명자가 제공한 정보의 증명를 통해 악의적인 검증자가 검증을 수행할 수 있지만, 증명자의 정보 자체에 대해서는 유추할 수 없는 증명 시스템이 필요했으며 이 고민에 대한 해결책이 곧 영지식 증명이었다.[3]

알리바바 동굴 예시와 조건

영지식증명(zero-knowledge proof) - 동굴의 비유

영지식 증명은 1. 어떤 조건이 참이라면 신뢰 할 수 있는 검증자(honest verifier)는 신뢰할 수 있는 증명자(honest prover)에 의해 이 사실을 납득할 수 있어야 한다는 완전성(Completeness) 2. 어떤 조건이 거짓이면 신뢰할 수 없는 증명자(dishonest prover)는 거짓말을 통해 검증자에게 조건이 참임을 절대 납득시킬 수 없다는 건전성(Soundness) 3. 어떤 조건이 참일 때, 검증자는 이 조건이 참이라는 사실 이외의 아무 정보를 알 수 없다는 영지식성(Zero-Knowledge)과 같은 3가지 조건을 모두 만족해야 한다.

이러한 조건을 만족시키는 사례임과 동시에 영지식 증명을 이해하기 쉬운 문제로 설명한 사례가 알리바바 동굴(Alibaba's cave) 사례이다. 해당 사례에서는 고리형태의 동굴에는 A와 B라는 길이 있으며 그 사이에는 도어락이 설치된 비밀문이 있다. 검증자는 증명자에게 직접적으로 설치된 도어락의 비밀번호를 물어보지 않고 증명자가 비밀번호를 알고 있다는 명제가 참인지 확인하려 한다. 이 조건문이 참인지를 확인하기 위해 1. 증명자가 먼저 동굴에 들어간 다음, 도어락 근처로 이동한 후 검증자를 동굴 안으로 부른다. 2. 검증자는 A와 B의 갈림길에 서서 증명자에게 특정 길로 나오라고 지시한다. 3. 증명자는 검증자가 지시한 길로 나온다. 이 과정만 보았을 때는 증명자가 비밀번호를 알고 있어서 검증자가 지시한 길로 나왔는지 확신할 수 없지만 위 과정을 일정 횟수 이상 반복하여도 증명자가 검증자의 지시대로 행동했다면 증명자는 검증자에게 자신이 비밀번호를 알고 있다는 사실을 납득시킬 수 있다.

이 과정을 영지식 증명의 조건에 대입시키게 된다면 1. 여러 번의 경우에도 증명자가 검증자의 지식을 계속 따르게 된다면 검증자는 증명자가 비밀번호를 안다고 납득할 수 있다는 사실은 완전성을 따르게 되며 2. 증명자가 사실은 비밀번호를 모르지만 안다고 거짓말을 했을 경우 검증자에게 언젠가 한 번은 지시대로 수행하지 못하는 경우가 생기기 때문에 증명자가 비밀번호를 안다는 것을 증명할 수 없다는 사실은 건전성을 따를 수 있다. 또한 3. 여러 번의 반복을 통해 검증자는 증명자가 비밀번호를 알고 있다는 사실을 납득했지만 비밀번호가 무엇인지는 알지 못한다는 사실은 영지식성을 따르게 된다.[3]

영지식증명과 암호화폐

영지식 증명은 암호화폐 거래에서 거래 제공자가 공개하는 것 이외에는 제공 받는 사람이 알 수 없도록 분산화 기술로 설계가 되어 있다. 따라서 모든 거래의 프라이버시를 보호함으로써 지급거래 자체는 공개 블록체인에 개시되지만 거래 상대와 금액은 암호화되기 때문에 보안이 유지가 된다. 즉, 영지식 증명은 거래자와 블록체인 값을 모두 드러내지 않는 프라이버시 보호기능과 당사자들이 서로의 신원을 확인하지 않고 암호화폐를 교환할 수 있게 해주는 기능인 거래의 익명화가 가능하게 해주었다.[4]

영지식 증명을 사용한 대표적인 암호화폐는 다크코인의 한 종류인 지캐시(Zcash)가 있으며 지캐시는 영지식 증명을 기술을 기반으로한 zk-SNARKs라는 알고리즘을 개발하여 철저한 익명성을 보장한 거래를 구현하였다. 또한 대시코인(DashCoin) 역시 영지식 증명을 기반으로 하였으며 2017년 10월 16일 진행되었던 암호화폐 이더리움(Ethereum) 로드맵 4단계 중 3단계인 메트로폴리스 단계로 가기 위한 비잔티움 하드포크에도 적용 되었으며 [5]향후 이더리움의 고질적 문제인 확정성 문제를 해결해줄 솔루션으로 예상되고 있다.[6]

동영상 강의

  • 강사 : 온더(Onther)의 박정원

각주

  1. 충북대 경영정보학과 김태성, 〈7장 암호통제〉, 《충북대 컴퓨터과학과》
  2. keepit, 〈KEEP!T History: 영지식 증명 이해하기〉, 《스팀잇》, 2018-10-12
  3. 3.0 3.1 Jungwoo Pyo, 〈Zero-Knowledge proof :: chapter 1. Introduction to Zero-Knowledge Proof & zk-SNARKs〉, 《미디엄》, 2018-07-26
  4. ventasnu, 〈블록체인, 영지식증명(Zero knowledge Proof)이란?〉, 《네이버 블로그》, 2017-11-23
  5. ventasnu, 〈가상화폐 '이더리움' 메트로폴리스를 위한 '비잔티움 하드포크'〉, 《네이버 블로그》, 2017-10-23
  6. dChainers, 〈이더리움, 확장성 솔루션인 플라즈마의 대안으로 영지식 증명(zk-SNARKs) 검토〉, 《더뉴스아시아》, 2018-11-09

참고자료

같이 보기


  의견.png 이 영지식증명 문서는 블록체인 기술에 관한 토막글입니다. 위키 문서는 누구든지 자유롭게 편집할 수 있습니다. [편집]을 눌러 이 문서의 내용을 채워주세요.