티스토리 뷰

- 이더리움

이더리움의 EVM, Solidity 란?

코인 트레이너 2017.06.27 13:55

암호화폐시장에 비가내린 하루였다. 암호화폐의 시가총액은 90B 달러까지 떨어졌다. 하지만 가격이 떨어진것이지 가치가 떨어진것은 아니다. 가치평가에 대한 확신은 누구든 하기 힘들지만 예측 정도는 할 수 있어야 가격의 높낮이에 초연해질 수 있다. 가치의 정확한 예측을 위해서 혹은 이런 시장 상황일수록 어떤 기술이 코인에 내재되어있는지 알아보려는 노력이 필요하다고 생각한다. 물론 어떤 기술인지 알아보는 과정이 쉽지않다. 대부분 영어로 되어있으며 컴퓨터 공학 지식이 필요하기 때문이다. 나도 컴퓨터 공학의 지식이 전무하기 때문에 설명하는 과정에서 틀린점도 많겠지만 많은 분들의 도움을 받는다면 결국에 읽을만한 글은 나오지 않을가싶다.


최근 EOS가 EVM을 사용할 수 있다는 것이 백서에 나온후에 EVM에 대한 질문을 좀 받기 시작했다. 그렇다면 Ethereum Virtual Machine은 뭘까?


1.png


EVM을 설명하기 전에 Smart Contract부터 설명을 시작해야 한다. 스마트 컨트랙트는 많은 분들이 이미 이해를 하시겠지만 한 문장으로 표현하면 '블록체인 계좌를 가지고있는 사람들끼리 자산을 분배할 수 있는 장치'이다. 여기서 자산은 '이더'를 주로 이야기 하며 이 장치로 제 3자의 개입이 없이 실행할 수 있다. 개인이 개인에게 트랜잭션을 만들 수 있을뿐만 아니라 개인이 다수에게 또는 개인이 또 다른 스마트 컨트랙트에게 트랜잭션을 만들 수 있다. 여기서 트랜잭션은 한번의 거래 또는 처리라고 이해하는것이 편하다. 이것이 다른 코인과 이더리움을 다르게 만든다. 쉽게 예를들면 양도계약, 월급, 옥션같은 상황에서 사용이 가능하다.



다시 EVM으로 돌아와서 설명하자면 Ethereum Virtual Machine은 프로그램의 State 와 logic을 (코딩) 다루는 역할을 한다. 한마디로 각각의 스마트 컨트랜트는 각자 다른 State와 logic이 있으며 그 스마트 컨트랙트는 Bytecode 형태로 존재한다. 그리고 그 Bytecode는 Ethereum Virtual Machine에 의해 실행된다. 이것은 자바의 Bytecode가 Java virtual machine에 실행되는것과 비슷하다. 더 쉽게 설명드리자면 코딩으로 짜여진 스마트 컨트랙트가 EVM에서 실행되는것이다. 여기서 나오는 트랜잭션이든지 Bytecode를 실행시키기 위해서는 이더를 지불해야하며 이것을 Gas라고 한다. 가스의 장치는 어떤 코드도 EVM의 사용을 낭비하지 않기 위해 사용된다. 예를들면 무한 loop에 빠지게되는 코드를 방지하기 위함이다.



스마트 컨트랙트와 EVM의 이야기까지 했으면 Solidity까지 설명을 해야한다. Solidity는 이더리움의 스마트 컨트랙트를 만들기 위한 언어이다. 자바스크립트나 파이썬같은 컴퓨터 언어라고 하면 이해하기 편하다. Bytecode를 직접 쓰는것 대신에 Solidity를 사용해 스마트 컨트랙트의 코딩을 짜는것이다. Solidity를 (https://dapps.oraclize.it/browser-solidity/#version=soljson-v0.4.11+commit.68ef5810.js) 이와같은 홈페이지를 사용해서 실행해볼 수 있다. 이런 홈페이지를 Compiler라고 하며 Compiler를 사용해 Solidity를 EVM bytecode로 만들 수 있으며 이더리움 블록체인에서 사용될 수 있다. 쉽게 설명하면 Solidity -> EVM Bytecode -> 실행의 순으로 진행되며 이를 스마트 컨트랙트의 주기라고 생각하면 된다.




앞으로도 기본적인것을 좀 더 설명하고 Solidity를 직접 사용해보는 포스팅을 가끔씩 해보려 한다.


--------------------------------------------------------------


안녕하세요. 지갑과 지갑간의 거래가 가능한 레이더 릴레이입니다.

레이더 릴레이에서 오픈 채팅방을 개설했는데요. 채팅방에서 토큰 상장, 건의 및 제안, 궁금하신점을 직접 답변드리도록 하겠습니다.


https://open.kakao.com/o/ghSIF4K

댓글
댓글쓰기 폼