EIP-1559 | 내 가스비가… 얼마였더라…?

김인근
CURG
Published in
7 min readApr 16, 2022

김인근 | ingeun92@naver.com | CURG

이 글은 D3LAB의 이더리움 수수료 메커니즘 EIP-1559 완벽분석 by Luke Park을 참고하여 작성되었습니다. Luke Park의 명품 강의에 깊은 감사를 표합니다.

기존 이더리움의 TFM(Transaction Fee Mechanism)

First Price Auction (FPA)

FPA 방식은 이더리움을 사용하는 사용자들끼리 트랜잭션을 블록에 포함시키기 위해 같은 기간 내의 트랜잭션을 발생시킨 사용자들 중에서 더 높은 가스비를 지불하는 경쟁 방식을 지칭한다. EIP-1559가 적용된 London 하드포크 이전 이더리움은 이 TFM을 이용하여 가스비를 책정하고 각각의 트랜잭션들을 채굴자들이 블록에 포함시켰다.

기존 이더리움의 TFM은 아래와 같은 의미를 지닌다.

  • 무한 loop나 이더리움 네트워크를 향한 무분별한 연산 공격이 들어오는 것을 막기 위해 존재
  • 이더리움 한 블록에서 처리할 수 있는 총 연산의 한계 내에서 어떠한 트랜잭션을 해당 블록에 포함시킬 것인가?에 대한 경쟁

GasFee = GasUsed X GasPrice

GasUsed → 사용자가 요청한 트랜잭션이 수행되는데 필요한 가스의 양

GasPrice → 사용자가 임의로 결정하는 가스의 가격

GasFee → 사용자가 임의로 결정한 가스의 가격과 사용자가 요청한 트랜잭션이 수행되는데 필요한 가스의 양을 곱한 값으로 사용자가 트랜잭션을 위해 실제로 지불하는 가스비

또한 이더리움 내에서 한 블록이 가질 수 있는 가스비의 총량은 약 15M 정도로 정해져 있다. 따라서, 한 블록의 연산량의 제한을 가스비의 총량으로 컨트롤하는 셈이다.

FPA의 문제점

  • 다른 이더리움 사용자들의 가스비 정책 혹은 전략을 예측하기 어렵기 때문에 나의 트랜잭션이 블록에 포함되기 위한 적절한 가스비를 정하기 매우 어려움
  • 블록에 포함되기 위해 나의 트랜잭션이 단지 가스비 측면에서만 생각되기 때문에 트랜잭션의 내재적 가치가 무시되며 상대방의 가스비의 관점에서만 생각하게 됨
  • 만약 적절한 가스비를 적용시키지 못했을 경우, 블록에 포함시키기 위해 필요한 가스비보다 더 많은 가스비를 지출하여 불필요한 지출이 생기거나 필요한 가스비보다 더 적은 가스비를 지출하여 나의 트랜잭션이 펜딩 상태에 머물러 있는 등의 문제가 발생

EIP-1559의 새로운 TFM

EIP-1559는 London 하드포크부터 적용되어 지금까지 새로운 형태의 TFM를 제공하고 있다. 물론 EIP-1559가 적용된 다음에도 Legacy Tx 형태로 FPA 또한 계속해서 사용 가능하다. 대신 EIP-1559 이후부터는 아래의 TFM이 기본적인 TFM으로 자리잡게 되었다.

특징

What is EIP-1559? How Will It Change Ethereum? by James Beck, Mattison Asher
  • 한 블록 당 15M로 고정되어 있던 가스비의 총량이 15M ~ 30M으로 확대되며, 유동적으로 조정되기 때문에 더욱더 탄력적인 블록 운영이 가능해짐
  • BASE FEE → 해당 블록(h+1)에서 기본적으로 사용자가 지불해야 하는 가스비로써, 알고리즘에 의해 이전 블록(h)이 어느정도 차 있었는지에 따라 BASE FEE가 이전 블록 대비 -12.5% ~ +12.5%로 조정됨
BaseFee algorithm
  • TIP → 기존의 FEES와 같은 개념으로 사용자들이 채굴자들에게 추가적으로 제공하는 가스비로 이것이 높으면 새로운 블록에 자신의 트랜잭션이 포함될 확률이 높아짐
  • 사용자들이 지불하던 기존의 가스비들은 모두 채굴자에게 제공되는 형태였지만, EIP-1559 이후부터는 조정되어 지불된 BASE FEE는 소각되고 TIP만 채굴자들에게 제공됨
  • EIP-1559 이후 사용자들은 Priority Fees per Gas와 Max Fees를 고려하여 가스비를 지출하게 됨
GasPrice algorithm
  • 만약 사용자가 MaxFee = 60, MaxPriorityFee = 2로 적용했을 경우
  • [If BaseFee > 60] → 사용자의 트랜잭션은 이번 블록에 포함되지 않음
  • [If 58 < BaseFee < 60] → 사용자는 60이 GasPrice로 정해지고 이 GasPrice와 BaseFee의 차이만큼 채굴자의 TIP으로 정해지게 됨
  • [If Base Fee < 58] → 사용자는 Base Fee + 2 만큼을 GasPrice로 정해지고 2만큼의 GasPrice는 채굴자의 TIP으로 정해지게 됨

기대 효과

  • 가스비에 대한 전반적인 예측이 훨씬 쉬워짐
  • 한 블록 내에서 트랜잭션을 포함시키기 위해 사용자들 간 가스비의 편차가 매우 큰 현상이 있었는데 EIP-1559 도입 이후 이 편차가 유의미한 수준으로 줄어듬
  • 사용자의 트랜잭션이 블록에 포함될 때까지 대기 시간이 획기적으로 줄어듬

달라진 사용법 (Feat. Metamask)

New Gas Fee UI Setting
Edit Gas Fee & Edit Priority

기존의 가스비 책정과 크게 다르지 않은 사용법을 보이고 있는 일반적인 가스비 책정 화면이다. 눈에 띄는 점은 low, medium, high에서 low, market, aggressive로 용어를 변경한 점과 전부 시장의 가격을 반영하여 그것을 기준으로 low 및 aggressive 가스비를 책정한 것이다.

Edit Priority Advanced & Advanced Gas Fee

Advanced 가스비 설정에서는 EIP-1559의 메커니즘에 맞게 Max Priority Fee와 Max Fee를 조정할 수 있게 하였으며, 특히 Max Base Fee와 Priority Fee를 사용자 지정할 수 있게 하여 좀 더 사용자 특화적으로 가스비를 지정할 수 있게 하였다.

이더리움 사용자들은 이를 통해 더 합리적인 트랜잭션 전략을 세울 수 있게 되었고 더 효율적인 가스비 지출 계획을 세울 수 있게 되었다.

결론

EIP-1559를 도입하여 이더리움은 최초로 FPA을 탈피한 메이저 블록체인이 되었다. 이를 통해 한 단계 더 진보한 블록체인이 될 것으로 보이며, 이러한 추세는 EVM을 탑재한 여타 이더리움 계열의 블록체인이 모두 따라가고 있는 상황이다. 이더리움을 사용하던 사용자들의 불편한 점을 적극적으로 개선하고 적용하는 이더리움 생태계 지원자들과 이더리움 재단 측에 존경심을 표하며 글을 마쳐보도록 하겠다.

--

--