EVM은 이더리움 블록체인중 프로토콜을 말한다.
프로토콜은 컴퓨터간 통신 방법에대한 규칙 과 약속을 의미한다
이 evm이 기존 은행시스템과 다른점은 무엇일까
기존 은행시스템
기존은행시스템은 연방준비은행 (중앙은행) 으로인해 유지된다
12개의 연방준비은행이 자체 소유한 Fedwire 라는 정산 시스템을통해
회원은행(상업은행) 들은 서로 온라인 달러결제를 할수있다.
연방준비은행은 회원은행들로부터 수수료를 받으며 보안유지에 많은비용을들인다.
EVM
이더리움 블록체인 노드들이 공유하는 가상머신이다.
서로 다른 기종의 프로그램이 호환성을 가지게하는것을 에뮬레이션이라고하는데
가상머신은 에뮬레이션된 컴퓨터 시스템이라고한다.
좀 어려운말이지만 예를들어 EVM의경우 Window macOS Linux 등등의 수십가지버전의 컴퓨터가 모두 호환가능하다.
이 EVM은 이더리움노드들이 다같이 공유하고있는 가상머신인데
지금머리속으로 드는 표현으로는 하나의 겁나 큰 구글클라우드를 공개해 많은 사람들이 이 하나의 구글클라우드를
같이 쓰고 같은 데이터를 가지고있다고 생각하면 좋을것같다.
하지만 이클라우드 안에있는 데이터가 만약 나의 통장 잔고 데이터라면?
나는 그데이터에 들어가 나의 통장잔고를 바꿔놓을것이다.
그러면 같은 데이터를 가지고있던 다른 사람들의 데이터와 다르기때문에 충돌이 일어날것이다.
과연 누구의 데이터가 맞는가?
그런 불상사를 막기위해 EVM은 합의 알고리즘, 마이닝 같은 구조를가지고있어 데이터의 충돌을 막는다.
EVM은 Solidity 라는 프로그래밍 언어로 구성되어있다.
Solidity는 Java 같이 "사람이 이해하기위한 언어"이다.
(이해 못하는나는 사람이아닌가)
이런 언어를 '고급언어' 라고 하며 이를 가상머신이 인식하기 위해서는
"기계가 이해하기 위한 언어"로 변환하는 과정이필요하다.
이를 컴파일 Compile 이라고 한다.
Solidity 는 컴파일을 통해 Etherem bytecode 라는 기계어가되고
EVM은 Ethereum bytecode를 읽어 작동한다.
추후에 이더리움 Dapp 개발 실습을 해볼예정이라 이런 개념들을 집고넘어가보았다.
결론은 Fedwire 를 EVM 에서는 누구나 만들수 있다는것이 EVM의 장점이다.
일반화되고 안전한 중앙권력이 없는 Fedwire 라고 생각하면 될것같다.
그렇다면 100년간 유지되었던 중앙은행의 권력이 무너지진 않겠지면 큰 영향을 미칠거라고는
생각이든다.