banner
뉴스 센터
광범위한 판매 및 생산 전문 지식

EVM(이더리움 가상 머신)이란 무엇이며 어떻게 작동합니까?

Sep 10, 2023

Ethereum 블록체인의 백본을 형성하는 EVM은 개발자에게 DApp 및 기타 애플리케이션을 구축할 수 있는 런타임 환경을 제공합니다.

시가총액 기준으로 두 번째로 큰 암호화폐인 이더(ETH)는 기본 ETH 토큰 때문에 암호화폐 투자자들 사이에서 인기가 높습니다. 그러나 기본 Solidity 프로그래밍 언어와 EVM(Ethereum Virtual Machine)은 개발자 커뮤니티로부터 호평을 받는 데 중요한 역할을 합니다. 실제로 이더리움 블록체인은 유연성, 사용 가능한 광범위한 개발자 도구 및 플랫폼의 대규모 사용자 기반으로 인해 분산형 애플리케이션(DApp) 개발자를 지속적으로 유치하고 있습니다.

블록체인 아키텍처의 핵심을 형성하는 EVM은 애플리케이션 코드 또는 스마트 계약을 실행하는 프로그램으로, 이더리움 네트워크 위에서 실행되는 런타임 환경을 제공합니다. 게다가 EVM은 Turing-complete이므로 모든 프로그래밍 언어로 코딩된 모든 프로그램을 실행할 수 있으므로 개발자는 급성장하는 Web3 공간을 위한 맞춤형 스마트 계약 및 DApp을 쉽게 만들 수 있습니다.

이러한 중요한 기능 외에도 EVM은 네트워크의 모든 노드에 액세스하고 스마트 계약 실행을 처리하며 이더리움 블록체인의 모든 트랜잭션을 효과적으로 처리하여 오늘날 존재하는 가장 강력한 가상 머신 중 하나입니다.

프로그래머 Vitalik Buterin이 2013년에 개념화한 Ethereum 네트워크는 DApp 개발자가 선호하는 블록체인으로서 Gavin Wood가 Ethereum에서 재직하는 동안 설계한 EVM(Ethereum Virtual Machine) 덕분에 놀라운 성공을 거두었습니다. C++로 작성되고 LLVM 프로젝트 컴파일러를 사용하는 EVM은 지속적으로 작동하고 불변 작업이 이더리움 블록체인의 각 블록 상태를 결정하는 특수 상태 시스템입니다.

EVM은 이더리움 블록체인이 유지 관리하는 분산 원장에 대해 노드가 할 수 있는 것과 할 수 없는 것을 제어할 뿐만 아니라 블록 간에 상태를 변경하는 특정 규칙도 정의합니다. 후자의 기능은 Ethereum이 잘 알려진 스마트 계약 기능을 가능하게 하는 것입니다.

Ethereum 가상 머신이 수행하는 작업을 이해하려면 Ethereum 네트워크의 원활한 작동을 보장하는 데 제공되는 다양한 기능을 각각 살펴봐야 합니다. 수신되는 모든 입력에 대해 EVM은 본질적으로 결정론적이며 가장 간단한 의미에서 수학적 함수를 따르는 출력을 생성합니다.

푸시다운 스택에 임시 값을 푸시하는 스택 머신처럼 작동하는 EVM은 1024개 항목의 깊이를 가지며 각 항목은 256비트 워드입니다. 또한 이더리움 블록체인의 두 트랜잭션 간에 변경되는 바이트 배열 형태의 임시 메모리를 유지합니다. 컴파일된 스마트 계약 코드는 140개의 표준 opcode 모음 형태로 EVM에 의해 실행되며, 기타 블록체인 관련 스택 작업도 EVM에 의해 구현됩니다.

따라서 EVM은 거래 처리 중에 본질적으로 변동하는 기계 상태와 이더리움 블록체인에서 유지되는 다양한 계정에 관한 정보를 포함하는 전역 또는 세계 상태를 갖습니다. 모든 작업은 EVM 코드에 의해 관리됩니다. EVM 코드는 2015년 이더리움 네트워크 출시 이후 여러 번의 반복을 거쳐 현재 사용 중인 EVM의 다양한 구현이 존재하게 되었습니다.

실제로 EVM은 수천 개의 이더리움 노드와 실행 코드 사이의 추상화 수준을 유지하는 역할을 담당하며 클라이언트나 노드에 많은 세부 정보를 공개하지 않고 일관된 결과를 제공하는 기능을 수행합니다.

EVM은 보고된 심각한 가동 중지 시간 없이 Ethereum 네트워크에서 실행되는 모든 애플리케이션을 안정적으로 구동해 왔습니다. 개발자에게 EVM은 Ethereum에서 스마트 계약으로 알려진 더 작은 실행 가능 프로그램을 실행하는 동시에 Solidity, Vyper, Python 및 Yul을 포함한 다양한 프로그래밍 언어로 이러한 스마트 계약을 자유롭게 작성할 수 있는 중요한 프로그램 역할을 합니다. 다른 사람.