이더리움 가상 머신 (EVM)이란?
이더리움 가상 머신 (EVM, Ethereum Virtual Machine)은 이더리움 네트워크의 핵심 기능을 담당하는 소프트웨어다. 이더리움은 블록체인 기술을 기반으로 한 플랫폼으로, 이더리움 네트워크는 여러 대의 컴퓨터로 구성되어 있다. 이 네트워크를 관리하고 업데이트하는 데에는 규칙이 필요한데, 이 규칙을 제공하는 것이 EVM이다. EVM은 스마트 계약을 실행하고, 트랜잭션을 처리하며, 계정 잔고를 업데이트하는 기능을 한다.
EVM은 이더리움 프로토콜을 구동하는 일종의 가상 머신 또는 클라우드 컴퓨터다. 컴퓨터가 프로그램을 실행하고 메모리에 정보를 저장하는 것처럼 EVM도 코드를 실행하고, 정보를 저장할 수 있는 가상 공간을 제공한다. 그러나 EVM은 단일 컴퓨터가 아니라 전 세계 수천 대의 클라우드 컴퓨터로 구성된 클라우드 컴퓨팅 시스템이다.
EVM의 주요 기능 |
|
이더리움 블록체인의 상태 관리 |
스마트 컨트랙트 실행 |
데이터 저장 |
가스비 계산 |
EVM 작동 방식
먼저, 이더리움 개발자는 솔리디티(Solidity)라는 프로그래밍 언어로 스마트 계약 코드를 작성한다. 그런 다음 코드를 바이트 코드로 변환하여 EVM이 명령어를 읽을 수 있도록 한다.
솔리디티에서 바이트 코드로 변환하는 과정에서, 명령어는 ‘옵코드(opcode)’ 또는 연산 코드로 나뉜다. EVM이 거래를 실행하는 방법을 정확히 알 수 있도록 모든 코드 라인은 옵코드로 변환된다.
알다시피, 이더리움의 모든 거래는 가스비를 지불해야 실행할 수 있다. 따라서 옵코드와 가스비 간의 관계를 이해하는 것은 EVM의 작동 방식을 이해하는 데에도 중요하다.
이론적으로 가스비를 지불하는 것은 실제로 EVM이 실행할 옵코드에 대한 비용을 지불하는 것이다. 그렇기에 옵코드가 많을수록 가스비가 더 많이 발생한다.
EVM의 주요 특징
- 튜링 완전 가상 머신(Turing-complete virtual machine)
EVM은 튜링 완전 가상 머신으로 설계되었다. 튜링 완전성이란 시간, 에너지, 완전한 명령어 등 필요한 자원이 주어지면 어떤 문제라도 해결할 수 있는 머신을 의미한다.
이더리움의 튜링 완전성은 스마트 컨트랙트의 미래 합의를 이해하고 구현하는 네트워크 능력이다.
- 결정론적 코드 실행(Deterministic code execution)
EVM은 결정론적으로 코드를 실행한다. 특정 스마트 계약은 동일한 입력에 대해 항상 동일한 출력을 생성한다. 스마트 계약이 실행되는 위치나 실행하는 사람에 상관없이 특정 입력에 대한 출력은 항상 일관적으로 유지된다.
- 격리(Isolation)
EVM은 나머지 컴퓨터 시스템과 격리되어 작동하도록 설계되었다. 이를 통해 스마트 컨트랙트가 안전한 환경에서 실행되도록 보장한다.
EVM 아키텍처
EVM 코드: EVM이 실행할 수 있는 바이트 코드로 작성된다.
상태: 이더리움은 계정과 잔액에 대한 정보를 보관하는 대규모 데이터 스트럭처(data structure)다. 이 정보의 상태는 EVM이 새로운 입력을 처리하여 결정론적 출력을 생성함에 따라 블록마다 다르다.
트랜잭션: 트랜잭션은 EVM이 실행하는, 사용자의 암호로 서명된 명령어다. 명령어에는 두 가지 유형이 있다.
- 메시지 콜은 한 계정에서 다른 계정으로 ETH를 전송하기 위한 간단한 트랜잭션 지침이다.
- 계약 생성은 새로운 스마트 계약을 생성하는 지침이다.
공간: EVM은 세 가지 공간 구성 요소를 활용한다.
- 스택(Stack) – 최대 1024개의 항목을 저장할 수 있는 임시 저장소다. 모든 연산은 스택에서 수행된다.
- 메모리(Memory) – 스마트 컨트랙트 실행 중에만 액세스할 수 있는 임시 저장소다. 계약이 완료되면 메모리 내용은 삭제된다.
- 스토리지(Storage) – 데이터가 영구적으로 저장되는 메모리 공간으로, 이더리움 블록체인에 저장된다. 스토리지 메모리를 사용하면 스택과 메모리에 비해 가스비가 더 많이 발생한다.
가스: 블록체인 네트워크에서 연산을 수행하는 데 필요한 노력의 양이다. 모든 EVM 계산에는 가스비가 필요하며, 가스비가 없으면 트랜잭션이 처리되지 않는다.
EVM 호환의 중요성
이더리움은 세계에서 가장 가치 있는 스마트 계약 퍼블릭 블록체인 네트워크로 성장했다.
2023년 6월 21일, 이더리움의 탈중앙화 애플리케이션(dApp) 생태계는 총 246억 3,000만 달러의 총예치액(TVL, Total Value Locked)을 자랑했다. 디파이라마(DefiLlama)에 따르면 두 번째로 가치가 높은 체인인 트론(Tron)은 50억 달러의 TVL을 보유하고 있다. 이는 탈중앙화 금융(DeFi)을 위한 블록체인으로 자리매김한 이더리움에 대한 시장의 선호도가 뚜렷하다는 사실을 보여준다.
수많은 블록체인 네트워크가 EVM과 호환되도록 설계되었다. 이를 통해 블록체인이 이더리움 스마트 컨트랙트를 실행할 수 있다. EVM 호환성은 개발자가 스마트 계약을 이더리움과 여러 EVM 호환 체인에 쉽게 배포할 수 있게 한다.
EVM 호환 네트워크는 방대한 이더리움 사용자 풀에 접근할 수 있는데, 이는 성장과 대중화(mass adoption)에 매우 중요하다.
EVM 호환 체인
- 이더리움(Ethereum)
- BNB 체인(BNB Chain)
- 폴리곤 PoS(Polygon PoS)
- 아발란체(Avalanche)
- 옵티미즘(Optimism)
- 아비트리움(Arbitrium)
- 팬텀(Fantom)
- 문빈(Moonbean)
- 클레이튼(Klaytn)
- 크로노스(Cronos)
결론
EVM 소프트웨어는 블록체인의 상태를 유지하고 스마트 계약을 실행하는 이더리움의 생명줄이다.
이더리움의 급격한 성장으로 인해 EVM은 업계 표준이 되었으며, 경쟁 블록체인 네트워크는 EVM과 호환되도록 시스템을 설계하고 있다.