
Alliance Dao: ZKP를 통해 웹3 제품을 어떻게 만들 수 있을까?

작성자: Mohamed Fouda, Qiao Wang, Alliance Dao
번역: TechFlow
제로노우리지 프루프(ZKP)는 향후 10년간 근본적인 변화를 이끌 기술로 부상하고 있다. ZKP는 Web3 내외에서 폭넓은 응용 사례를 지닌다.
Web3에서는 ZKP가 두 가지 주요 병목 현상인 확장성과 프라이버시를 해결하고 있다.
-
확장성 측면에서, 여러 ZK 롤업(Validity 롤업이라고도 함)이 등장하여 거래 비용을 낮추고 사용자 경험을 개선함으로써 이더리움의 처리 능력을 10~100배까지 확장하고 있다.
-
프라이버시 측면에서, ZKP는 익명 거래 및 트랜잭션 믹싱 시대를 넘어 익명 체인 상 거래, 신원 정보, 검증된 자격 증명 등 보다 복잡하고 유용한 분야로 확장되고 있다.
ZKP에 관한 내용은 매우 방대하며, 우리 또한 ZKP 생태계의 미래 전망과 그 실현을 위한 스타트업들에 대한 비전을 갖고 있다. 그러나 여전히 개발자들이 ZKP로부터 어떻게 혜택을 얻을 수 있으며 어디서부터 시작해야 하는지에 대한 교육적 격차가 존재한다.
본 문서는 중요한 자료들을 종합함으로써 이러한 격차를 메우고자 하며, 개발자들이 ZKP가 실제 환경에서 어떻게 작동하는지 이해하고 애플리케이션에 이를 활용하는 방법을 안내하는 것을 목표로 한다.
실제 세계에서 ZKP는 어떻게 작동하는가?
ZKP란 증명자가 특정 정보를 알고 있음을 검증자에게 정보를 공개하지 않고 입증하는 기술이다.
그러나 실제로, 적어도 Web3에서는 ZKP의 사용 방식이 일반적으로 다르다. 대부분의 애플리케이션은 ZKP를 통해 고유 데이터의 소유권을 직접 나타내기보다는 검증 가능성을 통해 신뢰를 강화하는 데 사용한다. 우리는 향후 ZKP가 실체 간 표준 신뢰 모델이 될 것이라 예측한다. 그 이유는 ZKP의 두 핵심 구성 요소인 '증명'과 '검증'이 서로 분리되면서 신뢰를 요구하는 실체와 사용자 사이에 독특한 상호작용 방식을 만들어내기 때문이다.

