이더리움 가상머신(EVM)란 무엇입니까?ㅣ블록체인 용어 소개

08/17/2022글쓴이: W, Lynn

조회수: 0

다가오는 ‘머지(Merge)’ 업그레이드 기대감에 이더리움이 달아오르고 있습니다.이더리움은 암호화폐 업계에서 가장 인기 있는 블록체인 중 하나로서 그의 심장부에는 가상 컴퓨터가 있다. 바로 이더리움 가상머신, 즉 EVM(Ethereum Virtual Machine)이다. 오늘은 이더리움 가상머신(EVM)에 대해 이야기를 합니다.

 

이더리움 가상머신(EVM)이란?

이더리움이 스마트 계약 (스마트 컨트랙트)이라는 프로그램을 실행할 수 있는 플랫폼으로 기능할 수 있는 가장 핵심적인 이유는 ‘EVM(Ethereum Virtual Machine, 이더리움 가상머신)’이라는 가상의 컴퓨터가 있기 때문입니다.

EVM은 스마트 컨트랙트를 처리 (배포, 실행) 하기 위한 이더리움 가상 머신이며 Turing complete state machine 이라고 불립니다.EVM은 이더리움이 정의한 규칙에 따라 스마트 계약 코드를 실행하고, 그 결과로 변화된 상태를 업데이트하는 작업을 수행해 줍니다. 또한 EVM은 위와 같은 과정에서 코드 실행이 성공적으로 완료됐을 때만 상태를 변경하여 스마트 계약이 직접적으로 블록체인에 영향을 미치지 않도록 보호하는 샌드박스(보호 영역)와 같이 역할을 합니다.

이 아이디어는 이더리움의 수석 개발자인 비탈릭 부테린에게서 나왔고 개발자 Gavin Wood 및 Greg Colvin과 함께 그와 함께 구현되었습니다. 기본적으로 이더리움 가상 머신은 개발자가 누구나 액세스할 수 있는 변경 불가능하고 탈중앙화된 안전한 프로그램을 만들 수 있도록 하는 글로벌 컴퓨터입니다.

 

작동원리

EVM은 이더리움 블록체인에서 스마트 계약을 허용합니다. 이러한 스마트 계약을 작성하기 위해 프로그래머는 C++ 및 JavaScript와 매우 유사한 특수 언어인 Solidity를 사용해야 합니다.

작성된 코드를 컴파일시키면, 바이트코드 형태가 됩니다. (솔리디티 -> 고급언어 | 바이트코드 -> EVM이 이해 가능한 기계어)이를 이더리움 가상 머신 (EVM)은 OPCODE단위로 해석하여 실행시키게 된다.

이 코드를 통해 기계 프로그램에 대한 지침을 설계할 수 있으며 OPCODES는 가상 기계 작동에서 대화식 인터페이스 역할을 합니다. 이것들은 이더리움의 모든 것이 작동하도록 합니다. 심지어 가장 작은 거래도 가능합니다.

사실 컴퓨터 구조와 같습니다. C, JAVA등으로 작성된 고급언어를 컴파일하여 CPU가 해석할 수 있는 기계어 형태로 컴파일해주면, CPU는 그걸 해석하여 연산처리합니다.

이러한 모든 작업 덕분에 EVM은 이더리움 네트워크에 참여하는 모든 노드로 구성된 분산형 글로벌 머신인 스마트 계약과 같은 기능을 실행할 수 있습니다. 이 기계는 네트워크의 거의 모든 컴퓨팅 문제를 해결할 수 있습니다.

EVM은 무료가 아님

EVM을 사용하는 것은 공짜가 아닙니다. 우리가 EVM을 사용하기 위해서는 그에 대한 대가로 ‘가스’라는 비용을 지급해야 하고 여기에는 매우 중요한 이유가 있습니다. 이더리움은 복잡한 스마트 계약을 수행할 수 있지만 이것이 언제 종료될지, 얼마나 오랫동안 실행될지를 예측할 수는 없습니다.

EVM에서 무한히 실행되는 프로그램을 실행시키게 된다면 해당 프로그램은 EVM의 리소스를 점유할 것이고 우리는 다른 프로그램을 실행시키기 위해 영원히 기다려야 합니다. 누군가는 이를 악용해서 이더리움을 마비시키기 위한 공격을 할지도 모릅니다.

따라서 이더리움은 가스를 통해 프로그램이 사용할 수 있는 자원의 양을 제한하여 이를 방지합니다. 실행되는 연산마다 가스가 소모되기 때문에 무한히 연산을 실행시키기 위해서는 막대한 양의 가스를 지급해야 합니다. 가스는 이더리움의 마비를 방지하는 것뿐만 아니라 EVM이라는 가상의 컴퓨터를 실행시키고 있는 노드들에 대한 보상으로서 주어지게 됩니다.

관련페이지:

이더리움 가스란 무엇입니까? 丨 이해 및 소개 – BTCC

이더리움 가스비용(Gas Fee)은 무엇입니까? – BTCC

 

이더리움 가상머신(EVM)의 목적

EVM의 목적은 블록체인의 각 블록에 대한 이더리움의 전체 상태를 결정하는 것입니다.

이더리움은 고유의 암호화폐인 ETH가 있고 분산된 원장을 사용하여 트랜잭션 저장소를 유지하면서 사람들이 네트워크에서 작동하는 방식에 대한 특정 규칙을 적용한다는 점에서 다른 블록체인 기반 네트워크와 매우 유사합니다. 그러나 스마트 계약 기능으로 인해 이더리움에는 추가 기능 계층이 있습니다.

레이어 2은 “탈중앙화 상태 머신”이라고 합니다. 가장 단순한 수준에서 이더리움의 상태는 모든 ETH 계정 및 잔액의 대규모 저장소입니다.

다른 블록체인과 달리 이더리움 가상머신은 시스템을 완전히 추상화하여 네트워크 보안을 향상시킵니다. 실제로 이것은 이더리움 네트워크의 소스 코드를 공격하지 않고 리소스에 대한 액세스를 더 잘 관리하고 이 가상 머신에서 동작을 제한할 수 있습니다.

 

이더리움 가상머신(EVM)의 장점

1)EVM은 최초로 공격을 예방하는 기능을 갖춘 분산형 컴퓨팅 솔루션을 제공한다는 측면에서 혁신적인 기술입니다.

2)EVM을 사용하면 누구나 자신의 DApp을 만들 수 있습니다. 소프트웨어는 무궁무진한 사용 사례를 가지고 있으며 기술은 특정 그룹이나 돈이나 인맥이 많은 사람들에 국한되지 않습니다.

 

이더리움 가상머신(EVM)의 단점

EVM은 길고 복잡한 코드로 구성되기 때문에 일부 연산은 시스템 안에 포함되어야 합니다. 그렇지 않으면 연산이 가스 비용을 초과하는 상황이 발생하게 됩니다. 이러한 연산을 네트워크상에서 계속 사용할 수 있게 해 주는 것이 프리컴파일인데, 이는 전체 시스템 업그레이드, 즉 하드포크를 해야만 가능한 일입니다. 하지만 익히 알려진 바와 같이 하드포크의 실행은 복잡하고 위험합니다.

 

관련페이지:

이더리움(Ethereum)은 무엇입니까? ㅣ코인 소개 – BTCC

이더리움 머지(병합)가이드, 그것에 대한 알아야 할 것 – BTCC