**영지식 증명(ZKP)**은 한 당사자(증명자)가 다른 당사자(검증자)에게 진술의 진실성 외에 추가 정보를 드러내지 않고 진술의 유효성을 확신시킬 수 있는 암호화 도구입니다. ZKP는 올바르게 풀면 수신 당사자가 진짜임을 증명하는 수학 퍼즐입니다. 따라서 다양한 애플리케이션에서 개인 정보 보호 및 보안을 강화하는 데 유용한 도구입니다.[1]
개요
지식 증명은 "증명자"가 특정 정보를 알고 있음을 "검증자"에게 확신시키는 암호화 증명입니다. 증명자는 암호화 증명을 생성하는 엔터티 또는 프로그램입니다. 검증자는 증명의 내용을 확인하는 엔터티 또는 프로그램입니다. 지식 증명은 완전성과 건전성이라는 두 가지 기본 특성을 가지며, 지식 증명(PoK)과 영지식 증명(ZKP)의 주요 차이점은 영지식입니다. 진술이 참이면 검증자는 증명자로부터 진술이 참이라는 것 외에는 아무것도 배우지 않습니다.[8][12]
ZPK의 개념은 1985년 Shafi Goldwasser, Silvio Micali 및 Charles Rackoff가 논문 “대화형 증명 시스템의 지식 복잡성”에서 소개했습니다.[12]
증명자는 값 X를 알고 있다는 사실 외에 다른 정보 없이 검증자에게 값 X를 알고 있음을 증명할 수 있습니다. 이 개념의 주요 본질은 지식을 드러내지 않고 지식의 소유를 증명하는 것입니다. 여기서 주요 과제는 X가 무엇인지 또는 다른 정보를 말하지 않고 값 X의 지식을 보여주는 것입니다.[2]
영지식 증명(ZKP)은 암호화, 블록체인 기술 및 개인 정보 보호 시스템을 포함한 다양한 분야의 애플리케이션에 상당한 잠재력을 가진 역설적인 개념입니다.
영지식 증명 유형
ZKP에는 여러 유형이 있으며 각 유형에는 고유한 강점과 약점이 있습니다. 가장 일반적인 유형은 다음과 같습니다.
대화형 ZKP: 여기에는 증명자와 검증자 간의 일련의 과제와 응답이 포함됩니다.[4][5]
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는 지식의 영지식 간결한 비대화형 논증을 나타내며, 여기서 비밀 키와 같은 특정 정보의 소유를 해당 정보를 공개하지 않고 증명자와 검증자 간의 상호 작용 없이 증명할 수 있는 증명 구성을 나타냅니다. Zcash는 영지식 암호화의 새로운 형태인 zk-SNARK의 첫 번째 광범위한 응용 프로그램이었습니다. Zcash의 강력한 개인 정보 보호 보장은 Zcash의 보호된 트랜잭션이 블록체인에서 완전히 암호화될 수 있지만 zk-SNARK 증명을 사용하여 네트워크의 합의 규칙에 따라 유효한 것으로 여전히 확인할 수 있다는 사실에서 파생됩니다.[9][13]
ZK-STARK: 다항식 약속을 기반으로 하며 ZK-SNARK보다 더 나은 확장성을 제공하는 또 다른 유형의 비대화형 ZKP입니다. Ethereum은 또한 네트워크에서 개인 트랜잭션 및 검증을 활성화하기 위해 zk-SNARK 및 zk-STARK와 같은 ZKP 프로토콜을 지원합니다.[10][15]
Bulletproof:Monero는 최근 Bulletproofs ZKP 시스템에 대한 코드를 새로운 개선된 Bulletproof+ ZKP 솔루션으로 업그레이드했습니다. Bulletproofs는 실제 금액을 공개하지 않고 지불 금액이 양수임을 증명하는 비대화형 ZKP입니다. 이러한 방식으로 Monero는 관련된 당사자를 제외하고 아무도 각 트랜잭션의 발신자, 수신자 또는 금액을 추적할 수 없도록 합니다.[14]
ZKP의 과제
ZKP는 상당한 이점을 제공하지만 다음과 같은 몇 가지 과제에도 직면해 있습니다.
계산 복잡성: 일부 ZKP는 특히 복잡한 진술의 경우 구현하는 데 계산 비용이 많이 들 수 있습니다.
표준화: ZKP에 대한 단일 표준이 없으므로 채택이 방해될 수 있습니다.
보안 취약점: ZKP는 비교적 새로운 기술이며 아직 알려지지 않은 취약점에 취약할 수 있습니다.[7]