mirror of
https://github.com/ethereum/go-ethereum.git
synced 2026-08-20 02:42:27 +00:00
EIPs: add eip-1559.md
This commit is contained in:
parent
6d81e29101
commit
9b9ef6a52d
1 changed files with 58 additions and 0 deletions
58
EIPs/eip-1559.md
Normal file
58
EIPs/eip-1559.md
Normal file
|
|
@ -0,0 +1,58 @@
|
||||||
|
# EIP-1559: Fee market change for ETH 1.0 chain
|
||||||
|
|
||||||
|
|
||||||
|
## TL;DR
|
||||||
|
EIP-1559는 이더리움 네트워크에서 트랜잭션 수수료를 계산하는 새로운 방식입니다. 기존에는 사용자가 직접 수수료를 입찰하는 방식이었다면, EIP-1559에서는 기본 수수료는 네트워크 혼잡도에 따라 동적으로 조정되며, 소각(Burn)됩니다. 또한 블록 사이즈도 동적으로 확장 및 축소되어 네트워크 혼잡을 효과적으로 처리할 수 있습니다.
|
||||||
|
** EIP-1559에서 블록 사이즈는 블록의 데이터 크기가 아닌, 한 블록에 담기는 총 가스 수량을 의미합니다.
|
||||||
|
|
||||||
|
|
||||||
|
## Abstract
|
||||||
|
기본 수수료(Base Fee)는 이전 블록의 가스 사용량을 기반으로 계산됩니다. 이전 블록이 목표 가스 사용량보다 많은 가스를 사용했다면 기본 수수료가 상승하고, 그렇지 않다면 하락합니다. 이렇게 계산된 기본 수수료는 채굴자에게 지급되지 않고, 소각되어 영구적으로 제거됩니다. EIP-1559가 적용된 이후의 트랜잭션을 제출할 때 사용자는 최대 수수료(Maximum Fee)를 설정하는데, 최대 수수료는 기본 수수료와 우선순위 수수료(Priority Fee)의 합입니다. 우선순위 수수료는 마이너에게 지급되는 인센티브로, 이는 사용자가 직접 설정합니다. 실제 사용자가 지불하는 수수료는 baseFee와 PriorityFee의 합이며, 이 값은 최대 수수료를 초과할 수 없습니다.
|
||||||
|
|
||||||
|
## Motivation
|
||||||
|
EIP-1559 이전의 이더리움은 자유경매 매커니즘으로 transactionFee를 결정했습니다. 사용자가 트랜잭션을 제출할 때 입찰가격(Gas Price)를 제시하면, 채굴자는 가장 높은 입찰 가격을 가진 트랜잭션을 선택하여 블록에 포함시켰습니다. 그러나 이런 기존 방식에는 몇가지 문제점이 있습니다.
|
||||||
|
|
||||||
|
첫째, 트랜잭션 수수료 수준의 변동성과 트랜잭션의 실제 네트워크 비용이 일치하지 않습니다.
|
||||||
|
자유 경매 메커니즘으로 transactionFee가 결정되고, 블록이 가득 찰 정도로 충분히 사용되는 성숙한 블록체인에서, 이 체인에 트랜잭션을 포함시키려는 transactionFee의 입찰가는 예측하기 어렵고 변동성이 매우 큰 경향이 있습니다. 또한 실제 네트워크 비용이 수수료에 반영되지 않아 네트워크 과부하 조절 기능이 떨어졌습니다. 예를 들어 네트워크가 혼잡하지만 transactionFee가 낮아 오히려 네트워크를 더 혼잡하게 만들 수 있습니다.
|
||||||
|
|
||||||
|
둘째, 최고 입찰가 트랜잭션만 선택되는 경매 방식은 비효율적이고 예측할 수 없으며, 복잡한 수수료 측정 메커니즘이 필요합니다. 사용자는 자신이 얼마나 수수료를 지불해야 네트워크에 자신의 트랜잭션을 포함시킬 수 있을지 예측할 수 없습니다. 따라서 종종 사용자의 트랜잭션은 너무 낮은 수수료를 제시하여 네트워크에 포함되지 못하거나, 혹은 너무 높은 수수료를 지불하였습니다.
|
||||||
|
|
||||||
|
마지막으로 장기적으로 블록 보상이 없어지면, 트랜잭션 수수료만으로 채굴자에게 보상을 지급해야 하는데 이때 수수료를 훔치려는 공격(sister block, selfish mining) 등에 대한 유인이 높아질 수 있습니다.
|
||||||
|
|
||||||
|
EIP-1559에서 제시된 fee 계산 메커니즘은 네트워크 혼잡도에 따라 baseFee를 동적으로 조절합니다. 또한 baseFee의 변동폭은 제한되어 있어 이전 블록을 참고하여 블록간 수수료의 최대 차이를 예측할 수 있습니다. 이를 통해 지갑 dApp들은 안정적인 방식으로 사용자의 가스요금을 자동으로 설정할 수 있고, 사용자는 자신의 트랜잭션을 포함시키기 위해 과도한 수수료를 지불하거나, 너무 낮은 fee를 제시하여 트랜잭션이 포함되지 못하는 상황을 피할 수 있습니다.
|
||||||
|
주목할 점은 계산된 기본 수수료는 항상 소각되고, 채굴자들은 PriorityFee만 받는 것입니다. 기본 수수료의 소각으로 이더리움의 인플레이션을 상쇄하는 동시에, 채굴자에게 블록보상과 PriorityFee를 제공할 수 있습니다.
|
||||||
|
채굴자가 사용자로부터 수수료를 추출하기 위해 체인을 조작할 유인을 제거하기 때문에 채굴자가 기본 수수료를 받지 않도록 하는 것은 매우 중요합니다.
|
||||||
|
|
||||||
|
## BaseFee 계산 메커니즘
|
||||||
|
|
||||||
|
** EIP-1559에서 블록사이즈는 블록의 데이터크기가 아닌, 한 블록에 담기는 총 가스 수량을 의미합니다.
|
||||||
|
|
||||||
|
EIP-1559에서는 이전 블록의 사이즈가 목표 블록 사이즈보다 크면 트랜잭션 수요를 줄여야 하므로 기본 수수료(Base Fee)를 증가시킵니다. 반대로 이전 블록 사이즈가 목표치보다 작으면 수요를 늘려야 하므로 기본 수수료를 감소시킵니다.
|
||||||
|
|
||||||
|
이 때 현재 블록의 기본 수수료는 이전 블록 수수료의 12.5% 범위 내에서만 변화할 수 있습니다. 만약 기본 수수료가 0이 되면 사실상 기존의 자유 경매 시스템과 가격 측정 메커니즘과 동일해집니다.
|
||||||
|
|
||||||
|
더 빨리 블록에 포함되길 원하는 트랜잭션은 채굴자에게 우선순위 수수료(Priority Fee)를 지불하여 우선순위를 높일 수 있습니다.
|
||||||
|
|
||||||
|
사용자는 지불할 의사가 있는 최대 가스량(Fee Cap)을 설정하며, 실제 지불 수수료는 기본 수수료와 우선순위 수수료의 합으로 이 최대 수수료 한도를 초과할 수 없습니다. 따라서 최대 수수료는 항상 기본 수수료보다 높아야 합니다.
|
||||||
|
|
||||||
|
구체적인 baseFee를 결정하는 메커니즘은 다음 식과 같습니다.
|
||||||
|
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
타겟 블록사이즈는 이전 블록의 최대 사이즈 / 2 이고, 이전 블록의 사이즈는 최소 0에서 최대 타겟 블록사이즈의 두배 이므로 다음과 같습니다.
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
위 식에 의해 현재 블록의 baseFee는 아래의 범위 내에서 정해집니다.
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
|
||||||
|
## Reference
|
||||||
|
|
||||||
|
https://eips.ethereum.org/EIPS/eip-1559
|
||||||
|
|
||||||
|
https://medium.com/@mrclo0116/eip-1559%EB%9E%80-%EB%AC%B4%EC%97%87%EC%9D%B8%EA%B0%80-29e9da06fff2
|
||||||
|
|
||||||
|
https://consensys.io/blog/what-is-eip-1559-how-will-it-change-ethereum
|
||||||
Loading…
Reference in a new issue