discussion (kr,en)
암호화폐시장에 비가내린 하루였다. 암호화폐의 시가총액은 90B 달러까지 떨어졌다. 하지만 가격이 떨어진것이지 가치가 떨어진것은 아니다. 가치평가에 대한 확신은 누구든 하기 힘들지만 예측 정도는 할 수 있어야 가격의 높낮이에 초연해질 수 있다. 가치의 정확한 예측을 위해서 혹은 이런 시장 상황일수록 어떤 기술이 코인에 내재되어있는지 알아보려는 노력이 필요하다고 생각한다. 물론 어떤 기술인지 알아보는 과정이 쉽지않다. 대부분 영어로 되어있으며 컴퓨터 공학 지식이 필요하기 때문이다. 나도 컴퓨터 공학의 지식이 전무하기 때문에 설명하는 과정에서 틀린점도 많겠지만 많은 분들의 도움을 받는다면 결국에 읽을만한 글은 나오지 않을가싶다.
It was rainy day on the cryptocurrency market. The market capitalization of cryptography has fallen to 90B dollars. But the price has fallen, not the value has fallen. It is hard for anyone to be convinced about the valuation of the coins, but the degree of forecasting can be deteriorated in price. I think it is necessary to try to find out exactly which technology is embedded in the coin for accurate prediction of value or in such a market situation like now. Of course, it is not easy to find out what technology is. Most of them require knowledge of computer engineering. I do not have any knowledge of computer science, so there are many mistakes in the explanation process, but if I get help from a lot of people, this post will be readable at least.
최근 EOS가 EVM을 사용할 수 있다는 것이 백서에 나온후에 EVM에 대한 질문을 좀 받기 시작했다. 그렇다면 Ethereum Virtual Machine은 뭘까?
I recently started getting questions about EVM after the white paper stated that EOS can use EVM. So what is Ethereum Virtual Machine?
EVM을 설명하기 전에 Smart Contract부터 설명을 시작해야 한다. 스마트 컨트랙트는 많은 분들이 이미 이해를 하시겠지만 한 문장으로 표현하면 '블록체인 계좌를 가지고있는 사람들끼리 자산을 분배할 수 있는 장치'이다. 여기서 자산은 '이더'를 주로 이야기 하며 이 장치로 제 3자의 개입이 없이 실행할 수 있다. 개인이 개인에게 트랜잭션을 만들 수 있을뿐만 아니라 개인이 다수에게 또는 개인이 또 다른 스마트 컨트랙트에게 트랜잭션을 만들 수 있다. 여기서 트랜잭션은 한번의 거래 또는 처리라고 이해하는것이 편하다. 이것이 다른 코인과 이더리움을 다르게 만든다. 쉽게 예를들면 양도계약, 월급, 옥션같은 상황에서 사용이 가능하다.
Before explaining EVM, you should start with the Smart Contract. Smart contract is a device that can distribute assets among people who have a block-chain account, although many people will already understand it. Here, the asset is mainly referred to as "Ether," and this device can be executed without the involvement of a third party. Not only can an individual create a transaction to an individual, but an individual can make transactions to multiple or individual smart contracts. This makes Ethereum is different from other coins. It can easily be used in situations such as transfer contract, salary, auction.
다시 EVM으로 돌아와서 설명하자면 Ethereum Virtual Machine은 프로그램의 State 와 logic을 (코딩) 다루는 역할을 한다. 한마디로 각각의 스마트 컨트랜트는 각자 다른 State와 logic이 있으며 그 스마트 컨트랙트는 Bytecode 형태로 존재한다. 그리고 그 Bytecode는 Ethereum Virtual Machine에 의해 실행된다. 이것은 자바의 Bytecode가 Java virtual machine에 실행되는것과 비슷하다. 더 쉽게 설명드리자면 코딩으로 짜여진 스마트 컨트랙트가 EVM에서 실행되는것이다. 여기서 나오는 트랜잭션이든지 Bytecode를 실행시키기 위해서는 이더를 지불해야하며 이것을 Gas라고 한다. 가스의 장치는 어떤 코드도 EVM의 사용을 낭비하지 않기 위해 사용된다. 예를들면 무한 loop에 빠지게되는 코드를 방지하기 위함이다.
Back to EVM, the Ethereum Virtual Machine is responsible for the state and logic (coding) of the program. In short, each smart contract has its own state and logic, and the smart contract exists in a bytecode format. The Bytecode is then executed by the Ethereum Virtual Machine. This is similar to Java's Bytecode running on a Java virtual machine. To put it more easily, a smart contract created with coding will run on EVM. In order to execute Bytecode in this transaction, you must pay Ether, which is called Gas. The gas device is used to avoid wasting the use of EVM in any code. For example, to prevent code from falling into the infinite 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 -> 실행의 순으로 진행되며 이를 스마트 컨트랙트의 주기라고 생각하면 된다.
Since I have talked about Smart Contract and EVM, I need to explain Solidity. Solidity is the language for creating ethereum smart contracts. it is like Computer languages like JavaScript and Python. Instead of writing Bytecode directly, they use Solidity to code the smart contract. You can run Solidity (https://dapps.oraclize.it/browser-solidity/#version=soljson-v0.4.11+commit.68ef5810.js)by using this website. This webpage is called Compiler, and you can use Compiler to make Solidity into EVM bytecode and it can be used in ethereum blockchain. To explain it easily, Solidity -> EVM Bytecode -> Execution is progressing and it is called the cycle of smart contract.
앞으로도 기본적인것을 좀 더 설명하고 Solidity를 직접 사용해보는 포스팅을 가끔씩 해보려 한다.
In the future, I try to explain basic things more and sometimes I try posting to use Solidity myself.
좋은 글 잘 읽고 있습니다.
항상 감사합니다 ! 저도 글 너무 잘 읽고있습니다 :)
저에겐 아직 어려운 하지만 늘 좋은 정보 감사드려요^^*
읽어주셔서 감사합니다. 지속적으로 포스팅해 나중에는 쉽게 느껴지게 해드리겠습니다 ㅎㅎ
네~감사합니다^^
행복한 하루 되세요~
좋은하루 되세요 !
전문적인내용의 좋은글 감사합니다.
읽어주셔서 감사합니다.
앞부분 초연이란 말이 와닿네요.
힘을 얻고 갑니다.
가격에 신경쓰지않고 떨어질때마다 조금씩 매수해 놓는다면 지금 하락이 그렇게 나쁘지도 않을것 같습니다. 읽어주셔서 감사합니다.
좋은 설명 감사합니다. 잘 읽었습니다 :)
읽어주셔서 감사합니다 :)
공부 잘 하고 갑니다. 풀보팅 드려요^^
감사합니다. 더 좋은 내용으로 포스팅하겠습니다 :)