이더리움 단위 및 환산

2018. 1. 16. 09:26 가상화폐/이더리움ETH|이더리움클래식ETC


더리움에는 Ether라는 가상화폐가 구현되어 있다. 비트코인 블록체인은 비트코인이라는 가상화폐 그 자체만을 위한 1세대 블록체인 기술이지만 이더리움은 스마트계약의 구현을 위한 2세대 블록체인 기술이며 가상화폐란 스마트계약을 위한 하나의 수단으로 활용되는 존재이다.


1. Ether 와 Wei

Ether는 가상화폐로서 주고받을 수도 있지만, 계약을 수행하는 수수료로 이용할 수도 있다.

Ether는 비트코인과 마찬가지로 더 작은 단위로 나눌 수 있다.




이더리움의 최소단위는 wei 이다.

간단히 말해 1ether = 10^18 wei 이다.


2. Gas

Ether의 송금과 게약을 실행하기 위해서는 수수료로 Ether를 지불해야한다. 앞서 말했듯이 계약을 수행하는 수수료로 Ether가 이용된다. 이때 지불하는 수수료를 'Gas'라고 한다. 이더리움의 이용자는 사용한 컴퓨팅 자원의 대가로 채굴자에게 Gas를 지불한다. 지불하는 Gas는 요구하는 자원의 양과 복잡성으로 결정되는 수수료 + 현재 Gas의 가격에 의해 결정 된다.


이더라는 화폐단위가 있는데 가스는 뭐냐?

왜 가스라는 새로운 단위가 등장하는건가?

많은 의문이 스치겠지만... 


Ether vs Gas 두 단위의 차이점을 보고나면 의문이 조금은 해소되더이다..

Ether는 시장에 유통되고 있는 화폐 그 자체이다. 즉 하루에도 심할때는 30%이상 급등락이 이어지는 market price 를 지니고 있다.

시장가격을 지니고 있다는 말이다.


그런데 수수료를 받는 입장에서 같은 0.01 ether를 받더라도 오늘 받는 것과 내일 받는 것 심지어 당장 받는 것과 한 시간 뒤에 받는 0.01 ether의 가치가 수시로 바뀐다면 문제가 있다고 본 것이다.

즉, 이더리움 블록체인 네트워크가 굴러가기 위해서 가장 중요한 수수료 지불 방식에 있어 ether로 지불하면 변동성이 심하기 때문에 절대적인 기준이 될 수 있는 gas라는 개념을 도입한 것이다.


gas는 변동되는 Ether의 가치에 맞춰 1 gas당 가격 역시 1wei/1gas 단위로 수시로 변동한다.

즉 ether의 가치는 변한다 할 지라도 gas의 가치는 최대한 고정시키기 위해 도입한 개념이다.


1 gas의 가치는 1 ether의 가치에 따라 변한다. 그렇다면 1 transaction당 몇 gas를 지불하는지에 대한 가격 결정 기준은 뭘까?

기준은 바로 해당 트랜잭션이 요구하는 컴퓨팅 파워이다.

즉, 간단한 문자처리만을 요구하는 계약과 동영상의 인코딩이 요구되는 계약은 엄연히 필요 컴퓨팅파워에 차이가 있다.

당연히 동영상의 인코딩이 더 많은 파워를 요구하며, 수수료에 해당하는 gas역시 더 많은 gas를 지불해야 된다.


그런데 트랜잭션을 요구하는 입장에서, 예를 들어 송금계약이라면 돈을 보내려는 입장에서 이 gas를 정할 수 있는 것은 아니다. 내가 원하는 트랜잭션에 10000gas 를 지불할게 라고 할 수는 없다. 실제로 해당 트랜잭션이 처리되기 위해 얼만큼의 gas가 사용되는지는 실제 채굴 node의 사용자들이 얼만큼의 파워를 사용하느냐에 따라 자동적으로 계산이 되고 정해진다.


따라서, 과도한 트랜잭션이 발생했을 때, 즉 네트워크에 특정 시점에 과부하가 발생했을 때 내가 예상했던 수수료보다 훨씬 많은 양의 gas가 수수료로 지불되는 수가 있다. 배보다 배꼽이 큰 경우이다.

나는 고작 1 ether를 송금하겠다고 트랜잭션을 발생시켰는데 수수료로 0.5 ether나 지불해야된다면? 이런상황이 발생할 수 있다. 한 순간에 너무 많은 트랜잭션이 발생한다면... 왜냐면 한 블럭에는 입력시킬 수 있는 트랜잭션의 양이 한정되어 있기 때문이다.


이렇게 과도한 gas의 지출을 막기 위해 GAS LIMIT이라는 제도가 존재한다.

말그대로 상한선을 정하는 것이다. 송금자가 비록 지불할 gas를 정할 순 없어도, 그 상한선은 정할 수 있다는 말이다.


물론 이런 제도가 시사하는 바는 상한선을 또 너무 낮게 설정해버리면 내가 요청한 트랜잭션이 처리되지 못하는 수도 있다. 즉 채굴 측에서 요구하는 gas가 30000이 되어 버렸는데 나는 20000으로 limit해버린다면 내 트랜잭션은 처리되지 못하고 트랜잭션이 발생하기 전의 데이터로 돌아간다. 단, 20000 gas의 비용은 내 트랜잭션이 실패했다고 해서 돌려받지 못한다!!


EVM이 트랜잭션을 처리하면서 Gas를 소모해나가기 때문에 gas를 소모하면서 트랜잭션을 처리하다가 gas limit에 달하여 더이상 소모할 gas가 없게 되면 기존에 소모한 gas를 돌려주진 않고 거기서 트랜잭션을 미완성한 상태로 종료시키게 되는 것이다. 미완성한 트랜잭션은 결국 트랜잭션 이전의 상태로 데이터를 돌리게 된다.


gas개념은 실제 이더리움 시스템이 돌아가기 위한 필수 요소기 때문에 익숙해질 때 까지 여러번 학습할 필요가 있다.