EIP-1559 : 이더리움1.0의 새로운 수수료 메커니즘

이더리움 2.0의 비콘체인이 2020년 12월 1일 제네시스 블록을 생성하면서 안정적인 궤도에 오르고 있습니다. 많은 관심이 이더리움 2.0에 쏟아지고 있지만 이더리움 1.0에서도 여전히 많은 연구가 이루어지고 있습니다.

그 중 이더리움의 수수료 문제는 여전히 해결해야 할 문제로 남아 있습니다. 특히 지난 8월 디파이가 활성화됐던 시기에는 단순한 이더리움 전송에도 몇 만원 상당의 많은 수수료를 지불해야하는 상황이 발생하기도 했습니다.

이번 글에서는 이더리움 1.0의 수수료 방식을 개선하기 위한 제안인 EIP-1559에 대해 살펴보려고 합니다. 최대한 이해하기 쉽게 쓰기 위해 노력하긴 했지만 약간의(?) 기술적인 내용이 포함되어 있습니다. :)

TL;DR

  • EIP-1559는 높은 수수료 변동성 문제와 트랜잭션 딜레이 문제를 해결하기 위해 제안되었다.
  • EIP-1559에 따르면 수수료를 기본 수수료와 팁으로 나누어 기본 수수료는 소각하고 팁은 마이너에게 보상한다.
  • 기본 수수료는 네트워크 트래픽에 따라 변동되며, 팁은 사용자가 (혹은 지갑에서) 결정한다.
  • EIP-1559가 적용되기 위해서 아직 풀어야 할 숙제들이 남아있다.

EIP-1559의 목표

EIP-1559가 달성하고자 하는 목표는 단순합니다. 좀 더 효율적인 수수료 책정 방식을 만들고자 하는 것입니다. 좀 더 상세하게는 다음과 같은 목표를 갖고 있습니다.

  • 불필요하게 높은 수수료 변동성 문제 해결
    : 뒤에서도 살펴보겠지만 높은 수수료를 해결하는 것이 목표가 아니라, 수수료의 변동성이 높아지는 문제를 해결하는 것이 핵심입니다. 예를 들어 이더리움 네트워크에 트래픽(트랜잭션)이 몰릴때 수수료가 갑자기 100~200배 치솟는 현상을 막을 수 있는 수수료 체계를 만드는 것입니다.
  • 불필요한 트랜잭션 딜레이 문제 해결 (트랜잭션 승인이 오래 걸리는 문제)

EIP-1559 규격에는 4개의 목표가 나열되어 있지만 여기서는 그 중 핵심이 되는 2가지만 언급했습니다.

변경되는 수수료 구조

기존의 이더리움에서 발생하는 수수료는 모두 마이너에게 돌아가도록 되어 있습니다. EIP-1559 제안의 핵심은 수수료를 기본 수수료(BASE FEE)와 팁(Miner Bribe 혹은 TIP)으로 분리하는 것입니다. 이 중 기본 수수료는 소각시키고(burn), 팁은 마이너 보상으로 사용됩니다.

<EIP-1559에서 변경되는 수수료 모델>

기본 수수료 책정 (BASE FEE)

기본 수수료는 매 블록마다 변경됩니다. EIP-1559가 적용되면 각 블록마다 블록의 절반 정도만 트랜잭션을 채우게 됩니다. 만약 이전 블록의 트랜잭션이 절반보다 더 많았으면 기본 수수료를 높이고, 절반보다 더 적었으면 기본 수수료를 낮추게 됩니다.

살짝 기술적으로 살펴보면, EIP-1559에는 블록 정보에 base_fee 필드가 추가되었습니다. 이전 블록의 base_fee 필드와 사용된 가스량(gas_used)을 기반으로 현재 블록의 기본 수수료를 정하게 됩니다.

이때 각 블록별로 기본 수수료의 변동성이 너무 높아지는 것을 방지하기 위한 공식이 존재합니다. (스압 방지를 위해 이 글에서 그 공식을 다루지는 않습니다.^^ 기본 수수료 책정 공식은 EIP-1559 규격의 validate_block() 부분을 살펴보시면 됩니다.)

마이너 팁 계산 (TIP)

기본 수수료는 소각되기 때문에, 마이너들에게 보상을 주기 위한 마이너 팁이 수수료에 포함됩니다. 이러한 수수료 구조를 위하여 EIP-1559를 위한 트랜잭션 구조는 기존 트랜잭션 구조와 달라지게 됩니다.

출처 : EIP-1559 Specification

위의 그림에서 보시는 바와 같이, 기존 트랜잭션에서 변화하는 부분은 가스 가격(gas price)입니다. 기존 트랜잭션에서는 단순히 가스 가격으로 수수료를 결정합니다. EIP-1559 트랜잭션에서는 가스 가격을 나타내는 필드를 없애고, 두 개의 새로운 필드가 도입되었습니다.

  • max miner bribe per gas : 최대 마이너 팁. 마이너에게 지불할 수 있는 가스의 최대 가격입니다.
  • fee cap per gas : 최대 수수료 혹은 FEE CAP. 이 트랜잭션에서 지불할 용의가 있는 가스 가격의 최대값입니다.

간단하게 보면 기존에는 사용자가 수수료를 위한 하나의 가스 가격만 결정하였다면, EIP-1559에서는 트랜잭션 수수료의 최대값과, 마이너 팁의 최대값을 결정하게 됩니다.

