4. Solidity smart contract - Gas


4.2 Gas

  • 가스는 수수료이다.
  • 채굴자에게 보상금으로 지급한다.
  • 수수료를 내야 하는 상황
    1. 다른 계정으로 돈 보낼 때
    2. 스마트 컨트랙 배포할 때
    3. 함수에서 상태변수에 변화를 줄 때
    4. 등등
  • 함수 실행중인 계정에서 가스비 지불
  • 가스비도 에더 (ETH) 를 사용(진짜 돈)
  • 가스 단위를 쓰는 이유
    1. 에더는 화폐 변동성이 크다
    2. 가스 가격은 거의 변동하지 않는다.
  • 가스 비용은 함수의 복잡성에 따라 결정된다.
  • 연산에 소모되는 비용 => 옵코드(opcode)
  • 네트워크 상태, 컴퓨팅 자원에 따라 비용 결정

Ex) 메타마스크

  1. Gas Limit : 한도 이 트랜잭션을 처리하면서 쓰이는 최대한도비용. 메타마스크는 T를 미리 시뮬레이션하고 가스 한도를 미리 보여준다. 네트워크 상태에 따라 조금ㅁ 다르게 나옴

  2. Gas Price : 채굴자에게 시간당으로 지불하는 단위. 네트워크 상태에 따라 평균가가 정해집니다.

    여기서 평균가 볼 수 있음ethgasstation.info

  3. Max Transaction Fee : 최대 비용

  • 실제 가스 사용 량은 트랜잭션 처리를 하고 난 후에 확인할 수있다.
  • 이더스캔
  • 사용한 가스 * 사용 가격 = 우리가 최종적으로 사용한 수수료 값

가스의 필요성

  1. 무한 반복문 저지
  2. 함수내 실수로 인한 네트워크 성능 저하

가스가 없었다면 네트워크가 종종 다운되거나 어마어마하게 느려졌을 것이다.




© 2018. by yoonhoi Jeon

Powered by zzsza