신뢰를 보장할 수 없는 상대방에게 어떠한 정보도 제공하지 않은 채 자신이 해당 정보를

가지고 있다는 사실을 증명하려면 어떻게 해야할까요?

 

이 논제는 영지식증명 알고리즘을 통해 해결이 가능합니다.

 

영지식증명(Zero Knowledge Proof, ZKP)이란 증명자가 자신이 알고 있는 지식과 정보를 공개하지
않으면서 그 지식을 알고 있다는 사실을 검증자에게 증명하는 시스템입니다.

 


영지식 증명은 다음과 같은 3가지 조건을 모두 만족해야 합니다.

1. 완전성(completeness) 
: 어떤 조건이 참이라면 신뢰할 수 있는 검증자는 신뢰할 수 있는 증명자에 의해 
  이 사실을 납득할 수 있어야 합니다.

2. 건전성(soundness)
 
: 어떤 조건이 거짓이면 신뢰할 수 없는 증명자는 거짓말을 통해 검증자에게 조건이 참임을
  절대 납득시킬 수 없습니다.

3. 영지식성(zero-knowledge) 
: 어떤 조건이 참일 때, 검증자는 이 조건이 참이라는 사실 이외의 아무 정보를 알 수 없습니다.

 

장 자크 키스케다(Jean-Jacques Quisquater)의 〈어린이들을 위한 영지식증명〉 논문에서 서술한 동굴의

비유를 통해 영지식 증명 알고리즘을 쉽게 이해해보도록 하죠!

 

한 동굴이 있고 동굴 안에는 2가지 통로만이 존재한다고 가정합니다.

통로 사이에는 키가 존재하며 증명자는 해당 열쇠의 키를 가지고 있다는 것을 증명하려고 합니다.
그러면서 동시에 자신이 가지고 있는 정보는 보여주지 않아야 합니다.

 

증명자의 정보를 숨기기 위해 검증자는 동굴 밖에서 기다리며 증명자가 A/B 통로 중 선택합니다.

키가 존재한다면 검증자가 어떤 통로를 선택하더라고 반대편 통로로 나올 수 있습니다.

 

하지만 증명자가 키가 없다면 검증자는 선택한 길로 되돌아와야 하기 때문에 증명자는 검증자 외에

다른 사람에게 어떠한 정보도 주지 않고 키를 가지고 있다는 사실을 증명할 수 있게 됩니다.

 

이 기술을 통해 블록체인 상의 모든 트랜젝션의 프라이버시를 보호하고 지급거래 자체는 공개 블록체인

(Public chain)에 게시되지만 거래 대상과 금액은 암호화 되어 거래의 익명화가 가능하게 됩니다.

 

읽어주셔서 감사합니다.

 

 

반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기