실제 트랜잭션에 적용되는 마이너 팁은 다음과 같은 공식에 의해 결정됩니다.

즉, 최대 수수료와 최대 마이너 팁이 같은 트랜잭션이라도 블록의 기본 수수료에 따라 마이너 팁이 달라질 수 있습니다.

기존 트랜잭션을 EIP-1559 트랜잭션으로 마이그레이션

EIP-1559가 적용된다고 하더라도 하위 호환성을 유지해야하는 문제가 있습니다. 만약 EIP-1559가 적용된 이더리움에 기존의 트랜잭션을 전송하면 어떻게 될까요?

서로 다른 트랜잭션 구조를 동시에 처리하려면 트랜잭션 풀(MEM POOL)을 트랜잭션 구조별로 따로 관리해야 하는 비효율성이 발생합니다. EIP-1559에서는 트랜잭션 형태에 따른 별도의 트랜잭션 풀을 관리하는 대신, 기존 트랜잭션을 EIP-1559 트랜잭션으로 변환하는 과정을 거쳐 처리하는 것을 제안하고 있습니다.

변환하는 과정은 다음과 같은 간단한 공식으로 처리됩니다.

위의 그림에서 보는 바와 같이, 기존 트랜잭션에 설정된 가스 가격(gas price)를 최대 수수료(fee cap)와 최대 마이너 팁(max miner bribe)으로 설정하여 변환하는 과정을 거치게 됩니다.

EIP-1559에 대한 경제적 분석

제안된 EIP-1559를 이더리움에 실제로 적용하기 위해서 많은 연구, 개발이 이루어지고 있습니다. 다양한 트랜잭션에 따른 시뮬레이션을 해보고, EIP-1559가 적용된 테스트넷을 개발하는 등의 노력이 이루어지고 있습니다.

수수료는 경제적인 영향을 미치는 영역이기 때문에 개발적인 연구이외에 이론적인 연구도 중요합니다. 최근에는 게임이론 전문가인 Tim Roughgarden이 EIP-1559에 대한 경제적 분석 리포트를 내놓았습니다. 58페이지의 적지않은 분량으로 된 리포트에서 10개의 핵심 포인트를 정리해 놓아서 소개합니다.

위의 10가지 항목 중 중요한 내용만 소개해보면 다음과 같습니다.

  • EIP-1559를 포함한 어떤 트랜잭션 수수료 메커니즘도 평균 수수료를 낮출 수는 없다. 높은 수수료는 확장성의 문제이지 수수료 메커니즘 설계의 문제가 아니다.
  • EIP-1559의 블록 크기의 유연한 변동성 덕분에 트랜잭션 수수료의 변동성과 트랜잭션 딜레이를 줄일 수 있다.
  • EIP-1559에서는 수수료를 쉽게 추정할 수 있기 때문에 사용자 경험을 개선할 수 있다.

여전히 풀어야 할 과제

비탈릭 부테린에 의해 2019년 4월에 제안된 EIP-1559는 많은 논의를 거치면서 발전하고 있습니다. 하지만 이더리움 1.0 메인넷에 적용하기 위해서는 풀어야 할 문제가 여전히 많이 남아있습니다.

2020년 12월 17일 기준으로 알려진 이슈를 간단히 두 가지만 소개해드립니다.

  • 마이너 이탈 문제
    : 경제적 분석이나 시뮬레이션을 통한 실험에 따르면, 기존 방식에 비해 마이너에 대한 인센티브가 약한 편은 아니라고 합니다. 그러나 여전히 수수료 보상이 낮아짐으로써 발생할 수 있는 마이너의 이탈 문제는 발생할 가능성이 있을 것 같습니다.
  • 트랜잭션 풀 재정렬 문제
    : EIP-1559가 적용되면 마이너들은 마이너 팁이 높은 트랜잭션을 먼저 처리하고 싶어할 것입니다. 그러기 위해서는 마이너 팁이 높은 순서대로 트랜잭션을 정렬할 수 있어야 합니다. 위에서 살펴보았듯이 EIP-1559에서는 블록별로 기본 수수료가 변동됩니다. 그리고 기본 수수료가 변동됨에 마이너 팁이 달라지게 됩니다. 이런 특성으로 인해 블록이 생성됨에 따라 트랜잭션 풀을 재정렬해야 하는 비효율성이 존재합니다.

나가며

수수료 구조는 이더리움 플랫폼을 사용하는 사용자와 이더리움 기반의 많은 댑 서비스들 그리고 댑 서비스와 사용자를 연결해주는 지갑에 큰 영향을 미치는 요소 중 하나입니다. 그런 측면에서 EIP-1559는 이더리움 1.0에서 많은 변화를 가져올 제안 중에 하나가 아닐까 싶습니다. EIP-1559를 통해 진화된 방식의 수수료 모델을 갖춰 나갈 수 있을지 기대되는 이유이기도 합니다.

참고 자료

[1] EIP-1559 제안 규격: https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1559.md
[2] EIP-1559 경제적 분석 리포트: http://timroughgarden.org/papers/eip1559.pdf
[3] EIP-1559 진행 상황 업데이트: https://hackmd.io/@timbeiko/1559-updates

--

--

Minho, Yoo | D'CENT wallet & WEPIN wallet
IOTRUST : Team Blog

Interested in Blockchain Tech. Developing Cryptocurrency wallet D’CENT and WEPIN. Learning is best way to improve.