EVM

chris0205.eth·2022년 1월 9일
0

이더리움

목록 보기
1/2

참고

Ethereum Virtual Machine 개요
가스(블록체인)

What is EVM ?

Virtual Machine

가상 머신은 컴퓨팅 환경을 소프트웨어로 구현한 것, 즉 컴퓨터 시스템을 에뮬레이션(가상현실화)하는 소프트웨어다. 가상 머신 상에서 운영체제나 응용 프로그램을 설치 및 실행을 할 수 있다.

시스템 가상 머신

하드웨어 가상 머신이라고도 부르며 각 운영 체제를 실행하는 가상 머신 사이의 기초가 되는 물리 컴퓨터를 다중화(multiplex)한다. 같은 컴퓨터에서 다른 운영체제를 돌릴 수 있게 해준다. 예를 들어 윈도우즈 운영체제에서 리눅스 운영체제를 쓰고 싶을 때, VMware같은 프로그램을 이용하여 리눅스 가상 머신을 만들어서 사용한다.

프로세스 가상 머신

고급 프로그래밍 언어에서 높은 수준의 추출을 제공한다.

솔리디티로 짠 코드는 솔리디티 컴파일러에 의해 기계어가 만들어진다. 이 경우 Ethereum Bytecodes라 불리고, 이 바이트 코드가 EVM에 의해 실행되는 것이다.

EVM

EVM은 Ethereum 블록체인 네트워크의 노드들이 공유하는 하나의 가상 머신이다. 매우 거대한 하나의 분산 컴퓨터라고 볼 수 있다. 블록체인 네트워크상의 노드들은 이 거대한 컴퓨터에 누구나 접근할 수 있다. 또 수많은 사용자가 변경하는 데이터의 충동, 보안을 마이닝과 합의 알고리즘으로 해결할 수 있다.
이러한 EVM은 공짜가 아니다. transaction을 실행하는데 필요한 비용을 gas라고 한다.


Then...

What is gas ?

gas는 일의 양을 나타내는 단위이다. gas fee는 Ether 가격변동에 따라 변하는 값이다.

Gas fee = (transaction에 필요한 Gas) x (Gas 비용 Ether) [단위:Gwei] 1Gwei=1x10^(-9)Ether

중요한 한 가지는 transaction을 생성한 주체가 트랜잭션 실행에 필요한 gas limit을 설정한다는 것이다. 이 gas fee는 채굴자들이 가져가는 것으로 넉넉하게 설정할 필요가 있지만, 너무 크게 잡아도 오히려 '뻥카'로 의심을 받아 transaction이 블락화되지 않을 수도 있다고 한다.

How EVM works?

  1. transaction이 올바른 형식인지 확인
  2. transaction fee 계산
  3. Gas 지불 초기화. 이 시점부터 transaction에서 처리된 바이트만큼 특정 양의 가스를 차감
  4. transaction 금액을 수신계정으로 보냄(Smart contract도 이 단계에서 실행됨)
  5. 송신계정에 transaction을 완료할 수 있을 만큼 Gas Price가 충분치 않으면 transaction의 모든 변경사항이 되돌려짐. 그러나 transaction 수수료는 채굴자에게 지불되고 환불되지 않음.
  6. 5번의 경우와 다른 이유로 transaction이 실패한 경우, 송신계정에 Gas Price를 환불하고, 채굴자가 사용된 Gas와 관련된 비용은 채굴자에게 전달됨.

정리

EVM은 프로그램을 실행시키는 프로그램이다. 또 누구나 접속할 수 있는 컴퓨터이다. 따라서 이 컴퓨터를 특정 프로그램이 독점하면 안된다. 이를 방지하기 위해 Gas가 도입되었으며, transaction을 생성할 때, gas limit을 정하고 EVM은 transaction을 처리하며 Gas를 소모한다. Gas Limit으로 설정한 Gas가 모두 소모되면 EVM은 해당 transaction을 종료시킨다. 따라서 무한정 도는 Loop는 존재할 수가 없는 것이다.

profile
long life, long goal

0개의 댓글