(블럭체인상식)Ethereum EVM이해하기

코인공시 톡톡

(블럭체인상식)Ethereum EVM이해하기
댓글 0 조회   123 추천 0 비추천 0

Ethereum Virtual Machine(EVM)-이더리움 가상 머신




8fe29071d2482855be52d3fa95edaa11_1683765591_872.png
 
EVM이란

EVM은 Ethereum Virtual Machine의 약자입니다. Ethereum 블록체인의 스마트 계약을 위한 런타임 환경입니다. 기본적으로 EVM은 Ethereum 플랫폼에서 스마트 계약을 개발하는 데 사용되는 프로그래밍 언어인 Solidity로 작성된 코드를 실행하는 가상 머신입니다.

EVM은 코드 실행을 위한 샌드박스 환경을 제공합니다. 즉, 스마트 계약이 서로 또는 이더리움 네트워크를 방해하는 것을 방지합니다. EVM은 또한 스마트 계약이 결정론적 방식으로 실행되도록 보장하므로 동일한 코드가 항상 동일한 출력을 생성합니다.

코드 실행 외에도 EVM은 이더리움 블록체인의 상태도 유지합니다. 여기에는 계정 잔액, 계약 저장 및 기타 중요한 데이터를 추적하는 것이 포함됩니다. EVM은 개발자가 분산 응용 프로그램(DApp)을 만들고 블록체인에 배포할 수 있도록 하는 이더리움 플랫폼의 중요한 구성 요소입니다.


EVM의 구성 요소

스택 : 스택은 EVM 명령어에 대한 피연산자를 저장하는 LIFO(후입선출) 데이터 구조입니다. 스택은 데이터에 대한 산술 및 논리 연산을 수행하는 데 사용됩니다.

메모리 : 메모리는 스마트 계약 실행 중 임시 데이터를 저장하는 데 사용되는 바이트 배열입니다. 메모리의 크기는 동적이며 필요에 따라 확장하거나 축소할 수 있습니다.

저장소 : 저장소는 서로 다른 스마트 계약 호출 간에 데이터를 지속적으로 저장하는 데 사용되는 키-값 저장소입니다. 각 스마트 계약에는 256비트 키를 256비트 값으로 매핑하는 자체 저장 공간이 있습니다.

프로그램 카운터 : 프로그램 카운터는 EVM에서 실행 중인 현재 명령을 추적하는 레지스터입니다.

가스 : 가스는 EVM 명령을 실행하는 데 필요한 계산 노력의 척도입니다. 각 명령에는 관련된 고정 가스 비용이 있으며 스마트 계약을 실행하려면 일정량의 가스가 필요합니다.

호출 데이터 : 호출 데이터는 호출 시 스마트 계약에 전달되는 입력 데이터입니다. 호출 데이터는 매개변수와 인수를 스마트 계약에 전달하는 데 사용할 수 있습니다.

이러한 구성 요소는 함께 작동하여 이더리움 플랫폼에서 스마트 계약을 실행하는 동시에 블록체인 상태의 보안, 결정성 및 일관성을 보장합니다.


EVM의 역할

스마트 계약 실행: EVM은 이더리움 블록체인에서 스마트 계약의 바이트코드 실행을 담당합니다. 코드가 네트워크의 모든 노드에서 안전하고 결정적이며 일관된 방식으로 실행되도록 합니다.

가스 관리: EVM은 가스 메커니즘을 사용하여 스마트 계약 실행에 필요한 리소스를 관리합니다. 각 EVM 명령에는 관련 가스 비용이 있으며 스마트 계약에서 사용하는 총 가스에 따라 네트워크에 지불되는 요금이 결정됩니다.

상태 관리 : EVM은 계정 잔액, 계약 저장소 및 기타 중요한 데이터를 저장하여 이더리움 블록체인의 상태를 유지합니다. 상태는 스마트 계약이 실행될 때마다 업데이트되어 블록체인이 일관되고 변조되지 않도록 합니다.

분산형 애플리케이션: EVM은 이더리움 플랫폼에서 분산형 애플리케이션(DApp)의 개발 및 배포를 가능하게 합니다. DApp은 다양한 프로그래밍 언어로 작성될 수 있으며 스마트 계약을 통해 이더리움 블록체인과 상호 작용할 수 있습니다.


Non-EVM이란?

이더리움의 맥락에서 "Non-EVM"은 일반적으로 이더리움 가상 머신(EVM)에서 실행되지 않는 코드 또는 애플리케이션을 의미합니다.

예를 들어 스마트 계약을 실행하기 위해 다른 가상 머신을 사용하는 다른 블록체인 플랫폼과 스마트 계약 환경이 있습니다. 가장 인기 있는 Non-EVM 블록체인 플랫폼은 다음과 같습니다.

Polkadot: Substrate라는 맞춤형 가상 머신을 사용하는 블록체인 플랫폼입니다. Substrate는 모듈식으로 설계되어 개발자가 맞춤형 블록체인 애플리케이션을 쉽게 구축할 수 있습니다.

Cardano: 스마트 계약을 실행하기 위해 Plutus 프로그래밍 언어와 CVM(Cardano Virtual Machine)이라는 맞춤형 가상 머신을 사용하는 블록체인 플랫폼입니다.

바이낸스 스마트 체인: BEP-20 토큰 표준과 바이낸스 스마트 체인 가상 머신(BSC VM)이라는 이더리움 가상 머신(EVM)의 수정 버전을 사용하는 블록체인 플랫폼입니다.

블록체인 기술에 전혀 의존하지 않는 분산형 애플리케이션을 구축하는 것도 가능합니다. 예를 들어 일부 DApp은 중앙 집중식 서버와 데이터베이스를 사용하여 데이터를 저장하고 처리하는 반면 블록체인 기술은 확인 및 검증 목적으로만 사용합니다.

 

이 게시판에서 코인짱지기님의 다른 글