brunch

You can make anything
by writing

C.S.Lewis

by delight Aug 14. 2023

진화하는 영지식증명 기술의 세계

학습 차원에서 틈틈이 해외 전문가들이 블로그나 미디어 그리고 책에서 쓴 글을 번역 또는 요약 정리하고 있습니다. 이번 포스팅도 그중 하나고요. 거칠고 오역된 부분이 있을 수 있습니다. 제대로 번역되지 않은 부분은 확인 주시면 반영토록 하겠습니다. 번역 과정에서 의미 전달이 애매한 일부 문장은 삭제했습니다. 이번 글은 얼라이언스 모하메드 파우다가 미디엄에 공유한  글을 정리한 것 입니다.


영지식 증명(ZKP)은 향후 10년 동안 근본적으로 혁신적인 기술이 될 것이다. 영지식 증명은 웹 3.0 안팎에서 응용 분야를 찾고 있다. 웹 3.0에서 이 기술은 이미 확장성과 프라이버시의 주요 병목 현상, 즉 블록체인에서 두 가지 주요 골칫거리를 해결하고 있다. 확장성 측면에서는 이더리움을 10~100배 확장하는 동시에 트랜잭션 비용을 줄여 UX를 개선하기 위한 여러 ZK 롤업, 일명 밸리디티 롤업(validity rollups)이 출시되고 있다.

 프라이버시 측면에서 ZKP는 프라이빗(private ,비공개) 트랜잭션과 트랜잭션 믹싱 시대를 넘어 프라이빗 온체인 거래, 신원 및 검증된 자격 증명과 같은 더 복잡하고 유용한 영역으로 확장되고 있다.


앞으로 ZKP 영역이 어떻게 진화할지, 그리고 이러한 미래를 실현하기 위해 어떤 스타트업이 필요한지 등 ZKP에 대한 많은 콘텐츠가 준비돼 있다.. 하지만 ZKP의 혜택을 누리는 방법과 어디서부터 시작해야 하는지에 대한 빌더 교육에는 여전히 격차가 존재한다. 이 글에서는 개발자가 ZKP가 실제로 어떻게 작동하는지, 애플리케이션에서 ZKP를 사용하는 방법을 이해할 수 있도록 안내하는 중요한 리소스를 모아 이러한 격차를 메우기 위해 노력한다.


얼라이언스에서는 특히 ZKP를 통해 구현되는 새로운 사용 사례들에 대한 기대가 크다. 이 분야 빌더들이 아이디어를 논의하고 얼라이언스 프로그램에 지원할 것을 권장한다.


ZKP는 실제 어떻게 돌아가나(How ZKPs work in practice)

ZKP 표준 정의는 증명자(prover)라고 하는 당사자가 다른 당사자인 검증자(verifier)에게 특정 정보를 공개하지 않고 이를 알고 있음을 증명하는 프로세스라고 할 수 있다. 실제로, 적어도 웹 3.0에서는 ZKP가 다양하게 사용된다. 대부분의 애플리케이션은 독점 데이터 소유권을 표시하기 위해 ZKP를 사용하는게 아니라 검증 가능성을 통해 신뢰를 향상시키는 데 사용한다. 우리는 향후 ZKP가 엔터티들(entities) 간 표준 신뢰 모델이 될 것으로 예상한다. ZKP 두 가지 주요 구성 요소인 증명과 검증이 신뢰를 추구하는 주체와 사용자 간 고유한 상호 작용 체계를 가능하게 하는 방식으로 분리돼 있기 때문이다.


