Skip to main content

ZK (영지식)란 무엇인가

참고: 이 문서는 영문 원본의 자동 번역본입니다.

ZK (영지식)란 무엇인가

**영지식 증명(zero-knowledge proofs, ZK proofs)**은 한 당사자(증명자)가 다른 당사자(검증자)에게 어떤 진술이 참임을 — 그 진술의 진실성 자체를 넘어서는 어떤 정보도 드러내지 않고 — 납득시킬 수 있게 하는 암호학적 기법입니다. 블록체인에서 ZK 증명은 세 가지 주요 목적으로 사용됩니다: 프라이버시(거래가 유효함을 증명하면서 거래 세부 정보를 숨김), 확장성(많은 거래를 온체인에서 검증되는 단일 증명으로 압축), 그리고 검증 가능한 연산(오프체인 연산이 올바르게 수행되었음을 증명).

요약하면: ZK 증명은 어떻게 또는 왜인지 보여주지 않고 무언가가 참임을 증명할 수 있게 합니다. 크립토에서 이는 증명자에 대한 신뢰를 요구하지 않고 비공개 거래, 확장 가능한 롤업, 검증 가능한 AI 인퍼런스를 가능하게 합니다.

핵심 아이디어

이 개념은 직관에 반합니다: 어떻게 무언가를 드러내지 않고 그것을 안다는 것을 증명할 수 있을까요? 고전적인 비유가 도움이 됩니다.

뒤쪽에서 잠긴 문에서 만나는 두 개의 길(왼쪽과 오른쪽)이 있는 동굴을 상상해보세요. 당신은 그 문의 비밀번호를 안다고 주장합니다. 비밀번호를 드러내지 않고 그것을 증명하기 위해, 검증자가 동굴 입구에 서 있고, 당신은 임의의 길로 들어갑니다. 그러면 검증자는 당신이 어느 쪽에서 나오기를 원하는지 외칩니다. 비밀번호를 안다면, 당신은 항상 요청된 쪽에서 나올 수 있습니다 — 필요하면 문을 통과합니다. 비밀번호를 모른다면, 들어간 쪽에서만 나올 수 있습니다. 여러 라운드 후에, 검증자는 당신이 비밀번호를 안다고 확신하게 되지만, 비밀번호가 무엇인지는 결코 알지 못합니다.

ZK 증명은 이 직관을 수학적으로 형식화합니다. 이들은 세 가지 속성을 만족합니다:

  • 완전성(Completeness). 진술이 참이고 두 당사자가 모두 프로토콜을 따르면, 검증자는 확신하게 됩니다.
  • 건전성(Soundness). 진술이 거짓이면, 어떤 부정 증명자도 검증자를 납득시킬 수 없습니다(무시할 수 있는 확률을 제외하고).
  • 영지식(Zero-knowledge). 검증자는 진술이 참이라는 사실 외에 아무것도 알지 못합니다.

ZK 증명이 작동하는 방식 (단순화)

ZK 증명 시스템은 다음 단계를 포함합니다:

  1. 진술 공식화. 증명할 주장이 수학적 진술로 표현됩니다 — 일반적으로 회로(일련의 산술 연산)나 다항식 방정식 집합으로.
  2. 증인(Witness). 증명자는 진술을 참으로 만드는 비공개 정보("증인")를 가지고 있습니다. 예를 들어, 증인은 알려진 출력을 생성하는 연산의 입력일 수 있습니다.
  3. 증명 생성. 증명자는 증인과 진술을 사용하여 증명 — 컴팩트한 수학적 객체 — 을 생성합니다. 이는 증명자에게 연산적으로 비용이 많이 듭니다.
  4. 증명 검증. 검증자는 진술에 대해 증명을 확인합니다. 검증은 빠르고 증인을 요구하지 않습니다. 증명이 유효하면, 검증자는 증인을 알지 못한 채 진술이 참임을 확신합니다.

증명은 일반적으로 증인보다 훨씬 작고, 검증은 연산을 재실행하는 것보다 훨씬 저렴합니다. 이 비대칭성이 ZK 증명을 블록체인 확장과 검증에 유용하게 만드는 것입니다.

