Ethereum Gas Price 분석

Jin.S
Tokamak Network
Published in
12 min readOct 1, 2018

Gas Price Analysis

본 분석은 Ethereum 네트워크의 트레픽, 즉 Transactions(이하 Tx)을 고려하여 Average Gas Price 시계열을 살펴보는 것이다.

사용된 데이터는 Etherscan에서 제공하고 있는 Average Gas Price 와 Onther에서 운영하고 있는 Geth 풀노드에서 가져온 Ethereum Blockchain 데이터를 사용하였다. 글의 말미에서는 Ethereum 네트워크 사용자들의 형평성과 Gas Price가 네트워크의 수요의 척도로 볼 수 있는지에 대해 기술하며 마치도록 하겠다.

1. Daily Analysis

1.1 Average Gas Price

Etherscan 에서 제공하고 있는 Average GasPrice Chart 에서 제공되는 데이터를 먼저 살펴보자.

Daily Average Gas Price [csv 파일 다운로드 링크]

Average Gas Price의 분포가 정규분포라 가정하였다.

Average Gas price 30일 이동평균과 해당 기간(30일)의 표준편차(Standard Deviation)인 Sigma를 구하여 평균 +-2Simga 그래프를 그려보면 다음과 같다.

Ethereum 네트워크 초기였던 2015년 이후, 2016년 12월 경에 가장높은 Average Gas Price가 눈에 띌 것이다. 그냥 넘어가기엔 단기적으로 너무 높은 GAS Price 이므로 잠시 살펴보도록 하자.

2770908 가장 높은 수수료를 지불했던 Block

[블록 2,770,908번] 블록보상이 766.6 Eth로 산정되어 DwarfPool_1 풀에 전송되었다.
해당 블록에는 한 개의 Transaction만 있었는데, 0xeda3bf566ae21fbc7bbfcb805d73181b0037036d700d57695e28f1e9bfe0d69c 정보를 보면 Gas Price가 36,267,774.588438875 Gwei 였다.

Tx Sender가 `Fat Finger`오류 인지는 확실하지 않으나, DwarfPool_1이 해당 수수료를 sender인 `0xf0f3589042f8e74b1c060fe9aa8e320c8d907708`에게 돌려주었다.
[DwarfPool_1이 해당 수수료를 돌려준 거래]

1.2. Basic Statistic Result

앞서 정규분포임을 가정한다고 했는데, 여기서 잠시 정규분포에서 +-2sigma 가 의미하는것은 보도록 하자.

Normal Distribution [Wikipedia]

어떤 데이터 표본이Normal Distribution라 할때, +-2Sigma는 발생한 가능성이 각각 2.5% 인 지점이며, 평균+-2Sigma 이내 구간에서 발생한 표본은 전체의 95% 말한다.

1.1 에서 살펴본 과도한 Tx Fee, 761Eth를 수수료를 지불한 Tx의 Gas Price는 전체 표본중 M+3Sigma 이상 구간에 분명히 속할것이다.

처음으로 돌아가서, 전체 시간축상에서 Average Gas Price 30일 이동평균의 +-2Sigma를 초과/미만이었던 날들(days)을 살펴보자.

Days Over/Under +-2Sigma

분석기간 데이터의 총 시계열(day)은 1,135일 이며( 7/30/2015 ~ 9/6/2018 ), 이중 6.4% 해당하는 73일이 +2sigma 구간을 초과하였고, -2sigma 미만이었던 날은 15일로 분석기간중 전체의 1.3% 로 분석되었다.

조금 쉽게 풀어서 말한다면, Gas Price가 30일 이동평균보다 과도하게 높아진다고 볼수 있는 현상은 100일중 6일 정도 발생한다고 할수 있겠다.

2. Tx Base Analysis

2.1. Under / Over Gas Price on 30 Days MA

Gas Price가 갑작스럽게 높아지거나 낮아지는 이유를 알아보려면 블록에 담겨있는 Tx를 살펴보아야 할것이다.

먼저, Average Gas Price가 갑작스럽게 상승/하락이 발생한 시간대의 transaction들을 보자.

