ZK-SNARK란 무엇인가?
프라이버시 증명 및 채굴 설명
영지식 · 간결한 검증 · 증명자와 검증자 · 신뢰할 수 있는 설정 · 프라이버시 · 확장성
이 페이지에서
1ZK-SNARK란 무엇인가?
ZK-SNARK는 증명자가 검증자에게 어떤 명제가 사실이며 증명자가 필요한 비밀 정보를 알고 있음을, 그 비밀을 공개하지 않고 설득할 수 있도록 하는 암호화 증명이다. 정식 명칭은 영지식 간결 비상호작용적 지식 주장(Zero-Knowledge Succinct Non-Interactive Argument of Knowledge)이다. 이는 하나의 보편적인 알고리즘이 아니라 증명 구성 방식의 한 종류이다.
블록체인 트랜잭션에서 공개 명제는 "이 전송은 프로토콜 규칙을 따른다"일 수 있다. 개인 증명에는 비밀 키, 메모, 잔액 또는 실행 추적이 포함될 수 있다. 유효한 증명은 숨겨진 데이터 자체가 공개 원장에 배치되지 않고도 규칙을 충족함을 보여줄 수 있다. 이것이 ZK-SNARK가 개인 결제, 검증 가능한 계산, 신원 주장 및 확장 시스템에 유용한 이유이다.
검증자는 정확하게 정의된 계산이 올바르게 수행되었음을 알게 된다. 검증자는 해당 계산 내에서 사용된 개인 입력을 자동으로 알지 못한다.
2ZK-SNARK의 각 부분 의미
"간결"이라는 단어가 모든 시스템에서 동일한 증명 크기나 검증 시간을 보장하는 것은 아니다. Groth16, PLONK 계열 시스템, Marlin 계열 시스템 및 Halo 2는 서로 다른 선택을 한다. 정확한 비용은 회로, 곡선, 커밋먼트 체계, 구현, 하드웨어 및 보안 목표에 따라 달라진다.
3ZK-SNARK는 어떻게 작동하는가?
수학은 고급이지만, 작업 흐름은 다섯 단계로 이해할 수 있다.
- 명제 정의. 개발자는 규칙을 산술 회로 또는 제약 시스템으로 표현한다. 결제의 경우, 규칙은 소유권, 가치 보존 및 입력이 이미 사용되지 않았는지 확인할 수 있다.
- 공개 및 비공개 입력 분리. 공개 입력은 검증자에게 표시된다. 비공개 증명은 회로를 만족시키는 데 필요한 비밀 값을 포함한다.
- 증명 매개변수 준비. 증명 시스템에 따라 회로별 매개변수, 범용 구조 참조 문자열 또는 비밀 무작위성에 의존하지 않는 설정이 포함될 수 있다.
- 증명 생성. 증명자는 유효한 증명이 모든 제약을 충족함을 보여주는 간결한 암호화 객체를 계산한다.
- 증명 검증. 노드 또는 스마트 계약은 공개 입력과 검증 키를 사용하여 증명을 확인한다. 증명을 학습하지 않고 수락하거나 거부한다.
이는 검증자가 증명자를 신뢰한다는 의미가 아니다. 증명은 암호화 및 구현이 건전하다고 가정할 때, 부정직한 증명자가 잘못된 명제를 통과시키지 못하게 해야 하기 때문에 유용하다.
4완전성, 건전성, 영지식
| 속성 | 실제 의미 | 피해야 할 실패 |
|---|---|---|
| 완전성 | 유효한 증명을 가진 정직한 증명자는 검증자가 수락하는 증명을 생성할 수 있다 | 유효한 사용자가 증명 시스템에 의해 거부됨 |
| 건전성 | 계산적으로 한정된 공격자는 무시할 수 있는 확률을 제외하고는 거짓 명제를 증명할 수 없다 | 위조된 증명 또는 잘못된 상태 전환 |
| 지식 건전성 | 성공적인 증명자는 유효한 증명을 가지고 있는 것으로 간주된다 | 필요한 비밀 데이터를 알지 못하고 검증 통과 |
| 영지식 | 증명은 공개 출력 외에 보호된 증명을 공개하지 않는다 | 잔액, 신원 또는 계산 입력 유출 |
이러한 보장은 회로에 인코딩된 명제에 적용된다. 회로가 비즈니스 규칙을 생략하거나, 잘못된 범위를 사용하거나, 안전하지 않은 조건을 수락하는 경우, 증명은 암호학적으로 유효하지만 애플리케이션은 잘못될 수 있다. 따라서 회로 설계, 구현 검토, 매개변수 생성, 지갑 동작 및 운영 보안은 보안 경계의 일부이다.
5신뢰할 수 있는 설정이란?
일부 ZK-SNARK는 증명 시작 전에 생성된 구조 참조 문자열을 필요로 한다. 이전의 회로별 시스템은 참가자들이 때때로 "유독 폐기물"이라고 불리는 비밀 무작위성을 파괴하려고 시도하는 동안 공개 매개변수를 생성하는 의식을 사용했다. 모든 기여자가 공모하거나 프로세스가 손상되면 특정 시스템은 건전성을 잃을 수 있었다.
다자간 계산은 이러한 위험을 줄인다. 적어도 한 명의 참가자가 정직하게 행동하고 자신의 비밀 기여를 파괴하면 의식이 안전하게 유지될 수 있다. 새로운 설계는 다른 설정 모델을 제공한다. 범용 설정은 많은 회로를 지원할 수 있으며, 투명하거나 신뢰할 수 없는 설계는 숨겨진 설정 무작위성을 피한다. 이러한 선택은 증명 크기, 증명자 속도, 검증 비용, 재귀 및 구현 복잡성에 영향을 미친다.
Zcash의 초기 Sprout 및 Sapling 시스템은 다자간 매개변수 의식을 사용했다. NU5와 함께 도입된 Orchard는 Halo 2를 사용하며 해당 보호 프로토콜에 대한 신뢰할 수 있는 설정에 대한 의존성을 제거했다. 모든 현대 ZK-SNARK가 하나의 영구적인 비밀 의식을 필요로 한다고 설명하는 것은 정확하지 않다.
6Zcash는 ZK-SNARK와 채굴을 어떻게 사용하는가
Zcash는 지불 프라이버시를 위한 ZK-SNARK의 가장 잘 알려진 생산 예시이다. 보호된 트랜잭션에서 커밋먼트는 개인 메모를 나타내고, 널리파이어는 동일한 메모가 두 번 사용되는 것을 방지하며, 증명은 트랜잭션이 프로토콜 규칙을 준수함을 보여준다. 트랜잭션 유형 및 공개된 보기 정보에 따라, 주소, 값 및 메모 데이터는 보호된 상태로 유지될 수 있지만 노드는 여전히 유효성을 검증한다.
ZK-SNARK는 Zcash 채굴 알고리즘이 아니다. Zcash 채굴은 Equihash 작업 증명을 사용한다. 채굴자들은 블록을 생성하고, 유효한 트랜잭션을 순서대로 정렬하며, 체인 기록을 보호하기 위해 경쟁한다. 노드는 보호된 트랜잭션 내의 영지식 증명을 수락하기 전에 검증한다. 증명 계층은 트랜잭션의 정확성을 확립하고, 합의 및 채굴 계층은 어떤 유효한 트랜잭션이 정식 체인의 일부가 될지 결정한다.
이러한 구별은 하드웨어에 중요하다. Equihash ASIC는 작업 증명 해싱을 가속화하지만, 일반적인 Halo 2 증명 생성기 역할을 하지 않는다. 마찬가지로 지갑 증명을 생성하는 장치가 자동으로 ZEC를 채굴하는 것은 아니다. 우리의 Zcash 채굴 보안 가이드는 Orchard, 지갑 소프트웨어, 노드 및 Equihash 채굴이 어떻게 함께 작동하는지 설명한다.
보호된 트랜잭션 및 선택적 공개 뒤에 있는 사용자 중심의 이유는 2026년 Zcash 프라이버시 가치를 참조하십시오.
7Aleo, 롤업, 신원 및 검증 가능한 계산
Aleo는 개인 프로그램 실행을 위해 영지식 증명을 사용한다. 사용자는 상태 전환이 게시된 프로그램을 따랐음을 증명하는 증명을 생성하면서 적격 기록 데이터를 비공개로 유지할 수 있다. 네트워크는 증명을 검증하고 합의 시스템을 통해 공개된 최종 논리를 처리한다. ZK 증명은 올바른 실행을 보여주고, AleoBFT는 네트워크 합의를 제공한다. 이들을 동일한 작업으로 취급하는 것은 이전 Zcash 설명에서 보인 채굴 대 증명 혼란을 반복하는 것이다.
더 광범위한 Aleo 네트워크 전망은 프로젝트를 하나의 증명 약어로 축소하지 않고 프라이버시 모델, 분산화 및 네트워크 참여를 다룬다.
ZK-SNARK는 다른 설계도 지원한다.
- 유효성 롤업: 기본 계층 계약이 새 상태 루트를 수락하기 전에 오프체인 상태 전환 배치가 올바르게 실행되었음을 증명한다.
- 개인 신원: 전체 자격 증명을 공개하지 않고 나이, 멤버십, 관할권 또는 자격 증명 소유를 증명한다.
- 준비금 또는 부채 증명: 커밋된 데이터가 관계를 충족함을 제한된 공개로 증명하며, 커밋먼트와 회계 범위가 완전하다고 가정한다.
- 검증 가능한 계산: 모든 검증자가 값비싼 작업을 반복할 필요 없이 소프트웨어가 커밋된 입력에서 출력을 생성했음을 증명한다.
"ZK 롤업"이 자동으로 비공개인 것은 아니다. 많은 유효성 롤업은 재구성을 위한 충분한 트랜잭션 데이터를 게시하고 주로 정확성 및 확장을 위해 증명을 사용한다. 프라이버시는 무엇이 공개되고, 무엇이 숨겨지고, 회로가 무엇을 증명하는지에 따라 달라진다.
8한계, 비용 및 보안 위험
ZK-SNARK는 검증을 압축하지만, 증명 생성은 계산 및 메모리 집약적일 수 있다. 개발자는 프로그램을 제약으로 변환하고, 증명 및 검증 키를 관리하며, 곡선 및 커밋먼트 체계를 선택하고, 회로를 최적화해야 한다. 복잡한 애플리케이션은 특수 하드웨어 또는 분산 증명 인프라를 필요로 할 수 있다.
- 회로 버그: 누락된 제약은 유효하지 않은 증명이 구현된 명제를 만족하도록 허용할 수 있다.
- 구현 버그: 직렬화, 무작위성, 지갑, 검증자 또는 라이브러리 오류가 건전한 수학을 약화시킬 수 있다.
- 설정 가정: SRS를 사용하는 시스템은 매개변수 생성의 보안 모델 및 실행에 의존한다.
- 메타데이터 유출: 네트워크 타이밍, IP 데이터, 지갑 동작, 공개 입력 및 교환 기록이 증명 외부의 정보를 공개할 수 있다.
- 업그레이드 위험: 회로 또는 증명 시스템 변경은 신중한 호환성, 감사 및 마이그레이션 계획이 필요하다.
ZK-SNARK는 지정된 증명 데이터를 숨기면서 명제를 증명한다. 데이터베이스를 자동으로 암호화하거나, IP 주소를 숨기거나, 엔드포인트를 보호하거나, 모든 트랜잭션을 익명으로 만들지는 않는다. 주변 프로토콜은 커밋먼트, 키, 공개, 상태 및 네트워크 동작을 올바르게 정의해야 한다.
9ZK-SNARK, STARK 및 일반 ZK 증명
| 용어 | 설명하는 것 | 일반적인 강점 | 중요한 주의사항 |
|---|---|---|---|
| 영지식 증명 | 보호된 증명 정보를 공개하지 않고 명제를 증명하는 프로토콜의 광범위한 종류 | 일반적인 프라이버시 개념 | 상호작용적이거나 비상호작용적일 수 있으며, 간결하거나 그렇지 않을 수 있다 |
| ZK-SNARK | 간결하고 비상호작용적인 지식 주장 | 작은 증명과 효율적인 검증 | 설정, 증명 크기 및 성능은 구성에 따라 다르다 |
| ZK-STARK | 해시 기반 기술을 사용하는 투명한 확장 가능한 주장 | 신뢰할 수 있는 설정이 없으며 다른 양자 내성 가정 | 증명은 SNARK 증명보다 종종 크다 |
| 유효성 증명 | 상태 전환 또는 배치가 올바르게 계산되었음을 증명 | 확장 및 효율적인 검증 | 실제로는 트랜잭션 데이터를 숨기지 않을 수 있다 |
올바른 증명 시스템은 애플리케이션에 따라 달라진다. 지불 프로토콜은 프라이버시 및 모바일 증명을 우선시할 수 있다. 롤업은 처리량 및 온체인 검증 비용을 우선시할 수 있다. 장기 프로토콜은 투명한 설정 또는 재귀를 중요하게 여길 수 있다. "ZK 사용"은 분석의 시작점이지 완전한 기술 설명은 아니다.
10ZK-SNARK FAQ
ZK-SNARK는 무엇의 약자인가요?
Zero-Knowledge Succinct Non-Interactive Argument of Knowledge (영지식 간결 비상호작용적 지식 주장)의 약자입니다.
ZK-SNARK는 암호화폐 채굴 알고리즘인가요?
아닙니다. ZK-SNARK는 명제 또는 계산이 유효하다는 것을 증명합니다. Zcash는 채굴 및 합의 보안을 위해 Equihash 작업 증명을 별도로 사용합니다.
모든 ZK-SNARK가 신뢰할 수 있는 설정을 필요로 하나요?
아닙니다. 설정 요구 사항은 다릅니다. 일부는 회로별 의식을 사용하고, 일부는 범용 매개변수를 사용하며, Halo 2와 같은 시스템은 신뢰할 수 있는 설정을 피할 수 있습니다.
ZK-SNARK는 블록체인을 완전히 익명으로 만드나요?
그렇지는 않습니다. 프라이버시는 프로토콜, 공개 입력, 지갑 동작, 네트워크 메타데이터, 공개 선택, 프라이버시 세트의 크기에 따라 달라집니다.
ZK-SNARK가 확장에 유용한 이유는 무엇입니까?
검증자는 모든 단계를 반복하지 않고 대규모 계산에 대한 간결한 증명을 확인할 수 있습니다. 롤업은 이 속성을 사용하여 상태 전환 배치를 효율적으로 검증합니다.
11참고 자료
포함하기 전에 이러한 주요 및 공식 기술 출처를 검토했습니다. 외부 링크는 새 탭에서 열리며 팔로우 안함으로 표시됩니다.
- Zerocash: 비트코인에서 파생된 분산형 익명 결제Zerocash 구성과 비공개 결제를 위한 간결한 영지식 증명을 설명하는 원본 IACR 문서입니다.
- Zcash: zk-SNARK란 무엇입니까?약어, 증명자-검증자 모델, 공개 매개변수 및 Halo 2 전환에 대한 공식 설명입니다.
- Zcash 문서 용어집zk-SNARK 실드 증명과 Equihash 작업 증명 마이닝 간의 공식적인 차이점입니다.
- Aleo 개발자 문서: zkSNARK 소개Aleo에서 증명자, 검증자, 증인, 설정 모델 및 비공개 상태 전환에 대한 공식 개요입니다.
- 이더리움 개발자 문서: ZK-롤업유효성 증명, 일괄 트랜잭션, 상태 루트 및 롤업 검증에 대한 공식 설명입니다.
최종 설명
ZK-SNARK를 통해 검증자는 보호된 증인을 보지 않고도 지식 또는 올바른 계산을 확인할 수 있습니다. 그 가치는 프라이버시와 간결하고 효율적인 검증을 결합하는 데서 나옵니다.
ZK-SNARK는 합의, 마이닝, 암호화, 감사 또는 보안 소프트웨어를 대체하지 않습니다. Zcash에서는 증명이 실드 트랜잭션 규칙을 검증하는 반면, Equihash 마이너는 블록을 보호하고 정렬합니다. Aleo 및 롤업에서 증명은 다양한 실행 및 확장 역할을 수행합니다. 무엇이 증명되는지, 무엇이 공개 상태로 남아 있는지, 어떤 설정 가정이 적용되는지, 누가 합의를 수행하는지 항상 질문하십시오.








댓글 남기기
이 사이트는 hCaptcha에 의해 보호되며, hCaptcha의 개인 정보 보호 정책 과 서비스 약관 이 적용됩니다.