zk-SNARK와 zk-STARK

두 가지 주요 ZK 증명 시스템 계열이 블록체인 공간을 지배합니다:

zk-SNARK

Succinct Non-interactive Arguments of Knowledge. SNARK은 검증이 저렴한 매우 작은 증명(수백 바이트)을 생성합니다. 이들은 "비대화형(non-interactive)"입니다 — 증명자가 검증자와의 왕복 없이 한 단계로 증명을 생성합니다. 대부분의 SNARK 구성은 신뢰된 설정(trusted setup) — 공개 매개변수를 생성하는 일회성 의식 — 을 요구합니다. 설정이 손상되면 건전성 보증이 깨집니다. 현대 SNARK(PLONK와 그 변형 등)은 모든 회로에 작동하는 범용 신뢰된 설정을 사용하여 이 우려를 줄이지만 제거하지는 않습니다.

zk-STARK

Scalable Transparent Arguments of Knowledge. STARK은 신뢰된 설정을 요구하지 않습니다 — "투명(transparent)"합니다. 이들은 또한 포스트 퀀텀 보안(양자 컴퓨터의 공격에 저항)을 제공합니다. 트레이드오프는 STARK 증명이 SNARK 증명보다 크고 검증이 다소 더 비싸다는 것입니다. STARK은 증명자 시간이 연산 크기에 준선형적으로 확장되기 때문에 큰 연산에 특히 적합합니다.

비교

속성 zk-SNARK zk-STARK
증명 크기 작음 (수백 바이트) 더 큼 (수십~수백 킬로바이트)
검증 비용 낮음 보통
신뢰된 설정 필요 (대부분의 구성) 불필요 (투명)
포스트 퀀텀 보안 아니요 (대부분의 구성) 예
증명자 비용 보통 더 높음, 그러나 큰 회로에 더 잘 확장됨

실제로 많은 프로젝트는 작은 증명 크기와 낮은 검증 비용 때문에 SNARK 기반 시스템을 사용하는 반면, STARK은 투명성과 포스트 퀀텀 보안이 우선순위인 곳에서 채택이 늘고 있습니다.

블록체인에서의 ZK: 주요 응용

프라이버시

ZK 증명은 공개 블록체인에서 비공개 거래를 가능하게 합니다. 사용자는 발신자, 수신자, 또는 금액을 드러내지 않고 자신의 거래가 유효함(올바른 잔액, 이중 지불 없음)을 증명할 수 있습니다. 프라이버시 중심 프로토콜은 이를 사용하여 그렇지 않으면 투명한 체인에서 기밀 전송을 만듭니다.

확장성 (zk-rollup)

ZK-롤업은 거래를 오프체인에서 실행하고, 배치로 묶고, 전체 배치가 올바르게 처리되었다는 ZK 증명을 생성하는 Layer 2 확장 솔루션입니다. 증명과 상태 변경 요약만 기본 레이어(Layer 1)에 게시됩니다. L1 스마트 컨트랙트는 증명을 검증하고 상태 업데이트를 수락합니다. 이는 수천 개의 거래를 단일 증명 검증으로 압축하여, 기본 레이어의 보안을 상속하면서 처리량을 극적으로 증가시킵니다. 주요 zk-롤업 구현으로는 zkSync, StarkNet, Polygon zkEVM, Scroll, Linea가 있습니다.

Layer 2 확장에 대한 자세한 내용은 L2를 참조하세요.

검증 가능한 연산과 zkML

ZK 증명은 어떤 연산이든 올바르게 수행되었음을 검증할 수 있습니다. 이는 AI로 확장됩니다: zkML은 ZK 증명을 사용하여 머신러닝 모델이 특정 입력으로부터 특정 출력을 생성했음을, 모델 가중치나 입력 데이터를 드러내지 않고 검증합니다. 스마트 컨트랙트는 온체인에서 증명을 검증할 수 있어, AI 인퍼런스가 올바르게 계산되었다는 신뢰 불필요(trustless) 보증을 만듭니다.

