ZK-SNARK란 무엇입니까?
ZK-SNARK는 기본 데이터를 노출하지 않고 정보의 진위를 확인하기 위해 영지식 증명을 생성하는 프로토콜입니다. 약어는 Zero-Knowledge Succinct Non-Interactive Argument of Knowledge를 의미합니다.
ZK-SNARK 프로토콜에는 증명자(Alice)와 검증자(Bob)의 두 당사자가 포함됩니다. 증명자(Alice)는 주장을 하는 당사자이고 검증자(Bob)는 주장을 검증할 책임이 있는 당사자입니다.
클레임에 참조된 정보를 'witness' 또는 'secret' 이라고 합니다 . 증명자(Alice)는 ZK-SNARK 메커니즘을 사용하여 참조 정보를 공개하지 않고 주장이 사실임을 검증자(Bob)에게 보여주는 증거를 생성합니다.
ZK-SNARK와 관련된 가상의 예는 사용자 ID를 인증하는 것입니다. 개인은 개인 정보(예: 여권 또는 사회 보장 번호)를 공개하지 않고 진술("나는 미국 시민입니다")을 증명할 수 있습니다.
ZK-SNARK는 다음과 같은 특성을 가지고 있기 때문에 그렇게 불립니다.
1. 영지식(Zero-knowledge ) : 검증자가 진술에 대해 타당성 또는 허위성 외에는 아무것도 모른다는 의미입니다.
2. 간결함 : 검증자가 짧은 시간 내에 검증할 수 있을 만큼 증명이 작습니다.
3. 비대화형 : SNARK는 증명자와 검증자가 제출된 초기 증명 이외의 정보를 교환할 필요가 없기 때문에 비대화형입니다. 초기 영지식 증명 시스템에서는 증명자와 검증자가 진술을 확인하기 위해 여러 메시지를 교환해야 했습니다.
4. Argument : SNARK는 엄격한 요구 사항을 충족하는 "계산적으로 건전한" 진술로, 속이기 어렵습니다.(거짓 증거 생성 불가)
5. Knowledge : SNARK 기반 증명은 기본 정보 또는 witness에 대한 액세스 권한으로 생성할 수 없습니다 .

블록체인의 ZK-SNARK
퍼블릭 블록체인과 같은 분산 컴퓨팅 시스템은 소위 "계산 무결성 문제"를 해결해야 합니다. '계산 무결성'은 특정 계산에서 얻은 출력의 정확성을 나타냅니다.
퍼블릭 블록체인에서 계산 무결성은 네트워크에서 실행되는 트랜잭션의 정확성을 의미합니다. 대부분의 블록체인은 다른 컴퓨터(노드)가 각 트랜잭션을 다시 실행하도록 함으로써 이를 달성합니다.
그러나 이 방법은 문제가 있습니다. 모든 노드가 각 트랜잭션을 재생하도록 강제하면 네트워크 속도가 느려지고 확장성이 제한됩니다. 또한 노드는 트랜잭션 데이터를 저장해야 하므로(또는 계산을 재생할 수 없음) 블록체인 크기가 기하급수적으로 증가합니다.
그러나 노드가 계산을 재생하지 않고 계산의 유효성을 확인할 수 있다면 어떨까요? 이렇게 하면 네트워크 처리량이 향상되고 노드가 과도한 트랜잭션 데이터를 저장할 필요가 없습니다.
ZK-SNARK를 사용하여 생성된 유효성 증명은 입력을 공개하지 않고 트랜잭션의 유효성을 증명할 수 있습니다. 이것이 Zcash 및 Monero와 같은 개인 정보 보호에 중점을 둔 암호화폐가 SNARK를 사용하여 거래에 대한 정보를 난독화하는 이유입니다.
SNARK는 노드가 계산의 모든 단계를 재생하지 않고 오프체인에서 수행되는 계산의 정확성을 증명할 수도 있습니다. 여기서 ZK-SNARK는 블록체인 확장에 유용합니다.
SNARK 로 오프체인 계산을 검증하는 것은 계산을 수학적 표현으로 인코딩하는 것으로 시작하는 복잡한 과정입니다. 이 수학적 진술은 유효성 증명의 기초를 형성합니다.
그런 다음 검증자는 증명에 대한 작업을 수행하여 정확성을 확인합니다. 증명이 모든 검사를 통과하면 기본 계산이 유효한 것으로 간주됩니다. 이것이 SNARK가 간결한 이유입니다 . 유효성 증명의 크기는 proof를 생성하는 계산보다 몇 배 더 작습니다.
zk-SNARK를 사용하면 기본 계산이 실행하는 데(proof를 생성하는 데) 매우 오랜 시간이 걸리더라도 증명을 매우 빠르게 확인할 수 있는 방식으로 일부 계산에 특정 출력이 있다는 증명을 생성할 수 있습니다.

