ZK SNARK
ZK SNARK는 온체인 거래를 검증하는 프라이버시 중심의 증명 시스템입니다. 이는 주로 확장성 솔루션, 비공개 거래, 신원 보호라는 세 가지 주요 분야에서 사용됩니다. [1][2]
"영지식 간결하고 비상호작용적인 지식 논거(zero-knowledge succinct non-interactive argument of knowledge)"의 약자인 ZK SNARK는 한 당사자(증명자)가 거래 정보를 공개하지 않고 두 당사자 간의 상호작용 없이 특정 진술이 참임을 다른 당사자(검증자)에게 증명할 수 있도록 하는 영지식 증명(ZKP)의 한 유형입니다. 이는 네트워크의 합의 규칙을 사용하여 검증을 받으면서도 블록체인에서 거래를 비공개로 유지하고 완전히 암호화할 수 있는 방법입니다. [1][2]
개요
ZK SNARK는 영지식 증명(ZKP)의 변형입니다. ZKP는 관련 정보를 공개하지 않고 온체인 상호작용을 검증하는 증명 시스템의 속성인 영지식을 모방합니다. 증명 시스템은 상호작용이 발생했음을 인증하고 거래 출력의 정확성을 검증하는 암호화 감사자 역할을 합니다. [1]
ZK SNARK는 증명자와 검증자라는 두 당사자가 가용 상태여야 하며 반복적으로 상호작용할 것을 요구합니다. 증명자는 비밀 정보를 특수 알고리즘에 전달하여 ZKP를 계산하고, 증명은 검증자에게 전송되어 다른 알고리즘을 통해 증명자가 비밀 정보를 알고 있는지 확인합니다. ZK SNARK는 주로 블록체인 네트워크에서 자주 발생하는 확장성 문제를 최소화하기 위해 사용됩니다. [1][3]
역사
계산의 비상호작용적 위임 수단을 제공하는 간결한 비상호작용적 지식 논거(SNARK)는 2012년 란 카네티(Ran Canetti), 알레산드로 키에사(Alessandro Chiesa), 에란 트로머(Eran Tromer)에 의해 도입되었습니다. 저자들은 SNARK가 공통 참조 문자열(CRS) 모델에서 영지식(ZK) SNARK를 구성한다고 설명했습니다. 영지식 증명(ZKP) 프로토콜인 ZK SNARK가 분산 원장 솔루션에 추가되면 확장성과 프라이버시가 향상됩니다. 1985년 샤피 골드와서(Shafi Goldwasser), 실비오 미칼리, 찰스 래코프(Charles Rackoff)가 처음 도입한 영지식 증명(ZKP)은 한 당사자가 정보 자체나 추가 정보를 공개하지 않고도 자신이 정보를 가지고 있다는 사실만을 보여줄 수 있게 해줍니다. [2][4][5]
ZK SNARK 기술을 사용한 첫 번째 애플리케이션은 지캐시(Zcash)입니다. 비트코인의 코드베이스를 기반으로 한 프라이버시 중심 암호화폐인 지캐시는 ZK SNARK를 사용하여 발신자, 수신자 및 금액이 비공개로 유지되는 보호된 거래(shielded transactions)를 생성합니다. ZK SNARK를 활용함으로써 지캐시의 보호된 거래는 블록체인에서 완전히 암호화되면서도 네트워크의 합의 규칙에 따라 유효한 것으로 검증될 수 있습니다. [5][6]
ZK SNARK의 개념
ZK SNARK는 "영지식 간결하고 비상호작용적인 지식 논거(zero-knowledge succinct non-interactive argument of knowledge)"를 의미합니다. 핵심 논리를 이해하는 데는 다섯 가지 개념이 포함됩니다: [1][3]
영지식 (Zero-knowledge)
영지식은 진술의 유효성만이 공개되고 다른 정보는 제공되지 않음을 보장합니다. [1]
간결한 논거 (Succinct arguments)
이는 ZKP의 소형성과 검증 속도를 나타냅니다. ZKP는 크기가 작고 검증에 최소한의 컴퓨팅 파워만 필요하기 때문에 몇 밀리초 내에 검증될 수 있습니다. [1][2]
비상호작용적 (Non-interactive)
비상호작용적 증명은 증명자와 검증자 사이의 통신을 줄여 증명 시스템을 더욱 효율적이고 실용적으로 만듭니다. [1][3]
논거 (Argument)
ZK SNARK에서 논거는 진술의 진실성을 증명하기 위한 일련의 수학적 연산입니다. [7]
지식 (of knowledge)
이는 증명을 생성하기 위해 증명자가 처리하는 정보로, 검증자에게는 절대 공개되지 않습니다. 지식 논거는 증명자가 특정 정보를 가지고 있음을 수반하는 암호학적 선언입니다. 정보가 없을 때 증명자가 유효한 ZKP를 계산하는 것은 불가능할 수 있습니다. [1][3][8]
활용도
확장성 솔루션
ZK SNARK는 배치(batch)에 존재하는 여러 거래에 대해 단일 증명을 컴파일하기 때문에 증명 집계기 역할을 합니다. 이 단일 증명은 블록체인의 저장 공간과 혼잡을 줄이는 데 도움을 주며, 이는 더 빠른 거래 처리량과 거래 수수료 절감으로 이어집니다. 또한, ZK SNARK 증명은 간결하여 모든 거래의 정확성을 신속하게 확인하기 쉽습니다. 이더리움의 확장성 문제를 해결하기 위해 ZK SNARK 기술을 활용하는 프로젝트로는 zkSync와 Polygon Hermez가 있습니다. [1]
비공개 거래
송신자와 수신자의 주소 및 거래 금액과 같은 개인 정보를 마스킹하는 것은 ZK SNARK가 블록체인에서 비공개 거래를 촉진하는 방법입니다. 온체인 비공개 거래를 통해 전통적인 화폐 시스템은 금융 감시로부터 자유로워지며, 기관들은 ZK-SNARK 기반 네트워크를 사용하여 안전하고 비공개적인 비즈니스를 수행할 수 있습니다. 프라이버시를 위해 ZK SNARK를 활용하는 프로젝트로는 지캐시와 Tornado Cash가 있습니다. [1]
신원 보호
ZK SNARK는 신원 도용 위험을 억제하면서 개인 데이터 프라이버시와 보안을 강화합니다. 이는 사용자가 개인 정보를 공개하지 않고도 자신의 신원이나 자격 증명의 진위 여부를 증명할 수 있도록 돕습니다. ZK SNARK를 사용하면 무신뢰 인증이 가능해져 서비스 제공업체가 사용자의 자격 증명을 저장할 필요가 없습니다. ZK SNARK 신원 보호를 활용하는 프로젝트의 예로는 ZKCreds가 있습니다. [1]


