**영지식 증명(Zero-knowledge proof, ZKP)**은 한 당사자(증명자)가 다른 당사자(검증자)에게 어떤 진술의 진위 여부 외에는 추가적인 정보를 전혀 공개하지 않고도 그 진술이 타당함을 확신시킬 수 있게 해주는 암호화 도구입니다. ZKP는 올바르게 해결되었을 때 수신 측이 진짜임을 증명하는 수학적 퍼즐과 같습니다. 이는 다양한 애플리케이션에서 개인의 프라이버시를 보호하고 보안을 강화하는 데 유용한 도구가 됩니다.[1]\
개요
지식 증명은 "증명자"가 어떤 정보를 알고 있다는 사실을 "검증자"에게 확신시키는 암호화 증명입니다. 증명자는 암호화 증명을 생성하는 엔티티 또는 프로그램입니다. 검증자는 증명의 내용을 확인하는 엔티티 또는 프로그램입니다. 지식 증명은 완전성(completeness)과 건전성(soundness)이라는 두 가지 기본 특성을 가지며, 지식 증명(PoK)과 영지식 증명(ZKP)의 핵심적인 차이점은 바로 '영지식성'입니다. 진술이 참이라면, 검증자는 증명자로부터 해당 진술이 참이라는 사실 외에는 아무것도 배우지 못합니다.[8][12]
ZKP의 개념은 1985년 샤피 골드와서(Shafi Goldwasser), 실비오 미칼리(Silvio Micali), 찰스 래코프(Charles Rackoff)가 발표한 논문 “대화형 증명 시스템의 지식 복잡도(The Knowledge Complexity of Interactive Proof-Systems)”에서 처음 소개되었습니다.[12]\
증명자는 자신이 값 X를 알고 있다는 사실 외에 다른 정보 없이 검증자에게 자신이 값 X를 알고 있음을 증명할 수 있습니다. 이 개념의 핵심 본질은 지식을 공개하지 않고 지식의 소유를 증명하는 것입니다. 여기서 주요 과제는 X가 무엇인지 또는 다른 정보를 말하지 않고 값 X에 대한 지식을 보여주는 것입니다.[2]
영지식 증명(ZKP)은 암호학, 블록체인 기술, 프라이버시 보존 시스템을 포함한 다양한 분야에서 상당한 응용 잠재력을 지닌 역설적인 개념입니다.
영지식 증명의 유형
ZKP에는 여러 유형이 있으며, 각 유형마다 장단점이 있습니다. 가장 일반적인 유형은 다음과 같습니다.
대화형 ZKP(Interactive ZKPs): 증명자와 검증자 사이에 일련의 질의와 응답 과정이 포함됩니다.[4][5]
비대화형 ZKP(Non-interactive ZKPs): 증명자가 검증자에게 단 한 번의 메시지만 보내면 됩니다.[5][6]
시그마 프로토콜(Sigma protocols): 효율성과 다재다능함으로 알려진 특정 유형의 ZKP입니다.[7]
ZK-SNARKs: 특히 효율적이며 계산의 타당성에 대한 진술을 증명하는 데 사용할 수 있는 비대화형 ZKP입니다. [9][8]
ZK-STARKs: ZK-SNARK보다 훨씬 더 뛰어난 효율성을 제공하지만 구축하기가 더 복잡한 비대화형 ZKP입니다.[10][8]
영지식 증명의 잠재적 응용 분야
ZKP는 다음과 같은 광범위한 잠재적 응용 분야를 가지고 있습니다.
프라이버시 보존 인증: 사용자는 개인 정보를 공개하지 않고 웹사이트나 서비스에 자신의 신원을 증명할 수 있습니다.
보안 투표: 유권자는 자신의 신원이나 투표 내용을 공개하지 않고 투표 자격이 있음을 증명할 수 있습니다.
익명 자격 증명: 사용자는 신원을 밝히지 않고 자격 증명을 획득하고 사용할 수 있습니다.
블록체인 확장성: ZKP를 사용하여 기본 데이터를 공개하지 않고 트랜잭션을 검증함으로써 블록체인에 저장되는 데이터 양을 줄이고 확장성을 개선할 수 있습니다.
영지식 지식 증명: 지식 자체를 공개하지 않고 특정 지식을 소유하고 있음을 증명하는 데 사용할 수 있습니다.
ZKP의 핵심 속성
완전성(Completeness): 진술이 참이고 증명자가 프로토콜을 올바르게 따르면, 검증자는 항상 이를 확신하게 됩니다.
건전성(Soundness): 진술이 거짓이면, 속이려는 증명자가 무시할 수 있는 수준 이상의 확률로 검증자를 설득할 수 없습니다.
영지식성(Zero-knowledge): 검증자는 진술의 타당성 외에는 아무것도 알 수 없습니다.
예시
슈노르 서명(Schnorr signature): 사용자가 개인 키 자체를 공개하지 않고 개인 키를 소유하고 있음을 증명할 수 있는 암호화 서명 방식입니다. 단순함으로 잘 알려진 타원 곡선 암호학(ECC)을 활용하는 알고리즘인 슈노르 서명은 타원 곡선 디지털 서명 알고리즘(ECDSA)의 업그레이드 버전으로 비트코인 기술 로드맵에 포함되도록 제안되었습니다. 슈노르는 단순성, 증명 가능한 보안 및 선형성으로 자주 언급됩니다. 슈노르는 ECDSA보다 적은 계산을 필요로 하므로 암호화폐 거래에 적합한 것으로 간주됩니다.[11]
ZK-SNARKs: 고급 암호학을 사용하여 복잡한 진술을 효율적으로 증명하는 비대화형 ZKP의 한 유형입니다. ZK-SNARK라는 약어는 'Zero-Knowledge Succinct Non-Interactive Argument of Knowledge'의 줄임말로, 비밀 키와 같은 특정 정보의 소유를 해당 정보를 공개하지 않고, 증명자와 검증자 사이의 상호작용 없이 증명할 수 있는 증명 구조를 의미합니다. 제트캐시(Zcash)는 새로운 형태의 영지식 암호학인 zk-SNARK를 널리 적용한 첫 번째 사례였습니다. 제트캐시의 강력한 프라이버시 보장은 제트캐시의 보호된 트랜잭션이 블록체인상에서 완전히 암호화될 수 있으면서도, zk-SNARK 증명을 사용하여 네트워크의 합의 규칙에 따라 유효한 것으로 검증될 수 있다는 사실에서 비롯됩니다. [9][13]
ZK-STARKs: 다항식 커밋먼트(polynomial commitments)를 기반으로 하며 ZK-SNARK보다 더 나은 확장성을 제공하는 또 다른 유형의 비대화형 ZKP입니다. 이더리움(Ethereum) 또한 네트워크에서 비공개 트랜잭션과 검증을 가능하게 하기 위해 zk-SNARK 및 zk-STARK와 같은 ZKP 프로토콜을 지원합니다. [10][15]
불렛프루프(Bulletproofs):모네로(Monero)는 최근 불렛프루프 ZKP 시스템의 코드를 새롭고 개선된 불렛프루프+(Bulletproof+) ZKP 솔루션으로 업그레이드했습니다. 불렛프루프는 실제 금액을 공개하지 않고 결제 금액이 양수임을 증명하는 비대화형 ZKP입니다. 이를 통해 모네로는 관련 당사자를 제외하고는 아무도 각 거래의 송신자, 수신자 또는 금액을 추적할 수 없도록 보장합니다. [14]
ZKP의 과제
ZKP는 상당한 이점을 제공하지만 다음과 같은 몇 가지 과제에도 직면해 있습니다.
계산 복잡성: 일부 ZKP는 특히 복잡한 진술의 경우 구현하는 데 계산 비용이 많이 들 수 있습니다.
표준화: ZKP에 대한 단일 표준이 없어 채택에 걸림돌이 될 수 있습니다.
보안 취약성: ZKP는 아직 비교적 새로운 기술이며 아직 알려지지 않은 취약성에 노출될 수 있습니다.[7]
A crypto-backed mortgage is a home loan that allows homebuyers to use their cryptocurrency holdings as collateral for a down payment, enabling them to secure a mortgage without selling their assets and avoiding capital gains taxes.
Non-USD stablecoins are cryptocurrencies pegged to fiat currencies other than the US dollar, such as the Euro or Yen. They aim to reduce USD exchange rate volatility for regional users, enabling on-chain FX, cheaper remittances, and local payments.
MiCA, or Markets in Crypto-Assets Regulation, is the EU's framework for crypto-assets, standardizing regulation across member states to ensure market stability and consumer protection.
Proof of stake (PoS) is a type of consensus algorithm by which a cryptocurrency blockchain network aims to achieve distributed consensus, requiring validators to stake coins as collateral to validate transactions and forge new blocks.