아래 그래프는 30일 이평선을 주황색, 표준편차(Standard Deviation)인 Sigma를 구하여 Mean +-2Simga 를 붉은색으로 표현하였다.

2017년 4월 ~ 2018년 4월 까지의 block데이터에서 Tx 데이터를 추출하였다.

Block Gas Limit Dramatically Increased Around DEC 2017

2017년 12월은 CryptoKitty Contract에 과도한 Transaction 몰리면서 Gas Price 또한 급격한 상승이 있었다. 그리고 Ethereum 마이너들 사이에서 Block Gas Limit 증가에 대한 투표도 함께 진행되었는데, 그 결과 Block Gas Limit이 현재 약 8 MM 까지높아 지게 되었다.

현재 Block Gas Limit 에 대한 투표를 볼 수 있는 링크는 다음과 같다 https://www.etherchain.org/tools/gasLimitVoting)

2017년 10월 경 Gas Price가 -2Sigma보다 더 낮았던 구간이 있었으나,
본 분석에서는 동일한 Block Gas Limit을 가지고 있는 기간내에 두 케이스(Over Gas Price, Under Gas Price)를 선정하였다.

30일 이평선에 +-2sigma 범위를 벗어났던 기간중에서 표본 구간을 선정하였다.

“over gas price” 의 샘플 구간으로 2018년 1월 5일 ~ 6일로 정하였으며,
“under gas price” 의 샘플 구간으로는 2018년 3월 10일 ~ 11일로 정하였다.

두가지 케이스에서 발생한 Tx들을 살펴보면,

“Over Gas Price” 기간내 총 2,497,210건이 블록에 포함되었고,
Tx당 평균 90.12Gwei를 Gas Price로 사용하였다.

“Under Gas Price” 기간내 총 1,199,883 건 블록에 포함되었고,
Tx당 평균 14.30 Gwei가 Gas Price로 사용하였다.

Tx 의 처리량이 약 두 배정도 증가한 것에 비해 Gas Price는 5~6배 높았음을 볼 수 있다. 이것은 Ethereum Tx를 처리하는데 필요한 최소한의 GAS인 21000 보다 높은 GAS를 포함하는 Tx의 비중이 높음을 의미하는 것으로 볼 수 있다.

2.2. 21K Tx & None-21K Tx

21000 GAS Tx(이하 21K Tx)는 Ether를 전송하는데 사용되는 최소한의 GAS양 이며, 수수료로 책정되는 Ether는 GAS * Gas Price 로 계산된다. Smart Contract를 사용하는 Tx의 경우는 21K GAS보다 높다.

“Over Gas Price” 구간에서 Smart Contract을 사용 하는 None-21K Tx의 비율은 “Under Gas Price” 구간대비 상대적으로 높게 나타났을 것이고, 21K Tx비율은 상대적으로 낮게 나올 것이다.

두 구간, “Over Gas Price” 와 “Under Gas Price” 기간내 각각 21K Gas Limit으로 설정된 Tx가 얼마나 분포되어 있는지 보자.

“Over Gas Price” 구간인 2018년 1월 5~6일 사이 21K Tx는 1,013,869건으로 전체 Tx의 2,497,210건중 40.6%를 차지 하였다.
“Under Gas Price” 구간인 2018년 3월 10~11일 사이 21K Tx는 230,366건으로 전체 Tx 1,199,883건 중 19.2%를 차지 하였다.

“Over Gas Price”에서 21K Tx가 비중이 “Under Gas Price” 구간보다 두배 가량 높다. Smart Contract 사용으로 인한 None-21K Tx가 많았다면, 21K Tx 비중은 오히려 더 낮아야 함에도 그렇지 않았다.

그렇다면, 21K Tx와 None-21K Tx들이 각각 어디로 향하고 있었는지 살펴보자. (Etherscan에서 알려진 컨트렉트 주소 이름중 일부 가져왔다. 이름이 없는 것은 주소 그대로 남겨놓았다.)

“Over Gas Price” 구간에서 가장 많이 수신받은 주소들

“Under Gas Price” 구간에서 가장 많이 수신받은 주소들

