검수요청.png검수요청.png

"영지식증명"의 두 판 사이의 차이

해시넷
이동: 둘러보기, 검색
잔글 (동영상 강의)
잔글 (내용 다듬기)
1번째 줄: 1번째 줄:
 
'''영지식증명'''<!--영지식 증명-->(零知識證明, zero-knowledge proof)이란 거래 상대방에게 어떠한 정보도 제공하지 않은 채, 자신이 해당 정보를 가지고 있다는 사실을 증명하는 것을 말한다.
 
'''영지식증명'''<!--영지식 증명-->(零知識證明, zero-knowledge proof)이란 거래 상대방에게 어떠한 정보도 제공하지 않은 채, 자신이 해당 정보를 가지고 있다는 사실을 증명하는 것을 말한다.
  
==역사==
+
== 역사 ==
영지식 증명은 1985년 Shafi Goldwasser, Silvio Micali, Charles Rackoff의 논문 "The Knowledge Complexity of Interactive Proof-Systems"에서 처음 소개된 개념으로 현대 [[암호학]]에서는 영지식 증명을 다자간의 [[비대면 통신 프로토콜]]에서 정보보호 기능을 제공하기 위해 암호기술을 적용하는 암호 프로토콜 중 매우 중요한 고급 암호 [[프로토콜]]의 한 종류로 취급한다.<ref>충북대 경영정보학과 김태성, 〈[http://contents.kocw.or.kr/contents4/document/lec/2013/Chungbuk/KimTaeseong/7.pdf 7장 암호통제]〉, 《충북대 컴퓨터과학과》</ref>
+
영지식 증명은 1985년 Shafi Goldwasser, Silvio Micali, Charles Rackoff의 논문 "The Knowledge Complexity of Interactive Proof-Systems"에서 처음 소개된 개념이다. 현대 [[암호학]]에서는 영지식증명을 다자간의 [[비대면 통신 프로토콜]]에서 정보보호 기능을 제공하기 위해 암호기술을 적용하는 암호 프로토콜 중 매우 중요한 고급 암호 [[프로토콜]]의 한 종류로 취급한다.<ref>김태성, 〈[http://contents.kocw.or.kr/contents4/document/lec/2013/Chungbuk/KimTaeseong/7.pdf 7장 암호통제]〉, 《충북대 경영정보학과》</ref> 암호화폐에서 영지식증명은 2013년 [[존스홉킨스 대학교]]의 연구진들이 실행한 [[제로코인]](ZeroCoin)에서 처음 적용이 되었다. 제로코인은 2014년 [[제로캐시]](Zero Cash)라는 이름을 거쳐, 2016년 [[지캐시]](Zcash)라는 이름으로 변경되었다.<ref>keepit, 〈[https://steemit.com/kr/@keepit/5jnvsh-keep-t-history KEEP!T History: 영지식 증명 이해하기]〉, 《스팀잇》, 2018-10-12</ref>
암호화폐에서의 영지식 증명은 2013년 존스 홉킨스 대학의 연구진들이 실행한 제로코인(ZeroCoin)에서 처음 적용이 되었으며 제로코인은 이후 2014년 제로캐시라는 이름을 거쳐 2016년 지캐시(Zcash)로 자리를 잡았다.<ref>keepit, 〈[https://steemit.com/kr/@keepit/5jnvsh-keep-t-history KEEP!T History: 영지식 증명 이해하기]〉, 《스팀잇》, 2018-10-12</ref>
 
  
==배경==
+
== 배경 ==
영지식 증명은 간단히 말해 증명자가 자신이 알고 있는 지식과 정보를 공개하지 않으면서, 그 지식을 알고 있다는 사실을 검증자에게 증명하는 시스템이다. 여기서 '''증명자(Prover)'''는 자신이 해당 지식을 알고 있음을 증명하는 주체이며 '''검증자(Verifier)'''는 증명자가 해당 지식을 알고 있다는 사실을 검증해주는 주체이다.
+
영지식증명은 간단히 말해 증명자가 자신이 알고 있는 지식과 정보를 공개하지 않으면서, 그 지식을 알고 있다는 사실을 검증자에게 증명하는 시스템이다. 여기서 '''증명자'''(prover)는 자신이 해당 지식을 알고 있음을 증명하는 주체이며, '''검증자'''(verifier)는 증명자가 해당 지식을 알고 있다는 사실을 검증해주는 주체이다.
  
영지식 증명의 이론적 기반은 [[대화형 증명 시스템]](Interactive proof system)이다. 대화형 증명 시스템은 증명자와 검증자 상호 간 메시지를 교환하는 계산(Computation)을 모델링한 이론적인 컴퓨터 모델(abstract machine)을 말한다. 대화형 증명 시스템에서는 증명자는 전능하고 무한정의 계산 자원을 갖고 있지만 신뢰할 수 없는 존재인 반면, 검증자는 제한된 계산 자원을 갖고 있지만 신뢰할 수 있는 존재임을 전제로 한다. 따라서 지금까지 대화형 상호 증명 시스템에서는 증명자가 악역을 맡아 이들이 검증자를 속이려는 상황을 가정했다.  
+
영지식 증명의 이론적 기반은 [[대화형 증명 시스템]](interactive proof system)이다. 대화형 증명 시스템은 증명자와 검증자 상호간 메시지를 교환하는 계산(computation)을 모델링한 추상적 컴퓨터 모델(abstract machine)을 말한다. 대화형 증명 시스템에서 증명자는 전능하고 무제한의 계산 자원을 갖고 있지만 신뢰할 수 없는 존재인 반면, 검증자는 제한된 계산 자원을 갖고 있지만 신뢰할 수 있는 존재임을 전제로 한다. 따라서 지금까지 대화형 상호 증명 시스템에서는 증명자가 악역을 맡아 이들이 검증자를 속이려는 상황을 가정했다.
  
하지만 영지식 증명에서는 다음과 같은 상황에서 추가적으로 검증자도 악의적인 목적을 갖는다는 구성을 생각하였다. 예를 들어 증명자가 자신의 비밀번호를 알고 있고, 자신이 알고 있다는 사실을 증명하기 위해 관련된 정보를 검증자에게 보낸 상황을 가정하게 되면 이때 검증자는 전달 받은 증명자의 정보(비밀번호, 주민등록번호)들을 판매하여 부당한 이익을 챙길 수 있다는 가정이다. 이와 같은 경우를 예방하기 위해 영지식 증명은 기존의 대화형 증명 시스템에 1. 누구나 검증자가 정보를 누설하지 않는다는 걸 확인할 수 있는가 2. 검증자가 검증 과정 동안 알고 있어야 하는 정보의 비중은 어느 정도 인가와 같은 2가지 질문을 제시하였으며 이 의문점들을 해결하기 위해서 증명자가 제공한 정보의 증명를 통해 악의적인 검증자가 검증을 수행할 수 있지만, 증명자의 정보 자체에 대해서는 유추할 수 없는 증명 시스템이 필요했으며 이 고민에 대한 해결책이 곧 영지식 증명이었다.<ref name="영지식 증명">Jungwoo Pyo, 〈[https://medium.com/decipher-media/zero-knowledge-proof-chapter-1-introduction-to-zero-knowledge-proof-zk-snarks-6475f5e9b17b Zero-Knowledge proof :: chapter 1. Introduction to Zero-Knowledge Proof & zk-SNARKs]〉, 《미디엄》, 2018-07-26</ref>
+
하지만 영지식 증명에서는 다음과 같은 상황에서 추가적으로 검증자도 악의적인 목적을 갖는다는 구성을 생각하였다. 예를 들어 증명자가 자신의 비밀번호를 알고 있고, 자신이 알고 있다는 사실을 증명하기 위해 관련된 정보를 검증자에게 보낸 상황을 가정해 보자. 이때 검증자는 전달 받은 증명자의 정보(비밀번호, 주민등록번호)들을 판매하여 부당한 이익을 챙길 수 있다는 가정이다. 이와 같은 경우를 예방하기 위해 영지식 증명은 기존의 대화형 증명 시스템에서, 1. 누구나 검증자가 정보를 누설하지 않는다는 걸 확인할 수 있는가? 2. 검증자가 검증 과정 동안 알고 있어야 하는 정보의 비중은 어느 정도 인가? 등 2가지 질문을 제시하였다. 이 의문점들을 해결하기 위해서 증명자가 제공한 정보의 증명를 통해 악의적인 검증자가 검증을 수행할 수 있지만, 증명자의 정보 자체에 대해서는 유추할 수 없는 증명 시스템이 필요했으며, 이 고민에 대한 해결책이 곧 영지식증명이었다.<ref name="영지식 증명">표정우(Jungwoo Pyo), 〈[https://medium.com/decipher-media/zero-knowledge-proof-chapter-1-introduction-to-zero-knowledge-proof-zk-snarks-6475f5e9b17b Zero-Knowledge proof :: chapter 1. Introduction to Zero-Knowledge Proof & zk-SNARKs]〉, 《미디엄》, 2018-07-26</ref>
  
==알리바바 동굴 예시와 조건 ==
+
== 특징 ==
[[파일:영지식증명-동굴의 비유.jpg|썸네일|오른쪽|530픽셀|'''영지식증명'''(zero-knowledge proof) - 동굴의 비유]]
 
영지식 증명은 1. 어떤 조건이 참이라면 신뢰 할 수 있는 검증자(honest verifier)는 신뢰할 수 있는 증명자(honest prover)에 의해 이 사실을 납득할 수 있어야 한다는 '''완전성(Completeness)''' 2. 어떤 조건이 거짓이면 신뢰할 수 없는 증명자(dishonest prover)는 거짓말을 통해 검증자에게 조건이 참임을 절대 납득시킬 수 없다는 '''건전성(Soundness)''' 3. 어떤 조건이 참일 때, 검증자는 이 조건이 참이라는 사실 이외의 아무 정보를 알 수 없다는 '''영지식성(Zero-Knowledge)'''과 같은 3가지 조건을 모두 만족해야 한다.
 
  
이러한 조건을 만족시키는 사례임과 동시에 영지식 증명을 이해하기 쉬운 문제로 설명한 사례가 알리바바 동굴(Alibaba's cave) 사례이다.
+
영지식 증명은 3가지 조건을 모두 만족해야 한다.
해당 사례에서는 고리형태의 동굴에는 A와 B라는 길이 있으며 그 사이에는 도어락이 설치된 비밀문이 있다. 검증자는 증명자에게 직접적으로 설치된 도어락의 비밀번호를 물어보지 않고 증명자가 비밀번호를 알고 있다는 명제가 참인지 확인하려 한다. 이 조건문이 참인지를 확인하기 위해 1. 증명자가 먼저 동굴에 들어간 다음, 도어락 근처로 이동한 후 검증자를 동굴 안으로 부른다. 2. 검증자는 A와 B의 갈림길에 서서 증명자에게 특정 길로 나오라고 지시한다. 3. 증명자는 검증자가 지시한 길로 나온다. 이 과정만 보았을 때는 증명자가 비밀번호를 알고 있어서 검증자가 지시한 길로 나왔는지 확신할 수 없지만 위 과정을 일정 횟수 이상 반복하여도 증명자가 검증자의 지시대로 행동했다면 증명자는 검증자에게 자신이 비밀번호를 알고 있다는 사실을 납득시킬 수 있다.
+
* '''완전성'''(completeness) : 어떤 조건이 참이라면 신뢰할 수 있는 검증자(honest verifier)는 신뢰할 수 있는 증명자(honest prover)에 의해 이 사실을 납득할 수 있어야 한다.
 +
* '''건전성'''(soundness) : 어떤 조건이 거짓이면 신뢰할 수 없는 증명자(dishonest prover)는 거짓말을 통해 검증자에게 조건이 참임을 절대 납득시킬 수 없다.
 +
* '''영지식성'''(zero-knowledge) : 어떤 조건이 참일 때, 검증자는 이 조건이 참이라는 사실 이외의 아무 정보를 알 수 없다.
 +
 
 +
== 동굴의 비유 ==
 +
[[파일:영지식증명-동굴의 비유.jpg|썸네일|오른쪽|530픽셀|'''영지식증명'''(zero-knowledge proof) - 알리바바 동굴의 비유]]
 +
 
 +
영지식증명의 3가지 조건인 완전성, 건전성, 영지식성을 만족시키는 사례임과 동시에 영지식 증명을 이해하기 쉬운 문제로 설명한 사례가 알리바바 동굴(Alibaba's cave)의 비유이다.
 +
 
 +
둥근 고리 형태의 동굴에는 A와 B라는 길이 있으며 그 사이에는 도어락이 설치된 비밀문이 있다. 검증자는 증명자에게 직접적으로 설치된 도어락의 비밀번호를 물어보지 않고 증명자가 비밀번호를 알고 있다는 명제가 참인지 확인하려 한다. 이 조건문이 참인지를 확인하기 위해 1. 증명자가 먼저 동굴에 들어간 다음, 도어락 근처로 이동한 후 검증자를 동굴 안으로 부른다. 2. 검증자는 A와 B의 갈림길에 서서 증명자에게 특정 길로 나오라고 지시한다. 3. 증명자는 검증자가 지시한 길로 나온다. 이 과정을 한 번만 보았을 때는 증명자가 비밀번호를 알고 있어서 검증자가 지시한 길로 나왔는지 확신하기 어렵다. 왜냐하면 증명자가 우연히 올바른 길로 나왔을 수도 있기 때문이다. 하지만 위 과정을 일정 횟수 이상 반복하여도 항상 증명자가 검증자의 지시대로 행동했다면 증명자는 검증자에게 자신이 비밀번호를 알고 있다는 사실을 납득시킬 수 있다.
 
   
 
   
이 과정을 영지식 증명의 조건에 대입시키게 된다면 1. 여러 번의 경우에도 증명자가 검증자의 지식을 계속 따르게 된다면 검증자는 증명자가 비밀번호를 안다고 납득할 수 있다는 사실은 완전성을 따르게 되며 2. 증명자가 사실은 비밀번호를 모르지만 안다고 거짓말을 했을 경우 검증자에게 언젠가 한 번은 지시대로 수행하지 못하는 경우가 생기기 때문에 증명자가 비밀번호를 안다는 것을 증명할 수 없다는 사실은 건전성을 따를 수 있다. 또한 3. 여러 번의 반복을 통해 검증자는 증명자가 비밀번호를 알고 있다는 사실을 납득했지만 비밀번호가 무엇인지는 알지 못한다는 사실은 영지식성을 따르게 된다.<ref name="영지식 증명"></ref>
+
이 과정을 영지식증명의 3가지 조건에 대입시키면 다음과 같다.<ref name="영지식 증명"></ref>
 
+
* 완전성(completeness) : 위 실험을 여러 번 수행하는 경우에도 증명자가 검증자의 지시를 계속 따르게 된다면 검증자는 증명자가 비밀번호를 안다고 납득할 수 있다.
==영지식증명과 암호화폐==
+
* 건전성(soundness) : 증명자가 사실은 비밀번호를 모르지만 안다고 거짓말을 했을 경우 검증자에게 언젠가 한 번은 지시대로 수행하지 못하는 경우가 생기기 때문에 증명자가 비밀번호를 안다는 것을 증명할 수 없다.
영지식 증명은 암호화폐 거래에서 거래 제공자가 공개하는 것 이외에는 제공 받는 사람이 알 수 없도록 [[분산화]] 기술로 설계가 되어 있다. 따라서 모든 거래의 프라이버시를 보호함으로써 지급거래 자체는 공개 [[블록체인]]에 개시되지만 거래 상대와 금액은 암호화되기 때문에 보안이 유지가 된다. 즉, 영지식 증명은 거래자와 블록체인 값을 모두 드러내지 않는 프라이버시 보호기능과 당사자들이 서로의 신원을 확인하지 않고 암호화폐를 교환할 수 있게 해주는 기능인 거래의 [[익명화]]가 가능하게 해주었다.<ref>ventasnu, 〈[https://blog.naver.com/ventasnu/221146493982  블록체인, 영지식증명(Zero knowledge Proof)이란?]〉, 《네이버 블로그》, 2017-11-23</ref>
+
* 영지식성(zero-knowledge) : 여러 번의 반복을 통해 검증자는 증명자가 비밀번호를 알고 있다는 사실을 납득했지만 비밀번호가 무엇인지는 알지 못한다.
  
영지식 증명을 사용한 대표적인 암호화폐는 [[프라이버시 코인]]의 한 종류인 [[지캐시]](Zcash)가 있으며 지캐시는 영지식 증명을 기술을 기반으로한 [[zk-SNARKs]]라는 알고리즘을 개발하여 철저한 익명성을 보장한 거래를 구현하였다. 또한 [[대시코인]](DashCoin) 역시 영지식 증명을 기반으로 하였으며 2017년 10월 16일 진행되었던 암호화폐 [[이더리움]](Ethereum) 로드맵 4단계 중 3단계인 메트로폴리스 단계로 가기 위한 [[비잔티움 하드포크]]에도 적용 되었으며
+
== 활용 ==
<ref>ventasnu, 〈[https://blog.naver.com/ventasnu/221146493982 가상화폐 '이더리움' 메트로폴리스를 위한 '비잔티움 하드포크']〉, 《네이버 블로그》, 2017-10-23</ref>향후 이더리움의 고질적 문제인 확정성 문제를 해결해줄 솔루션으로 예상되고 있다.<ref>dChainers, 〈[https://thenews.asia/ko/news/4006 이더리움, 확장성 솔루션인 플라즈마의 대안으로 영지식 증명(zk-SNARKs) 검토]〉, 《더뉴스아시아》, 2018-11-09</ref>
+
영지식증명은 개인정보보호를 중요시하는 [[프라이버시 코인]](privacy coin)에 주로 활용되고 있다. 영지식증명은 [[암호화폐]] 거래에서 거래 제공자가 공개하는 것 이외의 정보는 제공 받는 사람이 알 수 없도록 [[분산화]] 기술로 설계가 되어 있다. 따라서 모든 거래의 [[프라이버시]]를 보호할 수 있다. 거래내역 자체는 누구에게나 공개된 [[블록체인]]에 게시되지만, 거래 상대자의 신원과 거래 금액은 암호화되기 때문에 보안이 유지가 된다. 즉, 영지식증명 기술은 거래 금액을 드러내지 않는 [[프라이버시]] 보호 기능과 당사자들이 서로의 신원을 확인하지 않고도 암호화폐를 교환할 수 있게 해주는 기능인 거래의 [[익명화]]가 가능하게 해주었다.<ref>ventasnu, 〈[https://blog.naver.com/ventasnu/221146493982 블록체인, 영지식증명(Zero knowledge Proof)이란?]〉, 《네이버 블로그》, 2017-11-23</ref>
  
 +
영지식 증명을 사용한 대표적인 암호화폐는 [[프라이버시 코인]]의 한 종류인 [[지캐시]](Zcash)가 있다. 지캐시는 영지식증명을 기술을 기반으로 한 [[영지식 스나크]](zk-SNARKs)<!--zk-SNARK-->라는 [[알고리즘]]을 개발하여 철저한 익명성을 보장한 거래를 구현하였다. 또한 대표적인 프라이버시 코인의 일종인 [[대시]](Dash) 역시 영지식증명을 기반으로 하였다. 영지식증명 기술은 2017년 10월 16일 진행되었던 [[이더리움]](Ethereum) 로드맵 4단계 중 3단계인 메트로폴리스 단계로 가기 위한 [[비잔티움 하드포크]]에도 적용되었다.<ref>ventasnu, 〈[https://blog.naver.com/ventasnu/221146493982 가상화폐 '이더리움' 메트로폴리스를 위한 '비잔티움 하드포크']〉, 《네이버 블로그》, 2017-10-23</ref> 영지식증명 기술은 향후 [[이더리움]]의 고질적 문제 중 하나인 [[확장성]] 문제를 해결해 줄 솔루션으로 예상되고 있다.<ref>dChainers, 〈[https://thenews.asia/ko/news/4006 이더리움, 확장성 솔루션인 플라즈마의 대안으로 영지식 증명(zk-SNARKs) 검토]〉, 《더뉴스아시아》, 2018-11-09</ref>
  
 
{{각주}}
 
{{각주}}

2019년 3월 10일 (일) 03:44 판

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

역사

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

배경

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

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

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

특징

영지식 증명은 3가지 조건을 모두 만족해야 한다.

  • 완전성(completeness) : 어떤 조건이 참이라면 신뢰할 수 있는 검증자(honest verifier)는 신뢰할 수 있는 증명자(honest prover)에 의해 이 사실을 납득할 수 있어야 한다.
  • 건전성(soundness) : 어떤 조건이 거짓이면 신뢰할 수 없는 증명자(dishonest prover)는 거짓말을 통해 검증자에게 조건이 참임을 절대 납득시킬 수 없다.
  • 영지식성(zero-knowledge) : 어떤 조건이 참일 때, 검증자는 이 조건이 참이라는 사실 이외의 아무 정보를 알 수 없다.

동굴의 비유

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

영지식증명의 3가지 조건인 완전성, 건전성, 영지식성을 만족시키는 사례임과 동시에 영지식 증명을 이해하기 쉬운 문제로 설명한 사례가 알리바바 동굴(Alibaba's cave)의 비유이다.

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

이 과정을 영지식증명의 3가지 조건에 대입시키면 다음과 같다.[3]

  • 완전성(completeness) : 위 실험을 여러 번 수행하는 경우에도 증명자가 검증자의 지시를 계속 따르게 된다면 검증자는 증명자가 비밀번호를 안다고 납득할 수 있다.
  • 건전성(soundness) : 증명자가 사실은 비밀번호를 모르지만 안다고 거짓말을 했을 경우 검증자에게 언젠가 한 번은 지시대로 수행하지 못하는 경우가 생기기 때문에 증명자가 비밀번호를 안다는 것을 증명할 수 없다.
  • 영지식성(zero-knowledge) : 여러 번의 반복을 통해 검증자는 증명자가 비밀번호를 알고 있다는 사실을 납득했지만 비밀번호가 무엇인지는 알지 못한다.

활용

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

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

각주

  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검수요청.png 이 영지식증명 문서는 블록체인 기술에 관한 글로서 검토가 필요합니다. 위키 문서는 누구든지 자유롭게 편집할 수 있습니다. [편집]을 눌러 문서 내용을 검토·수정해 주세요.