zkML은 크립토 AI에서 ZK의 가장 기술적으로 야심 찬 응용 중 하나를 나타냅니다. 올바른 인퍼런스에 대한 수학적(신뢰 불필요) 보증을 제공하지만, 증명 생성의 연산 비용 때문에 현재 작은 모델로 제한됩니다.

ZK가 크립토 AI에 중요한 이유

ZK 증명은 탈중앙화 AI의 두 가지 중요한 필요를 다룹니다:

  • 검증 가능한 AI. AI 인퍼런스가 신뢰할 수 없는 제3자 하드웨어에서 실행될 때, ZK 증명은 연산을 재실행하지 않고 결과가 올바름을 보증할 수 있습니다. 이는 AI 출력이 스마트 컨트랙트 동작을 유발하는 온체인 애플리케이션에 필수적입니다.
  • 프라이버시. ZK 증명은 모델, 입력, 또는 둘 다가 비공개로 유지되는 AI 연산을 가능하게 합니다. 사용자는 컴퓨트 제공자가 쿼리를 보지 않고 AI 생성 결과를 얻을 수 있으며, 모델 소유자는 가중치를 드러내지 않고 자신의 모델이 사용되었음을 증명할 수 있습니다.

DecAIHub 평가 프레임워크에서 ZK 기반 검증은 진정한 온체인 AI 통합의 지표 역할을 합니다 — 오프체인 AI 연산과 온체인 상태 사이에 수학적으로 검증 가능한 연결을 만듭니다.

DecAIHub 프로젝트 카드에서 나타나는 위치

ZK 관련 기능은 여러 곳에서 나타납니다:

  • AI component — "zkML inference", "ZK-verified computation", 또는 "zero-knowledge proof of inference" 같은 값은 ZK 기반 AI 검증을 나타냅니다.
  • Category — AI에 ZK를 사용하는 프로젝트는 ZK를 검증 메커니즘으로 하여 AI/Inference나 AI/Compute 카테고리에 나타날 수 있습니다.
  • Evidence table — ZK에 대한 Tier-1 증거에는 배포된 검증자 컨트랙트, 발행된 증명 벤치마크, 회로 구현, 온체인 검증 거래가 포함됩니다.
  • On-chain artifacts — 온체인의 ZK 검증자 컨트랙트는 실제 ZK 통합의 구체적인 증거로, Onchain necessity 차원에 기여합니다.

ZK가 증명하지 않는 것

  • ZK는 연산이 올바르게 실행되었음을 증명합니다 — 연산이 유용하다거나, 모델이 좋다거나, 데이터가 정확하다는 것을 증명하지 않습니다. 검증된 쓰레기는 여전히 쓰레기입니다.
  • ZK는 토큰이 필요함을 증명하지 않습니다. ZK 증명은 블록체인 없이도 작동합니다; 검증을 온체인에 두는 결정은 아키텍처 선택입니다.
  • ZK는 탈중앙화를 증명하지 않습니다. 중앙화된 제공자도 자신의 연산에 대해 ZK 증명을 생성할 수 있습니다.
  • ZK는 모델 약정(가중치의 해시)이 공개적으로 고정되고 증명이 그 약정에 묶이지 않는 한 모델이 주장된 것임을 증명하지 않습니다.
  • 백서에서 ZK를 언급하는 프로젝트가 ZK가 구현되었음을 의미하지는 않습니다. 증거로 배포된 검증자 컨트랙트, 증명 벤치마크, 회로 코드를 찾아보세요.

