반응형

이더리움 가상 머신(EVM, Ethereum Virtual Machine)(이하EVM)에 대해서 알아보겠습니다.



EVM은 이더리움의 핵심 개념중 하나입니다.


이름에서도 알 수 있듯이, 가상의 머신인데요.


이더리움 블록체인 네트워크의 노드들이 공유하는 하나의 가상머신 이라고 


나름 풀어서 설명할 수 있겠습니다.


거대한 분산 컴퓨터이죠.



네트워크상의 수많은 노드들은 이 거대한 가상 머신에 접근할 수 있습니다.


안에있는 자료들도 바꿀 수 있습니다.


하지만, 동시에 많은 사람들이 수정을 하게 된다면


충돌이 일어날것임은 분명합니다. 


이런 충돌을 중재하는것이 EVM의 중요한 역할입니다.





위의 그림을 이해하기 위해서 더 자세히 들어가보겠습니다.


이더리움에는 '솔리디티(Solidity)'라는 컴퓨터 언어가 사용됩니다.


자바와 굉장히 흡사한 구조를 띄고 있습니다.


솔리디티는 사람이 이해할 수 있게끔 만들어진 언어입니다.


'고급언어(high-level languauge)'라고 하는데요,


Java, C, C++ 등을 고급언어라고 합니다. 


솔리디티또한 이에 속합니다.




이런 고급언어들은 기계들이 이해할 수 있는 기계어(machine languauge)로 


변경되어야 하는데요, 이는 솔리디티 컴파일러에 의해 


변경이 됩니다. 컴파일러에 의해 기계어로 쓰여진 코드를


이더리움 바이트코드(Ethereum Bytecode) 라고 부릅니다.



이렇게 변경된 이더리움 바이트코드를 EVM에서 실행하게 되는것이죠.



누구나 사용할 수 있는 EVM,


하지만 누구나 아무 제약없이 사용할 수 있다면 많은 문제들을 야기 할 수 있을텐데요,


예컨데, 스팸성 코드를 삽입한다던지, 혹은 


불필요하게 사용한다던지... 


이런 문제들을 예방하기 위해 일정 비용을 지불하게 설계하였습니다.


Gas 라는 개념인데요, 


'EVM에서 실행되는 일의 단위' 정도로 생각하시면 편할것같습니다.


이렇게 Gas를 도입함으로써, 


악성 스패머도 방지하지만, EVM이 무한 루프 도는것도 방지할 수 있습니다.



즉, EVM을 사용하기 위해서는 


작업의 크기만큼 Gas를 측정하여 ETH로 지불합니다.






혹시 수정해야할 부분이나 덧붙여야 할 내용이 있다면,


댓글로 부탁드립니다. 아래 공감버튼(♡)은 응원이됩니다. 


스팀잇에서도 제 글을 보실 수 있습니다^_^

https://steemkr.com/@sweet-talk


반응형

'주류코인들 > 이더리움(ETH)' 카테고리의 다른 글

ERC20 이란?  (0) 2017.12.05

+ Recent posts