ZK-SNARK 및 ZK 롤업
롤업은 오프체인 실행을 통해 레이어 1(L1) 블록체인의 처리량을 향상시키는 이더리움용 레이어 2 스케일링 솔루션 입니다. 롤업은 L2 체인에서 트랜잭션을 처리하고 여러 오프체인 트랜잭션을 블록으로 집계하여 L1 체인에 제출합니다.
롤업은 계산을 기본 계층에서 멀리 이동하여 네트워크 정체를 줄이고 트랜잭션을 확장합니다.
그러나 L1 체인은 오프체인에서 실행된 트랜잭션이 유효한지 여부를 알아야 합니다(즉, 계산 무결성 문제). 그렇지 않으면 악의적인 행위자가 롤업을 하이재킹하고 잘못된 트랜잭션을 메인 체인에 제출할 수 있습니다.
일종의 롤업(영지식 롤업)은 ZK-SNARK를 사용하여 오프체인 트랜잭션의 진위를 L1 체인에 증명합니다. SNARK 증명은 거래 유효성의 L1 체인을 보장하는 누구나 확인할 수 있습니다.
ZK-SNARK를 사용하는 대부분의 ZK 롤업은 동일한 구조를 따릅니다.
1. L2 체인의 사용자는 트랜잭션에 서명하고 검증자에게 제출합니다.
2. 유효성 검사기는 트랜잭션을 블록으로 압축하고 해당 유효성 증명(SNARK)을 생성합니다. 이것은 새로운 상태가 유효한 트랜잭션 추가의 결과라는 암호화 보증을 제공합니다.
3. L1 체인의 스마트 계약은 유효성 증명에 대한 작업을 수행합니다. 이 작업의 결과에 따라 일괄 거래가 검증되고 메인 체인에 게시되는지 여부가 결정됩니다.