ZKP의 주요 구성 요소는 증명 생성과 증명 검증이다.
-
증명 생성은 실행 과정의 증거를 생성하기 위해 대량의 계산을 수행하는 것으로, 증명자에 대한 신뢰 필요성을 제거한다.
-
반면 누구나 해당 증명에 대해 간단한 절차를 수행해 증명자의 프로세스 무결성을 검증할 수 있다.
이러한 사고방식은 기업이 (일반적으로 복잡한) 프로세스를 실행하고 고객이 그 프로세스를 반복하지 않고도 실행 결과를 신뢰할 수 있도록 해준다.
예를 들어보자.
당신이 OpenAI의 유료 요금제에 가입하여 chatGPT 같은 대규모 언어 모델(LLM) 중 하나를 사용한다고 가정하자. 당신은 OpenAI가 요청한 특정 모델을 실제로 실행했음을 믿어야 한다. 만약 OpenAI가 당신이 요청한 모델을 실제로 실행했다는 증거를 소량의 데이터로 보내줄 수 있다면 어떨까? 더 나아가, 모든 고유 SaaS 제품이 소비자에게 이런 보장을 제공할 수 있다면 어떤 일이 벌어질까?
이러한 신뢰 최소화가 바로 ZKP의 약속이다. 예를 들어 Web 2에서는 ZKP를 통해 모든 고객이 동일한 알고리즘을 사용하도록 하여 공정한 신용 평가나 공정한 보험 청구 처리를 보장할 수 있다. 하지만 아직 ZK 기술은 그 수준에 도달하지 못했는데, ZKP 프로세스 실행 비용이 여전히 상대적으로 높기 때문이다. 그러나 Modulus Labs와 같은 회사는 ZKP를 사용해 AI 추론을 입증하는 기술을 개발하고 있다.
ZKP의 기술적 요구사항
기술적으로 보면, 효율적인 ZKP 시스템은 다음 목표를 동시에 달성해야 한다.
-
증명 시스템의 계산 복잡도와 지연을 줄여, 증명자가 효율적으로 증명을 생성하고 가장 짧은 시간 내에 검증자에게 전달할 수 있어야 한다.
-
작은 증명 크기를 실현해야 한다.
-
효율적인 검증을 실현해야 하며, 즉 검증 비용을 최소화해야 한다.
이러한 주요 목표 외에도 사용 사례에 따라 다음과 같은 부차적 목표가 필요할 수 있다.
-
프라이버시 중심 애플리케이션에서는 데이터의 비밀성을 보호해야 하며, 즉 생성된 증명에서 비공개 입력 정보가 노출되지 않도록 해야 한다.
-
보안 가정을 단순화하기 위해 가능한 한 신뢰 설정(trust setup)을 피해야 한다.
-
검증 비용을 추가로 줄이기 위해 증명 재귀(proof recursion)를 실현해야 한다. 즉, 하나의 검증이 여러 증명을 검증할 수 있고, 다양한 증명 간에 비용을 분담할 수 있어야 한다.
모든 이러한 목표를 동시에 달성하는 것은 도전적인 일이다. 사용 사례에 따라 ZKP 시스템은 일부 목표를 우선시하게 된다. 예를 들어 SNARK 증명 시스템은 간결한 증명을 생성할 수 있지만 증명 복잡도는 증가한다. 반면 STARK는 증명자가 효율적이지만 증명 크기가 SNARK보다 최대 100배 커질 수 있다. ZK 연구자들은 새로운 증명 메커니즘을 발명해 세 가지 지표를 동시에 향상시키려는 노력을 계속하고 있다.
다양한 증명 시스템 비교
ZKP 관련 제품을 개발하는 개발자들에게 중요한 고려 사항은 어떤 기본 증명 시스템을 선택할 것인지이다. 현재 여러 ZKP 증명 구현이 있으며, 연구 개발 단계의 것도 더 많다.
ZKP 백엔드 선택은 기술적 요소뿐만 아니라 목표 제품 특성에도 크게 좌우된다. 예를 들어 롤업의 증명 시스템 선택을 살펴보자. 출금 시간, 거래 비용, 심지어 탈중앙화 정도 같은 롤업의 핵심 특징은 아래 표와 같이 주로 ZKP 증명 아키텍처에 의해 결정된다.

롤업에서는 증명이 운영자 측에서 발생한다. 기존 ZK 롤업(zkRUs)인 Starknet과 Zksync는 현재 집중형 증명자를 사용하고 있다. 따라서 증명 성능을 높이기 위해 증명을 전문적인 증명 서비스 업체에 위탁할 수 있다. 전문화와 최적화된 소프트웨어/하드웨어 활용을 통해 이더리움과 호환되는 zkEVM의 경우 증명 시간을 몇 분으로 단축할 수 있다. 예를 들어 Polygon zkEVM의 증명 시간은 현재 약 2분 정도이다. 몇 분 정도의 증명 시간, 즉 인출 지연 시간은 롤업 입장에서 수용 가능한 수준이다.
반면 Tornado Cash 거래처럼 사용자 측에서 개인 거래를 생성해야 하는 일부 사용 사례는 사용자 단말에서 증명이 발생해야 한다. 합리적인 사용자 경험을 보장하기 위해 증명 시간은 몇 초를 넘지 않아야 한다. 또한 사용자가 지갑이나 리소스가 제한된 장치에서 브라우저 내에서 이러한 계산을 수행하기 때문에 빠른 증명 속도를 제공하는 증명 시스템 선택이 중요하다. 좋은 예로, Zcash는 2018년 Sapling 업그레이드에서 증명 시스템을 Groth16으로 변경했는데, 이는 익명화 거래 속도 향상의 주요 요인이었다.
증명 시스템 비교
일반적으로 서로 다른 증명 시스템의 성능을 정확히 비교하기는 어렵다. 특히 증명 및 검증 속도는 라이브러리 구현, 선택한 암호학 곡선, 사용하는 하드웨어에 따라 달라진다.
Mina 팀이 작성한 이 글은 고수준 비교를 잘 제공해주며, 다양한 ZK 시스템에 대한 벤치마크 도구 개발 노력도 진행 중이다.

