
하드코어 해설: 제로지식 증명(ZK)이 중요한 이유
작자:Glaze & Fundamental Labs 연구팀
이 리서치 보고서가 마음에 드셨다면, 좋아요와 저장을 해주시고 관심 있는 친구들에게 공유해 주세요. 큰 도움이 됩니다.
TL;DR
ZK의 전망은 밝으며, 과거에는 불가능했던 일들을 현실로 만들 수 있습니다. 최근 몇 년간 ZK 분야에서는 더 강력한 성능, 업그레이드 가능성, 신뢰할 수 있는 초기화 없음 등 많은 돌파구가 있었습니다. 이러한 개선 사항들은 ZK를 응용 단계로 이끌어갔습니다. 따라서 새로운 ZK 증명 시스템을 평가할 때 다음과 같은 기준을 사용할 수 있습니다:
한 건과 열 건의 거래에 대한 증명 시간
한 건과 열 건의 거래에 대한 검증 시간
한 건과 열 건의 거래를 묶었을 때 증명 크기
신뢰할 수 있는 초기화
참조 문자열 길이
CRS 지원 여부
SRS 지원 여부
재귀 증명 지원 여부
양자 컴퓨터 저항 가능 여부
보안성 기반 암호학 가정
ZKEVM은 ZKRU의 다음 이정표이며, ZKEVM은 세 단계로 나뉩니다:
합의 레벨
바이트코드 레벨
언어 레벨
ZKRU는 막 응용 단계에 진입했으며 생태계는 아직 완벽하지 않습니다. 개발자들은 ZK의 모든 잠재력을 아직 발굴하지 못했습니다. 사람들은 여전히 이러한 첨단 이론들로부터 영감을 얻고 있으며, 주목해야 할 방향은 다음과 같습니다:
높은 TPS와 낮은 수수료를 최대한 활용하는 애플리케이션
Layer2 간 통신 프로토콜/애플리케이션
유동성 집약
개발 도구/프레임워크
클라우드 기반 개발 도구
독특한 기능을 갖춘 cross-Layer2 Layer1 애플리케이션
다양한 ZKVM
ZK 브릿지
다른 체인에서 ZK 적용
재귀 기능을 갖춘 Layer2
DAO 및 커뮤니티 거버넌스에서의 ZK 활용
상업화된 ZK 알고리즘
칩 및 클라우드 컴퓨팅
ZK의 응용은 두 가지 측면에 집중됩니다: 롤업과 프라이버시. 프라이버시보다 롤업이 더 유망합니다. 프라이버시는 어느 정도 블록체인의 개방 정신에 반하며, 규제 문제도 있을 수 있습니다. Web2 시대에는 프라이버시 애플리케이션이 선두 자리를 차지하는 것을 본 적이 없습니다. 모든 앱의 프라이버시 보호 수준은 계속해서 향상되고 있지만, 선두 앱은 대개 프라이버시 중심이라기보다는 가장 사용하기 쉬운 앱입니다. 프라이버시에는 비용이 따르며, 대부분의 경우 사용자가 가장 중요하게 여기는 사용 편의성을 희생합니다.
ZK 프라이버시 프로젝트를 볼 때 다음 사항들이 중요합니다:
ZK는 단지 기술일 뿐, 제품 역량과 팀에 집중해야 합니다
ZK는 복잡한 기술이므로 개발 속도를 늦출 수 있습니다
ZK는 DAO 거버넌스와 신원 인증에 유리합니다
ZK는 기관의 체인 연결 필수 기술입니다
직관
ZK(제로 지식 증명)를 한 문장으로 소개하자면: 증명자(prover)가 검증자(verifier)에게 어떤 주장이 참이라는 것을 설득하지만, 그 주장이 참이라는 것 외에는 검증자가 추가 정보를 얻지 못한다.
ZK는 익명성을 위해 고안되었습니다. 예를 들어, 우리 신분증 번호가 유효하다는 것을 증명할 수 있지만, 검증자는 그 번호를 알 수 없다고 상상해보십시오. 오늘날 정보를 과도하게 요구하는 세상에서 이것은 매우 중요한 의미를 가집니다.
더 생생한 예를 들어보겠습니다. 소밍과 소홍이 스도쿠 게임을 하고 있습니다. 소홍은 소밍에게 스도쿠 답을 찾았다는 것을 증명하고 싶지만, 동시에 그 답을 숨기고 싶어 합니다. 왜냐하면 소밍은 아직 스도쿠를 풀지 않았기 때문입니다. 어떻게 이 증명을 설계하시겠습니까?

