[ICOreport] Gas 와 Ether의 차이점, Gas의 개념
이더리움 플랫폼을 이해하는 것은 정말 어렵습니다. 블록체인이라는 개념의 생소함에 스마트컨트랙트라는 개념이 한 축이 더 추가되어 난해함을 더합니다. 이더리움 플랫폼을 이해하기 위해서는 이더리움의 스마트 컨트랙트가 동작하는 구조를 알아야 합니다.
Smart Contract 가 실행되는 과정
Dapp(decentralized application)은 이더리움 플랫폼 위에서 동작하는 어플리케이션입니다. Dapp은 스마트 컨트랙트를 이용하는 어플리케이션입니다. 유저는 스마트 컨트랙트를 통해 특정한 규칙을 가진 Transaction 들을 처리할 수 있습니다. 이를 테면 매 월 같은 날짜에 월세를 내는 것을 규칙으로 정의할 수 있습니다. 이전 포스팅 에서 언급한 것처럼 스마트 컨트랙트는 Solidity
라는 프로그래밍 언어를 이용해 쓰여집니다.
Solidity
로 쓰여진 스마트 컨트랙트는 Compile 되어 기계 가 이해할 수 있는 EVM Bytecode 가 됩니다. 여기서 EVM 이란 Ethereum Virtual Machine 를 의미하며 EVM 은 EVM Bytecode를 실행할 수 있습니다. 그리고 이 EVM Bytecode 를 동작할 때 Gas
가 쓰여집니다. 즉, EVM 은 공짜가 아닌 것이죠. Gas
는 무분별한 EVM 사용을 막기 위한 최소한의 방지 장치로 볼 수 있습니다. 이를 간단히 표현해보면 아래와 같습니다.
- 개발자가 Solidity로 SmartContract 를 작성한다.
- Smart Contract는 Compiler 에 의해 EVM Bytecode로 변환된다.
- EVM Bytecode가 EVM에 의해 실행된다. 이 때
Gas
를 지불한다.
Gas ?
Gas는 왜 필요한가?
Gas
는 모든 이더리움 플랫폼에서 Transaction 을 실행하기 위한 네트워크 수수료의 단위입니다. 블록체인은 이더리움을 채굴하려는 Node 들에 의해서 동작됩니다. 채굴자들이 목표 Hash 값을 찾게되면(채굴), 채굴자들은 그에 따른 블럭발행 보상과 해당 블럭내의 Transaction 수수료를 받게됩니다. 즉, Gas는 EVM 네트워크의 낭비를 막고, 채굴자들에게 보상으로 쓰여집니다. 그런데 왜 이더리움으로 수수료를 지불하지 않고 gas
라는 번거로운 개념을 만든 것일까요?
Gas의 가격
특정 동작(operation)에 따라 필요한 Computational Power는 다릅니다. 동영상 인코딩은 CPU 의 작업이 많이 필요하고, 간단한 문서작업은 CPU 가 많이 필요하지 않습니다. 이 방식은 EVM 의 수수료 책정에도 똑같이 적용됩니다. 즉, 간단한 계산일 수록 적은 수수료가 필요하고,복잡한 계산을 하려면 더 많은 수수료를 내야합니다.
그런데 왜 이더리움으로 이 가격을 표시하지 않고 Gas
라는 복잡한 개념이 필요했을까요? 그 이유는 바로 이더리움의 Market Price를 가진 코인이기 때문입니다. 이더리움으의 가격은 하루 동안에도 큰 폭으로 변화하곤 합니다. 이 이더리움의 가격에 따라 수수료가 정해진다면, 하루 동안에도 수수료는 0.01 Eth 였다가 0.0001 ETH 와 같은 식으로 변할 수 밖에 없습니다. 대신 Gas
라는 (거의)일정한 가격을 가진 단위를 만들고 Gas의 갯수에 따라 수수료를 표시한 것입니다.
Ethereum Average GasPrice Chart
위 이미지는 이더리움의 개발 이래로 가스의 가격 변동을 보여주는 차트입니다. 작년 4월부터 큰 변동 없이 일정한 가격을 유지하고 있는 것을 볼 수 있습니다. 이제 Transaction을 보며 이를 비교 해보겠습니다. 비교를 위해
8/3 일에 이뤄진 거래 와 6/29 일에 이뤄진 거래 를 비교해보겠습니다.
Date | ETH PRICE | Transferred ETH | Gas Llimit | Used Gas | Gas Price | Total Cost |
---|---|---|---|---|---|---|
6/29/2017 | 190$ | 200 ETH | 35414 | 35414 | 0.00000005 Eth | 0.0017707 Ether ($0.40) |
8/3/2017 | 220$ | 100 ETH | 100000 | 21000 | 0.0000001 Eth | 0.0021 Ether ($0.47) |
위 테이블에서 보여지듯 Eth를 전송하는 같은 작업(operation)에 대해 가스의 가격과 개수가 조금씩 다르지만, 거의 같은 비용(0.47$ ~ 0.40$)이 부과되었음을 볼 수 있습니다.
Gas 를 표시하는 여러 단위
위 테이블에서 가스의 가격은 0.00000005 ETH 입니다. 이는 흔히 50 Gwei 라고 표시합니다. 비트코인에서 너무 작은 단위를 Satoshi 라고 표현하는 것 처럼, 이더리움도 아래와 같은 인물의 이름을 이용해 작은 단위를 표시합니다. 아래 인물에 대한 정보는 링크 에서 확인 할 수 있습니다. 1 Ether 는 각각 아래와 같습니다.
- Hal Finney - 1000 Finney
- Nick Szabo - 1000000 Szabo
- Wei Dai - 1000000000 Gwei
적정한 가스의 가격?
위에서 같은 Operation 이라면 같은 비용이 든다고 설명했습니다. 그러나 이더리움 블록의 사이즈가 정해져있어서 Gas의 비용을 높게 책정할 수록 빠르게 블럭에 포함될 수 있습니다. 이는 말씀드렸던 것처럼 채굴자가 Gas를 채굴 보상으로 받기 때문입니다. 채굴 보상을 늘리기 위해서는 Gas 비용을 많이 책정한 Transaction을 먼저 처리해주는 것이 이득이기 때문입니다.
그래서 Transaction 을 진행할때 Gas Limit 이라는 것을 설정합니다. Transaction에 쓸 수 있는 최대한의 가스비용을 설정해둠으로, Transaction의 처리를 보장할 수 있습니다. 그러나 그 비용을 초과하면 Transaction은 중단되고, Gas만 소모됩니다. 그래서 EOS ICO 와 같이 많은 Transaction이 한 번에 처리되어야 할 때, 높은 Gas Limit을 설정하는 것이 좋습니다.
읽어주셔서 감사합니다! 앞으로도 계속 좋은 포스팅으로 뵙겠습니다.
your post looks interesting
wish there was an english translation
anyway thanks for sharing and keep up the hard work
Thanks for that!
I will definitely consider writing this post in English.
Before that, you can read this using google translator if you want.
뉴비는 언제나 응원!이에요.
팁! : esteem모바일 앱은 개발자가 수수료를 5% 떼간다고 하네요.
10.42% 보팅
현재 보상량 : [ 평균 - 2.88 / 3개 / 합계 : 8.65 ]
Congratulations @icoreport! You have completed some achievement on Steemit and have been rewarded with new badge(s) :
Award for the number of posts published
Click on any badge to view your own Board of Honor on SteemitBoard.
For more information about SteemitBoard, click here
If you no longer want to receive notifications, reply to this comment with the word
STOP
어렵지만, 대략적으로나마 이해하고 갑니다^^
좋은 포스팅 감사합니다!
친절한 댓글 감사합니다! 앞으로도 좋은 포스팅으로 뵙겠습니다~
유익한 내용 잘 보고 갑니다~^^
댓글 감사합니다! 앞으로도 유익한 정보 담은 포스팅 전할 수 있도록 할게요~
아직은 넘 어려운....., 그렇지만 진심으로 보팅하고 응원합니다~^^
응원해주셔서 감사합니다! 앞으로도 좋은 포스팅으로 뵙겠습니다!
옙, 저도 계속 지지하고 응원 드리겠습니다^^
좋은글 잘 봤습니다! 결국 미래에는 가스비가 발목을 잡을거 같네요..
저렴해지면 51% 공격에 취약해지고 비싸면 비싼대로..
지속적으로 좋은 정보글을 쓰시네요~
팔로하고 자주들리겠습니다. 업봇도 하고 가요 ^^
너무 좋은 내용입니다. !!
자세한 포스팅 감사합니다. 그런데 조금 이해가 가지 않는 부분이 있는데
가스 리밋을 높게 설정하는 것과 gwei를 높게 설정하는 것이 어떤 차이가 있을까요? 예를 들어 설정한 리밋만큼 다 채택이 되었을때 20000020gwei 와 10000040gwei 가 계산되는 수수료값은 다른데 유의미한 차이가 있을까요?