1 분 소요

영지식증명(Zero-knowledge Proof)


영지식증명이란, 거래 상대방에게 어떠한 정보도 제공하지 않은 채, 자신이 해당 정보를 가지고 있다는 사실을 증명하는 방법이다.

img1

위 그림에서 조니가 자신이 열쇠를 가지고 있다는 증명자이고 사라가 조니가 열쇠를 가지고 있다는 것을 확인할 검증자라면, 사라는 열쇠를 보지 않고도 조니가 계속해서 사라의 말대로 입구를 찾아서 나온다면, 열쇠를 가지고 있다는 것으로 판단한다.

영지식증명의 3가지 조건

  • 완전성(Completeness) : 어떤 조건이 참이라면 신뢰할 수 있는 검증자는 신뢰할 수 있는 증명자에 의해 이 사실을 납득할 수 있어야 한다. 위 실험을 여러 번 수행하더라도, 증명자가 검증자의 지시를 계속 따르게 된다면 검증자는 증명자가 열쇠를 가지고 있다고 납득할 수 있다.
  • 건전성(Soundness) : 어떤 조건이 거짓이면 신뢰할 수 없는 증명자는 거짓말을 통해 검증자에게 조건이 참임을 절대 납득시킬 수 없다. 증명자는 사실 열쇠가 없지만, 있다고 거짓말 한 경우, 언젠가 검증자의 지시에 다르지 못하는 경우가 생기기 때문에, 검증자에게 열쇠가 있다는 것을 증명할 수 없다.
  • 영지식성(Zero-knowledge) : 어떤 조건이 참일 때, 검증자는 이 조건이 참이라는 사실 이외의 아무 정보를 알 수 없다. 여러 번의 반복을 통해 검증자는 증명자가 열쇠를 가지고 있다는 것은 알지만, 그 열쇠가 어떻게 생겼는지는 알지 못한다.

블록체인에서의 영지식 증명 솔루션

블록체인에서는 프라이버시 문제와 확장성을 해결하기 위해 영지식 증명을 사용한다. 내용은 다음과 같다.

프라이버시 솔루션


블록체인 프라이버시 문제는 거래 기록 안에는 전송자와 수신자, 거래량 등이 기록된다는 사실이다. 때문에 블록체인에서는 유효한 트랜잭션을 처리하기 위해서 해당 거래 기록을 투명하게 제공해야 하며, 이를 통해 검증자들은 전송자와 수신자가 얼마만큼의 거래를 했는지 알게 된다. 이에 영지식증명을 도입하면, 검증자들은 증명자를 통해 전송자와 수신자, 거래량 등을 모르더라도 해당 트랜잭션이 유효한 트랜잭션임을 확인하고 블록체인 프라이버시 문제를 해결할 수 있다.(동시에 익명성을 통해 악용된다면 다크 코인과 같은 문제도 있다.)

  • Ex Zcash, Monero

확장성 솔루션


영지식증명을 사용하게 되면 오프체인에서 트랜잭션을 하나로 묶어 증명할 수 있을 뿐만 아니라 트랜잭션에는 수신자, 전송자, 거래량과 같은 데이터가 포함되지 않기 때문에 트랜잭션 사이즈 또한 감소하여 수수료 또한 감소할 수 있다.

  • Ex. Monero, zkRollup

img2

본 포스팅은 코드스테이츠 BEB 과정을 수강하며 작성한 글입니다.

Reference
https://www.youtube.com/watch?v=jm7ajP1wq0Q&t=1621s

카테고리:

업데이트: