[블록미디어 지승환 기자] 영지식 증명(Zero-Knowledge Proof·ZK) 기술이 발전하면서 마주한 가장 큰 장벽은 ‘개발 난이도’였다. 복잡한 수학적 제약 조건을 이해해야만 증명을 생성할 수 있었기 때문이다. 하지만 최근 영지식 가상머신(Zero-Knowledge Virtual Machine·zkVM)의 등장으로 이 풍경이 급변하고 있다.
브레비스(Brevis)는 ‘무식에서 영지식까지(From 0 Knowledge to Zero Knowledge)’ 교육 시리즈 5편 ‘영지식 증명 시스템과 영지식 가상머신(ZK Systems and zkVMs)’을 통해 영지식 가상머신이 어떻게 코드를 증명으로 변환하는지, 그리고 프로젝트별로 왜 서로 다른 아키텍처를 선택하는지를 상세히 분석했다.
개발자를 위한 통역사, 영지식 가상머신의 등장
영지식 증명 시스템의 본질은 수학적 방정식이다. 시스템은 “이 수학적 제약 조건을 만족하는 값을 내가 알고 있다”는 것을 증명하는 구조다. 예를 들어 ‘a*b+c=100’이라는 식에서 a, b, c를 공개하지 않고도 해당 식을 만족시킨다는 것을 입증해야 한다.
과거에는 개발자가 이를 위해 ‘산술 회로(Arithmetic Circuits)’를 직접 작성해야 했다. 덧셈, 곱셈 같은 기본 연산을 하나하나 회로로 연결하는 방식이다. 조건문(if-else)이나 메모리 접근 같은 일반적인 프로그래밍 로직을 구현하기에는 난이도가 극도로 높았다.
브레비스는 이 상황을 초기 인공지능(AI) 개발 환경에 비유했다. 프로젝트 측은 “텐서플로우(TensorFlow)나 파이토치(PyTorch)가 나오기 전, 신경망을 구축하려면 낮은 수준의 GPU 코드를 직접 짜야 했다. 프레임워크가 복잡성을 추상화하자 수백만명의 개발자가 유입됐다”고 했다.
아티클에 따르면 영지식 가상머신은 영지식 증명 분야의 텐서플로우와 같다. 개발자가 러스트(Rust)나 C 같은 익숙한 언어로 코드를 짜면, 영지식 가상머신이 이를 자동으로 영지식 증명 시스템이 이해할 수 있는 제약 조건으로 변환해준다.
코드가 증명이 되는 5단계 과정
영지식 가상머신 내부에서 코드가 증명으로 변환되는 과정은 정교한 단계를 거친다. 먼저 실행(Execution) 단계에서는 영지식 가상머신이 일반 프로세서처럼 레지스터를 관리하고 메모리를 처리하며 프로그램을 실행한다. 이와 동시에 프로그램이 실행되는 동안 모든 명령어 처리와 메모리 입출력 내역을 빠짐없이 기록하는 트레이스 생성(Trace Generation) 과정이 수행된다.
이렇게 기록된 실행 트레이스는 산술화(Arithmetization) 단계를 거친다. 이는 “이 메모리 주소의 값은 X다”는 식의 단순 행위 기록을 증명 시스템이 이해할 수 있는 수학적 제약 조건(Constraints)으로 변환하는 과정이다. 이후 제약 조건이라는 빈 서식에 실제 실행 데이터를 채워 넣는 위트니스 생성(Witness Generation) 단계가 이어진다. 여기서 생성된 구체적인 데이터인 ‘위트니스’는 증명자만 알고 외부에 공개되지 않는다.
마지막으로 증명 생성(Proof Generation) 단계를 통해 최종 결과물이 나온다. SNARK나 STARK 알고리즘을 사용해 “나는 위트니스를 알고 있으며, 모든 제약 조건을 만족시켰다”는 암호학적 증명서를 만들어내는 것이다. 이 과정을 통해 개발자가 작성한 일반 코드는 검증 가능한 암호학적 증명으로 다시 태어나게 된다.
트레이드오프, 투명성이냐, 비용 효율성이냐
모든 영지식 가상머신이 똑같지는 않다. 각 프로젝트가 추구하는 우선순위에 따라 아키텍처 설계가 달라진다.
대표적으로 리스크제로(Risc Zero)는 개발자 접근성과 투명성을 최우선으로 했다. 특정 집단에 대한 신뢰가 필요 없는(Trusted Setup이 없는) STARK 방식을 채택하고, 범용적인 RISC-V 명령어 집합을 사용한다. 덕분에 누구나 쉽게 개발할 수 있지만, 증명의 크기가 커져 이더리움(ETH) 온체인 검증 비용이 비싸다는 단점이 있다.
반면, ZK 롤업 프로젝트들은 온체인 검증 비용을 낮추는 것을 최우선 과제로 삼는다. 수천건의 트랜잭션을 저렴하게 처리해야 하기에, 증명 크기가 작고 검증이 빠른 SNARK 방식을 주로 사용한다. 증명 생성 시간이 오래 걸리거나 신뢰 설정이 필요하더라도 가스비 절감이 더 중요하기 때문이다.
시스템 설계 철학도 나뉜다. 실행부터 증명까지 하나로 묶은 ‘모놀리식(Monolithic)’ 구조는 최적화와 성능에 유리하지만 유연성이 떨어진다. 반면 각 단계를 분리한 ‘모듈러(Modular)’ 구조는 부품을 갈아 끼우듯 유연하게 대처할 수 있지만 통합 과정에서 성능 저하가 발생할 수 있다.
브레비스는 “모든 것에 최적화된 만능 영지식 가상머신은 없다”며 “각 프로젝트가 어떤 트레이드오프를 선택했는지 이해하는 것이 영지식 증명 프로젝트를 평가하는 핵심”이라고 강조했다. 이어지는 6편에서는 다양한 요구사항을 충족하기 위해 브레비스가 선택한 독자적인 아키텍처에 대해 다룰 예정이다.