ZK-SNARK의 이점은 무엇입니까?
ZK-SNARK를 사용하면 높은 처리량, 작은 유효성 증명 크기 및 보안이라는 세 가지 주요 이점이 있습니다.
1. 높은 처리량
ZK-SNARK는 Ethereum의 기본 계층에서 계산을 축소하여 처리량을 확장합니다. ZK-SNARK를 사용하면 롤업을 통해 TPS 속도를 수천 단위로 높일 수 있습니다.
ZK-SNARK는 일반적으로 확인하는 트랜잭션 데이터보다 몇 배 더 작습니다. 이는 기본 블록체인의 정체를 줄이고 더 저렴한 가스 요금과 더 빠른 거래를 가능하게 합니다.
2. 작은 교정 크기
SNARK 증명의 크기가 작기 때문에 메인 체인에서 쉽게 확인할 수 있습니다. 이더리움에서 이것은 오프체인 거래를 검증하기 위한 가스비가 낮아져 최종 사용자의 롤업 비용이 줄어드는 것을 의미합니다.
3. 보안
ZK 롤업은 주로 ZK-SNARK에 사용되는 최첨단 암호화 보안 메커니즘으로 인해 다른 확장 프로젝트보다 더 안전한 것으로 간주됩니다.
ZK-SNARK 증명은 계산적으로 건전하므로 검증자를 속이고 악의적으로 행동하기 어렵습니다. ZK-SNARK의 비대화형은 또한 증명이 누구에 의해 신뢰 없이 검증될 수 있음을 의미합니다.
ZK-SNARK의 단점은 무엇입니까?
ZK-SNARK 사용에는 세 가지 주요 단점이 있습니다. 신뢰할 수 있는 설정이 필요하고 양자 컴퓨팅 공격에 취약하며 특수 하드웨어에 의존합니다.
1. 신뢰할 수 있는 설정
ZK-SNARK 프로토콜을 설정하려면 범용 공통 참조 문자열(CRS)을 생성해야 합니다. 공개 매개변수 라고도 하는 CRS는 증명자와 검증자 간의 안전한 통신을 가능하게 합니다.
악의적인 행위자가 공개 매개변수에 대한 지식을 얻은 경우 잘못된 유효성 증명을 생성할 수 있습니다. 일부 프로젝트는 공개 매개변수를 생성하기 위해 서로 다른 개인을 포함하는 다자간 계산(MPC)을 사용하여 이 문제를 해결하려고 시도합니다 .
그럼에도 불구하고 이 접근 방식은 사용자가 관련된 사람들의 무결성을 신뢰할 것을 요구합니다. 블록체인의 목적이 기관을 신뢰할 필요성을 줄이는 것이기 때문에 이것은 상당히 문제가 됩니다.
2. 양자 컴퓨팅 공격에 대한 취약성
ZK-SNARK는 ECC(Elliptic Curve Cryptography)를 사용하여 유효성 증명을 생성하는 데 사용되는 정보를 암호화합니다. ECC는 현재 비교적 안전하지만 양자 컴퓨팅의 발전으로 인해 보안 모델이 깨질 수 있습니다.
3. 특수 하드웨어에 의존
ZK-SNARK로 유효성 증명을 생성하는 것은 계산 집약적인 프로세스이므로 증명자는 특수 하드웨어에 투자해야 합니다. 극소수의 사람들이 이 기계를 구입할 수 있기 때문에 많은 사람들이 ZK-SNARK 증명 프로세스가 고도로 중앙 집중화되어 있다고 생각합니다.
ZK-SNARK를 사용하는 프로젝트는 무엇입니까?
ZK-SNARK를 사용하는 5개의 주목할만한 프로젝트는 ZKSync, Loopring, Aztec, Polygon Hermez 및 ZKSpace입니다.
ZKSync
Matter Labs에서 만든 이더리움 메인넷에 상주하는 EVM 호환 ZK 롤업. ZKSync는 스마트 계약, 토큰 스왑, 결제 및 NFT 발행을 지원합니다.
Loopring
SNARK 기반 ZK 롤업 기술로 구동되는 Ethereum Layer 2(L2) 프로젝트. 루프링은 또한 이더리움 메인넷의 DEX에 부과되는 비용의 일부로 ETH 및 기타 ERC-20 토큰을 거래하기 위한 분산형 거래소 역할을 합니다.
Aztec
이더리움 네트워크에 구축된 오픈 소스 L2 네트워크. Aztec은 ZK-SNARK를 활용하여 트랜잭션을 확장하고 사용자의 금융 프라이버시를 강화합니다.
Polygon Hermez
이더리움 블록체인 위에서 작동하는 ZK 롤업. Polygon Hermez는 ZK-SNARK를 사용하여 안전하고 저렴한 토큰 전송 및 지불을 지원합니다.
ZKSpace
ZK-SNARK를 기반으로 하는 ZK 롤업 프로젝트. ZKSpace는 이더리움 사용자에게 더 낮은 가스 요금과 더 빠른 거래를 제공하며 AMM 스타일 DEX(ZKSwap v3), 결제 네트워크(ZKSquare) 및 NFT 마켓플레이스(ZKSea)로 구성됩니다.
ZK-STARK란?
ZK-STARK는 Zero-Knowledge Scalable Transparent Argument of Knowledge의 약자입니다. ZK-SNARK와 마찬가지로 ZK-STARK는 진술 자체에 대해 아무것도 밝히지 않고 진술이 유효함을 보여줍니다.
몇 가지 차이점을 제외하면 STARK는 SNARK와 동일한 속성을 가집니다. STARK 기반 유효성 증명은 검증자에게 숨겨진 정보를 사용하여 생성됩니다. STARK는 또한 입력을 공개하지 않고 트랜잭션의 정확성을 확인할 수 있습니다.
ZK-STARK vs ZK-SNARK
ZK-STARK의 주요 차이점은 확장 가능 하고 투명한 속성에서 비롯됩니다.
ZK-STARK는 CRS(Common Reference String)의 신뢰할 수 있는 설정 없이 작동할 수 있기 때문에 투명한 것으로 간주됩니다. 대신 STARK 프로토콜은 공개적으로 검증 가능한 임의성을 사용하여 증명자와 검증자 간의 상호 작용을 설정합니다.
ZK-STARK는 계산 복잡성과 관련하여 복잡성을 증명하고 검증하는 것이 준선 형적으로 확장되기 때문에 확장 가능합니다 . ZK-SNARK를 사용하면 증명 및 검증 복잡성이 기본 계산과 관련하여 선형적으로 확장 됩니다.
이는 ZK-SNARK 프로토콜이 확인해야 하는 계산이 더 클 때 ZK-STARK보다 증명을 생성하고 확인하는 데 더 많은 시간이 필요함을 의미합니다. 이것이 STARK가 대량의 트랜잭션을 처리하는 애플리케이션에 더 적합한 이유입니다.