ZKP 실행에서 주요 구성 요소는 증명 생성과 증명 검증이다. 증명 생성에는 프로세스를 실행하는 증명을 생성하기 위해  많은 계산을 실행하는 작업이 포함된다. 이 증명은 증명자를 신뢰할 필요가 없도록 하는 역할을 한다. 대신 누구나 증명에 대한 간단한 프로세스를 실행해 증명자가 실행한 프로세스 무결성을 검증할 수 있다. 이러한 멘탈 모델(mental model)을 통해 기업은 복잡한 프로세스를 실행할 수 있으며, 고객은 프로세스를 반복하지 않고도 해당 프로세스 실행을 신뢰할 수 있다. 예를 들어 보자. chatGPT와 같은 거대 언어 모델(LLM) 들 중 하나를 사용하기 위해 OpenAI 유료 플랜에 가입했다고 가정해 보자. OpenAI가 요청한 특정 모델을 실제로 실행하고 효율성이 낮은 단순한 모델로 대체하지 않을 것이라고 믿어야 합니다. 만약 OpenAI가 요청한 특정 모델을 실제로 실행했음을 증명하는 소량의 데이터를 보낼 수 있다면 어떨까? 또한 모든 독점 SaaS 제품이 소비자에게 이러한 보증을 제공할 수 있다고 상상해 보라.


이러한 신뢰 최소화(trust minimization)가 ZKP의 약속이다. 예를 들어, 웹 2.0에서 ZKP는 모든 고객에게 동일한 알고리즘이 사용되도록 보장함으로써 공정한 신용 가치 평가 또는 공정한 보험금 청구 처리를 보장할 수 있다. ZKP 프로세스를 실행하는 데는 상대적으로 많은 비용이 들기 때문에 ZKP 기술은 아직 보편화되지 않았다. 하지만 모듈러스 랩스(Modulus Labs)와 같은 회사에서 ZKP를 사용해 AI 추론을 증명하는 기술을 구축하고 있다.


효율적인 ZKP를 위한 기술적 요구 사항

기술적 수준에서 효율적인 ZKP 시스템은 다음과 같은 목표를 동시에 달성해야 한다.


증명 시스템의 계산 복잡성과 지연 시간 감소, 즉 증명자가 효율적으로 증명을 생성하고 최소한의 지연으로 검증자에게 전달할 수 있도록 한다.

작은 증명 크기 달성

효율적인 검증, 즉 최소한의 검증 비용 달성


이러한 주요 목표들 외에도 사용 사례에 따라 다음과 같은 몇 가지 보조 목표가 필요할 수 있다.


프라이버시 중심 애플리케이션의 데이터 프라이버시: 증명 시스템이 생성된 증명에서 유출되지 않은 개인 입력을 처리할 수 있음을 의미합니다.

보안 가정을 단순화하기 위해 가능한 한 신뢰할 수 있는 설정을 피합니다.

증명 반복(proof recursion)을 달성해 증명 비용을 더욱 절감한다. 즉, 단일 증명으로 여러 증명을 검증할 수 있으며, 서로 다른 증명 간 비용을 상각할 수 있다.


이 모든 목표들은 동시에 달성하기는 어렵다. 사용 사례에 따라 ZKP 시스템은 이러한 목표 중 일부에 우선순위를 둔다. 예를 들어 SNARK 증명 시스템은 간결한 증명을 생성할 수 있지만 증명 복잡성이 증가한다. 반면에 STRAK은 효율적인 증명자를 가지고 있지만 증명 크기가 SNARK보다 100배 더 클 수 있다. zk 연구자들은 새로운 증명 메커니즘을 발명함으로써 기술의 최전선을 발전시키고 세 가지 지표를 동시에 개선하기 위해 지속적으로 노력하고 있다.


다양한 증명 시스템들 비교

ZKP 관련 제품을 구축하는 개발자가 고려해야 할 중요한 질문은 기본 증명 시스템을 선택하는 방법이다. 여러 가지 ZKP 증명 시스템들이 구현되어 있으며, R&D 단계에서는 더 많은 증명 시스템이 구현되고 있다. ZKP 백엔드 선택은 기술적 측면뿐만 아니라 대상 제품에 따라 달라진다. 롤업을 위한 증명 시스템을 선택하는 것을 예로 들어보자. 롤업 주요 특징(예: 인출 시간, 트랜잭션 비용, 탈중앙화)은  ZKP 증명 아키텍처에 의해 결정된다.


