의견.png

영지식증명

해시넷
nyw1527 (토론 | 기여)님의 2019년 2월 12일 (화) 16:01 판 (배경)
이동: 둘러보기, 검색

영지식증명(零知識證明, 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) - 동굴의 비유

영지식증명을 쉽게 이해하기 위해 동굴의 비유를 들 수 있다. 찰리는 증명자(prover)이고 스미스는 검증자(verifier)라고 가정하자. 찰리와 스미스 모두 비밀문이 있는 동굴 가까이에 왔다. 동굴은 원형이며 입구는 정면에 있고, 비밀문은 A쪽 경로와 B쪽 경로 사이를 막고 있다. 찰리는 스미스에게 비밀문의 암호를 알고 있다고 말했다. 하지만 찰리는 스미스나 다른 누구에게도 그 암호를 밝히고 싶지 않다. 이에 대해 스미스는 믿을 수 없다며 찰리에게 암호를 알고 있음을 증명하라고 한다.

동굴에는 두 개의 경로만 있다. 왼쪽에는 A가, 오른쪽에는 B가 있다. 찰리는 A와 B 중 어느 한 쪽을 선택해서 들어가고, 검증자인 스미스는 찰리의 경로 선택을 보는 것이 허락되지 않기 때문에 동굴 밖에서 기다린다. 몇 분 후 스미스가 동굴로 와서 A나 B 가운데 하나의 통로를 고른 후 그쪽으로 나오라고 찰리에게 외친다. 찰리는 그 말을 듣고 스미스가 고른 통로에 나타난다. 만약 찰리에게 비밀문의 암호가 있다면, 스미스가 어떤 통로를 고를지라도 찰리는 그 통로로 나올 수 있다. 그러나 찰리에게 비밀 문의 열쇠가 없다면 찰리는 처음 골랐던 통로로만 나올 수 있으므로, 스미스의 요구를 만족할 수 없다. 그래서 타당성을 시험하기 위해서 이 실험은 여러 번 수행된다. 매번 올바른 경로로 찰리가 나타난다면, 스미스는 찰리가 암호를 알고 있다는 것을 검증할 수 있다.

동영상 강의

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

참고자료

같이 보기


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

  1. 충북대 경영정보학과 김태성, 〈7장 암호통제〉, 《충북대 컴퓨터과학과》
  2. keepit, 〈KEEP!T History: 영지식 증명 이해하기〉, 《스팀잇》, 2018-10-12
  3. Jungwoo Pyo, 〈Zero-Knowledge proof :: chapter 1. Introduction to Zero-Knowledge Proof & zk-SNARKs〉, 《미디엄》, 2018-07-26