**영지식 증명(ZKP)**은 한 당사자(증명자)가 다른 당사자(검증자)에게 명제 자체의 진실성 외의 추가 정보를 공개하지 않고 명제의 유효성을 확신시킬 수 있도록 하는 암호화 도구입니다. ZKP는 수학적 퍼즐로, 올바르게 풀리면 수신자가 진짜임을 증명합니다. 이는 개인 정보 보호를 강화하고 다양한 응용 프로그램의 보안을 향상시키는 데 유용한 도구입니다.[1]
개요
지식 증명은 "증명자"가 "검증자"에게 특정 정보를 알고 있음을 확신시키는 암호화 증명입니다. 증명자는 암호화 증명을 생성하는 개체 또는 프로그램입니다. 검증자는 증명의 내용을 확인하는 개체 또는 프로그램입니다. 지식 증명에는 완전성과 건전성이라는 두 가지 기본적인 특징이 있으며, 지식 증명(PoK)과 영지식 증명(ZKP)의 주요 차이점은 영지식입니다. 명제가 참이라면, 검증자는 명제가 참이라는 것 외에는 증명자로부터 아무것도 배우지 못합니다.[8][12]
ZPK의 개념은 1985년 Shafi Goldwasser, Silvio Micali, 그리고 Charles Rackoff가 발표한 논문 "The Knowledge Complexity of Interactive Proof-Systems"에서 소개되었습니다.[12]
증명자는 자신이 값 X를 알고 있다는 것을 검증자에게 값 X 자체가 아닌 그 사실만을 알려 증명할 수 있습니다. 이 개념의 핵심은 정보를 공개하지 않고 지식의 소유를 증명하는 것입니다. 여기서 주요 과제는 X가 무엇인지 또는 다른 정보를 말하지 않고 값 X에 대한 지식을 보여주는 것입니다.[2]
영지식 증명(ZKP)은 역설적인 개념이지만 암호화, 블록체인 기술 및 개인 정보 보호 시스템을 포함한 다양한 분야에서 응용 가능성이 매우 높습니다.
영지식 증명의 종류
각각 고유한 강점과 약점을 가진 여러 유형의 ZKP가 있습니다. 가장 일반적인 유형 중 일부는 다음과 같습니다.
ZK-SNARK: 특히 효율적이며 계산의 유효성에 대한 명제를 증명하는 데 사용할 수 있는 비대화형 ZKP입니다. [9][8]
ZK-STARK: ZK-SNARK보다 효율성이 훨씬 뛰어나지만 구성이 더 복잡한 비대화형 ZKP입니다.[10][8]
영지식 증명의 잠재적 응용 분야
ZKP는 다음을 포함한 광범위한 잠재적 응용 분야를 가지고 있습니다.
개인 정보 보호 인증: 사용자는 개인 정보를 공개하지 않고 웹사이트 또는 서비스에 자신의 신원을 증명할 수 있습니다.
안전한 투표: 유권자는 자신의 신원이나 투표를 공개하지 않고 투표할 자격이 있음을 증명할 수 있습니다.
익명 자격 증명: 사용자는 자신의 신원을 공개하지 않고 자격 증명을 얻고 사용할 수 있습니다.
블록체인 확장성: ZKP는 기본 데이터를 공개하지 않고 트랜잭션을 검증하는 데 사용되어 블록체인에 저장된 데이터 양을 줄이고 확장성을 향상시킬 수 있습니다.
영지식 지식 증명: 이는 지식 자체를 공개하지 않고 특정 지식의 소유를 증명하는 데 사용할 수 있습니다.
ZKP의 주요 특성
완전성: 명제가 참이고 증명자가 프로토콜을 올바르게 따르면 검증자는 항상 확신하게 됩니다.
건전성: 명제가 거짓이면, 어떤 부정행위 증명자도 무시할 수 있는 확률보다 큰 확률로 검증자를 확신시킬 수 없습니다.
영지식: 검증자는 명제의 유효성 외에는 아무것도 배우지 못합니다.
예시
Schnorr 서명: 사용자가 키 자체를 공개하지 않고 개인 키를 소유하고 있음을 증명할 수 있도록 하는 암호화 서명 방식입니다. 타원 곡선 암호화를 활용하는 알고리즘으로 단순성으로 유명하며, Schnorr 서명은 비트코인의 기술 로드맵에 타원 곡선 디지털 서명 알고리즘(ECDSA)의 업그레이드로 포함될 것으로 제안되었습니다. Schnorr는 단순성, 증명 가능한 보안 및 선형성으로 인해 종종 주목받습니다. Schnorr는 ECDSA보다 계산이 적게 필요하므로 암호화폐 트랜잭션에 적합한 것으로 간주됩니다.[11]
ZK-SNARK: 고급 암호화를 사용하여 복잡한 명제를 효율적으로 증명하는 비대화형 ZKP 유형입니다. 약어 ZK-SNARK는 영지식 간결 비대화형 지식 증명(Zero-Knowledge Succinct Non-Interactive Argument of Knowledge)을 의미하며, 비밀 키와 같은 특정 정보의 소유를 증명할 수 있지만 그 정보를 공개하지 않고 증명자와 검증자 간의 상호 작용 없이 증명할 수 있는 증명 구성을 말합니다. Zcash는 zk-SNARK의 최초의 광범위한 응용 프로그램이며, 새로운 형태의 영지식 암호화입니다. Zcash의 강력한 개인 정보 보호 보장은 Zcash의 차폐된 트랜잭션이 블록체인에서 완전히 암호화될 수 있지만 zk-SNARK 증명을 사용하여 네트워크의 합의 규칙에 따라 유효한 것으로 검증될 수 있다는 사실에서 비롯됩니다. [9][13]
ZK-STARK: 다항식 커밋먼트를 기반으로 하며 ZK-SNARK보다 확장성이 뛰어난 또 다른 비대화형 ZKP입니다. 이더리움은 네트워크에서 개인 트랜잭션 및 검증을 가능하게 하기 위해 zk-SNARK 및 zk-STARK와 같은 ZKP 프로토콜도 지원합니다. [10][15]
Bulletproofs:모네로는 최근 Bulletproofs ZKP 시스템의 코드를 새롭게 개선된 Bulletproof+ ZKP 솔루션으로 업그레이드했습니다. Bulletproofs는 지불 금액이 실제 금액을 공개하지 않고 양수임을 증명하는 비대화형 ZKP입니다. 이를 통해 모네로는 관련 당사자를 제외하고는 누구도 각 트랜잭션의 발신자, 수신자 또는 금액을 추적할 수 없도록 합니다. [14]
ZKP의 과제
ZKP는 상당한 이점을 제공하지만 계산 복잡성, 표준화 부족, 보안 취약성과 같은 몇 가지 과제에도 직면합니다.[7]