별은블로그

Solidity 3. 가스(GAS)와 옵코드(opcode)에 대해... 본문

Dev/Solidity

Solidity 3. 가스(GAS)와 옵코드(opcode)에 대해...

beul_eun 2018. 11. 5. 22:02

가스란?

 - 가스는 트랜잭션을 수행하는데에 있어 네트워크에 대한 수수료이다.

 - 채굴자들에게 보상금으로 지급된다.


수수료 내는 예시)

 - 다른 계정으로 돈을 보낼 때

 - 스마트 컨트랙 배포할 때

 - 함수에서 상태변수에 변화를 줄 때


 - 함수를 실행 중인 계정에서 가스비를 지불한다.

 - 가스비도 eth를 사용한다.


가스단위를 사용하는 이유

 - ETH는 화폐변동성이 있다.

 - 가스는 변동성이 거의 없다.


가스의 가격단위 : gwei


가스비용은 함수의 복잡성에 따라 결정


연산에 소모되는 비용 == 옵코드(opcode)

- 네트워크 상태, 컴퓨팅 자원에 따라 비용결정


ethgasstation.info

 - 가스가격의 평균가를 볼 수 있는 사이트

converter.murkin.me

 - 이더리움 단위변환 사이트


가스가격 * used by txn = 가스사용량 <= 가스limit


가스를 왜 도입하는가?

 - 무한반복문 또는 실수로 루프에 빠질 경우 네트워크를 방해하지 못하게 연산처리에 비용이 들게 함


옵코드(opcode)란?

 - 연산에 소모되는 비용 == 옵코드(opcode)

- 산술연산

- 로직연산

- memory or storage 연산

- 등등


remix에서 트랜잭션 실행시 볼 수 있는 detail에서...

 - object -> byte코드

 - opcodes -> opcode => object 를 변환한 것과 동일하다.


opcode의 종류와 의미

https://ethereum.stackexchange.com/questions/119/what-opcodes-are-available-for-the-ethereum-evm


결국 이더리움 VM에서 스택에 opcode를 쌓고 실행해나가는 구조이다.

'Dev > Solidity' 카테고리의 다른 글

Solidity 5_1. 트러플콘솔로 컨트랙배포하기  (0) 2018.11.11
Solidity 4. 컨트랙 최적화  (0) 2018.11.05
Solidity 2. Solidity Smart Contract  (0) 2018.11.05
Solidity 1. 솔리디티의 기본문법  (0) 2018.11.05
Solidity 0.  (0) 2018.11.05
Comments