여기서 조금 특이한점이 있는데, 수신지 주소에 Binance_1 같은 거래소로 향하는 Tx가 None 21K Gas로 발생하고 있다. Etherscan Binance_1 Sample Tx
Tx Gas Limit을 42K로 설정되고, Gas Used를 21K에 맞춘다는 것을 볼 수 있다.

자주 사용되는 상위 주소들로 향하는 Tx들을 살펴보았을때, None 21K Tx는 DEX 와 ICO 그리고 CryptoKitty같은 Dapp 들을 사용하기 위해 주로 발생함을 알 수 있다.

2.3. Gas price Time Series

Gas Price가 급격하게 높아졌던 2018년 1월 초에 주요 None 21K Tx와 21K Tx의 Gas Price를 비교해보자. None 21K Tx가 주로 향하는 주소인 EtherDelta, CryptoKitty, EOSTokenContract 등에서 사용된 Gas Price, 그리고 21K GAS로 사용된 Tx의 Gas Price 합쳐서 시계열로 그려보면 아래와 같다.
(여기서 21K Tx는 처음 사용되는 Account의 Tx 들만을 추려내었다.)

None 21K Tx : EtherDelta, CryptoKitty, EOSTokenContract

2018년 1월 2일, None 21K Tx 전송시 평균 12.9 Gwei 사용하였으나, 1월 3일 이후 Contract 사용량이 높아지면서 None 21K Tx의 Gas Price가 21K Tx보다 빠르게 증가하였다. 한편 1월 5일 이후 21K Tx의 Gas Price가 훨씬 더 높아 지는데, 이는 이당시 Ethereum 가격과 거래량이 정점으로 향하면서 Contract사용이 아닌 지갑간 이더 전송이 많아졌던 것으로 추측된다.

여기서 주목해야 하는 부분은 1월 3~5일 인데, 이때 Dapp/ICO/Dex 사용량의 증가로 시작된 Gas Price의 상승이 단순 이더전송을 위한 21K Tx의 Gas Price 상승을 이끌었다고 볼 수 있겠다.

3. Conclusion

Average Gas Price 대한 통계적 접근을 통해, 급작스러운 변동성이 일어난 기간을 정확하게 알 수 있었다. 그리고 “Over Gas Price” 또는 “Under Gas Price” 기간 모두, 특정 Contract를 사용하기 위해 발생한 Tx가 블록 사용량의 상당부분을 차지하고 있음을 알 수 있었다.

Gas Price의 30일 이동평균에서 변동성이 높았던 기간중, +2Sigma가 초과하는 시계열 2.3 Gas price Time Series을 통해서 우리가 Ethereum 체인에서 지불해야하는 Gas Price가 주요 DApp/ICO/DEX에 의해 주도 되었을 가능성에 대해 알게 되었다. 그와 더불어 2017년 12월 ~ 2018년 1월 Gas Price가 높아졌던 다른 요인인, Ethereum의 가격과 거래량이 폭팔적으로 증가했던 시기와 맞물려 Ethereum 네트워크에 많은 부담이 생겨났음을 보았다.

“Over Gas Price” 에서 복합적인 요인이 동시에 작용했지만,
결국 Dapp/ICO/DEX의 None-21K Tx때문에 21K Tx 사용자는 더불어 높은 Gas Price를 책정해야 하는 부담이 생김을 알게 되었다. Gas Price 상승기에 상대적으로 21K Tx가 높은 수수료를 내는데 일정부분은 DApp/ICO/DEX들이 책임을 가져야 하는 생각을 지울 수 없다.

끝으로, Ethereum 네트워크 수요는 블록에 담기기 위해 대기하고 있는 Tx-Pool의 Tx 를 통해서도 볼수있다. 하지만 과거 Tx-Pool 기록을 정확하게볼 수 있는 곳은 없고, 우리는 블록에 담긴 Tx들의 Gas Price 통해 Ethereum 네트워크 수요를 측정 할 수 밖에 없으며, 또한 그렇게 보는것이 타당하다고 생각된다.

Reference

--

--