logo
    FP Research
    코멘트
    이슈
    아티클
    리포트
    FP Validated
    회사 소개
    X텔레그램뉴스레터
    로그인
    logo
    FP Research
    코멘트이슈아티클리포트
    Validator
    FP Validated
    소셜
    X (KR)X (EN)텔레그램 (KR)텔레그램 (EN)링크드인
    회사
    회사 소개
    문의
    Support@4pillars.io
    정책
    서비스 약관개인정보처리방침투명성 고지
    2024년 7월 25일 · 22분 분량
    zkRollup 공급망의 현재와 미래
    Article Thumbnail
    Heechang profileHeechangIngeun profileIngeun
    linked-in-logox-logo
    InfraTaikoTaiko
    linked-in-logox-logo

    Key Takeaways

    • 스타크넷, zkSync, 스크롤, 폴리곤 zkEVM, 리네아와 같은 프로젝트가 메인넷을 출시하면서 2023년에 zkRollups는 연구 단계에서 프로덕션 단계로 진입하였다.

    • 최근에는 코프로세서, 증명자 마켓플레이스, 공유 증명자, zk 집약 레이어와 같은 zkRollup 생태계내에서 새로운 섹터가 등장하고 있으며 zkRollup의 공급망을 더욱 효율적이고 탈중앙화되고 있는 움직임을 보여주고 있다.

    • zkRollup의 운영에는 실행, 증명 생성, 증명 검증의 세 가지 주요 단계가 포함되며, 다양한 프로젝트가 이러한 zkRollup 공급망에서 각 구성 요소를 최적화하는 데 초점을 맞추고 있다.

    • 하지만 zkSync, Starknet, Merlin, SNARKnado와 같은 zkRollup은 인프라를 개발하고 있지만 아직 공급망을 최적화하는 데에는 초기 단계에 있다.

    2022년, zkRollups는 주로 연구 단계에 있었고 2023년은 점차 관련 프로젝트들이 프로덕션에 나오기 시작되는 해였다. Starknet, zkSync, 스크롤, 폴리곤 zkEVM, 리네아 등 수많은 프로젝트가 롤업을 메인넷에 출시했다. zkRollup의 경우 옵티미스틱 롤업에 비해 파이널리티가 짧고, 상호 운용성이 더 안전하며, 운영 비용이 절감되는 등 이점은 분명했다. 이러한 발전에도 불구하고, 옵티미스틱 롤업에 비해 zkRollups는 여전히 실험적인 단계이며 기술적으로도 넘어야하는 관문들이 많다.

    그렇다면 이러한 초기 단계의 zkRollups의 미래는 단순히 옵티미스틱 롤업과 같이 단일 인프라 하나가 잘 구축되어 있는 모습일까? 아니다. 옵티미스틱 롤업의 인프라와는 다른 모습을 보여줄 것이며 zkRollup의 공급망 자체를 효율화시키는 다양한 프로젝트들이 주목을 받을 것이다. 현재 많은 프로젝트들이 코프로세서, 증명자 마켓플레이스, 공유 증명자, zk 집약 레이어와 같은 새로운 인프라를 개발하고 있으며 이들은 zkRollup 생태계를 보다 효율적이고 탈중앙화시키기 위해 많은 구성요소들을 구축하고 있다. 이를 공급망을 구체적으로 이해하기 위해 zkRollup의 작동 방식을 살펴보자. zkRollup의 작동 방식은 실행, 실행에 대한 증명 생성, 증명 검증의 세 단계로 이루어지며 각 단계에 초점을 맞춰 각 프로젝트들이 개발되고 있다. 이에 대한 세부 섹터들은 다음과 같다.

    1. 실행: zkVM, 코프로세서

    2. 증명 생성: 증명 마켓플레이스, 증명 애그리게이터

    3. 증명 검증: 세틀먼트 레이어

    이러한 각 섹터는 개발 초기 단계에 있지만, 이 공급망이 더욱 발전함에 따라 zkRollup 생태계는 더욱 효율적이게 될 것이다. 이 글을 통해 먼저 zk의 기본에 대해 알아본 다음, 이더리움과 비트코인의 주요 zkRollup과 함께 zkRollup 공급망에서 구축 중인 프로젝트에 대해 살펴보자.

    1. 영지식 증명과 zkRollup

    이 글의 가장 첫 부분인 제목에서도 등장하는 zkRollup은 말 그대로 Zero Knowledge Proof(이하 ZKP)를 이용한 롤업 방식 중의 하나이다. 특히, 블록체인 생태계 내에서 영지식 증명을 한 번 이상 들어본 독자라면, 영지식 증명이 무엇인지는 어느 정도 알고 있을 터이다(들어보지 못했다면 아래의 글에서 잘 설명이 되어 있으니 걱정할 필요 없다). 그러나 그들에게 이러한 영지식 증명의 기술이 왜 롤업에 적용되는 것인지에 대한 물음을 던진다면 바로 대답이 나오지 않을 것이다.

    이 물음에 답을 찾아가기 위해 이번 챕터에서는 영지식 증명 및 zkRollup이란 무엇이고 어떻게 동작하는지에 대해 살펴보도록 하자.

    1.1 영지식 증명에 대한 간단한 가이드

    영지식 증명에 대해 자세히 알아보기에 앞서 이에 관여되는 역할군들에 대해 먼저 알아보자. 여기에는 아래와 같이 두 가지 역할군들이 있다:

    • 증명자(Prover): 증명자는 참인 명제를 가지고 있으며, ZKP 과정에서 이를 검증자에게 증명하려는 자이다.

    • 검증자(Verifier): 검증자는 ZKP의 증명 과정에 참여하여 증명자가 제시하는 증거를 통해 해당 명제가 참인지의 여부를 판단하는 자이다.

    이제 본격적으로 영지식 증명에 대해 알아보자. 영지식 증명(Zero-Knowledge Proof, ZKP)은 증명자가 특정 사실을 증명하면서도 그 사실 자체나 관련된 정보를 전혀 노출하지 않는 암호학적 기법이다. 영지식 증명은 세 가지 주요 특징을 가지는데, 완전성, 건전성 그리고 영지식성이다:

    • 완전성(Completeness): 참인 명제를 가진 증명자는 검증자가 이 명제에 대해 참이라고 확신하도록 만들 수 있다.

    • 건전성(Soundness): 거짓 명제를 가진 증명자는 명제에 대해 참이라고 검증자를 속일 수 없다.

    • 영지식성(Zero-Knowledge): 증명이 진행되는 동안 검증자는 그 명제의 참, 거짓 여부 외에 아무런 추가 정보를 얻지 못한다.

    1.1.2 영지식 증명에 대한 예시

    사실 위의 특징들의 정의만 봐서는 쉽게 이해되지 않는다. “알리바바의 동굴” 예시를 통해 영지식 증명에 대해 좀 더 자세히 알아보자.

    다음과 같은 상황을 생각해보자. 알리바바의 동굴에는 A와 B라는 두 개의 경로가 존재하며, 이 두 경로는 동굴 깊은 곳에서 합쳐져 있지만 비밀의 문으로 막혀있다. 이 때, 증명자(이하 P)는 이 비밀의 문을 통과할 수 있는 열쇠를 가지고 있다고 주장하며, 검증자(이하 V)는 P가 그 열쇠를 실제로 가지고 있는지 확인하고 싶다.

    확인하는 방식은 다음의 순서를 따라 진행된다. P는 동굴에 들어가 A 또는 B 경로를 선택해 들어간다. V는 P가 어느 경로로 들어갔는지 모르지만, P에게 특정 경로로 나올 것을 요구할 수 있다. 만약 P가 열쇠를 가지고 있다면, P는 어느 경로로든 나올 수 있다. 이 과정이 여러 번 반복되면, V는 P가 실제로 열쇠를 가지고 있다는 것을 확신할 수 있다. 그러나 P가 어떤 모양의 열쇠를 가지고 있는지에 대한 정보는 전혀 얻을 수 없다.

    이번에는 영지식 증명의 특징에 대입해보자:

    • 완전성(Completeness): 여러 번의 반복에도 P가 V의 지시를 지속적으로 따른다면, V는 P가 열쇠를 가지고 있다고 납득할 수 있다.

    • 건전성(Soundness): P가 사실은 열쇠를 가지고 있지 않지만 가지고 있다고 거짓말을 하였을 경우, V의 지시대로 수행하지 못하는 경우가 언젠가는 필연적으로 생기게 된다. 이 경우 P는 자신이 열쇠를 가지고 있다는 것을 V에게 증명할 수 없다.

    • 영지식성(Zero-Knowledge): 여러 번의 수행을 통해 V는 P가 열쇠를 가지고 있다는 사실을 납득했지만, 열쇠가 어떤 모양이고 어떠한 성질을 가지고 있는지에 대해서는 알지 못한다.

    1.2 zkRollup의 동작 과정

    앞에서 영지식 증명의 A to Z를 알아보며 여기까지 왔다. 하지만 잊지 말아야 한다. 이 글의 주된 내용은 zkRollup에 대한 내용이다. 물론 zkRollup을 이해하는데 있어서 영지식 증명의 이해는 필수이니 앞의 내용을 익히는 것이 헛걸음이라는 소리는 절대 아니다. 각설하고, 여기서부터는 zkRollup이 무엇인지에 대해 알아보고자 한다.

    추가적으로 zkRollup이 어떻게 동작하는지 살펴보도록 하자. 과정을 살펴보기 전에 zk 롤업의 역할군에 대해 잠시 설명하고 넘어가보자.

    • 시퀀서 (Sequencer): 시퀀서는 레이어 2에서 발생하는 트랜잭션을 모으고 이를 처리하는 주체로 처리된 결과값들을 L1으로 보내는 역할까지 담당한다. 시퀀서와 유효성 증명을 생성하는 주체가 독립적으로 존재하는 롤업 프로젝트들도 있지만 아래의 설명에서는 시퀀서 및 유효성 증명 생성자를 같은 역할군으로 묶어 설명한다.

    • 롤업 컨트랙트 (Rollup Contract): 롤업 컨트랙트는 레이어 1에서 롤업의 상태와 트랜잭션을 관리하는 스마트 컨트랙트로 레이어 2에서 시퀀서가 보내는 데이터를 받고 저장하는 역할과 유효성 증명을 검증하는 역할을 수행한다. 또한 검증이 완료되어 제대로 된 데이터라면 이것들을 저장하고 관리하는 역할까지 수행한다.

    zkRollup의 동작 과정은 아래와 같다:

    1. [시퀀서 <> L2] 트랜잭션 모음(Batching) & 상태 변화 계산: 레이어 2에서 실행이 될 다수의 트랜잭션을 모아 하나의 배치(batch) 단위로 처리한 뒤, 배치 내의 각 트랜잭션을 실행한다. 트랜잭션 실행 후에는 새로운 상태 변화를 기록한 상태 루트가 결과값으로 나오게 된다.

    2. [시퀀서 <> L2] 유효성 증명(Validity Proofs) 생성: 결과값으로 나온 새로운 상태 루트를 이용하여 이 상태 루트의 유효성을 증명하기 위한 유효성 증명을 생성한다. 여기서의 이 증명은 배치 내의 모든 트랜잭션이 올바르게 실행되었음을 보장하며 해당 배치 내의 트랜잭션 세부 내용에 대해서는 알 수 없는 형태를 지니고 있다.

    3. [시퀀서 <> L2] 상태 루트 및 유효성 증명 제출: 만들어진 유효성 증명과 상태 루트 그리고 상세 내용은 보이지 않는 검증용 트랜잭션 데이터를 L1 롤업 컨트랙트로 제출한다. 제출된 데이터들을 바탕으로 롤업 컨트랙트는 이것들이 제대로 된 데이터들인지 검증하게 된다.

    4. [시퀀서 <> 롤업 컨트랙트(L1)] 검증 및 업데이트: L1에 존재하는 롤업 컨트랙트는 시퀀서로부터 제출된 유효성 증명, 상태 루트 그리고 검증용 트랜잭션 데이터를 받아 검증을 수행한다. 만약 이 과정에서 별다른 문제점이 없다면 상태 루트를 업데이트 하고 검증용 트랜잭션 데이터를 저장하지만 문제점이 발견된다면 앞의 검증 및 저장 과정은 수행되지 않는다.

    2. zkRollup의 공급망과 현황

    zkRollup의 전체적인 현황을 살펴보기 전에, zkRollup의 운영 프로세스를 먼저 살펴보자. zkRollups는 실행, 증명 생성, 검증의 세 가지 주요 프로세스로 구성된다.

    1. 실행: 오프체인에서 발생하며, 트랜잭션들이 일괄 처리되어 별도의 롤업 네트워크에서 실행되고 롤업 상태가 업데이트된다.

    2. 증명 생성: 트랜잭션 배치와 상태 루트 같은 입력이 컴파일된다. 증명 회로가 트랜잭션을 처리하여 계정을 확인하고, 데이터를 공개하지 않고 상태 전환의 유효성을 암호학적으로 증명하는 간결한 영지식 증명을 생성한다.

    3. 증명 검증: 영지식 증명 및 관련 데이터는 검증을 위해 세틀먼트 레이어(주로 이더리움)의 검증자 컨트랙트에 제출된다. 유효하다면 롤업 컨트랙트는 롤업의 새로운 상태를 반영하도록 컨트랙트에 상태를 업데이트하고, 짧은 시간의 버퍼 이후 변경을 확정한다.

    각 프로세스에서는 zkRollup을 더 효율적으로 운영하기 위해 각각의 특화된 프로젝트들이 있다. 다음 섹션에서는 어떠한 프로세스가 있는지, 그리고 어떤 프로젝트들이 이를 위해 개발되고 있는지 자세히 살펴보자.

    2.1 실행

    실행은 오프체인에서 롤업 혹은 다른 별도의 안전한 VM에서 실행되며 실행결과에 대한 변화를 세틀먼트 레이어에 저장하게 된다. 일반적으로 실행을 할때는 이 실행에 대한 증명도 같이 생성되어야 하기 때문에 zk 회로와 실행 환경이 연결되어 있어 실행 결과와 함께 이에 대한 증명이 생성된다. 이러한 실행에 대한 부분은 zkVM과 코프로세서, 두 가지 섹터로 분류할 수 있다. 각각이 어떠한 역할을 하고 어떠한 프로젝트들이 있는지 알아보자.

    2.1.1 zkVM

    Source: Foresight Ventures: zk, zkVM, zkEVM and their Future | by Foresight Ventures | Medium

    zkVM(영지식 가상 머신)은 기초 데이터를 공개하지 않고 계산을 실행하고 해당 계산의 정확성을 검증하는 영지식 증명을 생성하도록 설계된 특수 가상 머신이다. 특정 가상 머신과 프로그래밍 언어에 맞게 조정된 여러 유형의 zkVM이 있다. 다음은 이러한 프로젝트의 몇 가지 분류이다:

    1. zkEVM: 영지식 증명 기능을 통합하면서 EVM 환경을 복제하는 것을 목표로 한다. 이를 통해 기존 이더리움 스마트 컨트랙트와 dApp을 zkEVM 기반 롤업으로 원활하게 포팅할 수 있다. 그러나 EVM을 위한 zk 회로 개발의 복잡성과 잦은 업그레이드로 인해 순수 EVM과의 호환성 문제가 발생했다.

    2. RISC-V 및 MIPS 기반 일반 zkVM: zkRISC는 RISC Zero에서 개발한 zkVM의 특정 구현입니다. 임의의 연산을 실행하고 영지식 증명을 생성할 수 있는 범용 zkVM으로 설계되었다. 이를 통해 C, Python, Rust와 같은 프로그래밍 언어를 배포하고 실행을 위한 증명을 생성할 수 있다.

    3. CairoVM: Cairo VM은 프로그램 실행을 위한 유효성 증명 생성을 최적화하도록 구축되었다. EVM이 유효성 롤업과 호환되도록 하는 데 초점을 맞춘 zkEVM 솔루션과 달리, Cairo VM은 처음부터 STARK 증명의 효율성을 극대화하도록 설계되었기에 이 접근 방식은 EVM의 제약 없이 더 나은 성능과 확장성을 제공한다. 하지만 개발자가 새로운 언어를 배워야 하기 때문에 디앱을 구축하는 데 장벽이 있다.

    2.1.2 코프로세서

    Source: Phala's 2024 Path: Coprocessor for blockchains—AI, Hooks and DePin

    코프로세서는 특정 연산을 지원하기 위해 오프체인 프로세서로 개발되었다. 예를 들어, 그래픽 처리 장치(GPU)는 3D 렌더링에 필요한 방대한 병렬 연산을 관리하여 중앙 CPU가 범용 처리에 집중할 수 있도록 한다. 이러한 의미에서 코프로세서는 블록체인에서 비용이 많이 드는 복잡한 실행을 위해 블록체인을 지원한다. 각 유형의 코프로세서는 특화된 워크로드를 처리하는 데 있어 효율성을 극대화하도록 설계되었다. 코프로세서는 일반적으로 ZKP를 활용하여 신뢰할 수 있고 검증 가능한 오프체인 계산을 가능하게 함으로써 민감한 데이터를 노출하지 않고도 온체인에서 여러 연산을 안전하게 진행할 수 있다. 관련해서 알려진 프로젝트는 다음과 같다:

    1. Axiom: Axiom은 스마트 컨트랙트가 ZKP를 통해 데이터 프라이버시와 무결성을 유지하면서 과거 블록체인 데이터를 쿼리하고 복잡한 연산을 오프체인에서 수행할 수 있는 "ZK 코프로세서" 시스템을 개발하고 있다.

    2. 팻 컨트랙트(Phala 네트워크): 팻 컨트랙트는 확장성을 향상시키고, 가스 없는 경험을 가능하게 하며, 멀티체인 기능을 지원하고, 디앱을 위한 오프체인 데이터에 대한 안전한 액세스를 제공하는 코프로세서다.

    2.2 증명 생산

    상태 전환의 유효성을 증명하기 위해 롤업 연산자(증명자)는 ZKP를 생성한다. 이 증명을 통해 새 상태 루트가 이전 상태에서 올바르게 계산되었음을 확인한다. 특히 대규모 트랜잭션 배치나 복잡한 스마트 컨트랙트의 경우 ZKP를 생성하는 데 상당한 연산 리소스가 필요하므로 증명 생성 과정에는 제약이 있다. 이로 인해 zk롤업의 처리량과 효율적으로 지원할 수 있는 애플리케이션 유형이 제한될 수 있다.

    또한, zk 증명을 생성하는 주체는 이 분야에 대한 전문 지식이 필요하고 하드웨어를 최신 상태로 유지해야 하기 때문에 중앙화 위험은 말할 것도 없고 관리 비용도 높을 수 있다. 따라서 이 분야의 효율성을 높이기 위한 개발이 진행되어 왔다. 이 접근 방식에는 두 가지 부분이 있는데, 생성 프로세스를 아웃소싱하기 위한 증명 생성 마켓플레이스를 구축하는 것과 비용 효율성을 높이기 위한 집계 계층을 만드는 것이다.

    2.2.1 증명 생산 마켓플레이스

    Source: Introducing Gevulot | Gevulot

    증명 마켓플레이스는 탈중앙화된 증명 생성, 경매 메커니즘, 하드웨어 활용 및 비용 효율성과 같은 주요 기능을 제공한다. 애플리케이션은 네트워크에 증명 요청을 제출하고, 증명자는 증명 생성 하드웨어를 사용해 응답함으로써 증명 요청을 효율적으로 처리한다. 이를 위해 설계된 경매 메커니즘은 요청과 증명자를 매칭하여 경쟁력 있는 증명 가격을 책정할 수 있도록 한다. 또한, 증명자는 전문화된 하드웨어를 사용하여 증명 비용을 절감하고, 탈중앙화된 마켓플레이스를 통해 다양한 애플리케이션의 증명 요청을 통합하여 하드웨어 활용도와 비용 효율성을 개선할 수 있다.

    또한, 증명 마켓플레이스는 검열 저항성과 빠른 완결성을 보장하고 스테이킹 메커니즘을 구현한다. 마켓플레이스는 단기 검열 저항을 보장하여 증명자의 입찰이 부당하게 차단되거나 무시되지 않도록 한다. 증명자는 네트워크에 스테이킹을 해야만 악의적인 활동을 방지하고 네트워크 신뢰성과 무결성을 보장할 수 있다.

    마지막으로, 마켓플레이스는 ZKP 생산에 많이 드는 것의 효율화를 위해 규모의 경제를 활용한다. 대규모로 ZKP 생성을 조정하면 최종 사용자의 비용이 절감되고 통합된 증명 주문 흐름을 통해 증명자는 보다 효율적인 인프라에 투자하고 운영할 수 있다. 또한, 애플리케이션은 최적화를 위해 증명을 집계할 수 있기 때문에 온체인 검증 비용을 절감할 수 있다. 일부 프로젝트에는 다음이 포함된다:

    1. Succinct 네트워크: Succinct Labs는 ZKP를 위한 통합 프로토콜을 만드는 것을 목표로 하는 Succinct Network의 일부로 탈중앙화된 증명자 마켓플레이스를 개발하고 있다. 이 마켓플레이스를 통해 애플리케이션은 전문화된 증명자 네트워크에 증명 생성을 아웃소싱할 수 있으며, ZKP 기반 시스템을 위한 보다 효율적이고 비용 효율적인 솔루션을 제공할 수 있다. 증명자 마켓플레이스는 애플리케이션의 증명 요청과 다양한 증명자를 매칭하는 경매 메커니즘을 통해 운영될 것이다.

    2. =nil; 재단: nil; 재단은 ZKP의 현물 시장으로 설계된 탈중앙화 및 분산 시스템인 증명 시장을 개발했다. 이 마켓플레이스에서는 애플리케이션과 같은 증명 요청자가 전문 증명 생산자에게 zkProof 생성을 아웃소싱할 수 있으며 증명 시장은 =nil; Foundation의 데이터베이스 관리 시스템 위에서 운영되며, 중앙화된 서비스보다는 "증명 DEX"처럼 작동한다.

    3. Gevulot Gevulot은 일반적인 증명자 마켓플레이스가 아니라 모듈형 스택을 위한 탈중앙화 증명 레이어이다. 온체인 프로그램으로 증명 시스템을 배포하기 위해 특별히 설계된 비허가성 및 프로그래밍이 가능한 레이어 1 블록체인이다. 일반적인 증명자 마켓플레이스와 달리, 게불럿은 사용자가 이더리움에 스마트 컨트랙트를 배포하는 것과 유사하게 블록체인에 직접 증명자 및 검증자 프로그램을 배포할 수 있도록 한다. 이러한 접근 방식을 통해 애플리케이션은 증명자 네트워크를 부트스트랩하거나 중앙화된 솔루션에 의존할 필요 없이 탈중앙화된 증명의 이점을 누릴 수 있다.

    2.2.2 증명 집약

    Source: Prove It: Shared Provers, Proof Aggregation & Prover Marketplaces - Delphi Digital

    ZKP 집약은 여러 개의 ZKP를 하나의 증명으로 집약하는 기술로, 이를 통해 온체인에서 증명을 검증하는 데 드는 전반적인 비용을 절감할 수 있다. 이는 ZKP에 크게 의존하는 롤업에 특히 유용하다. 주목할 만한 프로젝트는 다음과 같다:

    • 폴리곤 Agg 레이어: 이 프로젝트는 집약된 ZKP와 통합 브릿지 컨트랙트(LxLy 브리지)를 활용하여 폴리곤 생태계 내 L2 솔루션 간의 원활한 상호운용성을 목표로 한다. 집계된 증명은 종속 체인 상태와 번들의 일관성을 보장하여 다른 체인의 유효하지 않은 상태에 의존하는 경우 유효하지 않은 롤업 상태가 이더리움에 정산되는 것을 방지할 수 있도록 한다.

    • 네브라: 네브라의 범용 증명 집계(UPA)는 ZKP를 집약하는 프로토콜이다. 네브라의 UPA는 서로 다른 회로, 증명 시스템, 당사자에서 생성된 증명을 집계하여 온체인 검증을 위한 가스 비용을 10배 이상 절감할 수 있다. Nebra는 AltLayer와 같은 프로젝트와 파트너십을 맺고 UPA를 롤업 솔루션에 통합하여 AltLayer의 사용자와 dApp이 상당한 비용 절감의 혜택을 누릴 수 있도록 지원하고 있다.

    • 일렉트론 랩스: 일렉트론 랩스는 zk-재귀를 활용하여 서로 다른 프로토콜과 다양한 증명 체계의 증명을 하나의 "슈퍼프루프"로 통합하는 집계 레이어인 퀀텀을 개발했다. 이 슈퍼프루프는 이더리움에서 검증되며, 여러 프로토콜에 걸쳐 검증 비용을 분담하고 개별 프로토콜에 대해 더 저렴한 검증을 가능하게 한다.

    2.3 증명 검증

    zkRollup의 증명 생성 프로세스는 많은 연산을 필요로 한다. 그러나 이더리움 메인넷에서 이러한 증명을 검증하는 것은 상대적으로 가볍기 때문에 다른 블록체인의 보안 보장을 유지하면서 확장성을 확보할 수 있다.

    이더리움의 zk 검증 스마트 컨트랙트는 효율적인 암호화 알고리즘을 사용해 유효성 증명을 검증한다. 증명이 유효하면 제안된 상태 전환이 올바르다고 하고, 새로운 상태 루트가 승인되어 메인넷에서 롤업의 상태가 업데이트되면서 변경이 확정된다. 대부분의 검증은 이더리움에 일어나지만 얼라인드 레이어와 같은 일부 프로젝트는 이더리움의 검증자를 활용하여 더 빠르고 저렴한 검증을 제공한다.

    2.3.1 얼라인드 레이어

    Source: whitepaper.alignedlayer.com

    얼라인드 레이어는 이더리움 생태계를 위해 설계된 탈중앙화 ZKP 검증 및 집계 레이어입니다. EigenLayer AVS(적극적 검증 서비스)로서, 리스테이크라는 프로세스를 통해 이더리움의 경제적 보안을 활용하여 ZKP가 이더리움 블록체인에서 정확하게 검증되고 정산되도록 보장한다.

    얼라인드 레이어는 서로 다른 요구 사항을 충족하기 위해 두 가지 운영 모드를 제공한다. 빠른 모드는 최소한의 검증 비용과 짧은 지연 시간에 최적화되어 있어 빠르고 비용 효율적인 증명 검증이 필요한 애플리케이션에 이상적이다. 반면, 슬로우 모드는 증명 집계를 활용하여 이더리움의 보안 보장을 완전히 활용함으로써 포괄적인 보안을 제공합니다. 이러한 이중 모드 접근 방식을 통해 얼라인드 레이어는 다양한 사용 사례의 특정 요구사항에 따라 속도와 보안 사이에서 균형을 맞출 수 있는 유연한 솔루션을 제공할 수 있다.

    3. zk 롤업 프로젝트 별 분석

    챕터 2에서 설명한 것처럼 zk 롤업을 활용하는 여러 서비스 및 프로젝트들이 존재하고 있다. 각 프로젝트들을 zk 롤업이 운영되는 순서대로 다시 돌아보자면, 실행, zk 증명 생성, zk 증명 검증으로 나뉜다. 이러한 모든 과정이 프로덕션에서 운영되고 있는 zk 롤업 중에서 가장 많은 주목을 받고 있는 EVM 계열 프로젝트인 zkSync, Starknet과 비트코인 계열 프로젝트 Merlin Chain, SNARKnado에 대해 좀 더 자세하게 살펴보도록 하겠다.

    3.1 zkSync

    Source: zkSync Twitter

    zkSync는 Matter Labs에서 개발한 zk 롤업 기반의 레이어 2 솔루션으로 주된 목표는 이더리움 네트워크의 트랜잭션 처리 속도를 높이고 지불하는 수수료를 낮추는 것이다. 그러나 zkSync는 이더리움 L2에 그치지 않고 그들만의 독자적인 크로스체인 생태계를 갖추는 것까지 목표로 하고 있다. 그 목표를 위해 zkSync는 zk 롤업과 ZK Chain 그리고 Hyperbridge를 통해 복합적이지만 유저 친화적인 크로스체인 환경을 만들어가고 있다.

    3.1.1 zk 롤업 - 롤업 경제성 최적화형

    zkSync는 zk-SNARK를 이용하는 것을 기본으로 한 zk 롤업 기술을 사용하고 있다. zk-SNARK의 증명 생성 및 검증 방식을 이용하여 증명 크기가 작고 검증이 빠른 특징을 가지고 있다. 또한, 롤업에 쓰이는 데이터는 L1 리소스 사용 효율성을 위해 전체 트랜잭션 데이터가 아닌 전후 상태 변화값만 이용한다. 이 같은 과정을 통해 zkSync는 L1을 최소한으로 사용하여 롤업 경제성을 극대화한다.

    그러나 요즘 zk-STARK의 단점이 점점 보완되고 양자 저항성이나 대용량 처리 등 zk-SNARK가 가지지 못한 장점들이 부각되며, 최근 zkSync도 일부분 zk-STARK를 도입하려는 시도를 하고 있다. 이 시도는 증명 생성 부분에서 진행되고 있는데, “Boojum”이라 불리는 증명 시스템은 zk-STARK 방식을 이용하여 증명을 생성한다.

    3.1.2 구조적 특징

    zkSync는 zk-SNARK 영지식 증명 모델을 사용하여 빠르고 상대적으로 크기가 작은 증명을 통해 L1의 리소스를 많이 소모시키지 않으며 트랜잭션들을 처리한다.

    • Sequencer: zkSync의 시퀀서는 트랜잭션들을 일정한 규칙에 따라 배열시키고 처리하는 가장 핵심적인 구조이다. 시퀀서에는 영지식 증명을 생성하는 증명자가 속해있으며, 일련의 과정을 통해 세부 내용을 확인할 수 없는 트랜잭션 데이터들과 증명을 생성하여 L1으로 보내는 역할을 한다.

    • Prover: zkSync의 증명자는 zk-SNARK를 이용하여 증명을 생성한다. 대신 zk-SNARK를 이용하기 때문에 증명 생성 과정 중 중앙화 이슈가 발생할 수 있는 신뢰 설정 단계가 포함된다. 증명 생성 과정에서 쓰이는 데이터는 세부 정보가 확인되지 않는 트랜잭션 데이터와 L2 체인 상태의 변화를 나타내는 전후 상태 변화 데이터 등이 쓰인다. 여기서 생성된 증명은 L1의 롤업 컨트랙트에서 검증을 거쳐 추후 과정이 진행된다.

    • Secure Settlement: zkSync는 L2에서 생성된 데이터들을 L1의 스마트 컨트랙트에서 검증 후 업데이트에 활용한다. 만약 검증 시 문제가 생기면 해당 배치에 있는 트랜잭션에 대한 업데이트가 이루어지지 않는다. 이러한 과정은 아래에 나올 ZK Chain마다 연결된 하나 이상의 스마트 컨트랙트가 모듈적으로 작동하여 발생한다.

    3.1.3 ZK Chain

    ZK Chain은 zkSync가 제공하는 인프라를 포함하고 있는 L2 이상의 블록체인이다. 특히 여기서 L2 이상이라고 표현한 이유는 zkSync 자체적으로 L2 이상의 즉, L3 등의 프렉탈 구조를 차용한 제한 없는 레이어 체계를 갖추고 있기 때문이다

    현재 가장 유명한 ZK Chain은 zkSync 측에서 제공하고 있는 zkSync Era이며, EVM 호환이 가능함과 동시에 따로 ZK Chain을 만들지 않고도 간단한 DApp은 배포가 가능하도록 서비스를 제공하고 있다. 그러나 zkSync의 우선 공개된 ZK Chain일 뿐, zkSync가 바라보고 있는 궁극적인 크로스체인 생태계를 위해서는 또 다른 ZK Chain들 간의 관계가 더 중요하다. zkSync도 이러한 점에 집중하여 추후 생겨날 다른 ZK Chain들과의 연결을 어떻게 이루어나갈지 많은 고민을 하고 있다.

    ZK Chain의 환경을 십분 활용하여 나온 사례는 하이퍼브릿지이다. 하이퍼브릿지를 이용하면 사용자들은 아주 편하게 자신들이 속해있는 체인 내의 지갑에서 연결된 체인들의 모든 자산을 표시할 수 있다. 또한, 속해있는 체인에서 실제로 자산을 이용하려고 하면 체인 간 릴레이어가 자산의 브릿징, 소각 및 발행을 통해 자산을 이용할 수 있다.

    만약 크로스체인 유니스왑을 사용한다고 가정해보자. era.zksync 체인에서 사용자가 1 ETH를 10,000 DAI로 스왑하고 싶으면, 아래의 과정을 따르면 된다:

    1. era.zksync 체인 지갑에서 “1 ETH → 10,000 DAI” 트랜잭션 생성

    2. 릴레이어가 1 ETH를 uni.chain 체인에 전달하고 1 ETH → 10,000 DAI로 스왑

    3. 다시 릴레이어가 스왑된 10,000 DAI를 era.zksync 체인으로 전달

    이렇게 각기 다른 체인들 사이에서 zkSync의 환경을 이용하면 사용자는 다른 체인에 관한 내용을 모르더라도 쉽고 편하게 체인 간 트랜잭션 수행이 가능하다.

    3.1.4 EVM 호환성

    zkSync는 현재 Solidity 및 Vyper와 99% 호환이 되는 상태라고 안내한다. 또한, zkSync는 자신들의 프로토콜에 더 적합하고 효율적인 zkEVM 사용을 위해 Rust와 유사한 언어인 Zinc를 지원하며 개발을 이어갔지만 완벽하게 최적화 되기 전에 Solidity 호환성에 더 집중하는 노선으로 변경하며 2021년 9월 이후로 Zinc의 개발이 중단되었다.

    3.2 Starknet

    Source: Starknet Twitter

    Starknet은 StarkWare에서 개발한 zkRollup 기반의 레이어 2 솔루션이다. zkRollup 기반의 레이어 2 솔루션이라는 점에서 zkSync와 동일하지만 Starknet은 내부적으로 사용하는 기술적인 스택 등에서 차이를 보인다. 특히, zk-SNARK 대신 zk-STARK를 사용한다는 점과 독자적인 스마트 컨트랙트 언어를 사용한다는 점에서 zkSync와는 궤를 달리하고 있다.

    3.2.1 zk 롤업 - 대용량 롤업 처리 집중형

    Starknet은 zk-STARK를 사용하여 롤업과 관련된 증명 생성 및 검증을 수행한다. 그리고 zkSync와 동일하게 전후 상태의 변화값만을 이용하여 더 효율적으로 롤업 데이터를 L1에서 관리한다.

    또한, Starknet은 zk-STARK를 차용하다보니 신뢰 불필요 환경과 대량의 트랜잭션을 동시에 처리가 가능하다는 점 등이 롤업에도 그대로 녹아있다. 때문에 Starknet은 트랜잭션이 대량으로 발생하는 디파이 디앱들이나 게임 디앱들에게 유리하다는 평을 받고 있다.

    3.2.2 구조적 특징

    Starknet은 구조적으로 다른 zk 롤업들과 비슷한 구조를 취하고 있다. 그러나 zk-STARK 영지식 증명 모델을 적극적으로 차용한 점과 EVM 호환성을 Cairo라는 독자적인 프로그래밍 언어를 통해 가져간다는 점 등 차별점이 있다.

    Source: Starknet architecture: Overview

    • Sequencer: Starknet의 시퀀서는 트랜잭션의 검증 및 실행을 관리하고 블록을 제안하는 중요한 역할을 맡고 있다. 시퀀서의 주요 기능은 트랜잭션들을 하나로 묶어서 처리하는 것으로 이 과정에서 검증을 통과하지 못한 트랜잭션은 시퀀서에 의해 제한을 받으며, 검증에 통과한 트랜잭션만이 블록에 포함된다. Starknet의 시퀀서에도 Prover가 포함되며 모든 과정이 완료되고 나온 롤업 데이터들을 L1으로 보내는 역할을 담당한다.

    • Prover: Starknet의 증명자는 위에서 설명했던 것처럼 zk-STARK를 이용하여 증명을 생성한다. 증명을 생성하는 과정에서 증명자는 각 트랜잭션 실행 단계를 따로 저장하여 실행 추적(Execution Trace)을 생성하고, L2 체인 상태의 변화를 추적하여 전후 상태 변화(State Diff)를 기록한다. 여기서 증명 생성 과정은 굉장히 높은 연산 리소스를 필요로 하기 때문에 병렬 처리가 가능하도록 설계가 되어있다. 즉, 여러 증명자가 힘을 합쳐 동시에 작업을 분할하여 수행할 수 있도록 되어있다는 뜻이다.

    • Secure Settlement: L2에서 생성된 데이터들은 L1(이더리움 등)으로 전송되고 L1에 존재하는 구성 요소들이 트랜잭션을 수락하고 증명과 상태 차이를 관리한다. 이 구성 요소들은 검증자와 Starknet 코어라는 두 개의 스마트 컨트랙트에 의해 처리된다. 검증자 컨트랙트는 L2로부터 수신된 증명을 분석하고, 만약 문제가 있는 부분이 발견되면 해당 트랜잭션에 대해서는 거부권을 행사한다. 여기서 증명의 유효성이 확인된다면 Starknet 코어 컨트랙트로 이관되어 함께 전달된 전후 상태 변화를 L1 체인에 업데이트한다. 이 업데이트된 상태는 L1 체인 블록에 추가되고 L1 체인의 프로세스에 따라 블록이 최종적으로 통과가 되면 L1의 영향력 아래에 놓이게 된다.

    3.2.3 EVM 호환성

    StarkNet은 현재 EVM 호환성을 자신들만의 독자적인 노선으로 개발하고 있는데 그것이 바로 Cairo 언어이다. StarkNet에 스마트 컨트랙트를 배포하려면 Cairo를 사용해야 하는데, 아직 Cairo에서 지원하지 않는 Solidity 기능이 많고 계속해서 Cairo 언어 사용 개발자가 증가한다고는 하지만 개발자 커뮤니티의 크기나 채택률에서 Solidity에 비해 뒤쳐지는 것은 사실이다.

    Cairo의 특징을 좀 더 살펴보면, Cairo는 Starknet의 스마트 컨트랙트 언어로 Rust의 언어 특징을 상속받은 프로그래밍 언어이다. zk-STARK 즘명 생성에 최적화 된 언어인 Cairo를 사용하면 스마트 컨트랙트가 실행되고 효율적으로 zk-STARK 증명까지 생성할 수 있다. 따라서 Cairo 언어에 대한 장벽만 극복한다면 오히려 더 좋은 환경에서 스마트 컨트랙트를 배포 및 실행하고 그에 대한 데이터들을 안전하게 L1으로 롤업할 수 있다.

    또한 Cairo와 Solidity의 주요 차이점은 아래의 표에서 확인할 수 있다.

    3.3 Merlin Chain

    Source: Merlin Chain Twitter

    Merlin Chain은 Bitmap Tech에서 개발한 비트코인 기반의 레이어 2 zk 롤업 솔루션으로 이더리움에 치우쳐 있던 zk 롤업 L2 생태계에서 혜성처럼 등장했다. Merlin Chain은 Polygon의 영지식 증명 기술을 바탕으로 EVM 호환이 가능하면서도 빠르고 저렴하게 L1 환경인 비트코인에 롤업 데이터를 안전하게 올릴 수 있다는 장점이 있다. 이를 통해 비트코인 생태계 내에서도 BTC를 포함한 여러 자산들의 유동성 증대와 생태계 확장을 통해 “Make Bitcoin Fun Again”이란 목표를 가지고 달려가고 있다.

    3.3.1 zk 롤업 - 비트코인 특성에 맞춘 하이브리드형

    Merlin Chain은 zk-SNARK와 zk-STARK를 모두 이용하는 zk 롤업을 사용하는데 원래는 비트코인 네트워크의 구조적 특징인 튜링 불완전성으로 인해 비트코인 네트워크에서 직접 영지식 증명에 대한 검증이 불가능했다.그러나 Taproot 업그레이드 이후 부분적인 검증 가능성이 생겼고 Merlin Chain은 오프체인 상에서 생성된 롤업 데이터와 증명 데이터를 Taproot를 활용하여 비트코인 네트워크에 기록하게 된다.

    • zkProver

    Merlin Chain에서 zkProver는 트랜잭션 데이터들의 유효성 검증과 검증이 완료된 데이터들을 기반으로 증명을 생성하는 역할을 맡고 있다. zkProver가 이 같은 역할을 수행하는 단계는 다음과 같다:

    1. Merlin Chain의 시퀀서 노드가 Merlin Chain의 현재 상태 정보를 데이터베이스에 저장한다.

    2. 시퀀서 노드가 zkProver에 트랜잭션을 보낸다.

    3. zkProver는 데이터베이스에 접근하여 트랜잭션 검증에 필요한 데이터들을 가지고 온다.

    4. zkProver 내에서 트랜잭션의 유효성 검증이 완료되면 증명을 생성하고 이것을 시퀀서 노드에 전달한다.

    zkProver의 이 과정에는 여러 단계들을 거치게 된다. 먼저 Polygon zkEVM 팀에서 개발한 zk Assembly Language(이하 zkASM) 기반 zkEVM을 이용한 트랜잭션 검증 및 연산을 통해 결과 데이터들을 만들어 낸다. 이후 zk-STARK의 대용량 처리가 가능한 특징을 이용한 결과 데이터 집계 후 압축을 하여 롤업 경제성을 살린다. 마지막으로 아무리 데이터 크기가 커도 일정한 크기의 증명 크기로 압축되는 zk-SNARK를 이용해 증명을 생성한다. 이렇게 생성된 데이터들과 증명은 탈중앙화 된 Merlin Chain 오라클 네트워크 환경 내에서 검증되고 Taproot를 통해 비트코인 네트워크에 정보가 업로드 되게 된다.

    3.3.3 Future Upgrades: On-Chain Fraud Proof

    3.2.1에서 설명한 내용으로만 보면 이더리움 생태계에서 돌아가는 L2 솔루션들처럼 zk 롤업이 잘 적용이 되는 것 같지만 이것만으로는 롤업 내 트랜잭션의 유효성과 정확성을 완벽히 보장할 수 없다. 비트코인 네트워크 구조의 차이로 인한 문제 간극을 메우기 위해 Merlin Chain은 특이하게 마치 옵티미스틱 롤업이 취하고 있는 것처럼 비트코인 온체인 사기 증명 메커니즘을 도입할 계획을 가지고 있다.

    온체인 사기 증명 메커니즘은 롤업 데이터 제안자와 챌린저의 관계로 동작하며, 챌린저는 롤업 데이터가 잘못됐다고 생각이 되면 비트코인 네트워크에 업로드 된 트랜잭션 데이터, ZK 상태 정보, ZK 증명에 기반하여 챌린지를 걸 수 있다. 옵티미스틱 롤업과 마찬가지로 대부분의 L2 트랜잭션은 L1인 비트코인 네트워크에서 다시 검증될 필요가 없지만, 챌린저가 이전에 제안된 롤업 데이터에 대해 문제가 있다고 챌린지를 걸게 되면 이에 대한 데이터 및 트랜잭션은 다시 한 번 실행되고 검증을 거쳐야 한다. 여기서 만약 문제가 있다고 판단이 내려진 역할군에는 슬래싱 방식의 페널티가 주어진다.

    3.3.4 EVM 호환성

    Merlin Chain은 zkProver에서 이용하는 zkASM 기반 zkEVM을 사용하기 때문에 EVM 호환성을 가져가고 있다. 따라서 기존의 이더리움 개발 도구 및 인프라를 그대로 사용해 만든 스마트 컨트랙트를 비트코인 네트워크에서도 실행할 수 있는 장점이 있다.

    3.4 SNARKnado

    Source: Alpen Labs Twitter

    SNARKnado는 Alpen Labs에서 구현한 zk-SNARK를 사용하는 비트코인 기반 레이어 2 솔루션이다. Alpen Labs는 SNARKnado를 통해 블록체인이 연산보다는 더 본질적인 접근인 검증에 특화될 수 있도록 하며 비트코인 생태계에서 더 높은 확장성과 효율성을 누릴 수 있게 하는게 목표이다.

    3.4.1 zk 롤업 - BitVM의 후계자 SNARKnado

    SNARKnado는 BitVM에서 사용하고 있는 옵티미즘 방식의 증명자-챌린저 구조에서 zk-SNARK에 더 최적화된 구조로 일부 수정한 모델이다. 이를 통해 BitVM과 비교하여 약 8배의 성능 개선을 이루어냈지만, 아직까지는 허가된 역할군만 챌린지를 걸 수 있다는 점에서 누구나 챌린지를 걸 수 있는 BitVM2의 장점은 따라가지 못하고 있다.

    3.4.2 구조적 특징

    • Proof Verification Method - Bisecting Polynomials

    zk-SNARK를 이용하여 작은 증명 크기로 비트코인에 롤업 데이터와 증명 데이터를 올려 관리할 수 있지만 복잡한 연산은 불가한 비트코인의 특성상 증명의 검증을 하기 위해서는 최적화 작업이 필요하다. 이를 위해, 다항식 이분법으로 변환된 증명 데이터를 이용하며 검증 과정은 Taproot 업그레이드로 가능해진 비트코인 내 온체인 연산을 통해 진행된다.

    여기서 증명자가 챌린지를 받으면 챌린지에서 사용되어야 하는 데이터들을 일부 공개하고 챌린저와 같이 검증 프로세스를 진행한다. 다항식 이분법을 통해 검증을 진행하며 이 과정의 결과로 증명자와 챌린저 중에 어떤 역할군이 잘못됐는지 판단할 수 있게 된다.

    3.4.3 SNARKnado vs. BitVM or BitVM2

    SNARKnado는 BitVM과 비슷한 부분이 정말 많다. 특히, SNARKnado의 특징을 살펴본다면 마치 BitVM과 BitVM2 사이에 있는 것처럼 보이기도 한다. 그렇다면 이들의 차이점은 무엇일까? (BitVM보다 BitVM2가 더 진보한 모델이므로 여기에서는 BitVM2와의 비교를 중심적으로 설명할 예정이다.)

    먼저 비트코인 내의 리소스를 얼마나 이용하는지이다. BitVM2는 필연적으로 온체인 리소스 사용률이 선형적으로 증가하는 모양을 보이지만 SNARKnado에서는 이 증가분을 제곱근 수준으로 낮추어 온체인 리소스 사용률을 최적화할 수 있다. 또 다른 차이점은 챌린지를 걸 수 있는 역할군의 접근성이다. SNARKnado의 경우 챌린지를 걸 수 있는 역할군은 허가를 받은 역할군으로 제한되어 있지만, BitVM2의 경우 허가 받지 않더라도 누구나 챌린지를 걸 수 있다는 차이점이 있다.

    3.4.4 EVM 호환성

    Alpen Labs의 최근 기록들을 봤을 때 EVM 호환성은 공식적으로 지원하고 있지 않으며 추후 계획에 대한 내용도 아직 존재하지 않는 것으로 보인다.

    4. 앞으로의 전망

    최근 메인넷 출시에 대해 살펴보면, 2023년 8월에 zkRollups가 출시되었고, 2023년 12월에 Polygon zkEVM이 출시되었다. 이 프로젝트들은 출시된 지 얼마 되지 않았기 때문에 대부분 여전히 활발하게 개발 중이며 실행 부분에서는 zkEVM을 넘어 커스텀 zk 회로가 사용되는 일반 zkVM, zkWasm, 오프체인 코프로세서도 개발되고 있다. 이러한 기본적인 실행 측면에서의 개발과 더불어 증명 생성에 대한 용이함도 점차 zk 마켓플레이스를 통해 신뢰성이 높아짐에 따라 zkRollup의 공급망의 효율성은 점차 증대되고 있다.

    앞으로 주목할 부분들은 각 zkRollup들이 자체 인프라를 효율화시키는 부분도 중요하겠지만 증명자 마켓플레이스 구축, 여러 증명의 집약, 비용 효율적인 검증을 위한 검증 레이어 생성 등 이 공급망 효율화를 위해 어떠한 움직임이 있는지에 대해 파악하는 것이 중요할 것이다.

    크립토 산업을 형성해 가는 소식을 파악하고 싶으신가요?
    회원가입하여 새로운 아티클 소식을 받아보세요.
    또는
    이메일 로그인하기
    포필러스 회원가입 시 다음 약관에 동의합니다.
    서비스 약관 / 개인정보처리방침.
    Key Takeaways
    1. 영지식 증명과 zkRollup
    1.1 영지식 증명에 대한 간단한 가이드
    1.2 zkRollup의 동작 과정
    2. zkRollup의 공급망과 현황
    2.1 실행
    2.2 증명 생산
    2.3 증명 검증
    3. zk 롤업 프로젝트 별 분석
    3.1 zkSync
    3.2 Starknet
    3.3 Merlin Chain
    3.4 SNARKnado
    4. 앞으로의 전망

    관련 아티클

    내년에 떠오를 주제에 대해 자세히 알아보세요.

    Article thumbnail
    8 분 분량2023년 7월 12일

    zkSync의 현황과 OP-Stack과의 비교

    Infra
    Infra
    OptimismOptimism
    author
    Heechang
    Article thumbnail
    6 분 분량2023년 6월 22일

    OP-Stack: 블록체인을 구축하기 위한 가장 간편한 프레임워크

    Infra
    Infra
    OptimismOptimism
    author
    Heechang
    Article thumbnail
    17 분 분량2026년 1월 06일

    솔라나 임대료 회수 시장으로 보는 디앱의 ‘생존 공식’

    Infra
    SolanaSolana
    author
    Jun