상세 컨텐츠

본문 제목

EVM (Ethereum Virtual Machine)

Blockchain/Ethereum

by Yongari 2023. 2. 6. 22:22

본문

 

VM(Virutal Machine) 가상 기계란?

말 그대로 가상머신은 물리적인 시스템  위에 가상 시스템을 올려서 독립적으로 사용할 수 있도록 해주는 기법입니다.

즉 어떤 OS든 그 위에 가상의 컴퓨터환경을 만들어서 독립적으로 프로그램을 실행할 수 있는 환경을 VM이라고 부릅니다.
A. 리눅스에서 윈도우 프로그램을 실행시킬 때 Virtual Box 프로그램을 이용하거나 
B. 윈도우에서 VMWare를 통해 리눅스OS를 올릴 때 사용하는 등 
이런 식으로  환경이 다른 OS에서 동일하게 프로그램을 실행시킬 수 있게 해주는 환경을 VM이라고 부릅니다.

 

 

 

EVM이란 무엇일까요?

 

EVM 말 그대로 Ethereum Virtual Machine입니다. 뜻은 어떨까요? 어떤 OS든지 독립된 이더리움 가상 기계환경을 만들어서 이더리움 플랫폼 위에 프로그램을 실행시킬 수 있는 환경을 의미합니다.  즉 이더리움 가상 기계 or 이더리움 가상 환경입니다. 
우리가 VMWARE로 윈도우에서 리눅스를 실행시키듯 EVM을 리눅스나 윈도우에서 실행시키면 이더리움 플랫폼을 실행시키는 것이죠.

가상 머신이란? 

 

 

 

EVM의 내부 동작 프로세스는 다음과 같습니다.  (간략히 설명)

 

1. 개발자가 솔리디티 언어로 Dapp(분산 어플리케이션)을 만든다.

2. solc 등을 이용해 솔리디티 코드를 컴파일 하여 바이트코드 형태로 만든다.

3. 이 바이트코드를 이더리움 클라이언트를 이용해 이더리움 네트워크에 올린다.

4. 이 바이트코드EVMOpcode 단위로 해석하여 실행시킨다. (비트코인 스크립트에서도 봤던 Opcode가 나옵니다.)

5. 솔리디티로 작성된 스마트 컨트랙트는 EVM에서 동작하기 때문에 윈도우든, 맥이든, 리눅스든 유닉스든 어떤 OS나 하드웨어에도 종속되지 않습니다.

 

 

Opcode 동작 방식

1. EVM은 명령어 집합(Opcode)를 사용해서 특정한 작업을 실행함
2. 모든 Opcode에는 1 바이트가 할당됨
3. 100개가 넘는 고유한 Opcode가 있고 충분한 리소스가 있으면 무엇이든 계산 가능

 

 

Opcode를 크게 7가지로 나누면 다음과 같음 

스택(Stack) 조작 : POP, PUSH, DUP, SWAP

산술/비교/비트 연산 : ADD, SUB, GT, LT, AND, OR

환경: CALLER, CALLVALUE, NUMBER

메모리 조작 : MLOAD, MSTORE, MSTORE8, MSIZE

스토리지 조작: SLOAD, SSTORE

프로그램 카운터: JUMP, JUMPI, PC, JUMPDEST
중지 : STOP, RETURN, REVERT ..etc

 

 

EVM의 더 자세한 내부 동작구조는 다음링크에서 볼 수 있습니다.

https://next-block.tistory.com/entry/EVMEthereum-Virtual-Machine%EC%9D%98-%EB%82%B4%EB%B6%80-%EB%8F%99%EC%9E%91-%EA%B5%AC%EC%A1%B0

 

EVM(Ethereum Virtual Machine)의 내부 동작 구조

개요 EVM은 Ethereum 클라이언트를 실행하는 수 천개의 컴퓨터가 유지관리하는 단일 엔티티입니다. 이더리움 프로토콜은 이 특수 시스템의 지속적이면서 중단없는 작동을 유지하기 위한 목적으로

next-block.tistory.com

 

관련글 더보기