롤업에서 증명은 비즈니스 측, 즉 롤업 운영자에 의해 이뤄진다. 기존 zk 롤업(zkRU), 예를 들어 스타크넷과 zksync는 현재 중앙화된 프로바이더를 사용한다. 따라서 이들은 전문화된 증명자, 즉 서비스형 증명자에게 증명을 위임해 증명자 성능을 개선할 수 있다. 전문화 및 최적화된 SW/HW를 활용하면 이더리움과 호환되는 zkEVM의 경우 증명 시간을 몇 분으로 단축할 수 있다. 예를 들어 폴리곤 zkEVM의 증명 시간은 현재 약 2분 정도다. 롤업에는 몇 분의 증명 시간, 즉 출금 지연이 허용될 수 있다.


반면, 토네이도 캐시(Tornado Cash) 트랜잭션과 같은 비공개 트랜잭션 생성 등 일부 사용 사례에서는 사용자 측에서 증명이 이뤄져야 한다. 합리적인 사용자 경험을 보장하기 위해 증명 시간은 몇 초를 초과할 수 없다. 또한 사용자가 리소스가 제한된 기기에서 지갑을 사용할 때 브라우저에서 이러한 연산을 수행하므로 빠른 증명자를 갖춘 증명 시스템을 선택하는 것이 중요하다. 좋은 예로 지캐시가 2018년 사플링 업그레이드(Sapling upgrade )를 통해 증명 시스템을 그로스16( Groth16)으로 변경한 것을 들 수 있는데, 이는 쉴드 트랜잭션(shielded transactions) 속도를 크게 향상시키는 데 큰 역할을 했다.


제품에 ZKP를 활용하는 방법

이 섹션에서는 개발자가 제품에 ZKP를 통합하는 데 가장 적합한 접근 방식을 선택할 수 있는 프레임워크를 제공하고자 한다. 제품 요구 사항, 생택계 조정 및 성능 요구 사항에 따라 개발자는 여러 가지 도구 중에서 선택할 수 있다. 일부 개발자는 기존 코드를 재사용할 수 있는 반면, 다른 개발자는 애플리케이션을 만들기 위해 새로운 도메인별 언어(DSL)를 배워야 할 것이다.


성능에 중점을 둔 zk 애플리케이션

개발자는 대부분의 애플리케이션 연산은 오프체인에서 수행하고 증명만 온체인에 게시함으로써 더 높은 처리량(TPS)을 달성하거나 수수료를 낮추기 위해 ZKP를 사용할 수 있다. 이 경우 여러 프레임워크 중에서 선택할 수 있다. 이러한 각 프레임워크는 고수준 언어로 작성된 애플리케이션을 증명 생성에 적합한 zk 회로(zk circuit)라는 동등한 표현으로 컴파일하는 플로우를 제공한다. 이러한 프레임워크는 애플리케이션 코드를 컴파일하고, zk 회로를 생성하고, zk 증명자를 구현하고, 대상 생태계를 위한 검증자 코드를 생성하는 일련의 도구를 제공한다. 이러한 프레임워크는 두가지로 나눌 수 있다.: EVM 중심 프레임워크와 비 EVM 프레임워크다.


EVM 중심 zk 프레임워크

이 zk 프레임워크 그룹은 이더리움 위에 롤업으로 구축돼 이더리움에 맞춰 조정된다. 트랜잭션과 애플리케이션은 롤업의 zk 가상 머신(zkVM)에서 실행된다. 증명은 전용 증명자에 의해 생성되고 스마트 컨트랙트에 의해 확인되는 L1에 게시된다.


