Fee Market — x/feemarket (EIP-1559 BaseFee)

mechanism economics

OKRW 가스를 위한 EIP-1559 호환 base fee 시장입니다. 발신자는 base fee와 priority tip을 모두 atokrw로 지불합니다.

마루의 x/feemarket 모듈은 OKRW 가스를 위한 EIP-1559 호환 base fee를 구현합니다. 발신자는 maxFeePerGas와 maxPriorityFeePerGas를 지정해 트랜잭션을 제출하며, 표준 EVM 툴은 별도 설정 없이 이 값을 채웁니다. 다만 이더리움과 세 가지가 다릅니다. 과금 가스에는 트랜잭션 뒤에 실행되는 컴플라이언스(PCL)·에이전트 검사가 포함되고 가스 한도의 절반보다 적지 않습니다. 수수료는 atokrw로 지불되며 소각되지 않고 스테이커에게 분배됩니다. 그리고 마루 테스트넷에서 base fee는 하한인 min_gas_price(8,000 gwei)에 머뭅니다.

수수료 부과 방식

PCL을 통과한 각 트랜잭션에 대해 다음과 같이 수수료를 부과합니다.

1. 유효 가스 가격은 min(maxFeePerGas, baseFee + maxPriorityFeePerGas)입니다.
2. 과금 가스는 트랜잭션이 사용한 가스(트랜잭션 뒤에 실행되는 컴플라이언스(PCL)·에이전트 검사 포함)와 가스 한도의 절반(min_gas_multiplier = 0.5) 중 큰 값입니다. 한도 중 그보다 남는 부분만 환불되므로, 추정치보다 한도를 지나치게 높게 잡으면 그 절반까지 비용을 치릅니다.
3. 총 수수료는 유효 가스 가격 × 과금 가스이며 atokrw 단위입니다.
4. 수수료 전체(base 부분과 tip 모두)는 fee collector로 들어가고, x/distribution이 지분에 비례해 검증인과 위임자에게 나눠 줍니다. 소각되는 부분은 없고, 블록 제안자가 추가로 받는 몫도 없습니다(base_proposer_reward와 bonus_proposer_reward가 0).

발신자가 지불하는 금액은 maxFeePerGas × 과금 가스를 넘지 않습니다.

툴링 함의 — Hardhat, Foundry, ethers.js

수수료 시장이 EIP-1559 호환이므로 모든 표준 EVM 툴이 수정 없이 작동합니다:

  • eth_gasPrice는 합리적인 legacy 가스 가격을 반환합니다 (baseFee + 제안된 priority fee로 계산).
  • eth_feeHistory는 이더리움과 동일하게 최근 base fee와 reward percentile의 롤링 윈도우를 반환합니다.
  • eth_maxPriorityFeePerGas는 제안된 priority tip을 반환합니다.


Hardhat의 --network maroo, Foundry의 forge create --rpc-url, ethers.js의 provider.getFeeData()가 maxFeePerGas와 maxPriorityFeePerGas를 올바르게 채웁니다. 커스텀 수수료 전략은 필요하지 않습니다.

이전 마루 docs에서 NoBaseFee = true를 본 적이 있다면, 이는 정식 체인에 출시되지 않은 초기 프로토타입 설정이었습니다. 현재 활성 설정은 BaseFee가 활성화된 x/feemarket을 사용합니다.

파라미터 가시성과 조정

x/feemarket은 표준 EIP-1559 파라미터를 온체인 모듈 파라미터로 노출합니다.

  • base_fee — 현재 base fee(가스당 atokrw)입니다. 블록의 baseFeePerGas(eth_getBlockByNumber)로 읽으며, eth_gasPrice는 base fee에 제안 tip을 더한 값을 반환합니다. 마루 테스트넷에서는 블록이 가스 목표치에 한참 못 미치므로(블록 가스 한도가 사실상 무제한) base fee가 min_gas_price에 머뭅니다.
  • min_gas_price — base fee가 하락하지 않는 하한입니다(마루 테스트넷에서 가스당 8 × 10^12 atokrw, 즉 8,000 gwei). 거버넌스로 통제됩니다.
  • min_gas_multiplier — 사용량이 더 적어도 과금되는 가스 한도의 비율입니다(마루 테스트넷 0.5). 거버넌스로 통제됩니다.
  • elasticity_multiplier, base_fee_change_denominator — base fee가 가스 사용량에 얼마나 공격적으로 조정될지 제어하며, 거버넌스로 통제됩니다.


일상적인 dapp 작업에서는 base_fee만 필요하며, 표준 JSON-RPC가 이를 제공합니다. 다른 파라미터는 체인 운영자가 수수료 반응성을 튜닝하는 노브입니다.
ESC
검색어를 입력하세요