스도쿠를 카드 위에 작성합니다. 각 카드에는 숫자 하나씩 적혀 있습니다. 그들을 정답 순서대로 배치하고 앞면을 아래로 향하게 합니다. 소밍은 임의로 한 행, 한 열 또는 한 블록을 선택할 수 있습니다. 소홍은 소밍이 선택한 카드들을 꺼내 무작위로 섞은 후 앞면을 위로 하여 보여줍니다. 만약 이 카드들이 중복되지 않는 1~9라면, 소밍은 소홍이 스도쿠의 일부를 풀었다는 것을 알게 되지만, 운이 좋은 것일 수도 있습니다. 이 과정을 반복하여 매번 올바른 결과가 나오면, 소홍이 운이 좋은 것이 아니라 실제로 답을 알고 있다는 결론을 내릴 수 있습니다. 소밍은 소홍이 스도쿠를 풀었다는 것은 알지만 여전히 정답을 모릅니다.

아직 혼란스럽다면 이비디오를 시청하세요. UCLA 컴퓨터 교수는 ZK가 무엇인지 5가지 난이도로 설명합니다.
흔한 제로 지식 증명 계보
제로 지식 증명 계보를 소개하기 전에, 우리가 흔히 말하는 ZK-SNARK는 하나의 알고리즘이 아니라 하나의 계보라는 점을 알아야 합니다. ZK-STARK는 구체적인 제로 지식 알고리즘 이름입니다.
가장 흔히 접하는 것은 아마 ZK-SNARK일 것입니다. SNARK는 succinct non-interactive arguments of knowledge의 약자입니다. SNARK의 가장 특별한 점은 N, 즉 비상호성(non-interactivity)입니다.
간결성(Succinct): 검증에 필요한 계산 자원은 증명하려는 프로그램을 다시 실행하는 것보다 훨씬 적습니다.
비상호성(Non-interactive): 증명자와 검증자는 매번 의사소통할 필요가 없습니다. 처음에만 신뢰할 수 있는 초기화(Trust Setup)를 완료하면 되며, 이후 다른 검증자들도 이 초기화 후에 검증에 참여할 수 있습니다.
논증(Argument): 증명자가 엄청난 계산 능력을 가지고 있다면, 허위 증명을 생성할 수 있습니다. 이런 일이 발생하면 주류 공개키 암호화 방식도 더 이상 안전하지 않습니다.
지식(Knowledge): 증명자는 다른 사람이 모르는 비밀을 알고 있어야 증명을 생성할 수 있습니다.
ZK-SNARK의 가장 큰 문제는 신뢰할 수 있는 초기화(Truest Setup)가 필요하다는 점입니다. 신뢰할 수 있는 초기화는 참조 문자열(Reference String)을 생성합니다. 만약 RS가 유출되면 누구나 허위 증명을 생성할 수 있습니다. 또한 다수의 참여자가 참여하는 신뢰할 수 있는 초기화를 설계하는 것도 매우 어렵습니다. RS는 특정 프로그램에만 사용할 수 있습니다. 다른 프로그램의 경우 또 다른 신뢰할 수 있는 초기화가 필요합니다. 따라서 ZK-SNARK는 범용 컴퓨팅에 사용될 수 없습니다. 또한 RS는 업그레이드할 수 없습니다. 프로그램을 업그레이드하면 신뢰할 수 있는 초기화를 다시 수행해야 합니다.
이러한 일련의 문제를 해결하기 위해 과학자들은 두 가지 방향을 찾아냈습니다:
투명한 설정(Transparent Setup): 신뢰할 수 있는 초기화는 공용 참조 문자열(Common Reference String)을 생성합니다. CRS는 공개적이며 비밀 유지가 필요하지 않습니다. Fractal, Halo, ZK-STARK, SuperSonic 등이 이 경로를 따릅니다. 이 방법의 문제점은 생성된 증명이 너무 많은 저장 공간을 차지한다는 것으로, KB 단위까지 갑니다. 블록체인의 경우 저장 공간은 매우 비쌉니다.
범용 설정(Universal Setup): 신뢰할 수 있는 초기화는 구조적 참조 문자열(Structure Reference String)을 생성하지만, 비밀 유지가 필요합니다. SRS는 신뢰할 수 있는 초기화가 다양한 프로그램에 사용될 수 있도록 하여 범용 컴퓨팅 증명을 가능하게 합니다. Marlink, SuperSonic-RSA 및 Plonk가 이 경로를 따릅니다.
산업계에서는 다음과 같은 알고리즘들이 널리 사용됩니다:
Groth16: Zcash는 초기에 이 알고리즘을 사용했습니다. 증명이 빠르고 생성된 증명이 작기 때문에 제로 지식 증명의 벤치마크 기준이 되었습니다. 단점은 신뢰할 수 있는 초기화가 필요하며, 한 번의 초기화는 한 프로그램에만 적용된다는 것입니다. 가장 완벽한 도구 체인을 갖추고 있습니다.
Sonic: 범용 설정을 지원합니다. SRS의 크기는 프로그램 크기에 비례합니다. 생성된 증명은 고정 크기이지만 검증은 많은 계산 자원을 소모합니다. Sonic은 범용 컴퓨팅 제로 지식 증명을 가능하게 합니다.
Fractal: 재귀(recursion)를 지원합니다. 생성된 증명은 많은 저장 공간을 차지합니다.
Halo: 재귀를 지원하지만, 증명 시간이 비선형이기 때문에 간결성(succinct)을 만족하지 않습니다. Halo2는 현재 주류로 사용되는 증명 시스템입니다.
SuperSonic: 첫 번째 실용적이고 적용 가능한 투명한 ZK-SNARK입니다.
Marlin: 프로그램을 업그레이드할 수 있습니다. 성능은 Sonic과 Groth16 사이에 위치합니다.
Plonk: 프로그램을 업그레이드할 수 있습니다. 참여자가 순차적으로 신뢰할 수 있는 초기화에 참여할 수 있어 다수 참여자의 초기화가 복잡하지 않습니다. Plonk는 Kate commitments를 사용하며 다항식 커밋먼트(ZK-SNARK의 첫 단계는 계산 문제를 다항식 문제로 변환하는 것)를 사용하지 않습니다. 많은 현대 제로 지식 증명 시스템들이 Plonk를 기반으로 구축되어 있습니다. Plonk는 매우 우수한 도구 체인을 갖추고 있습니다.
연구할 알고리즘을 몇 개 고르라고 한다면, Groth16, Halo, Plonk가 최고의 선택입니다.
CRS는 Transparent Setup 경로에서 생성된 공용 참조 문자열입니다. SRS는 Universal Setup 경로에서 생성된 구조적 참조 문자열입니다. 증명 크기는 Layer1에 얼마나 많은 저장 공간을 차지할지를 결정합니다. 증명과 검증 시간은 계산 자원 소비를 결정합니다.