이 표는 SNARK 구현체 간의 좋은 비교를 제공하며, Groth16에서 Plonk, Halo로 이르는 속도 측면의 발전 상황을 보여준다. 진전이 있었음에도 불구하고 STARK는 증명 속도 면에서 여전히 우위를 점하고 있으나, 그 대가로 증명 크기가 더 크다. 또한 이 표는 증명 시스템의 두 가지 중요한 특성인 '신뢰 없는 설정'과 '회로 프로그래머빌리티'에 대해서도 논의한다.
'신뢰 없는 설정' 부분은 회로 생성의 사전 처리 단계에 대해 설명한다. 일부 증명 기술은 다자간 계산(MPC)을 통해 사전 처리 단계에서 비밀 난수를 생성해야 한다. 단 한 명의 참여자라도 정직하면 생성된 난수가 실제로 비밀이며, 사전 처리 단계는 안전하다. 이 과정을 '신뢰 설정(trust setup)'이라고 하는데, 사전 처리 단계 참여자 중 최소 한 명이 정직하다는 것을 신뢰하기 때문이다. 신뢰 설정 필요성은 약점으로 간주된다. 이 점에서 STARK와 Halo 2와 같은 새로운 SNARK 시스템이 장점을 갖는다. 그러나 Aztec과 Manta처럼 일부 프로젝트는 커뮤니티 참여를 유도하는 수단으로 신뢰 설정을 활용하기도 한다.
프로그래머빌리티 항목은 증명 시스템이 임의의 계산을 증명할 수 있는지를 다룬다. 일반적으로 SNARK는 어떤 계산이든 프로그래밍이 가능하다. 그러나 증명 효율성은 수행되는 계산 유형에 따라 달라진다. 반면 일부 STARK 시스템은 다양한 유형의 계산에 적응하기 어려운 경우가 있다.

자신의 제품에 ZKP를 활용하는 방법
ZKP 기술의 혜택을 받는 제품을 만드는 것은 쉬운 일이 아니며, 올바른 사고방식을 갖추는 것이 필요하다.
이 섹션은 개발자들이 자신들의 제품에 ZKP를 통합하는 최적의 방법을 선택할 수 있도록 하는 프레임워크를 제공하고자 한다. 제품 요구사항, 생태계 연계성, 성능 요구사항에 따라 개발자들이 선택할 수 있는 여러 도구가 있을 것이다. 일부 개발자는 기존 코드를 재사용할 수 있지만, 다른 개발자들은 애플리케이션을 만들기 위해 새로운 도메인 특화 언어(DSL)를 배워야 할 수도 있다.

