이더리움 네트워크에서 스마트 컨트랙트를 통해 트랜잭션을 실행할 때마다 가스비를 내야 한다.

가스비는 상호작용하는 컨트랙에 따라 다르고, 사용자가 설정한 값에 따라서도 달라진다.

즉 여러가지 변수가 있는데, 어떤 공식에 의해 값이 산출되는지 정리해본다.

우선 가스비라는 것이 왜 존재하는 것인가? 이더리움은 ‘World Computer’라는 모토를 가지고 개발되었으며 이더리움 네트워크는 실제 프로그램을 실행할 수 있다. 그런데 이러한 시스템이 완전 무료라면 아무 의미없는 프로그램(무한루프를 돈다던지..) 을 잔뜩 실행시켜서 네트워크를 마비시킬 수 있을 것이다. 따라서 스마트 컨트랙트를 실행하기 위해서는 일종의 수수료가 필요하고 사용자는 이를 ether 로 지불하게 된다.

지불하는 가스비는 실행하고자 하는 컨트랙 함수의 계산량에 따라 다르다. 컴퓨팅 파워를 많이 필요로 할수록 가스비를 더 많이 내야 하는데, 이더리움 네트워크는 수행하는 기본 연산마다 얼마의 가스가 필요한지 정의해 놓았다.

Untitled

현재 시점에서 위의 값이 정확한 수치인지는 모르겠지만, 연산의 최소 단위에 필요한 각각의 가스 비용이 결정되어 있다고 보면 되겠다.

사용자는 특정 컨트랙에 트랜잭션을 날릴 때, gasPrice와 gasLimit 이라는 값을 노드에 전달하게 된다.

트랜잭션 실행 도중 gasLimit 보다 더 많은 가스가 필요하게 되면 해당 트랜잭션은 revert(롤백) 된다.

gasPrice는 우리가 메타마스크에서 가스를 올린다고 할 때의 그 값으로 보통 gwei 단위로 표기한다.

(1gwei = 1*10^-9 ether)

즉 트랜잭션을 날릴때 gasLimit을 100,000, gasPrice를 5gwei 로 설정하면 해당 트랜잭션이 최대로 사용할 수 있는 가스비는