이 그룹의 첫 번째 하위 집합은 EVM과 호환되는 zkVM을 구현하므로 zkEVM이라고 한다. 이는 이더리움 개발자가 하드햇이나 파운드리와 같은 견고하고 익숙한 도구를 변경 없이 사용할 수 있도록 하여 마찰을 최소화하는 것이 목표다. 이들은 EVM에서 바로 작동하는 회로와 증명자를 생성해 zk 복잡성을 추상화한다. 여기에는 폴리곤 zkEVM과 스크롤이 포함된다.


이 그룹 두 번째 하위 집합은 기본적으로 EVM과 호환되지 않는 zkVM이다. 호환되지 않음에도 불구하고 이 그룹은 개발자가 솔리디티를 사용할 수 있도록 중간 레이어를 생성해 마찰을 줄인다. 비탈릭은 이 그룹을 타입 4 zkEVM이라고 부른다. zkSync Era와 Starknet이 이 그룹의 좋은 예다. 타입-4 zkEVM의 장점은 EVM 호환 유형보다 더 높은 처리량과 낮은 수수료를 제공할 수 있다는 것이다. 따라서 온체인 게임과 같이 처리량이 많은 애플리케이션이나 오더북 DEX와 같은 고성능 금융 상품을 구축하는 데 적합하다.


비 EVM zk 프레임워크

다른 유형 프레임워크는 이더리움과 경쟁하는 L1 또는 범용 컴퓨팅을 대상으로 하기 때문에 EVM 아키텍처를 대상으로 하지 않는 프레임워크다. 그럼에도 불구하고 소버린과 같은 특수 SDK를 통해 이더리움에서 애플리케이션별 zkRU를 구축하는 데 여전히 사용할 수 있다.


개인정보 보호에 중점을 둔 ZK 애플리케이션

ZKP를 사용하여 개인정보 보호에 중점을 둔 앱을 개발하는 것은 개발자에게 더 까다로운 작업인 경우가 많다. 확장성에 중점을 둔 솔루션에 비해 개인 정보 보호에 중점을 둔 솔루션을 개발하기 위해 ZKP를 사용하는 작업은 많지 않아 학습 곡선이 가파르기 때문이다. 기존 개인정보 보호 애플리케이션은 주로 결제 개인정보 보호에 중점을 두어 프로그래밍 기능을 많이 허용하지 않았다. 개인정보 보호와 프로그래밍 기능을 결합하는 것은 어려운 작업이다. 개인정보 보호 중심 애플리케이션은 다음 두가지 구현 방법 중 하나를 따른다.


범용 L1 위에 구축하기

L1에서 프라이빗 결제 앱을 사용하려면 ZKP 로직을 스마트 컨트랙트로 구축해야 한다. 애플리케이션은 종종 ZKP를 사용해 개인 자본 풀을 생성한다. 사용자는 이러한 개인 풀을 믹서로 사용해 원래 지갑과 연결되지 않은 새 지갑에 자금을 조달한다. 유명한 예로 토네이도 캐시를 들 수 있다. 이러한 애플리케이션의 경우, 사용자가 증명을 수행하고 체인에서 검증이 이뤄진다. 따라서 빠른 증명과 간단한 검증 계산이 가능하고 생성된 


증명에서 사용자 정보가 유출되지 않는 ZKP 시스템을 사용하는 것이 중요하다. 범용 체인은 값비싼 암호화 연산에 최적화되어 있지 않기 때문에, 검증 비용이 일반 사용자에게 부담스러워 이러한 애플리케이션 채택이 제한되는 경우가 많다. 가스 비용을 줄이기 위해 프라이빗 트랜잭션 애플리케이션을 롤업으로 옮기는 직관적인 해결책은 어려울 수 있다. 이 시나리오에서는 개인 트랜잭션 증명이 롤업 증명, 즉 증명 반복에 포함되어야 하는데, 이는 현재 이더리움의 범용 zk 롤업에서는 불가능하다.


프라이버시에 중점을 둔 새로운 L1/L2 구축