ZK-STARK의 이점은 무엇입니까?
ZK-STARK를 사용하면 4가지 주요 이점이 있습니다. 신뢰할 수 있는 설정이 필요하지 않고 확장 가능하며 사용자에게 최대 처리량을 제공하고 높은 보안을 보장합니다.
1. 신뢰할 수 있는 설정이 필요하지 않습니다.
ZK-STARK는 작동하기 위해 신뢰할 수 있는 설정이 필요하지 않으며 대신 공개 무작위성에 의존합니다. 이는 사용자 측의 신뢰 가정을 줄이고 STARK 기반 프로토콜의 보안을 향상시킵니다.
2. 확장 가능한 속성
STARK는 SNARK에 비해 대규모로 더 빠르게 계산하고 검증할 수 있습니다. 더 중요한 것은 ZK-STARK는 기본 계산의 복잡성이 기하급수적으로 증가하더라도 낮은 증명 및 검증 시간을 유지한다는 것입니다.
3. 최대 처리량
SNARK와 마찬가지로 STARK는 안전하고 검증 가능한 오프체인 계산을 가능하게 하여 블록체인을 확장할 수 있습니다.
L1 체인에 제출된 단일 STARK 증명은 메인 체인에서 수행된 수천 건의 트랜잭션을 검증할 수 있습니다. 따라서 몇몇 유명한 ZK 롤업 프로젝트는 ZK-SNARK를 사용하여 오프체인 계산의 무결성을 증명합니다.
4. 더 높은 보안 보장
ZK-STARK는 암호화를 위해 ZK-SNARK에서 사용되는 타원 곡선 방식 대신 충돌 방지 해시를 사용합니다. 이것은 양자 컴퓨팅 공격에 대한 저항력이 있는 것으로 간주되어 SNARK에서 사용되는 타원 곡선보다 더 안전합니다.
ZK-STARK의 단점은 무엇입니까?
ZK-STARK 사용의 두 가지 주요 단점은 더 큰 증명 크기를 사용하고 블록체인 공간에서 기술 채택이 적다는 것입니다.
1. 더 큰 교정 크기
STARK는 더 빠른 증명을 제공하지만 단점은 이러한 증명이 SNARK 기반 증명에 비해 더 크다는 것입니다. 더 큰 증명을 계산하면 더 높은 가스 수수료가 발생하기 때문에 STARK 증명은 이더리움에서 확인하는 데 더 많은 비용이 듭니다.
2. 채택 감소
SNARK는 영지식 기술을 블록체인에 최초로 실용화했기 때문에 STARK보다 시장 점유율이 더 높습니다. 대부분의 ZK 롤업은 ZK-SNARK를 사용하며 SNARK 기반 ZK 증명을 위한 개발자 생태계 및 도구가 더 큽니다.
ZK-STARK에도 이더리움 재단을 비롯한 유명 지지자가 있지만 채택률은 낮습니다. 따라서 개발자는 STARK로 ZK 프로젝트를 구축하기 위한 지원 및 도구를 덜 찾을 수 있습니다.
ZK-STARK를 사용하는 프로젝트는 무엇입니까?
스타크넷
이더리움에서 L2 네트워크로 작동하는 범용 ZK 롤업. StarkNet은 탈중앙화 애플리케이션(dApps)이 이더리움의 탈중앙화 및 보안을 손상시키지 않고 무제한 확장성을 달성할 수 있도록 합니다.
dYdX
이더리움 기반 ZK 롤업 프로젝트(분산형 거래소의 두 배)는 암호화폐 사용자와 거래자에게 빠르고 저렴한 거래, 대출 및 대출을 제공합니다. dYdX는 보안 메커니즘의 일부로 STARK 증명을 사용하여 사용자 자금의 안전을 보장합니다.
Polygon Miden
EVM과 호환되는 STARK 기반 ZK 롤업. 아직 생산 중이지만 Polygon Miden은 출시 시 최초의 EVM 호환 ZK-STARK 프로토콜이 될 것이며 개발자가 이더리움 네이티브 dApp을 마이그레이션하여 L2 네트워크에서 확장성을 즐길 수 있도록 합니다.
재귀 ZK-SNARK는 무엇입니까?
재귀적 SNARK 시스템은 서로 다른 트랜잭션 블록에 대해 병렬로 증명을 생성하고 메인 블록체인에 제출되는 단일 블록 증명으로 집계합니다. 즉, 하나의 SNARK가 다른 SNARK를 확인할 수 있습니다.
L2 롤업은 여전히 이더리움에서 하나의 유효성 증명을 제출합니다. 그러나 이 "재귀 증명"은 여러 L2 블록의 거래를 확인하며, 온체인 계약이 제출된 증명을 수락하면 모두 유효해집니다.

