zkEVM
zkEVM(영지식 이더리움 가상 머신)은 이더리움 가상 머신(EVM)과 호환되게 스마트 계약을 실행하고 영지식 기술을 사용하여 이러한 실행에 대한 암호화 증명을 생성하는 가상 머신입니다. 이는 이더리움의 확장 솔루션으로 설계되었으며, 메인 이더리움 네트워크를 활용하여 높은 수준의 보안을 유지하면서 트랜잭션 처리량을 늘리고 비용을 줄이는 것을 목표로 합니다. zkEVM은 수많은 트랜잭션을 묶어 오프체인에서 실행한 다음 메인 블록체인에 압축된 유효성 증명을 게시함으로써 모든 네트워크 노드가 다시 실행할 필요 없이 계산을 검증할 수 있도록 합니다. [1] [2]
개요
zkEVM 개발의 주된 동기는 이더리움 네트워크의 확장성 병목 현상을 해결하는 것입니다. 이더리움의 표준 모델에서는 모든 검증자 노드가 블록 내의 모든 트랜잭션의 유효성을 검사하기 위해 다시 실행해야 하는데, 이 과정을 "N-of-N 실행"이라고 합니다. 이러한 중복 계산은 네트워크의 용량을 제한하고 수요가 많은 기간 동안 높은 가스 요금의 원인이 됩니다. [3]
zkEVM은 "1-of-N" 모델을 제안하여 단일 전문 엔터티인 "증명자"가 트랜잭션 블록을 실행하고 실행의 정확성을 확인하는 간결한 암호화 증명(ZK-증명)을 생성합니다. 그러면 네트워크 검증자는 전체 블록을 다시 실행하는 대신 계산 비용이 저렴한 이 증명만 확인하면 됩니다. 이러한 패러다임 전환은 네트워크의 계산 부하를 크게 줄여 처리량을 높이고 요금을 더 저렴하게 만듭니다. [4]
초기 ZK-롤업은 확장성 이점을 제공했지만 EVM 호환성을 희생하는 경우가 많아 특정 애플리케이션으로 사용이 제한되고 개발자가 새로운 언어나 도구를 배워야 했습니다. zkEVM은 EVM과 호환되거나 동등하도록 설계되었기 때문에 중요한 진화입니다. 이를 통해 개발자는 기존 이더리움 스마트 계약 및 분산 애플리케이션(dApp)을 코드 수정 없이 더 확장 가능한 레이어에 배포할 수 있습니다. 이 접근 방식을 통해 프로젝트는 이더리움의 광범위한 개발자, 도구 및 인프라 생태계를 활용할 수 있습니다. [1] [5]
이 기술은 이더리움 위에 구축된 레이어 2 롤업과 zkEVM을 이더리움의 레이어 1 프로토콜에 직접 통합하여 메인넷 자체를 확장하려는 더 야심찬 제안의 두 가지 주요 맥락에서 적용됩니다. [6]
zkEVM 작동 방식
zkEVM 아키텍처는 기본적으로 온체인 검증을 통해 오프체인 계산을 용이하게 하는 세 가지 핵심 구성 요소로 구성됩니다. [2]
핵심 구성 요소
- 실행 환경: 이 구성 요소는 이더리움 가상 머신을 복제하여 솔리디티와 같은 언어로 작성된 스마트 계약을 실행할 수 있는 공간을 제공합니다. 현재 블록체인 상태를 가져와 사용자가 제공한 트랜잭션 배치를 처리하고 새로운 업데이트된 상태를 계산합니다. EVM과의 호환성은 기존 dApp을 원활하게 포팅할 수 있도록 합니다. [2]
- 증명 회로: 이는 zkEVM의 암호화 엔진입니다. 트랜잭션 실행을 관찰하고 일반적으로
zk-SNARK또는 zk-STARK인 영지식 증명을 생성합니다. 이 증명은 초기 상태에서 새로운 상태로의 상태 전이가 유효했으며 모든 계산이 EVM 규칙에 따라 올바르게 수행되었음을 암호화 방식으로 증명합니다. 증명은 기본 트랜잭션 데이터를 공개하지 않고 생성됩니다. [5] [2] - 검증자 계약: 이는 기본 레이어 1 블록체인(예: 이더리움)에 배포된 스마트 계약입니다. zkEVM 롤업은 생성된 유효성 증명과 업데이트된 상태 데이터를 이 계약에 제출합니다. 검증자 계약의 유일한 기능은 암호화 증명을 확인하는 것입니다. 증명이 유효하면 새로운 상태가 수락되고 레이어 1 체인에서 확정됩니다. 이 검증 프로세스는 매우 효율적이며 모든 레이어 1 노드가 트랜잭션을 다시 실행할 필요가 없습니다. [2]
증명 과정
zkEVM 시스템에서 증명자는 블록을 "상태 없이" 실행합니다. 즉, 전체 블록체인 상태의 전체 복사본을 유지할 필요가 없습니다. 대신, 처리되는 트랜잭션에 필요한 상태 데이터가 입력으로 제공되며, 이를 종종 "증인"이라고 합니다. 이 입력은 상위 블록의 알려진 상태 루트에 대한 무결성을 검증하는 머클 증명과 함께 제공됩니다. [4]
"zk"(영지식)라는 용어는 스케일링의 맥락에서 부분적으로 오해의 소지가 있을 수 있다는 점에 유의하는 것이 중요합니다. 이 기술은 개인 정보 보호에 사용될 수 있지만, zkEVM은 주로 SNARK와 같은 ZK 증명 시스템의 "간결성"(증명이 작음) 및 "무결성"(증명이 계산적으로 건전함) 속성을 활용합니다. 개인 정보 보호에는 추가적인 복잡성과 증명자 비용이 필요하므로 트랜잭션 세부 정보를 반드시 숨기지 않고 계산이 올바르게 실행되었음을 증명합니다. [6]
zkEVM의 유형
이더리움 공동 창립자 비탈릭 부테린은 zkEVM을 이더리움과의 호환성 수준에 따라 유형별로 분류하는 시스템을 제안했습니다. 이 시스템은 더 높은 호환성(낮은 번호 유형)은 기존 인프라를 사용하기 더 쉽게 만들지만 증명하는 데 더 느리고 비용이 많이 들고, 더 낮은 호환성(높은 번호 유형)은 이더리움 표준에서 벗어나는 대신 더 빠른 증명 시간을 달성한다는 근본적인 절충점을 강조합니다. [2]
유형 1 (완전한 이더리움 동등성)
유형 1 zkEVM은 이더리움과 완전하고 타협 없이 동등한 것을 목표로 합니다. 이들은 해시 함수(Keccak과 같은), 상태 트리 또는 기타 합의 로직을 포함하여 이더리움 시스템을 변경하지 않습니다.
- 장점: 모든 이더리움 dApp 및 인프라와의 완벽한 호환성. 블록 탐색기 및 실행 클라이언트와 같은 도구를 수정 없이 재사용할 수 있습니다.
- 단점: 이더리움 프로토콜의 특정 부분이 ZK 친화적이지 않기 때문에 증명 생성 속도가 매우 느립니다.
- 예시: 이는 레이어 1 통합을 위한 이더리움 재단의 zkEVM 프로젝트의 명시된 목표입니다. [2] [3]
타입 2 (완전한 EVM 동등성)
타입 2 zkEVM은 개발자 관점에서 완전히 동등하지만, 증명 생성 속도를 높이기 위해 다른 상태 트리 구조를 사용하는 등 기본 이더리움 아키텍처에 약간의 수정을 가합니다.
- 장점: 대부분의 기존 애플리케이션과 호환되며, 타입 1보다 증명 시간이 빠릅니다.
- 단점: 일부 사용 사례에서는 증명 시간이 여전히 병목 현상이 될 수 있습니다.
- 예시: Polygon zkEVM 및 Scroll은 이 수준의 동등성을 목표로 하는 프로젝트입니다. [5] [2]
유형 2.5 (가스 비용 제외 EVM과 동일)
이는 ZK 회로 내에서 증명하기 특히 어려운 특정 작업에 대한 가스 비용을 증가시키는 2 유형의 변형입니다. 이 수정은 최악의 경우 증명 시간을 개선하지만 정확한 가스 비용 계산에 의존하는 개발자 도구 및 스마트 계약을 손상시킬 수 있습니다. [2]
Type 3 (거의 EVM과 동등)
Type 3 zkEVM은 완벽한 EVM 호환성을 희생하여 개발을 더욱 단순화하고 증명자 성능을 향상시킵니다. 특정 프리컴파일 계약과 같이 ZK 회로에서 구현하기 특히 어려운 기능을 생략할 수 있습니다.
- 장점: Type 2보다 구축하기 쉽고 더 빠른 증명 생성을 제공합니다.
- 단점: 일부 애플리케이션은 배포를 위해 코드 수정이 필요할 수 있습니다. Polygon zkEVM 및 Scroll의 현재 구현은 종종 이 유형에 더 가깝다고 여겨집니다. [2]
타입 4 (고급 언어 상당)
타입 4 시스템은 EVM 바이트코드 레벨에서 직접적인 호환성을 목표로 하지 않습니다. 대신, Solidity 또는 Vyper와 같은 고급 언어로 작성된 스마트 컨트랙트 소스 코드를 ZK 친화적인 언어나 명령어 세트로 직접 컴파일합니다.
- 장점: 훨씬 빠른 증명 생성 시간으로 이어질 수 있습니다.
- 단점: 바이트코드 레벨에서의 비호환성은 디버깅 도구, 컨트랙트 주소, 그리고 손으로 작성된 EVM 바이트코드를 사용하는 애플리케이션에 문제를 일으킬 수 있습니다.
- 예시: zkSync Era는 타입 4 zkEVM의 대표적인 예입니다. [5] [2]
장점과 과제
장점
- 안전한 확장성: zkEVM은 트랜잭션을 오프체인에서 실행하여 속도를 높이지만 유효성 증명을 제출하여 레이어 1에서 트랜잭션을 확정합니다. 이를 통해 이더리움의 보안 및 탈중앙화를 상속하면서 더 높은 처리량으로 작동하여 트랜잭션 용량을 초당 약 30건(TPS)에서 2,000건 이상으로 늘릴 수 있습니다. [2] [1]
- 저렴한 비용: 수천 건의 트랜잭션을 일괄 처리하고 단일 온체인 증명 비용을 분할 상환함으로써 zkEVM은 가스 요금을 크게 낮출 수 있습니다. 비용은 트랜잭션당 거의 1달러에서 1센트 미만으로 줄어들 수 있습니다. [7] [1]
- 빠른 완결성: zkEVM의 트랜잭션은 유효성 증명이 레이어 1의 검증 계약에 의해 수락되는 즉시 완료된 것으로 간주됩니다. 이를 통해 Optimistic Rollup에 필요한 1~2주 챌린지 기간을 피하고 자본 효율성과 사용자 경험, 특히 인출을 개선합니다. [2]
- 개발자 경험: EVM 호환성 또는 동등성은 주요 이점이며, 개발자는 기존 dApp을 마이그레이션하고 기존 이더리움 개발자 생태계 및 도구를 거의 변경 없이 활용할 수 있습니다. 이를 통해 대규모 네트워크 효과를 활용하고 빌더의 학습 곡선을 줄입니다. [7]
개발 과제
- 비용 및 복잡성 증명: 영지식 증명 생성은 계산 집약적인 프로세스이며, 특수하고 강력한 하드웨어가 필요한 경우가 많아 병목 현상 및 비용 증가의 원인이 될 수 있습니다. [5]
- 아키텍처 불일치: EVM은 ZK-증명을 염두에 두고 설계되지 않았습니다. 스택 기반 아키텍처, 복잡한 opcode(예:
CALL), Keccak과 같이 ZK에 적합하지 않은 해싱 함수를 사용하면 실행 증명을 생성할 때 상당한 기술적 어려움과 비용이 발생합니다. [2] - 호환성 대 성능 간의 상충 관계: zkEVM 유형에 자세히 설명된 바와 같이, 완전한 Ethereum 호환성을 달성하는 것과 효율적으로 증명을 생성할 수 있는 시스템을 설계하는 것 사이에는 본질적인 긴장이 존재합니다. [5]
- 탈중앙화 문제: 증명 생성에 고가의 특수 하드웨어에 대한 의존도는 잠재적인 중앙 집중화에 대한 우려를 제기합니다. 자원이 풍부한 소수의 주체만이 증명자 또는 시퀀서로 참여할 수 있기 때문입니다. [5]
보안 고려 사항
zkEVM을 이더리움 생태계에 레이어 2 또는 레이어 1로 통합하면 새로운 보안 고려 사항과 잠재적인 공격 벡터가 발생합니다. 이더리움 재단의 연구에 따르면 여러 가지 우려 사항이 확인되었습니다. [6]
시스템 다양성
주요 관심사는 단일 실패 지점의 위험입니다. 만약 생태계가 증명을 위해 단 하나 또는 두 개의 실행 레이어(EL) 클라이언트에만 의존하거나, 단일 기반 zkVM 구현에 의존하게 된다면, 그 지배적인 소프트웨어의 버그가 전체 네트워크를 중단시키거나 손상시킬 수 있습니다. 제안된 완화책은 "멀티프루프 전략"이며, 여기서 블록은 다양하고 여러 zkEVM 시스템으로부터 증명을 받은 후에만 유효하다고 간주됩니다. [6]
게스트 프로그램 및 컴파일
EL 클라이언트를 "증명 가능"하게 만드는 과정에는 상당한 위험이 따릅니다. EL 클라이언트는 캐시 및 시스템 호출과 같은 기능이 있는 복잡한 CPU용으로 설계되었지만, zkVM의 제한된 환경에는 이러한 기능이 없습니다. 이러한 환경 간의 불일치는 중요한 문제입니다. 또한 클라이언트를 수정할 때 버그가 발생할 수 있으며, zkVM에서 사용하는 RV32IM과 같은 틈새 ISA(Instruction Set Architecture)용 컴파일러는 주류 컴파일러보다 테스트가 덜 완료되었습니다. Keccak 해싱과 같이 ZK에 적합하지 않은 연산 속도를 높이는 데 사용되는 사용자 정의 "zkVM 프리컴파일"도 복잡성을 더하고 자체적인 공격 표면을 도입합니다. [6]
증명자와 회로 정확성
zkEVM의 가장 중요한 구성 요소는 VM 규칙을 정의하는 산술 회로와 기본 암호화 프로토콜입니다. 둘 중 하나의 버그는 파괴적일 수 있으며, 악의적인 증명자가 유효하지 않은 상태 전환에 대한 유효해 보이는 증명을 생성하여 자금 도난으로 이어질 수 있습니다. 이러한 결함은 원본 연구 논문, 사양의 모호성 또는 구현 중 오류에서 발생할 수 있습니다. 다른 구현 위험으로는 잘못된 "증인" 생성, 프로그램 형식 간의 트랜스파일 오류 또는 프로토콜의 입증된 보안 보장에서 벗어나는 안전하지 않은 "최적화"가 있습니다. [6]
완화 전략
이러한 위험을 해결하기 위해 생태계는 공식 검증(코드의 정확성을 증명하기 위해 수학 사용), 표준화된 테스트 스위트에 대한 광범위한 테스트(Ethereum Execution Spec Tests와 같은), 독립적인 보안 감사, 화이트 햇 해킹을 장려하기 위한 버그 바운티, 멀티프루프 전략과 같은 아키텍처 설계를 포함한 여러 전략에 의존합니다. [6]
형식 검증 이니셔티브
보안을 강화하기 위해 이더리움 재단은 zkEVM 형식 검증 프로젝트를 시작했습니다. 이는 zkEVM 스택 전체에 형식 검증 방법을 적용하여 "버그 없는 zkEVM"을 만드는 것을 목표로 하는 생태계 전체의 노력입니다. 2026년 말까지 진행될 예정인 이 프로젝트는 zkEVM의 정확성과 보안을 보장하기 위한 도구, 표준 및 프로세스를 개발하는 것을 목표로 합니다. [8]
이 이니셔티브는 세 가지 주요 초점 영역 또는 "트랙"으로 구성됩니다. [8]
- RISC-V zkVM 트랙: RISC-V 기반 zkVM의 다항식 제약 조건이 공식 RISC-V 명령어 의미 체계를 올바르게 구현하는지 확인하는 데 중점을 둡니다.
- EVM 트랙: RISC-V 아키텍처에서 실행되는 EVM 구현이 공식 EVM 사양의 올바른 구현임을 증명하는 것을 목표로 합니다.
- 암호화 트랙: 기본 암호화 증명 시스템 및 기본 요소의 사양, 보안 증명 및 구현을 검증합니다.
이 프로젝트는 이러한 문제를 해결하기 위해 다양한 팀에 자금을 지원하는 보조금 프로그램을 통해 운영됩니다. 지원되는 작업에는 Lean 증명 지원 도구에서 공식화된 암호화 증명 라이브러리인 ArkLib 개발, Lean에서 회로를 작성하기 위한 DSL(Domain-Specific Language)인 cLean, 제로 지식 언어를 위한 통합 중간 표현인 LLZK가 포함됩니다. 이러한 노력은 차세대 이더리움 확장 솔루션을 보호하기 위한 커뮤니티 중심적이고 개방적이며 방법론적으로 다양한 접근 방식을 강조합니다. [8]
역사 및 주목할 만한 프로젝트
초기 zk-롤업인 dYdX 및 Loopring은 ZK 기술의 확장 능력을 입증했지만, 일반적인 EVM 호환성이 부족했습니다. zkEVM의 개발은 ZK 증명과 EVM의 프로그래밍 가능성을 결합하려는 주요 시도를 나타냅니다. [1]
초기 개발 및 메인넷 출시
최초의 공개 zkEVM 메인넷은 2023년 3월에 출시되어 이더리움 확장성에 중요한 이정표를 세웠습니다.
- zkSync Era: Matter Labs에서 개발한 zkSync Era는 2023년 3월 24일에 공개 메인넷을 출시했습니다. Type 4 zkEVM으로서 Solidity 및 Vyper 코드를 ZK 친화적인 형식으로 컴파일하여 증명 시간을 단축합니다. [1] [5]
- Polygon zkEVM: Polygon은 2023년 3월 27일에 zkEVM 메인넷 베타를 출시했습니다. 오픈 소스로 유명하며, 첫 번째 트랜잭션은 이더리움 공동 창립자인 Vitalik Buterin이 보냈습니다. 일반적으로 Type 2 또는 Type 3 zkEVM으로 분류됩니다. zkSync 및 Polygon 팀 모두 출시 당시 기술의 초기 단계를 인지했습니다. [1]
Polygon zkEVM의 진화
2024년 동안 Polygon zkEVM 메인넷 베타는 "Etrog", "Elderberry", "Eggfruit" 업데이트를 포함한 여러 업그레이드를 거쳤으며, cdk-erigon 시퀀서와 같은 기능이 도입되었습니다. 그러나 전략적 전환으로 Polygon Labs는 2026년 1월에 Polygon zkEVM 메인넷 베타를 더 이상 사용하지 않을 계획을 발표했습니다. 이 프로젝트의 기술과 학습 내용은 개발자가 자체 ZK 기반 체인을 시작할 수 있도록 하는 Polygon Chain Development Kit (CDK)와 같은 다른 생태계 제품에 통합되고 있습니다. [7]
기타 프로젝트
- Scroll: zkEVM 프로젝트로, Type 2로 분류되며 이더리움 재단의 Privacy and Scaling Explorations (PSE) 그룹과 협력하여 개발되었습니다. [5]
- Linea: 선도적인 소프트웨어 회사 중 하나인 Consensys에서 개발한 zkEVM으로, 이더리움 생태계에 속합니다. [1]
- Taiko: 이더리움 확장을 위한 zkEVM 솔루션을 개발하는 또 다른 프로젝트입니다. [1]
이더리움 재단의 L1 이니셔티브
이더리움 재단은 Type 1 zkEVM을 이더리움의 기본 레이어에 직접 통합하는 연구를 진행 중입니다. 목표는 "실시간 증명(RTP)"을 달성하는 것으로, 이는 12초 슬롯 시간 내에 전체 이더리움 블록에 대한 ZK-증명을 생성하는 것을 의미합니다. 이를 통해 사용자가 별도의 레이어 2로 마이그레이션할 필요 없이 전체 네트워크가 ZK 스케일링의 이점을 누릴 수 있습니다. 프로젝트의 기본 원칙은 "완전하고 타협 없는 EVM 등가성"입니다. [3]
"우리의 목표는 완전하고 타협 없는 EVM 등가성입니다." [3]
2026년 초 현재 이 이니셔티브에는 OpenVM 및 RISC0와 같은 zkVM 구현에 대한 지속적인 벤치마킹과 Reth 및 Geth와 같은 이더리움 클라이언트를 증명 기반 검증과의 잠재적 통합을 위해 준비하는 작업이 포함됩니다. [3]