안녕하세요. 이번 포스팅에서는 EIP-1559 런던 하드포크 이후 수수료 모델이 어떻게 변화되었는지 알아보겠습니다.
EIP-1559 이전의 수수료 모델
기존의 수수료 모델은 이더를 전송하는 사용자가 가스비를 예측해야 하는 눈치싸움을 해야 했습니다.
채굴자는 가스비를 높게 설정한 사용자의 트랜잭션을 우선적으로 처리하기 때문에 가스비를 낮게 설정한 사용자의 트랜잭션은 멤풀에서 아주 긴 시간을 대기했습니다.
위와 같은 이유로 이더를 빠르게 전송하기 위해 사용자는 높은 가스비를 설정했으며, 이는 종종 가스비가 폭등하게 되는 원인이 되었습니다.
이러한 문제를 해결하기 위해 이더리움 수수료 절감을 위한 개선안인 EIP-1559 제안이 나오게 되었습니다. EIP-1559는 2021년 8월에 런던 하드포크가 진행될 때 적용되었습니다.
EIP-1559 이후의 수수료 모델
baseFee, maxFee, tip 개념이 도입되었습니다.
baseFee는 이더를 전송하는 사용자가 무조건 마이너에게 지불해야 하는 수수료(이더)입니다.
maxFee는 내가 최대로 지불할 수 있는 수수료입니다.tip은 말 그대로 채굴자에게 주는 tip입니다.
용어로 얘기하자면 priority fee라고 합니다.
baseFee는 블록마다 달라지게 되는데요. 이전 블록의 gasUsed, gasTarget을 기반으로 아래 공식에 의해 자동으로 정해집니다.

gasTarget은 15million인데 이전 블록에서 gasTarget이 15million보다 높았으면 공식에 의해 baseFee가 높아집니다.
baseFee가 높아짐에 따라 사용자들이 트랜잭션을 일으키고자 하는 욕구를 억제시킬 수 있습니다.
반면에, 이전 블록에서 gasTarget이 15million보다 낮았다면 baseFee가 낮아지게 되고 이는 사용자들이 트랜잭션을 일으키고자 하는 욕구를 증가시킬 수 있습니다.
EIP-1559 수수료 설정 방법
사용자들은 MaxFee와 PriorityFee를 설정만 하면 됩니다.
만약 사용자가 (MaxFee, PriorityFee) = (60, 2)로 설정했다고 가정해보겠습니다. 단위는 Gwei입니다.
가스비가 결정되는 경우의 수는 총 3가지가 있습니다.
1. baseFee > maxFee(60)
만약 baseFee가 maxFee보다 크다면 해당 블록에 해당 트랜잭션을 포함시키지 않습니다.
즉, 내가 최대로 낼 수 있는 수수료가 기본적인 baseFee보다 낮으니 해당 블록에서 이더나 토큰 전송이 불가능합니다.
이런 경우에는 baseFee가 maxFee보다 낮아질 때까지 해당 트랜잭션은 멤풀에서 대기하게 됩니다.
2. (maxFee - priorityFee) < baseFee < maxFee(60)
즉, 58 < baseFee < 60인 경우에는 채굴자가 사용자가 발생시킨 트랜잭션을 해당 블록에 포함시킬지 안시킬지 선택할 수 있습니다.
만약 해당 블록에 트랜잭션을 포함시킨다면 채굴자는 (maxFee(60) - baseFee)만큼의 수수료를 받아갑니다.
참고로 baseFee는 소각됩니다.
결과적으론 사용자는 maxFee를 모두 사용하게 됩니다.
3. baseFee < (maxFee - priorityFee)
즉, baseFee < 58인 경우에도 채굴자가 사용자가 발생시킨 트랜잭션을 해당 블록에 포함시킬지 안시킬지 선택할 수 있습니다.
만약 해당 블록에 트랜잭션을 포함시킨다면 채굴자는 priorityFee(2)만큼의 수수료를 받아갑니다.
위와 마찬가지로 baseFee는 소각됩니다.
결과적으로 사용자는 baseFee + priority 만큼을 사용하게 됩니다.
새로운 수수료 모델 도입의 장단점
이렇게 새로운 수수료 모델의 도입은 장단점이 있습니다.
장점으로는 급격한 네트워크 사용량 증가에 따른 높은 가스비를 내지 않아도 됩니다.
단점으로는 채굴자들의 수익이 감소되어 채굴자의 수가 빠질 수 있습니다.
참고