재귀 ZK-SNARK는 어떤 문제를 해결합니까?
재귀 ZK-SNARK는 현재 이더리움의 12-14초 블록 시간으로 제한되는 L1 체인에 제출된 단일 증명에 여러 L2 증명을 포함하여 ZK 증명으로 마무리할 수 있는 트랜잭션 수를 크게 늘립니다.
블록 시간은 Ethereum에서 새로운 거래 블록을 채굴하는 데 걸리는 시간을 나타냅니다. ZK 롤업은 블록당 하나의 온체인 트랜잭션(및 해당 유효성 증명)만 제출할 수 있으므로 처리할 수 있는 트랜잭션 수를 제한합니다.
재귀 ZK-SNARK는 일반 ZK-SNARK와 어떻게 다른가요?
재귀 ZK-SNARK는 다른 L2 블록에 대해 생성된 SNARK를 L1 체인에 제출되는 단일 유효성 증명으로 결합하여 둘 이상의 트랜잭션 블록을 확인할 수 있기 때문에 일반 ZK-SNARK와 다릅니다.
ZK 롤업은 기본 블록체인에 게시하기 전에 트랜잭션의 각 배치에 대한 SNARK 증명을 생성하며 단일 SNARK 증명은 L2 롤업에서 수행된 트랜잭션의 한 블록만 확인할 수 있습니다.
ZK-SNARK는 원래 입력을 사용하지 않고 일반 ZK-SNARK에 의해 검증된 트랜잭션을 검증할 수 있습니다. 따라서 온체인 스마트 계약은 여러 SNARK를 입력으로 실행하지 않고도 더 큰 오프체인 계산 세트를 검증할 수 있습니다.
Plonky2란?
Plonky2는 트랜잭션을 늘리기 위해 재귀 ZK-SNARK를 사용하는 제안된 Polygon ZK 롤업 인 Polygon Zero에서 사용되는 새로운 증명 메커니즘입니다 .
재귀 SNARK는 여러 증명을 재귀 증명으로 집계하여 증명 생성 프로세스를 확장하고 Plonky2는 동일한 기술을 사용하여 새로운 블록 증명을 생성하는 데 걸리는 시간을 줄입니다.
Plonky2 증명 메커니즘은 반복적으로 하나의 블록 증명으로 집계하기 전에 수천 건의 트랜잭션 에 대한 증명을 병렬로 생성합니다. 이것은 전체 블록 증명을 한 번에 생성하려는 기존의 증명 메커니즘보다 더 효율적입니다 .
이 접근 방식의 이점은 분명합니다.
Plonky2는 0.17초 만에 재귀 증명을 생성할 수 있으므로 가장 빠른 증명 메커니즘을 사용할 수 있습니다. 또한 Plonky2는 일반 SNARK 기반 증명 시스템의 하드웨어 중앙 집중화 문제를 해결하여 소비자 등급 장치에서 증명을 생성합니다.
'BlockChain > ZKP' 카테고리의 다른 글
[Research] zk-rollup Overview (0) | 2023.03.26 |
---|---|
[raw] scroll Proof 생성 과정 이해해보자 (0) | 2023.03.21 |
이산로그문제(DLP) in ZKP (0) | 2023.03.19 |
zkEVM에 대해 deepdive 해보자 (1) | 2023.03.12 |
zk-rollup과 zkEVM의 관계 (0) | 2023.03.07 |
댓글