프라이빗 트랜잭션과 애플리케이션 비용을 낮추기 위해 개발자는 만타(Manta) 네트워크나 페넘브라(Penumbra) 같은 새로운 프라이버시 중심 L1을 구축하거나 아즈텍과 같은 특수한 롤업을 구축해야 한다. 대부분의 프라이버시 중심 체인은 아직 범용 컴퓨팅을 지원하지 못하고 특수한 사용 사례에 집중하고 있다. 예를 들어, 페넘브라나 레니게이드(Renegade)는 프라이빗 트레이딩에 초점을 맞추고 있다. 알레오( Aleo)는 고수준 언어로 작성된 프로그램을 해당 zk 회로와 호환하는 전용 언어인 '레오'를 만들어 프라이빗 애플리케이션을 위한 프레임워크를 구축하고 있다. 애플리케이션 상호작용은 오프체인에서 이루어지며, 프라이빗 트랜잭션으로 게시된 증명만 온체인에 보관된다. 아즈텍도 비슷한 방향으로 나아가고 있지만, 이더리움 L2다. 아즈텍은 최근 Noir 를 기본 스마트 컨트랙트 언어로 사용하는 일반화된 프라이빗 롤업을 만드는 데 집중한다고 발표했다.


zk 가속

개발자가 애플리케이션에 적합한 zk 개발 프레임워크를 선택하고 기본 증명 시스템을 선택한 후, 다음 단계는 애플리케이션 성능을 최적화하고 사용자 경험을 개선하는 방법을 찾는 것이다. 이는 종종 증명자 성능과 지연 시간을 개선하는 것으로 귀결된다. 앞서 설명한 것처럼 롤업의 경우, 증명자 시간을 줄인다는 것은 L1에 증명을 제출하는 데 걸리는 지연 시간이 짧아진다는 것을 의미하며, 따라서 출금 지연 시간도 짧아진다. 사용자 생성 증명, 즉 프라이버시 애플리케이션의 경우, 빠른 증명은 트랜잭션 생성 시간이 짧아지고 UX가 개선된다는 것을 의미한다.


이전 글에서 설명한 것처럼, 증명 프로세스를 가속화하려면 소프트웨어 최적화와 전용 하드웨어가 모두 필요한 경우가 많다. 지난 몇 달 동안 여러 회사가 경쟁에 뛰어들면서 전용 하드웨어 경쟁이 뜨거워졌다. 이 섹션에서는 zk 가속의 현재 환경과 개발자가 이러한 경쟁에서 이점을 얻을 수 있는 방법에 대해 설명한다.


서비스로서의 증명(Proof as a service)

지금까지 zk 증명 작업을 수행하는 표준 모델은 멀티코어 CPU 및/또는 GPU를 갖춘 강력한 서버를 사용하고, 파일코인 벨퍼슨과 같은 최적화된 오픈 소스 라이브러리를 활용해 증명 성능을 개선하는 것이었다. 이 모델은 증명 인프라를 유지 관리해야 하는 개발자에게 운영상의 복잡성을 가중시킨다. 이러한 복잡성을 해결하고 더 나은 전문화를 가능하게 하는 나은 모델은 서비스형 증명 모델이다. 


이 모델에서는 특정 zk 회로 또는 특정 사용 사례에 대한 증명을 생성해야 하는 엔티티가 독점 소프트웨어를 실행하는 공급자에게 연결해 증명 연산을 수행한다. 일부 회사는 특정 사용 사례에 대한 증명을 전문적으로 생성할 수 있다. 예를 들어, 액시엄은 이더리움의 과거 데이터에 대한 헤일로 2 증명을 생성하는 시스템을 구축했다. 다른 플레이어들은 플롱크나 헤일로 2와 같은 특정 ZKP 백엔드에 집중해 더 빠르고 효율적인 증명 계산을 위한 독점적인 최적화를 구축할 수 있다. =nil 재단은 ZKP 계산을 위한 마켓플레이스를 구축해 이 개념을 한 단계 더 발전시키고 있다. 이 증명 시장에서는 증명 구매자가 입찰을 제출해 ZKP를 생성하고, 증명 생성자가 이를 매칭하여 이행한다. 미나에도 스마켓플레이스라는 비슷한 개념이 있지만, 이는 미나 네트워크에 필요한 SNARK 증명에 국한돼 있다.