출처: Comparing General Purpose zk-SNARKs
다음은 제로 지식 증명 알고리즘의 벤치마크이며, 이 실험 기반입니다.

출처: Comparing General Purpose zk-SNARKs
다음은 더 많은 벤치마크와 알고리즘 비교입니다:
요약하자면, 새로운 ZK 알고리즘을 볼 때 다음 지표들을 유의해야 합니다:
한 건과 열 건의 거래에 대한 증명 시간
한 건과 열 건의 거래에 대한 검증 시간
한 건과 열 건의 거래를 묶었을 때 증명 크기
신뢰할 수 있는 초기화
참조 문자열 길이
CRS 지원 여부
SRS 지원 여부
재귀 증명 지원 여부
양자 컴퓨터 저항 가능 여부
보안성 기반 암호학 가정
ZK는 최근 몇 년 동안 실험실을 벗어나 점차 응용 단계로 접어들었습니다.ZK의 두 주요 응용 방향은 롤업과 프라이버시입니다.ZK는 프라이버시 제품의 변화를 명확하게 가져왔으며, 이는 ZK가 검증자에게 추가 정보를 제공하지 않기 때문입니다.롤업은 ZK의 두 가지 특성인 간결성(Succinct)과 재귀성(Recursion)에 의존합니다. 간결성은 검증자가 계산 자원을 크게 절약할 수 있게 해주며, 검증자는 전체 프로그램을 다시 실행할 필요가 없습니다. 재귀성은 저장 공간을 절약하는 데 도움이 됩니다. 재귀를 통해 블록체인은 고정된 크기를 유지할 수 있습니다. 이는 탈중앙화에도 유리하며, 이러한 블록체인 노드는 어떤 하드웨어에서도 실행할 수 있습니다.

ZK 응용 개발 프로세스
독립적으로 ZK 애플리케이션을 개발하는 것은 매우 복잡하며, 개발자는 다음과 같은 기술을 습득해야 합니다:
알고리즘, 기본 산술, 최적화 기술. 개발자는 유한체 산술, 다항식 커밋먼트, 타원곡선 문제 등을 해결하기 위해 이러한 기술이 필요합니다.
ZK 증명 시스템, 예: ZK-SNARKs, Plonkish, 그리고 신뢰할 수 있는 초기화 방법. 개발자는 적절한 ZK 증명 시스템을 선택하고 이를 맞춤화해야 합니다.
회로 프로그래밍 기술. 개발자는 Merkle 트리 및 해시와 같은 일반적인 암호화 알고리즘을 회로 형태로 작성해야 합니다.
응용 및 암호화 프로토콜 개발.
효과적인 개발 도구는 개발 과정을 가속화하고 복잡성을 줄일 수 있습니다. 예를 들어 Circom과 같은 도구는 기본 대수 및 증명 시스템 문제를 해결합니다. 개발자는 대수와 ZK 증명 시스템을 무시하고 회로 프로그래밍과 애플리케이션 개발에 집중할 수 있습니다.
롤업 메커니즘
롤업 아이디어는 간단합니다. 체인상 계산은 비싸기 때문에 롤업은 계산을 안전하게 오프체인으로 이동시키고 체인상에는 계산 결과만 저장하려고 합니다.
해시 트리의 상태 루트는 롤업 계약에 저장됩니다. 롤업 스마트 계약은 Layer2에서 제출된 정보로부터 상태 루트를 업데이트합니다.