혼동하지 마세요

  • 프라이버시 — 프라이버시는 더 넓은 목표입니다. ZK는 그것을 달성하기 위한 하나의 도구입니다. 다른 프라이버시 메커니즘으로는 TEE, MPC, 동형 암호화가 있습니다.
  • TEE (Trusted Execution Environment) — TEE는 하드웨어 기반 기밀성을 제공합니다. ZK는 수학적 증명을 제공합니다. 둘 다 검증 가능한 AI에 사용될 수 있으며, 서로 다른 신뢰 가정과 성능 트레이드오프를 가집니다.
  • zkML — ZK 증명을 머신러닝 인퍼런스에 적용한 특정 응용입니다. ZK는 일반적인 암호학적 기법이고; zkML은 특화된 유스케이스입니다.
  • 암호화(Encryption) — 암호화는 데이터를 숨깁니다. ZK 증명은 데이터를 드러내지 않고 데이터에 대한 진술을 증명합니다. 이들은 서로 다른 연산입니다: 암호화는 데이터를 읽을 수 없는 형태로 변환하고, ZK 증명은 데이터를 노출하지 않고 데이터에 대한 수학적 증거를 생성합니다.
  • 낙관적 검증(Optimistic verification) — 결과가 올바르다고 가정하고 도전받을 때만 사기 증명(fraud proof)을 사용합니다. ZK는 선제적으로 올바름을 증명합니다. 이들은 서로 다른 L2 설계(낙관적 롤업 vs zk-롤업)에서 사용되는 상호 보완적인 접근법입니다.

자주 묻는 질문

zk-SNARK와 zk-STARK의 차이는 무엇인가요?

둘 다 영지식 증명 시스템 계열이지만, 핵심 속성에서 다릅니다. zk-SNARK는 더 작은 증명을 생성하고 더 낮은 검증 비용을 가지지만 일반적으로 신뢰된 설정 — 시스템 매개변수를 생성하는 일회성 의식 — 을 요구합니다. zk-STARK는 신뢰된 설정을 요구하지 않으며(투명함) 포스트 퀀텀 보안을 제공하지만, 증명이 더 크고 검증하기 더 비쌉니다. 선택은 응용에 달려 있습니다: 증명 크기와 검증 비용이 중요할 때(예: 온체인 검증) SNARK가 선호되고, 투명성과 장기 보안이 우선순위일 때 STARK가 선호됩니다.

ZK 증명은 블록체인 확장에 어떻게 사용되나요?

ZK-롤업은 거래를 오프체인에서 배치로 실행한 다음, 전체 배치가 올바르게 처리되었다는 단일 ZK 증명을 생성합니다. 이 증명은 압축된 상태 변경 요약과 함께 Layer 1 블록체인에 제출됩니다. L1 스마트 컨트랙트는 증명을 검증하고 — 이는 모든 거래를 재실행하는 것보다 훨씬 저렴합니다 — 상태 업데이트를 수락합니다. 이는 L1이 하나의 증명을 검증하여 수천 개 거래의 효과를 처리할 수 있게 하여, 처리량을 극적으로 증가시킵니다.

ZK와 AI의 연결은 무엇인가요?

ZK 증명은 모델이나 입력 데이터를 드러내지 않고 AI 모델 인퍼런스가 올바르게 수행되었음을 검증할 수 있습니다. zkML이라 불리는 이 응용은 온체인에서 신뢰 불필요 AI 검증을 가능하게 합니다: 스마트 컨트랙트가 특정 모델이 특정 출력을 생성했음을 확인할 수 있습니다. 현재 zkML은 모델 연산을 ZK 회로로 변환하고 증명을 생성하는 연산 비용 때문에 작은 모델에만 실용적입니다. 증명 시스템이 개선됨에 따라 검증 가능한 AI 모델의 범위가 확장될 것입니다.

ZK 증명은 연산적으로 비싼가요?

증명 생성은 비쌉니다 — 기초 연산보다 상당히 더 비쌉니다. 연산에 대한 ZK 증명을 생성하는 데는 단순히 연산을 실행하는 것보다 10배에서 1,000배 더 오래 걸릴 수 있습니다. 그러나 증명 검증은 저렴하고 빠릅니다. 이 비대칭성은 설계에 의한 것입니다: 증명자는 무거운 작업을 한 번 하고, 임의의 수의 검증자가 결과를 효율적으로 확인할 수 있습니다. 블록체인 응용의 경우, 이는 비싼 증명 생성이 오프체인에서 일어나고 저렴한 검증이 온체인에서 일어남을 의미합니다.

외부 참고 자료

함께 보기