EVM이란 무엇인가
참고: 이 문서는 영문 원본의 자동 번역본입니다.
EVM이란 무엇인가
EVM(Ethereum Virtual Machine)은 Ethereum과 다수의 다른 블록체인을 구동하는 연산 엔진입니다. 그것은 스마트 계약 — 블록체인에 저장된 자체 강제 프로그램 — 을 실행하는 소프트웨어 환경입니다. 개발자가 Solidity(또는 다른 EVM 호환 언어)로 스마트 계약을 작성하고, 컴파일하여, 체인에 배포하면, EVM이 실제로 그 코드를 실행하는 것입니다.
EVM 호환 네트워크의 모든 노드는 동일한 규칙으로 동일한 가상 머신을 실행합니다. 이것이 스마트 계약을 결정론적으로 만드는 요소입니다: 동일한 입력과 상태가 주어지면, 모든 노드가 동일한 출력을 생성합니다. 모호함도, "내 컴퓨터에서는 작동하는데" 문제도 없습니다. EVM은 네트워크의 모든 참여자가 모든 연산의 결과에 대해 동의하도록 보장합니다.
요컨대: EVM은 Ethereum과 EVM 호환 체인에서 스마트 계약을 위한 표준화된 실행 엔진입니다. 그것은 코드가 어떻게 실행되는지, 상태가 어떻게 저장되는지, 가스가 어떻게 소비되는지를 정의하여 — 모든 노드에서 동일하게 작동하는 공통 런타임을 만듭니다.
EVM의 작동 방식
바이트코드 실행
스마트 계약은 사람이 읽을 수 있는 소스 코드로 온체인에 저장되지 않습니다. 배포 전에, 소스 코드(일반적으로 Solidity로 작성됨)는 바이트코드(bytecode) — EVM이 이해하는 저수준 명령어 집합 — 로 컴파일됩니다. 각 명령어는 opcode입니다: "두 숫자를 더하기," "값을 메모리에 저장하기," "저장소에서 데이터 불러오기," 또는 "토큰 전송하기" 같은 기본 작업입니다.
트랜잭션이 스마트 계약을 트리거할 때, 네트워크의 모든 검증 노드는:
- 블록체인 상태에서 계약의 바이트코드를 불러옵니다.
- EVM의 명세를 따라 opcode를 순차적으로 실행합니다.
- 실행 결과에 기반하여 블록체인 상태를 업데이트합니다.
- 실행된 각 opcode에 대해 가스를 부과합니다.
모든 노드가 동일한 규칙으로 동일한 바이트코드를 실행하기 때문에, 그것들은 모두 동일한 결과에 도달합니다. 이 결정론적 실행이 온체인에서 무신뢰 연산의 기초입니다.
가스
모든 opcode에는 가스 비용(gas cost) — 그 명령어를 실행하는 데 필요한 계산 노력을 나타내는 측정 단위 — 이 있습니다. 가스는 두 가지 목적에 기여합니다:
- 자원 계량(Resource metering) — 가스는 무한 루프를 방지하고 모든 연산이 제한된 양의 네트워크 자원을 소비하도록 보장합니다. 영원히 실행하려는 계약은 가스 한도를 소진하고 revert됩니다.
- 수수료 메커니즘(Fee mechanism) — 사용자는 자신의 트랜잭션 실행에 대해 검증자에게 보상하기 위해 (체인의 네이티브 토큰으로 표시되는) 가스 수수료를 지불합니다. 더 복잡한 작업은 더 많은 가스가 듭니다.
가스 비용은 EVM 명세에 의해 정의되며 모든 EVM 호환 체인에서 동일합니다(다만 네이티브 토큰으로 표시되는 가스의 가격은 네트워크마다 다릅니다).
상태와 저장소
EVM은 글로벌 상태 — 주소(사용자 계정과 계약 계정 모두)에서 그 현재 잔액, 코드, 저장소로의 매핑 — 를 유지합니다. 스마트 계약 저장소는 키-값 저장소로 조직됩니다: 각 계약은 영속 데이터를 읽고 쓸 수 있는 자체 256비트 주소 공간을 가집니다.
저장소 작업(영속 상태에 쓰고 읽기)은 가스 측면에서 가장 비싼 EVM 작업 중 하나인데, 그것이 모든 노드가 영구적으로 저장해야 하는 데이터에 영향을 주기 때문입니다.
스택 기반 아키텍처
EVM은 **스택 머신(stack machine)**입니다: 그것은 명명된 레지스터가 아니라 연산 중 중간 값을 보유하기 위해 후입선출(last-in-first-out) 스택을 사용합니다. opcode는 값을 스택에 푸시하고, 맨 위 요소들을 연산하며, 결과를 다시 푸시합니다. 이 설계는 단순하고 잘 명세되어 있지만 대부분의 전통적인 CPU와 일부 더 새로운 블록체인 가상 머신(Solana의 SBF/eBPF 같은)이 사용하는 레지스터 기반 아키텍처와는 다릅니다.
EVM이 중요한 이유
생태계가 된 표준
EVM의 의의는 Ethereum 자체를 훨씬 넘어 확장됩니다. EVM 명세가 공개되어 있고 잘 문서화되어 있기 때문에, 많은 다른 블록체인이 그것을 채택했습니다 — EVM을 네이티브로 실행하거나 EVM 호환 실행 계층을 구현함으로써 말입니다. 이는 공유 생태계를 만들었습니다:
| 무엇이 공유되는가 | 실무에서 무엇을 의미하는가 |
|---|---|
| 스마트 계약 언어 | 개발자가 Solidity를 한 번 작성하고 임의의 EVM 체인에 배포함 |
| 개발 도구 | Hardhat, Foundry, Remix, 기타 도구가 모든 EVM 체인에서 작동함 |
| 지갑 호환성 | MetaMask와 다른 EVM 지갑이 단순히 새 네트워크를 추가하여 작동함 |
| 토큰 표준 | ERC-20(대체 가능 토큰), ERC-721(NFT), 기타 표준이 체인 전반에 걸쳐 이식 가능함 |
| 감사 및 보안 | 보안 감사자, 정형 검증 도구, 모범 사례가 EVM 체인 전반에 걸쳐 이전됨 |
| 개발자 지식 | Solidity와 EVM을 아는 개발자는 Ethereum, Polygon, Avalanche, BNB Chain, Arbitrum, Base, 그리고 수십 개의 다른 네트워크에서 작업할 수 있음 |
이 이식성이 EVM 호환성이 개발자와 애플리케이션을 빠르게 끌어들이려는 새 블록체인의 기본 선택지가 된 이유입니다. 처음부터 생태계를 구축하는 것보다 기존 생태계에 합류하는 것이 더 저렴하고 빠릅니다.
멀티체인 배포
프로젝트 — AI 관련 크립토 프로젝트를 포함하여 — 에게 EVM 호환성은 Ethereum에 배포된 스마트 계약을 최소한의 수정으로 Polygon, Avalanche의 C-Chain, Arbitrum, Base, 또는 BNB Smart Chain에 배포할 수 있음을 의미합니다. 이는 다음을 가능하게 합니다:
- 멀티체인 존재 — 프로젝트는 서로 다른 사용자 기반에 도달하기 위해 동일한 토큰 계약과 핵심 로직을 여러 체인에 배포할 수 있습니다.
- 체인 마이그레이션 — 프로젝트가 더 낮은 수수료나 더 높은 처리량을 가진 체인으로 이동해야 한다면, EVM 호환성이 마이그레이션 비용을 줄여줍니다.
- 구성 가능성 — 임의의 주어진 EVM 체인에서, 계약은 동일한 인터페이스와 표준을 사용하여 서로 상호작용할 수 있어, DeFi 구성 가능성, 토큰 통합, 공유 인프라를 가능하게 합니다.
한계
EVM은 계산 집약적인 워크로드가 아니라 범용 스마트 계약 실행을 위해 설계되었습니다. 주요 한계는 다음과 같습니다:
- 네이티브 부동소수점 없음 — EVM은 256비트 정수만 사용합니다. 부동소수점 산술(대부분의 AI/ML 연산에 필수적)은 에뮬레이션되어야 하며, 이는 가스 측면에서 극도로 비쌉니다.
- 가스 제약 — 블록 가스 한도가 블록당 총 연산에 상한을 둡니다. 복잡한 작업(AI 추론을 위한 행렬 곱셈 같은)은 EVM 실행 내에서 엄청나게 비쌉니다.
- 순차 실행 — EVM은 블록 내에서 트랜잭션을 순차적으로 처리합니다. 현대 CPU가 성능을 위해 사용하는 병렬 실행은 네이티브로 지원되지 않습니다(다만 일부 더 새로운 EVM 호환 체인이 병렬 EVM 실행을 실험하고 있습니다).
- 저장소 비용 — 대량의 데이터를 온체인에 저장하는 것은 비쌉니다. AI 모델, 데이터셋, 중간 연산은 온체인 저장에 너무 큽니다.
이러한 한계는 AI 관련 크립토 프로젝트가 일반적으로 AI 워크로드를 오프체인에서 실행하고 온체인 EVM 계약은 조율, 결제, 거버넌스, 결과 기록에만 사용하는 이유를 설명합니다.
DecAIHub 프로젝트 카드에서 나타나는 곳
DecAIHub 프로젝트 카드에서 EVM은 다음에 나타납니다:
- Type —
EVM은 프로젝트가 EVM 호환 체인에서 운영됨을 나타냅니다. 이는 독자에게 프로젝트가 Solidity 기반 스마트 계약과 표준 Ethereum 도구를 사용한다는 것을 알려줍니다. - Main chain — 특정 EVM 호환 체인이 나열됩니다(Ethereum, Polygon, Avalanche, Arbitrum, Base, BNB Smart Chain 등). 이 모든 것이 EVM 실행을 공유합니다.
- Token standard — EVM 호환 체인은 Ethereum 토큰 표준을 사용합니다. ERC-20(대체 가능 토큰), ERC-721(NFT), ERC-1155(다중 토큰)가 가장 흔합니다. 이러한 표준은 EVM 생태계에 특화된 것입니다.
- Smart contracts — 프로젝트의 스마트 계약이 블록 익스플로러에서 검증되면, 독자는 그것을 검사할 수 있습니다. EVM 계약은 Solidity(또는 Vyper)로 작성되고 EVM 바이트코드로 컴파일됩니다.
Type: EVM 분류는 프로젝트의 도구와 생태계에 대한 유용한 맥락을 제공하지만, 그 자체로는 프로젝트의 AI 품질이나 토큰의 필요성에 대해 아무것도 말해주지 않습니다.
EVM 호환성만으로는 증명되지 않는 것
- EVM 호환성은 AI 능력을 증명하지 않습니다. EVM은 스마트 계약을 실행하고, AI 모델은 GPU에서 실행됩니다. 프로젝트가 EVM 체인에 있다는 것은 그것이 진정한 AI 컴포넌트를 가지고 있는지에 대해 아무것도 말해주지 않습니다.
- EVM 체인에 배포하는 것은 프로젝트를 독특하게 만들지 않습니다. 동일한 계약이 수십 개의 EVM 호환 체인에 배포될 수 있습니다. 배포 선택은 차별화 요소가 아니라 인프라 결정입니다.
- 검증된 스마트 계약은 오프체인 컴포넌트가 작동함을 증명하지 않습니다. 프로젝트는 깨끗하고 감사받은 온체인 코드를 가지고도 그 뒤에 작동하는 AI 파이프라인이 전혀 없을 수 있습니다. 온체인과 오프체인 컴포넌트는 별도로 평가되어야 합니다.
- EVM 생태계 도구는 증거의 필요성을 줄이지 않습니다. MetaMask 지원, 블록 익스플로러 상장, ERC-20 토큰을 갖추는 것은 표준 인프라입니다 — 그것은 기술, 혁신, 또는 품질의 증거가 아닙니다.
- EVM 실행은 AI 실행이 아닙니다. EVM 안에서 신경망을 실행하는 것은 사소하지 않은 모델의 경우 엄청나게 비쌉니다. 프로젝트가 EVM 체인에서 "온체인 AI"라고 말할 때, 정확히 무엇이 온체인 대 오프체인에서 실행되는지 확인하세요.
혼동하지 마세요
- Ethereum — Ethereum은 특정 블록체인 네트워크입니다. EVM은 Ethereum(과 많은 다른 체인)이 사용하는 가상 머신입니다. "EVM"은 실행 엔진을 가리키고, "Ethereum"은 네트워크, 그 검증자, 그 상태를 가리킵니다.
- non-EVM 블록체인 — Solana, Cosmos 체인, Bittensor 같은 블록체인은 서로 다른 가상 머신(SVM, CosmWasm, 커스텀 런타임)을 사용합니다. 그것들은 EVM 호환이 아니며, 이는 Solidity 계약과 EVM 도구가 그것들에서 네이티브로 작동하지 않는다는 것을 의미합니다.
- 스마트 계약 — 스마트 계약은 EVM에서 실행되는 프로그램입니다. EVM은 엔진이고, 스마트 계약은 그것이 실행하는 코드입니다. 스마트 계약은 또한 서로 다른 언어와 런타임을 사용하여 non-EVM 체인에도 존재합니다.
- Solidity — Solidity는 EVM 스마트 계약을 위한 가장 인기 있는 프로그래밍 언어이지만, 그것이 EVM 자체는 아닙니다. Vyper는 또 다른 EVM 호환 언어입니다. EVM은 어떤 소스 언어가 생성했든 컴파일된 바이트코드를 실행합니다.
자주 묻는 질문
"EVM 호환"은 무엇을 의미하나요?
블록체인은 Ethereum과 동일한 opcode 집합과 실행 규칙을 사용하여 EVM 바이트코드 — Solidity 스마트 계약의 컴파일된 형태 — 를 실행할 수 있다면 EVM 호환입니다. 실무에서, 이는 개발자가 동일한 계약을 여러 EVM 호환 체인에 배포하고, 동일한 도구(Hardhat, Foundry, MetaMask)를 사용하며, 동일한 토큰 표준(ERC-20, ERC-721)에 의존할 수 있음을 의미합니다. EVM 호환 체인의 예로는 Polygon, Avalanche C-Chain, BNB Smart Chain, Arbitrum, Base가 있습니다.
AI 모델이 EVM 안에서 실행될 수 있나요?
이론적으로, 모든 연산은 EVM opcode로 표현될 수 있습니다. 실무에서, 사소하지 않은 AI 모델을 EVM 안에서 실행하는 것은 엄청나게 비쌉니다. EVM은 네이티브 부동소수점 지원이 없고, 블록당 엄격한 가스 한도가 있으며, 복잡한 작업에 높은 가스 비용을 부과합니다. 작은 신경망조차 한 번의 순전파(forward pass)는 어떤 실용적인 애플리케이션이 정당화할 수 있는 것보다 몇 배나 더 많은 가스가 들 것입니다. 이것이 AI 관련 크립토 프로젝트가 모델을 오프체인에서 실행하고 EVM을 조율, 결제, 검증 로직에만 사용하는 이유입니다.
왜 그토록 많은 블록체인이 EVM을 채택하나요?
네트워크 효과입니다. Ethereum은 최초의 주요 스마트 계약 플랫폼이었고, 그 개발자 생태계 — Solidity 지식, 도구, 감사 전문성, 지갑 지원, 토큰 표준 — 가 수년에 걸쳐 성장했습니다. EVM을 채택하는 새 블록체인은 즉시 이 전체 생태계에 접근할 수 있습니다. 개발자는 새 언어를 배울 필요가 없고, 프로젝트는 기존 계약을 배포할 수 있으며, 사용자는 익숙한 지갑으로 연결할 수 있습니다. 처음부터 경쟁 생태계를 구축하는 것은 훨씬 더 비싸고 불확실합니다. EVM 호환성은 채택으로 가는 실용적인 지름길입니다.
EVM 호환과 EVM 등가의 차이는 무엇인가요?
EVM 호환은 체인이 EVM 바이트코드를 실행할 수 있고 동일한 opcode를 지원하지만, 동작에 사소한 차이(예: 가스 비용, 프리컴파일, 또는 엣지 케이스 opcode 동작)가 있을 수 있음을 의미합니다. EVM 등가는 체인이 Ethereum의 EVM 동작을 opcode 수준에서 복제한다는 것을 의미합니다 — 모든 작업이 Ethereum에서와 동일한 결과를 생성합니다. EVM 등가는 더 강력한 주장입니다: 그것은 정밀한 EVM 동작에 의존하는 복잡한 계약과 도구조차 수정 없이 작동해야 한다는 것을 의미합니다. 예를 들어 Polygon zkEVM은 EVM 등가를 목표로 합니다.
외부 참고 자료
- Ethereum.org — Ethereum Virtual Machine — EVM 아키텍처, opcode, 실행 모델을 설명하는 Ethereum Foundation 공식 문서.
- Ethereum Yellow Paper — 완전한 EVM opcode 집합과 실행 의미론을 포함한 Ethereum 프로토콜의 정형 명세.
- EVM Codes — 가스 비용, 설명, 그리고 바이트코드 실행 테스트를 위한 플레이그라운드를 갖춘 EVM opcode 대화형 참조.
No comments to display
No comments to display