성능 중심 ZK 애플리케이션
개발자는 대부분의 애플리케이션 계산을 오프체인으로 이전하고 체인 상에는 증명만 게시함으로써 더 높은 처리량(TPS) 또는 더 낮은 수수료를 달성할 수 있다. 이 경우 여러 프레임워크 중 선택할 수 있다. 각각의 프레임워크는 애플리케이션 코드 컴파일, ZK 회로 생성, ZK 증명자 구현, 대상 생태계용 검증자 코드 생성을 위한 일련의 도구를 제공한다. 이러한 프레임워크는 크게 EVM 중심과 비-EVM의 두 가지 범주로 나눌 수 있다.
EVM 중심 ZK 프레임워크
이 그룹의 ZK 프레임워크는 롤업이 구축되는 기반으로 이더리움과 일치한다. 거래 및 애플리케이션은 롤업의 ZK 가상 머신(zkVM)에서 실행된다. 증명은 전문 증명자가 생성되어 L1에 게시되며 스마트 계약에 의해 검증된다.
이 그룹의 첫 번째 서브셋은 EVM과 호환되는 zkVM을 구현한 것으로, 이른바 zkEVM이라고 한다. 이들의 목표는 이더리움 개발자가 Solidity와 Hardhat, Foundry와 같은 친숙한 도구를 사용할 수 있도록 하여 마찰을 최소화하는 것이다. 이들은 EVM용 회로와 증명기를 만들어 ZK의 복잡성을 추상화한다. Polygon zkEVM과 Scroll이 여기에 속한다.
두 번째 서브셋은 원생적으로 EVM과 호환되지 않는 zkVM이다. 비록 호환되지 않더라도 이 그룹은 중간 계층을 만들어 개발자가 Solidity를 사용할 수 있도록 함으로써 마찰을 줄인다. 비탈릭(Vitalik)은 이 유형을 type-4 zkEVM이라고 명명했다. zkSync Era와 Starknet이 이 그룹의 좋은 예이다. Type-4 zkEVM을 사용하면 EVM 호환 유형보다 더 높은 처리량과 더 낮은 수수료를 제공할 수 있어, 체인 상 게임이나 오더북 DEX와 같은 고성능 금융 제품과 같은 고처리량 애플리케이션 구축에 적합하다.
type-4 zkEVM용 애플리케이션을 개발하려면 개발 노력이 더 많이 들며, 사용 가능한 Solidity 코드에 제한이 따른다. 또는 개발자는 Cairo 등의 다른 언어를 배워 이러한 프레임워크에 맞춰 네이티브 애플리케이션을 개발할 수도 있다.

비 EVM zk 프레임워크
또 다른 유형의 프레임워크는 EVM 아키텍처를 대상으로 하지 않는 것으로, 경쟁 L1 또는 범용 컴퓨팅을 대상으로 한다. 그럼에도 불구하고 Sovereign과 같은 전용 SDK를 통해 이더리움 상에서 애플리케이션별 zkRU를 구축하는 데 사용될 수 있다.
여기에는 두 가지 접근법이 있다.
-
개발자는 고급 언어로 코드를 작성하여 특정 VM 아키텍처를 대상으로 하며, 이후 ZK 회로로 컴파일된다.
-
개발자는 Circom과 같은 도메인 특화 언어(DSL)를 사용해 직접 ZK 회로를 생성한다.
첫 번째 방법은 개발자에게 더 친숙하지만 일반적으로 더 큰 회로를 생성하여 증명 시간이 더 길어진다.

