zkEVM(영지식 이더리움 가상 머신)은 이더리움 가상 머신(EVM)과 호환되는 스마트 컨트랙트를 실행하고, 영지식 기술을 사용하여 이러한 실행에 대한 암호화 증명을 생성하는 가상 머신입니다. 이는 이더리움의 확장 솔루션으로 설계되었으며, 메인 이더리움 네트워크를 활용하여 높은 수준의 보안을 유지하면서 트랜잭션 처리량을 늘리고 비용을 절감하는 것을 목표로 합니다. zkEVM은 수많은 트랜잭션을 묶어 오프체인에서 실행한 다음 메인 블록체인에 간결한 유효성 증명을 게시함으로써, 모든 네트워크 노드가 트랜잭션을 재실행할 필요 없이 계산 결과를 검증할 수 있도록 합니다. [1] [2]
zkEVM 개발의 주요 동기는 이더리움 네트워크의 확장성 병목 현상을 해결하는 것입니다. 이더리움의 표준 모델에서는 모든 검증자 노드가 블록 내의 모든 트랜잭션을 재실행하여 유효성을 확인해야 하며, 이 프로세스를 "N-of-N 실행"이라고 합니다. 이러한 중복 계산은 네트워크 용량을 제한하고 수요가 많은 기간 동안 높은 가스비의 원인이 됩니다. [3]
zkEVM은 "1-of-N" 모델을 제안합니다. 여기서 "증명자(prover)"라고 불리는 단일 전문 엔티티가 트랜잭션 블록을 실행하고 실행의 정확성을 확인하는 간결한 암호화 증명(ZK-proof)을 생성합니다. 네트워크 검증자는 전체 블록을 다시 실행하는 대신 계산 비용이 저렴한 이 증명만 확인하면 됩니다. 이러한 패러다임의 전환은 네트워크의 계산 부하를 획기적으로 줄여 더 높은 처리량과 더 저렴한 수수료를 가능하게 합니다. [4]
초기 ZK-Rollups는 확장성 이점을 제공했지만, 종종 EVM 호환성을 희생하여 특정 애플리케이션으로 용도가 제한되었고 개발자가 새로운 언어나 도구를 배워야 했습니다. zkEVM은 EVM과 호환되거나 동등한 수준을 목표로 하기 때문에 중요한 진화입니다. 이를 통해 개발자는 기존 이더리움 스마트 컨트랙트와 탈중앙화 애플리케이션(dApps)을 코드 수정이 거의 또는 전혀 없이 더 확장 가능한 레이어에 배포할 수 있습니다. 이 접근 방식을 통해 프로젝트는 이더리움의 광범위한 개발자, 도구 및 인프라 생태계를 활용할 수 있습니다. [1] [5]
이 기술은 두 가지 주요 맥락에서 적용됩니다. 이더리움 위에서 작동하는 레이어 2 롤업과, 메인넷 자체를 확장하기 위해 zkEVM을 이더리움의 레이어 1 프로토콜에 직접 통합하려는 더 야심 찬 제안에서 사용됩니다. [6]
zkEVM 아키텍처는 기본적으로 온체인 검증과 함께 오프체인 연산을 용이하게 하는 세 가지 핵심 구성 요소로 이루어져 있습니다. [2]
zk-SNARK 또는 zk-STARK와 같은 영지식 증명을 생성합니다. 이 증명은 초기 상태에서 새로운 상태로의 상태 전환이 유효하며, 모든 계산이 EVM의 규칙에 따라 올바르게 수행되었음을 암호학적으로 증명합니다. 증명은 기본 트랜잭션 데이터 자체를 공개하지 않고 생성됩니다. [5] [2]zkEVM 시스템에서 증명자(prover)는 블록을 "무상태(statelessly)"로 실행합니다. 이는 전체 블록체인 상태의 완전한 복사본을 유지할 필요가 없음을 의미합니다. 대신, 처리 중인 트랜잭션에 필요한 상태 데이터가 "위트니스(witness)"라고 불리는 입력값으로 제공됩니다. 이 입력값에는 부모 블록의 알려진 상태 루트를 기준으로 무결성을 검증하는 머클 증명(Merkle proofs)이 동반됩니다. [4]
확장성 측면에서 "zk"(영지식)라는 용어는 부분적으로 오해의 소지가 있을 수 있다는 점에 유의해야 합니다. 이 기술은 프라이버시를 위해 사용될 수도 있지만, zkEVM은 주로 SNARK와 같은 영지식 증명 시스템의 "간결성"(증명 크기가 작음)과 "무결성"(증명이 계산적으로 타당함) 특성을 활용합니다. 프라이버시를 보장하려면 추가적인 복잡성과 증명 비용이 발생하기 때문에, zkEVM은 트랜잭션 세부 정보를 반드시 숨기지 않고도 계산이 올바르게 수행되었음을 증명합니다. [6]
이더리움의 공동 창립자인 비탈릭 부테린은 이더리움과의 호환성 수준에 따라 zkEVM을 여러 유형으로 분류하는 시스템을 제안했습니다. 이 시스템은 근본적인 절충 관계를 강조합니다. 호환성이 높을수록(낮은 번호의 유형) 기존 인프라를 사용하기 쉽지만 증명 생성 속도가 느리고 비용이 많이 드는 반면, 호환성이 낮을수록(높은 번호의 유형) 이더리움 표준에서 벗어나는 대신 더 빠른 증명 시간을 달성할 수 있습니다. [2]
유형 1 zkEVM은 이더리움과 타협 없이 완전히 동등한 것을 목표로 합니다. 이들은 해시 함수(Keccak 등), 상태 트리 또는 기타 합의 로직을 포함하여 이더리움 시스템에 어떠한 변경도 가하지 않습니다.
유형 2 zkEVM은 개발자 관점에서는 완전히 동일하지만, 증명 생성을 가속화하기 위해 다른 상태 트리 구조를 사용하는 등 기본 이더리움 아키텍처를 약간 수정합니다.
이것은 ZK 회로 내에서 증명하기 특히 어려운 특정 작업의 가스 비용을 높인 Type 2의 변형입니다. 이러한 수정은 최악의 경우의 증명 시간을 개선하지만, 정밀한 가스 비용 계산에 의존하는 개발자 도구 및 스마트 계약을 손상시킬 수 있습니다. [2]
유형 3 zkEVM은 개발을 더욱 단순화하고 증명자(prover) 성능을 향상시키기 위해 완벽한 EVM 호환성을 일부 희생합니다. 이들은 특정 프리컴파일드 컨트랙트(precompiled contracts)와 같이 ZK 회로에서 구현하기 특히 어려운 기능들을 생략할 수 있습니다.
Type 4 시스템은 EVM 바이트코드 수준에서의 직접적인 호환성을 목표로 하지 않습니다. 대신 Solidity나 Vyper와 같은 고급 언어로 작성된 스마트 컨트랙트 소스 코드를 ZK 친화적인 언어나 명령어 집합으로 직접 컴파일합니다.
CALL), 그리고 Keccak과 같은 영지식 증명에 부적합한 해시 함수 사용은 실행 증명을 생성할 때 상당한 기술적 과제와 비용을 발생시킵니다. [2]zkEVM을 Layer 2 또는 Layer 1에서 이더리움 생태계에 통합하는 것은 새로운 보안 고려 사항과 잠재적인 공격 벡터를 야기합니다. 이더리움 재단의 연구에 따르면 수많은 우려 분야가 확인되었습니다. [6]
주요 우려 사항은 단일 장애점(single point of failure)의 위험입니다. 만약 생태계가 증명을 위해 단 하나 또는 두 개의 실행 레이어(EL) 클라이언트에만 의존하거나, 단일 기본 zkVM 구현에 의존하게 된다면, 해당 지배적인 소프트웨어의 버그가 전체 네트워크를 중단시키거나 손상시킬 수 있습니다. 제안된 완화책은 "다중 증명 전략(multiproofs strategy)"으로, 이는 여러 개의 다양한 zkEVM 시스템으로부터 증명을 받은 후에만 블록을 유효한 것으로 간주하는 방식입니다. [6]
EL(실행 레이어) 클라이언트를 "증명 가능"하게 만드는 과정에는 상당한 위험이 따릅니다. EL 클라이언트는 캐시나 시스템 호출과 같은 기능을 갖춘 복잡한 CPU를 위해 설계되었으나, 이러한 기능은 zkVM의 제한된 환경에는 존재하지 않습니다. 이러한 환경 간의 불일치는 고차원적인 우려 사항입니다. 또한, 클라이언트를 수정하는 과정에서 버그가 발생할 수 있으며, zkVM에서 사용되는 RV32IM과 같은 틈새 명령어 집합 구조(ISA)용 컴파일러는 주류 컴파일러에 비해 실전 검증이 덜 되어 있습니다. Keccak 해싱과 같이 ZK 친화적이지 않은 작업의 속도를 높이기 위해 사용되는 맞춤형 "zkVM 프리컴파일" 또한 복잡성을 가중시키고 고유한 공격 표면을 생성합니다. [6]
zkEVM의 가장 중요한 구성 요소는 VM의 규칙을 정의하는 산술 회로와 기본 암호화 프로토콜입니다. 둘 중 어느 하나라도 버그가 발생하면 치명적일 수 있으며, 잠재적으로 악의적인 증명자가 유효하지 않은 상태 전환에 대해 유효해 보이는 증명을 생성하여 자금 도난으로 이어질 수 있습니다. 이러한 결함은 기초 연구 논문, 사양의 모호함 또는 구현 과정에서의 오류에서 비롯될 수 있습니다. 다른 구현 위험으로는 잘못된 "위트니스(witness)" 생성, 프로그램 형식 간의 트랜스파일링 버그, 또는 프로토콜의 입증된 보안 보장을 벗어나는 안전하지 않은 "최적화" 등이 있습니다. [6]
이러한 위험을 해결하기 위해 생태계는 코드의 정확성을 수학적으로 증명하는 형식 검증(formal verification), 표준화된 테스트 스위트(이더리움 실행 사양 테스트 등)를 활용한 광범위한 테스트, 독립적인 보안 감사, 화이트햇 해킹을 장려하기 위한 버그 바운티, 그리고 멀티프루프(multiproofs) 전략과 같은 아키텍처 설계 등 여러 전략에 의존합니다. [6]
보안을 강화하기 위해 이더리움 재단은 "버그 없는 zkEVM" 구축을 목표로 zkEVM 스택 전체에 형식 검증 방법론을 적용하는 생태계 차원의 노력인 **zkEVM 형식 검증 프로젝트(zkEVM Formal Verification Project)**를 시작했습니다. 2026년 말까지 진행될 예정인 이 프로젝트는 zkEVM의 정확성과 보안을 보장하기 위한 도구, 표준 및 프로세스 개발을 목표로 합니다. [8]
이 이니셔티브는 세 가지 주요 집중 분야 또는 "트랙(Track)"으로 구성됩니다: [8]
이 프로젝트는 이러한 과제를 해결하는 다양한 팀에 자금을 지원하는 보조금 프로그램을 통해 운영됩니다. 지원되는 작업에는 Lean 증명 도우미에서 공식화된 암호화 증명 라이브러리인 ArkLib, Lean에서 회로를 작성하기 위한 도메인 특화 언어(DSL)인 cLean, 영지식 언어를 위한 통합 중간 표현인 LLZK 개발 등이 포함됩니다. 이러한 노력은 차세대 이더리움 확장 솔루션을 보호하기 위한 커뮤니티 주도의 개방적이고 방법론적으로 다양한 접근 방식을 강조합니다. [8]
dYdX 및 Loopring과 같은 초기 zk-Rollups는 확장을 위한 ZK 기술의 위력을 입증했지만, 일반적인 EVM 호환성이 부족했습니다. zkEVM의 개발은 ZK 증명과 EVM의 프로그래밍 가능성을 결합하려는 주요한 시도를 나타냅니다. [1]
첫 번째 공개 zkEVM 메인넷들이 2023년 3월에 가동을 시작하며 Ethereum 확장의 중요한 이정표를 세웠습니다.
2024년 내내 Polygon zkEVM 메인넷 베타는 cdk-erigon 시퀀서와 같은 기능을 도입한 "Etrog", "Elderberry", "Eggfruit" 업데이트를 포함하여 여러 차례 업그레이드를 거쳤습니다. 그러나 전략적 전환의 일환으로, Polygon Labs는 2026년 1월에 Polygon zkEVM 메인넷 베타를 중단할 계획이라고 발표했습니다. 이 프로젝트의 기술과 교훈은 개발자가 자신만의 ZK 기반 체인을 출시할 수 있게 해주는 Polygon 체인 개발 키트(CDK)와 같은 다른 생태계 제품으로 통합되고 있습니다. [7]
이더리움 재단은 Type 1 zkEVM을 이더리움의 베이스 레이어에 직접 통합하는 연구를 추진하고 있습니다. 목표는 12초의 슬롯 시간 내에 전체 이더리움 블록에 대한 ZK 증명을 생성하는 "실시간 증명"(Real-Time Proving, RTP)을 달성하는 것입니다. 이를 통해 사용자가 별도의 레이어 2로 마이그레이션할 필요 없이 네트워크 전체가 ZK 확장의 이점을 누릴 수 있게 됩니다. 이 프로젝트의 핵심 원칙은 "완전하고 타협 없는 EVM 동등성"입니다. [3]
"우리의 목표는 완전하고 타협 없는 EVM 동등성입니다." [3]
2026년 초 현재, 이 이니셔티브에는 OpenVM 및 RISC0와 같은 zkVM 구현에 대한 지속적인 벤치마킹과 Reth 및 Geth와 같은 이더리움 클라이언트를 증명 기반 검증과 통합하기 위한 준비 작업이 포함되어 있습니다. [3]
June 4, 2026. 01:38 UTC
편집 요약:
Updated glossary tag and normalized account ID hex case