이 글에서는 제로지식증명(Zero-knowledge proofs)이 무엇인지 알아볼 것이다. 모든 개발자들은 암호화 블록체인을 안전하게 유지하고 혁신적인 기능을 추가하려고 노력하고 있다. 그 중에서도 제로지식증명은 암호화폐 거래 시 사용자에게 더 높은 수준의 개인 정보 보호를 제공할 수 있다.
제로지식증명은 무엇인가요?
제로지식증명(Zero-knowledge proofs)은 주장의 유효성을 증명할 때 주장 자체를 공개하지 않고 유효성을 입증하는 방법이다. '증명자(Prover)'는 주장을 증명하려는 당사자이며, '검증자(Verifier)'는 주장을 검증하는 책임이 있다.
제로지식증명은 먼저 1985년 논문인 "상호작용 증명 시스템의 지식 복잡성"에서 처음 등장했으며, 현재 널리 사용되는 제로지식증명의 정의를 제공한다:
제로지식 프로토콜은 한 당사자(증명자)가 다른 당사자(검증자)에게 특정 주장이 사실임을 증명할 수 있는 방법이며, 이때 이 특정 주장이 사실임을 제외한 어떤 정보도 공개하지 않는다.
제로지식증명은 연도별로 발전하여 현재는 여러 실제 응용 분야에서 사용되고 있다.
제로지식증명(Zero-knowledge proofs)이 필요한 이유는 무엇인가요?
제로지식증명은 적용 암호학에서의 중요한 발전으로, 개인들의 정보 보안을 향상시키겠다는 약속을 품었다.
개인 식별 가능 정보(PII)가 제3자 서비스와 공유되는 경우 이는 해킹에 취약한 중앙 데이터베이스에 저장된다. 신원 도용이 중요한 문제로 부각되면서, 민감한 정보를 공유하는 보다 개인 정보 보호 수단에 대한 요구가 높아지고 있다.
제로지식증명은 주장의 타당성을 증명하기 위해 정보를 공개할 필요 없이 이 문제를 해결한다. 제로지식 프로토콜은 주장을 입력으로 사용하여 그 타당성을 간결한 증명으로 생성한다. 이 증명은 해당 문장이 참임을 강력하게 보장하면서도 그 생성에 사용된 정보를 노출시키지 않는다.
제로지식증명의 종류
ZK-SNARK는 '제로지식간결비대화증명(Zero-Knowledge Succinct Non-Interactive Argument of Knowledge)'의 약어다. ZK-SNARK 프로토콜은 다음과 같은 특징을 가지고 있다:
- 제로지식: 검증자는 문장에 대해 다른 어떤 정보도 알지 않고도 해당 문장의 무결성을 확인할 수 있다. 검증자가 문장에 대해 알고 있는 유일한 것은 그 문장이 참인지 거짓인지 여부뿐이다.
- 간결: 제로지식 증명은 증거보다 작고 빠르게 검증될 수 있다.
- 비대화형: 증명은 '비대화형'이다. 왜냐하면 증명자와 검증자가 한 번만 상호작용하기 때문에, 여러 번의 통신이 필요한 대화형 증명과는 다르다.
- 강력: 증명이 '타당성(soundness)' 요건을 충족시키므로, 부정 행위는 극히 어렵다.
- 지식: 제로지식 증명은 비밀 정보에 접속하지 않으면 구성할 수 없다. 증인을 가지지 않은 증명자가 유효한 제로지식 증명을 계산하는 것은 어렵거나 불가능하다.
앞서 언급된 '공유 키'는 증명자와 검증자가 증명 생성 및 검증에 사용하기로 합의한 공개 매개변수를 의미한다. 공개 매개변수를 생성하는 것은 프로토콜 보안에 중요한 역할을 하기 때문에 민감한 작업이다. CRS(Ceremonial Response Setup) 생성 시 사용되는 엔트로피(랜덤성)가 부정한 증명자에게 들어가면 그들은 가짜 증명을 계산할 수 있다.
다중 계산(MPC, Multi-party computation)은 공개 매개변수를 생성하는 데 드는 위험을 줄이는 방법이다. 여러 당사자가 신뢰할 수 있는 설정 세레모니에 참여하여 각 사람이 일부 무작위 값을 기여하여 CRS를 생성한다. 적어도 한 명의 정직한 당사자가 자신의 엔트로피를 파기한다면 ZK-SNARK 프로토콜은 계산적으로 타당성을 유지한다.
신뢰 설정은 매개변수 생성에 참여하는 참가자들을 신뢰해야 하는데요, ZK-STARK의 발전으로 신뢰할 수 없는 설정을 사용하는 증명 프로토콜이 가능해졌다.
ZK-STARK는 '제로지식확장형투명증명(Zero-Knowledge Scalable Transparent Argument of Knowledge)'의 약어다. ZK-STARK는 ZK-SNARK와 유사하지만 다음과 같은 특징을 가지고 있다:
- 확장 가능성: ZK-STARK는 증인의 크기가 클 때 증명 생성 및 검증에서 ZK-SNARK보다 더 빠르다. STARK 증명에서는 증인이 커져도 증명자 및 검증자의 시간이 약간만 증가한다. (SNARK 증명자 및 검증자의 시간은 증인의 크기에 선형적으로 증가한다.)
- 투명성: ZK-STARK는 신뢰 설정이 아닌 공개적으로 검증 가능한 무작위성에 의존하여 증명 및 검증을 위한 공개 매개변수를 생성한다. 따라서 ZK-SNARK보다 투명성이 높다.
ZK-STARK는 ZK-SNARK보다 더 큰 증명을 생성하므로 일반적으로 더 높은 검증 오버헤드를 갖는다. 그러나 대량의 데이터 집합을 증명하는 경우 등 일부 상황에서는 ZK-STARK가 ZK-SNARK보다 비용 효율적일 수 있다.
결론
제로지식증명은 익명 결제, 신원 보호, 인증 및 검증 가능한 계산 등 다양한 방법으로 사용될 수 있지만, 일부 단점도 존재한다. 이 기사에서는 제로지식증명이 무엇인지에 대해 알아볼 수 있다.

















