영지식 증명: Difference between revisions

From CS Wiki
No edit summary
No edit summary
Line 1: Line 1:
[[분류:보안]]
[[분류:보안]]
;ZKP; Zero-Knowledge Proof
;ZKP; Zero-Knowledge Proof
;prover가 자신이 알고 있는 지식을 공개하지 않으면서, 그 지식을 알고 있다는 사실을 verifier에게 증명하는 proof system
;prover가 자신이 알고 있는 지식을 공개하지 않으면서, 그 지식을 알고 있다는 사실을 verifier에게 증명하는 proof system


* 1980년대 MIT의 Shafi Goldwasser, Silvio Micali and Charles Rackoff가 처음 제시
*1980년대 MIT의 Shafi Goldwasser, Silvio Micali and Charles Rackoff가 처음 제시
 
==조건==
 
*'''완전성(completeness)'''
**어떤 조건이 참이라면 신뢰할 수 있는 검증자(honest verifier)는 신뢰할 수 있는 증명자(honest prover)에 의해 이 사실을 납득할 수 있어야 한다.
*'''건전성(soundness)'''
**어떤 조건이 거짓이면 신뢰할 수 없는 증명자(dishonest prover)는 거짓말을 통해 검증자에게 조건이 참임을 절대 납득시킬 수 없다.
*'''영지식성(zero-knowledge)'''
**어떤 조건이 참일 때, 검증자는 이 조건이 참이라는 사실 이외의 아무 정보를 알 수 없다.


== 조건 ==
== 분류 ==
* '''완전성(completeness)'''
{| class="wikitable"
** 어떤 조건이 참이라면 신뢰할 수 있는 검증자(honest verifier)는 신뢰할 수 있는 증명자(honest prover)에 의해 이 사실을 납득할 수 있어야 한다.
! colspan="2" |분류
* '''건전성(soundness)'''
!기술
** 어떤 조건이 거짓이면 신뢰할 수 없는 증명자(dishonest prover)는 거짓말을 통해 검증자에게 조건이 참임을 절대 납득시킬 수 없다.
|-
* '''영지식성(zero-knowledge)'''
| colspan="2" |Interactive
** 어떤 조건이 참일 때, 검증자는 이 조건이 참이라는 사실 이외의 아무 정보를 알 수 없다.
|
* Graph Isomorphism
* zk-stick(2018)
|-
| rowspan="2" |Non-Interactive
|TTP  사용
|
* [[Zk-SNARKs|zk-snark(2013)]]
* Libra(2019)
|-
|TTP 미사용
|
* Ligero(2017)
* zk-stark(2018)
* Bulletproof(2018)
* Supersonic(2019)
|}
 
=== Interactive ZKP ===
 
=== Non-interactive ZKP ===


== Non-interactive ZKP ==
;Prover와 Verifier가 온라인 상태가 아니더라도 영지식 증명 가능
;Prover와 Verifier가 온라인 상태가 아니더라도 영지식 증명 가능


== [[zk-SNARKs]] ==
==== TTP 사용 ====
;Non-interactive ZKP의 proof size를 줄인 실용 모델
 
* 지캐시에서 도입
* [[zk-SNARKs]] : Non-interactive ZKP의 proof size를 줄인 실용 모델
** 지캐시에서 도입
 
==== TTP 미사용 ====

Revision as of 06:26, 9 May 2021


ZKP; Zero-Knowledge Proof
prover가 자신이 알고 있는 지식을 공개하지 않으면서, 그 지식을 알고 있다는 사실을 verifier에게 증명하는 proof system
  • 1980년대 MIT의 Shafi Goldwasser, Silvio Micali and Charles Rackoff가 처음 제시

조건

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

분류

분류 기술
Interactive
  • Graph Isomorphism
  • zk-stick(2018)
Non-Interactive TTP 사용
TTP 미사용
  • Ligero(2017)
  • zk-stark(2018)
  • Bulletproof(2018)
  • Supersonic(2019)

Interactive ZKP

Non-interactive ZKP

Prover와 Verifier가 온라인 상태가 아니더라도 영지식 증명 가능

TTP 사용

  • zk-SNARKs : Non-interactive ZKP의 proof size를 줄인 실용 모델
    • 지캐시에서 도입

TTP 미사용