Gas 계산하는 방법 [TIL / 이더리움]

알락·2022년 11월 21일
0

이더리움

목록 보기
5/16

ethereum banner

이더리움은 블록체인을 이용하는 대가로 비용을 지불해야 한다. 하지만 이는 비단 이더리움만 갖는 특성은 아니다. 이 비용은 새로운 블록을 채굴하는 노드에게 보상으로 지급되기 때문이다. 그들의 컴퓨터 자원을 사용하여 블록체인을 기록하는 데 대한 인센티브라고 생각하면 되겠다. 또한 가스비는 스팸이나 DDOS 같은 공격의 비용을 증가시켜 보안에 이점도 있다.

이번을 기회로 Gas Fee 를 계산하는 방법을 제대로 정리하고 가려고 한다.

용어 정리

[블록 예시]

[트랜잭션 예시]
transaction example

  • Block gasLimit : 블록에 담는 개별적인 트랜잭션 가스비 총합의 한도이다. 위 예시에서는 3,308,310 Gas 로 지정되어 있다.
  • gasUsed : 블록이 생성될 때 포함된 트랜잭션 가스비 총합.
  • gas(Transaction gasLimit) : 사용자들이 블록체인을 이용하는 대가로 지불하고자 하는 가스양이다. 이더리움의 기본 가스 한도는 21,000 Gas 로 정해두고 있다.
  • gasPrice : 가스 당 지불할 이더리움(wei/gas), 보통 1 Gwei 로 설정된다.

이 때, 채굴자들은 트랜잭션에 포함된 정보 gas와 gasPrice를 토대로 블록에 기록을 하는데, 만약 gas에 지정된 양보다 적게 가스비를 소모하게 된다면 반환한다. 하지만 gas에 지정된 양보다 많게 가스비를 소모하게 된다면 gas 비를 돌려주지 않고 해당 트랜잭션의 처리도 무산시켜버리니 주의하자.

블록에 포함된 트랜잭션 가스비 계산

현재 테스트넷에서는 트랜잭션에 대하여 21,000 Gas를 지불한 걸로 되어있다. 이 가스비를 위해 이더리움을 얼마나 사용했는지 확인해보자.

[가스비 식]
gas×gasPrice=gas×weigas=weigas \times gasPrice = gas \times {wei\over gas} = wei

그럼 위의 예시는 21,000 * 1^9 = 21 Twei 가 되겠다. Twei는 0.1^6 ether 이다. 그럼 0.000021 이더를 지출한 셈이 되겠다. 원화로 31원이다.

조정은 어떻게

Transaction 의 경우는 gasLimit 과 gasPrice를 만드는 사람이 지정할 수 있다. 그리고 gasPrice가 높을 수록 블록에 포함될 확률이 높아진다. gasLimit는 보통 이더리움을 송금하는 Transaction 일 경우 21,000 으로 기본값을 사용해도 거의 100% 블록에 수용되어진다고 한다.
하지만 문제는 Contract 배포이다. Contract 같은 경우는 어떤 명령을 수행하는지, 어떤 값을 저장하는지에 따라 소모되는 Gas 양이 달라진다. 이 Contract 같은 경우는 황서에서 직접 계산할 수 있게 테이블을 제공해주고 있다.

참고

profile
블록체인 개발 공부 중입니다, 프로그래밍 공부합시다!

0개의 댓글