Ether & Gwei & Wei & Gas

kich555·2021년 11월 11일
1

Solidity

목록 보기
2/2

Ethereum

Ether & Gwei & Wei

Ether, Gwei, Wei는 모두 Ethereum이란 블록체인에서 일어나는 모든 인터렉션에 사용하는 가치를 나타내는 용어로 보면 쉽다.

1 Ether10^18 Wei 이며 10^9 Gwei이다.
1 달러가 100센트 이듯이 1 Ether10^18 Wei 이다~ 정도로 받아들이면 이해하기 쉬울것이다.
Wei는 Ethereum에서 가장 작은 단위이고, GweiGas fee의 가장 작은 단위이다.

Wei의 명칭은 'Wei Dai' <=모든 현대 암호화폐 개념을 공식화한 사람
의 이름에서 따왔다!
// SPDX-License-Identifier : GPL-30
contract lec2{
//1 ether = 10^9 Gwei = 10^18 wei
uint256 public value1 = 1 ether; // 1000000000000000000
uint256 public value3 = 1 gwei; // 1000000000
uint256 public value2 = 1 wei; // 1

}

🤔 왜 이렇게 단위가 큰 것일까?

10^9 10^18 모두 보기도, 쓰기도 힘든 단위의 숫자들이다.
1Ether의 단위가 이렇게 큰 이유는 솔리디티에서 숫자는 기본적으로 int형을 사용하며 부동소수점 타입(float)을 지원하지 않기 때문.

부동소수점 타입을 지원하지 않는 이유로는
부동소수점 타입으로는 수를 정확하게 표현하지 못하기 때문이다.
=> 소수점 타입을 제대로 지원하지 않기때문에 소수점이 발생하지 못할 큰 단위의 수를 사용한다.

(단위가 커지면 소수점이 발생하더라도 전체 수보다 
너무나 작은 수이기때문에 무시해도 큰 상관 X)

더 알아보기 소수점 단위가 존재하지 않는 정수형의 특징 상
소수점이 임의로 처리되지 않게 하기위해

Gas

이더리움 환경에서는 블록체인과 어떠한 인터렉션을 할 때 마다 Gas가 소모된다.

이는 쉽게보자면 일종의 수수료라고 볼 수 있는데,
나의 어떠한 활동을 블록체인에 기록을 하는 주체가 내가 아니기 때문,

나의 인터렉션(Smart Contract)이 블록체인과 연결되어 어떠한 경우로든 간에 영향을 끼칠때, 모든 활동은 블록에 기록되게 된다.

이때 블록에 기록하는 행위를 내가 아닌채굴자 라는 사람들이 대신 기록해주는데,
대신 기록해 주는것에 대한 수수료를 Gas로 볼 수 있다.

자동차에 Gas(기름)을 넣어야 차가 앞으로 갈 수 있듯이
이더리움 블록체인의 블록에 영향을 끼치려면 역시 Gas가 필요하다.

이때 Gas의 최소 단위를 Gwei라고 하고
(마치 주유소가 리터, 혹은 갤런 당 가격을 표시해두듯이)
유가가 유동적이듯이 가스비 또한 네트워크 사용량에따라 유동적으로 변한다.

미국에서 기름을 gas라고 표현한다. 
주유소 = gas station

그리고 우리가 주유를 할때 1리터만 넣는 경우는 별로 없듯이
주유하는 양 (블록체인과 인터렉션에 필요한 데이터or연산 양) * Gwei
를 통해 transaction fee(거래 수수료) 가 결정된다.

위 스크린샷은 Transaction Details의 일부로써

A가(From) B에게(To) 0.1 BNB를 보낸 거래 명세서로 보면 된다.
이때 Value를 확인하면 이체되는 금액이 0.1 BNB 인 것을 볼 수 있고, Transaction Fee를 보면 거래 수수료로 0.000105BNB가 빠져나간 것으로 볼 수 있다.

Gas의 단점

블록체인의 사용자가 늘어나면 늘어날수록 가스비는 비싸진다.
이더리움을 예시로 들 수 있는데 한때 단순 transaction 한번의 수수료가 2~30달러이상이었던 시절도 있었다. 버튼 클릭, 이체 등 모든 행위가 기본 2~30달러의 수수료부터 시작한다는 말이다.
( 물론 이 문제는 런던 하드포크 업데이트 이후 어느정도 해결되었다 )

어쨌든 gas비의 존재 때문에
smart contract를 개발하는 개발자는 어떤 contract든 최대한 복잡도를 낮춰야하고,
블록에 추가되는 data의 사이즈도 최대한 고려하면서 contract를 설계해야한다.
=>블록체인 환경에서 많은 데이터의 송수신은 아직도 부담스러운 영역이다.

유저 또한 여전히 어떠한 행위든 어느정도 신중하게 해야한다.

Gas의 장점

Gas의 장점은 단점과 같은데,

Gas비의 존재 때문에 DDoS공격등에 대해 안전하다.
만약 해커가 의미없는 트래픽으로 블록체인을 과부화 시키는 스마트 컨트랙트를 개발한다 했을때
해커는 비용적인 측면을 무시할 수 없기때문

profile
const isInChallenge = true; const hasStrongWill = true; (() => { while (isInChallenge) { if(hasStrongWill) {return 'Success' } })();

0개의 댓글