출처: An Incomplete Guide to Rollups (vitalik.ca)

출처: An Incomplete Guide to Rollups (vitalik.ca)
ZK 롤업(ZKRU)은 제로 지식 증명을 사용하여 Layer2에서 제출된 새로운 상태 루트가 정확하다는 것을 보장합니다. 검증자는 이 증명만 검증하면 새로운 상태 루트의 정확성을 확인할 수 있습니다. 검증자는 Layer2에서 제출된 거래를 일일이 다시 실행할 필요가 없습니다. 이는 검증자의 작업량을 크게 줄여 TPS를 향상시킵니다. 이 계산량 절감은 제로 지식 증명의 간결성 특성을 보여줍니다. 제로 지식 증명의 간결성, 완전성, 건전성에 의존하여 ZKRU는 안전하게 TPS를 향상시킬 수 있습니다. (완전성과 건전성은 증명 시스템의 필수 특성입니다. 완전성: 증명이 유효하면 검증자는 반드시 증명자의 주장을 믿습니다. 진실은 감출 수 없습니다. 건전성: 거짓 주장은 유효한 증명을 생성할 수 없습니다. 거짓은 진실이 될 수 없습니다.)
ZKRU 전반적으로 낙관적 롤업(OPRU)보다 우수합니다. OPRU의 TPS는 다소 낮고, 사기 증명(Fraud Proof)에 의존하기 때문에 출금 주기가 더 깁니다. 그렇다면 ZKRU가 완전히 확장되면 OPRU를 압도하지 않을까요? 게다가 OPRU의 현재 생태계가 특히 앞서 있다고 보기도 어렵습니다. OPRU는 가만히 있지 않고, 자체 솔루션에 ZK를 통합하여 TPS를 향상시키고 원래 긴 출금 주기를 해결하려고 시도하고 있습니다. 예를 들어, 상태 변경에 ZK를 적용하면 사기 증명에 필요한 시간을 단축할 수 있습니다.
역할
롤업 시스템에는 총 세 가지 역할이 있습니다:
사용자: 사용자는 Layer2에 거래를 제출합니다. Layer1에서 자산을 Layer2로 입금합니다.
롤업 노드: 롤업 노드는 Layer2 네트워크의 정상 운영을 담당합니다. 증명 생성, 거래 실행, 거래 패킹, 사기 증명 참여 등을 수행합니다.
Layer1: Layer1은 Layer2의 보안을 보장하고 합의 달성을 책임집니다. 현재 대부분의 Layer1은 이더리움입니다.

출처: Understanding rollup economics from first principles
경제 모델
경제 모델에서 가장 중요한 것은 비용과 수익입니다. Layer2의 경우, 지출은 주로 다음과 같습니다:
증명 생성 계산 비용
상태 전환 계산 비용
Layer1 거래 수수료
Layer1 데이터 저장 비용
이 중 Layer1 데이터 저장 비용이 가장 비쌉니다. 이 그림은 데이터 전달을 보여줍니다. 먼저 사용자가 거래를 롤업 노드에 제출합니다. 롤업은 여러 거래를 묶고 증명을 생성하여 Layer1에 저장합니다.

출처: Understanding rollup economics from first principles
다음 그림은 롤업이 Layer1에서의 지출과 수입을 보여줍니다:

출처: L2Fees.info on 3/28/2022
Layer2의 가장 흔한 수입은 수수료와 MEV입니다. 수수료는 네트워크 상황에 따라 다르며, MEV는 사용자 거래에 따라 달라집니다. Layer2는 자체 토큰을 발행하고 롤업 노드에 보상을 제공하기도 합니다.
TechFlow 공식 커뮤니티에 오신 것을 환영합니다
Telegram 구독 그룹:https://t.me/TechFlowDaily
트위터 공식 계정:https://x.com/TechFlowPost
트위터 영어 계정:https://x.com/BlockFlow_News
즐겨찾기 추가소셜 미디어 공유
TechFlow 공식 커뮤니티에 오신 것을 환영합니다
Telegram 구독 그룹:https://t.me/TechFlowDaily
트위터 공식 계정:https://x.com/TechFlowPost
트위터 영어 계정:https://x.com/BlockFlow_News