프라이버시 중심 ZK 애플리케이션
ZKP를 이용해 프라이버시 중심 애플리케이션을 개발하는 것은 일반적으로 개발자에게 더 도전적인 작업이다. 확장성 중심 솔루션에 비해 ZKP 기반 프라이버시 솔루션 개발 사례는 적어 학습 곡선이 더욱 가팔라진다. 기존 프라이버시 애플리케이션은 주로 결제 프라이버시에 초점을 맞추며, 프로그래머빌리티를 거의 제공하지 않는다. 프라이버시와 프로그래머빌리티를 결합하는 것은 도전적인 과제이다. 프라이버시 중심 애플리케이션은 다음 두 가지 구현 옵션 중 하나를 따르게 된다.
1. 범용 L1 위에 구축
L1에서 프라이버시 지불 애플리케이션을 활성화하기 위해 ZKP 로직은 스마트 계약으로 구축되어야 한다. 이 애플리케이션은 일반적으로 ZKP를 사용해 익명 자금 풀을 생성한다. 사용자는 이러한 익명 풀을 믹서로 사용해 원래 지갑과 연결되지 않은 새 지갑에 자금을 제공한다. 대표적인 예로 Tornado Cash가 있다. 이러한 애플리케이션에서는 증명이 사용자에 의해 수행되고 검증은 체인 상에서 이루어진다. 따라서 빠른 증명 속도, 간단한 검증 계산, 그리고 사용자 정보를 전혀 노출하지 않는 ZKP 시스템을 사용하는 것이 중요하다.
범용 체인이 고비용 암호 계산을 위해 최적화되지 않았기 때문에 검증 비용은 일반 사용자에게 종종 비싸며, 이는 이러한 애플리케이션의 채택을 제한한다. 가스 비용을 줄이기 위해 프라이빗 트랜잭션 애플리케이션을 롤업으로 이전하는 직관적인 해결책은 도전 과제를 야기할 수 있다. 이 경우 프라이빗 거래 증명이 롤업 증명에 포함되어야 하며, 즉 증명 재귀가 필요하지만 현재 이더리움 상의 일반 zk 롤업은 증명 재귀를 지원하지 않는다.
2. 프라이버시 중심의 새로운 L1/L2 구축
사설 거래 및 애플리케이션 비용을 낮추기 위해 개발자들은 프라이버시 중심 L1(Manta Network, Penumbra 등) 또는 전용 롤업(Aztec 등)을 새로 구축해야 한다. 대부분의 프라이버시 중심 체인은 여전히 범용 컴퓨팅을 지원하지 못하고 전문 용도에 집중하고 있다. 예를 들어 Penumbra와 Renegade는 사적인 거래에 집중한다. Aleo는 고급 언어로 작성된 프로그램을 컴파일하여 대응하는 ZK 회로를 생성할 수 있는 전용 언어 Leo를 만들어 프라이빗 애플리케이션용 프레임워크를 구축하고 있다. 애플리케이션 상호작용은 오프체인에서 완료되며, 사설 거래로서 증명만 체인 상에 게시된다. Aztec도 유사한 방향으로 나아가고 있으며 이더리움 L2로 자리매김하고 있다. 최근에는 Noir를 기본 스마트 계약 언어로 삼는 포괄적인 프라이빗 롤업 구축에 집중하겠다고 발표했다.
ZK 가속화
개발자가 자신의 애플리케이션에 적합한 올바른 ZK 개발 프레임워크를 선택하고 기본 증명 시스템을 결정한 후 다음 단계는 애플리케이션 성능을 최적화하고 사용자 경험을 개선하는 방법을 찾는 것이다. 이는 일반적으로 증명자의 성능과 지연 시간을 향상시키는 것으로 귀결된다. 앞서 논의했듯이 롤업의 경우 증명 시간을 단축하면 L1에 증명을 제출하는 지연이 줄어들고, 따라서 인출 지연도 감소한다. 사용자 생성 증명(즉 프라이버시 애플리케이션)의 경우 더 빠른 증명은 거래 생성 시간을 단축시키고 사용자 경험을 향상시킨다.
이전 글에서도 언급했듯이, 증명 프로세스를 가속화하려면 일반적으로 소프트웨어 최적화와 전용 하드웨어가 필요하다. 지난 몇 달간 전용 하드웨어 경쟁이 치열해졌으며, 여러 기업이 이 경쟁에 뛰어들었다. 이 섹션에서는 ZK 가속화의 현재 상황과 개발자가 이러한 경쟁에서 어떻게 이득을 볼 수 있는지 살펴본다.
서비스로서의 증명(Proof as a Service)
현재까지 ZK 증명 작업을 수행하는 표준 모델은 다중 코어 CPU 및/또는 GPU를 갖춘 강력한 서버를 사용하고 Filecoin의 Bellperson과 같은 최적화된 오픈소스 라이브러리를 활용해 증명 성능을 향상시키는 것이다. 그러나 이 모델은 개발자가 증명 인프라를 유지 관리해야 하는 운영적 복잡성을 증가시킨다. 이러한 복잡성을 해결하고 더 나은 전문화를 가능하게 하는 더 나은 모델은 '서비스로서의 증명(proof as a service)' 모델이다. 이 모델에서 특정 ZK 회로 또는 특정 용도에 대한 증명 생성이 필요한 실체는 전용 소프트웨어를 실행해 증명 계산을 수행하는 제공자에 연결한다. 일부 기업은 특정 용도에 특화된 증명 생성을 전문으로 할 수 있다. 예를 들어 Axiom은 이더리움 상에서 Halo 2 증명의 역사적 데이터를 생성하는 시스템을 구축했다. 다른 참가자들은 Plonk 또는 Halo 2와 같은 특정 ZKP 백엔드에 집중하고 더 빠르고 효율적인 증명 계산을 위한 전용 최적화를 개발할 수 있다. =nil Foundation은 ZKP 계산 시장을 구축함으로써 이 개념을 더욱 발전시키고 있다. 이 '프루프 마켓(Proof Market)'에서 증명 구매자는 생성할 ZKP에 대해 입찰하며, 증명 생성기가 이를 매칭하고 이행한다. Mina도 Mina 네트워크에서 필요한 SNARK 증명에 한해 유사한 개념인 Snarketplace를 운영하고 있다.
하드웨어 가속화
효율적인 ZK 증명 생성이 필요한 여러 L1과 롤업이 출시됨에 따라, 이러한 증명을 생성하고 그에 상응하는 보상을 얻기 위한 경쟁은 점점 더 치열해지고 있다. 이러한 체인과 L2가 많은 사용자를 유치하는 데 성공한다면 증명 생성은 비트코인 채굴 경쟁과 유사한 군비 경쟁으로 발전할 수 있다. ZKP 가속화에는 GPU, FPGA, ASIC 등 다양한 방법이 있다. Amber Group의 이 글은 이러한 다양한 선택과 각 구현 방식이 직면한 도전 과제에 대해 잘 설명하고 있다. 그러나 장기적으로 보면 증명 생성용으로 가장 효과적인 ASIC을 생산하는 기업은 ZK 중심 체인에서 상당한 경제적 이점을 얻게 될 것이다.
ZK 증명 경쟁과 비트코인 채굴 사이에는 강조할 가치가 있는 중요한 차이점이 하나 있다. 비트코인에서 채굴 과정은 SHA256 해시와 같은 단순 계산에 기반한다. 이 계산은 고정되어 쉽게 변경되지 않으므로 칩 설계 혁신과 최첨단 반도체 노드에 접근하는 데 초점이 맞춰진다. 반면 ZKP 분야에서는 서로 다른 증명 프로토콜 간에 상당한 분열이 존재한다. Plonk와 같은 동일한 증명 백엔드를 사용하더라도 목표 회로 크기에 따라 ASIC 성능이 달라질 수 있다. 이러한 비트코인 채굴과 ZKP 생성 간의 차이는 각기 다른 ZK 백엔드에 특화된 여러 승자가 존재할 가능성을 시사한다.
ZK 전용 칩 분야에 진입한 참가자들이 여럿 있다. 각 참가자는 증명 생성의 두 주요 연산인 다중 스칼라 곱셈(MSMs)과 수론 변환(NTT) 중 하나를 향상시키는 데 집중하고 있다. 최근 ETH Denver에서 600만 달러의 시드 펀딩을 발표하며 모습을 드러낸 Cysic는 FPGA를 사용해 MSM을 가속화하는 데 집중하고 있다. FPGA의 유연성 덕분에 다양한 ZK 시스템을 지원할 수 있다. 이 접근법은 1월에 1500만 달러의 시드 펀딩을 발표한 Ulventanna과 유사하다. ZK 칩 개발 분야의 다른 참가자로는 GPU에서 MSM과 NTT 계산을 가속화하는 Icicle이라는 라이브러리를 출시한 Ingonyama, Accseal, Snarkify, Supranational 등이 있다. 이 리스트 외에도 Web3 분야의 저명한 참가자들 중에는 다른 비공개 기업들과 연구
TechFlow 공식 커뮤니티에 오신 것을 환영합니다
Telegram 구독 그룹:https://t.me/TechFlowDaily
트위터 공식 계정:https://x.com/TechFlowPost
트위터 영어 계정:https://x.com/BlockFlow_News