하드웨어 가속(Hardware Acceleration)

효율적인 zk 증명 생성에 의존하는 여러 L1과 롤업이 출시됨에 따라, 이러한 증명을 생성하고 관련 보상을 받기 위한 경쟁은 더욱 뜨거워질 것이다. 이러한 체인과 L2가 상당한 사용자 기반을 확보하는 데 성공한다면, 증명 생성은 비트코인 채굴 경쟁과 유사한 군비 경쟁으로 발전할 수 있다. ZKP 가속 방식에는 GPU, FPGA, ASIC 등 다양한 접근 방식이 있다. 그러나 장기적으로는 증명 생성을 위해 가장 효율적인 AISC를 생산하는 회사가 zk 중심 체인에서 상당한 경제적 이점을 갖게 될 것이다.


zk 증명 경쟁과 비트코인 채굴 사이에는 큰 차이점이 있다는 점에 유의하는 것이 중요하다. 비트코인에서 채굴 과정은 간단한 계산인 SHA256 해싱을 기반으로 이뤄진다. 이 계산은 고정되어 있고 변경될 수 없었기 때문에 칩 설계 혁신과 최첨단 반도체 노드에 대한 액세스를 둘러싼 경쟁에 집중됐다. ZKP 공간에서는 서로 다른 증명 프로토콜 간에 상당한 파편화가 존재한다. 예를 들어 플롱크와 같은 동일한 증명 백엔드라도 목표 회로 크기에 따라 ASIC 성능에 차이가 생길 수 있다. 비트코인 채굴과 ZKP 생성 간의 이러한 차이로 인해 각각 다양한 zk 백엔드에 특화된 다수의 승자가 발생하는 상황이 발생할 수 있다.


여러 플레이어가 zk 전용 칩 필드에 뛰어들고 있다. 각 플레이어는 증명 생성의 두 가지 주요 연산 중 하나를 개선하는 데 집중한다: 다중 스칼라 곱셈(MSM)과 수 이론 변환(NTT)이다. 마지막으로 베일을 벗은 플레이어는 이더리움 덴버에서 600만 달러 규모 시드 라운드를 발표한 사이식(Cysic)이었다. 사이식은 FPGA를 사용해 MSM을 가속화하는 데 집중하고 있다. FPGA의 유연성 덕분에 다양한 zk 시스템을 지원할 수 있다. 이러한 접근 방식은 1월에 1,500만 달러 규모 시드 라운드를 발표한 울벤타나와 유사하다. zk 칩 개발 분야의 다른 플레이어로는 GPU에서 MSM 및 NTT 연산을 가속하는 Icicle이라는 라이브러리를 출시한 Ingonyama, Accseal, Snarkify 및 Supranational 등이 있다. 이들 외에도 웹 3.0 분야에서 평판이 좋은 업체들의 스텔스 회사들과 연구 노력이 이뤄지고 있다. 후자의 예로는 FPGA를 사용해 MSM 계산을 가속화하는 Jump Crypto의 CycloneMSM 구현과 MSM과 NTT를 가속화하는 Jane Street의 FPGA 구현을 들 수 있다.


얼라이언스는 ZKP의 잠재력을 믿기에 더 많은 빌더가 이 분야에 진출할 수 있도록 돕고 자금과 멘토링을 지원하기 위해 노력하고 있다. 웹 3.0에서 ZKP는 이미 주류 채택을 방해하는 확장성 및 개인정보 보호 문제를 해결하고 있다. 웹 2에서 ZKP는 SaaS, 보험, 신용 평가 등 광범위한 비즈니스에 신뢰 최소화의 정신을 도입할 수 있다.


브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari