별은블로그
Solidity 3. 가스(GAS)와 옵코드(opcode)에 대해... 본문
가스란?
- 가스는 트랜잭션을 수행하는데에 있어 네트워크에 대한 수수료이다.
- 채굴자들에게 보상금으로 지급된다.
수수료 내는 예시)
- 다른 계정으로 돈을 보낼 때
- 스마트 컨트랙 배포할 때
- 함수에서 상태변수에 변화를 줄 때
- 함수를 실행 중인 계정에서 가스비를 지불한다.
- 가스비도 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 |