이더리움 가스는 계산과 저장 작업량의 단위이고, 수수료는 실제 gas used에 적용 가스 가격을 곱한 값이다. 계약 실행이 되돌려져도 검증자가 이미 수행한 작업의 가스는 소비될 수 있다.
가스는 연산량, 수수료는 가격이다
가스는 이더리움 연산량 단위이고 실제 수수료는 사용한 가스와 단위당 가격의 곱으로 정해지며, 거래가 실패해도 이미 수행한 계산 비용은 소모된다
가스는 이더리움 실행에 필요한 계산과 저장 작업량을 재는 단위다. 실제 수수료는 사용한 가스와 가스당 가격의 곱으로 결정된다. ETH를 많이 보낸다고 단순 전송의 계산량이 비례해 늘지는 않는다.
실행 결과가 되돌아가도 검증자가 수행한 계산의 가스까지 없던 일이 되지는 않는다.
JOBCOIN 해설
EIP-1559 거래의 비용 계산
EIP-1559형 거래는 base fee와 priority fee를 분리하고 사용자는 maxFeePerGas와 maxPriorityFeePerGas 상한을 제시한다. gas limit은 거래가 사용할 수 있는 연산량 상한이다. 남은 가스는 환불되지만 실행 중 revert나 out-of-gas가 발생하면 상태 변경은 취소돼도 사용한 가스 비용은 남는다.
EIP-1559 거래는 블록의 혼잡에 따라 정해지는 base fee와 검증자에게 주는 priority fee를 사용한다. 사용자는 max fee 상한을 제시하며 실제 지불액이 항상 상한과 같지는 않다. 소각되는 기본 수수료와 팁의 수취 주체도 다르다.
gas used·limit·fee per gas 비교
gas limit는 거래가 쓸 수 있는 최대 작업량, gas used는 실제 소비량, effective gas price는 실제 적용된 단가다. limit를 높였다고 전부 청구되는 것은 아니지만 실행이 limit를 넘으면 out of gas로 실패한다.
| 항목 | 의미 | 검증 포인트 |
|---|---|---|
| gas used | 실제로 소비한 연산 단위 | 영수증의 실제 사용량 확인 |
| gas limit | 허용한 최대 연산량 | 너무 낮으면 out-of-gas 위험 |
| fee per gas | 단위당 지불 가격 상한·팁 | base fee와 priority fee 구분 |
스왑이 실패해도 가스가 드는 사례
단순 ETH 전송과 복잡한 토큰 스왑은 같은 금액을 보내더라도 연산 단계가 다르다. 스왑이 최소 수령량 조건 때문에 revert되면 토큰 교환은 일어나지 않지만 검증자가 실행을 시도한 계산은 블록에 기록돼 가스비가 나갈 수 있다.
스왑이 가격 조건 위반으로 되돌아가도 검증자들이 서명 검증과 계약 실행을 수행했다면 그 시점까지의 가스는 소비된다. 토큰 교환 결과가 없는데 ETH 수수료만 줄어든 기록은 이 구조로 설명할 수 있다.
송금액과 가스비는 비례하지 않는다
가스비가 송금액의 일정 비율이라는 생각은 틀리다. 연산 복잡도와 블록 수요가 핵심이며 1달러 상당 전송과 1만달러 상당 단순 전송의 기본 가스 단위는 같을 수 있다. '실패 수수료 환불'을 당연시해서도 안 된다.
1 ETH 전송과 100 ETH 전송이 같은 단순 transfer라면 연산 경로가 같아 가스 사용량도 비슷할 수 있다. 반대로 적은 금액이라도 복잡한 라우팅과 여러 계약 호출을 포함하면 가스가 커질 수 있다.
영수증에서 실패 원인을 찾는 순서
거래 영수증에서 status, gas used, effective gas price를 확인하고 호출한 계약 함수와 revert 이유를 본다. 지갑의 오류 문구가 짧다면 같은 블록 높이에서 상태를 재현하는 시뮬레이션이 원인 파악에 도움 되지만 결과를 보증하지는 않는다.
- 지갑 예상값에서 gas limit과 단위당 가격을 나눠 본다
- 계약 호출 전 시뮬레이션과 최소 수령 조건을 확인한다
- 실패 시 receipt의 status·gas used·revert 이유를 본다
- 브리지·L2는 실행비와 데이터 게시비가 따로 보일 수 있음을 확인한다
예상 수수료가 확정 금액이 아닌 이유
지갑의 예상 수수료는 확정 금액이 아니다. 포함 시점의 base fee, 실제 실행 경로, 환불 규칙에 따라 바뀐다. 수수료 절감을 위해 무조건 낮은 상한을 쓰면 거래가 오래 대기하고 같은 nonce의 후속 거래도 막을 수 있다. 취소 거래 역시 새 거래이므로 별도 가스가 필요하다.
지갑의 예상 수수료는 현재 base fee, 예상 가스 사용량, 사용자가 정한 팁을 바탕으로 한 견적이다. 다음 블록의 혼잡과 실제 실행 경로가 바뀌면 달라진다. 승인과 스왑이 별도 거래라면 각각 수수료가 든다.
가스 추정 실패는 잔액 부족만의 문제가 아니다. 승인 한도, 계약의 일시 중지, 슬리피지 조건, 이미 사용된 nonce 때문에 시뮬레이션이 되돌아갈 수 있다. 오류가 날 때 gas limit를 무작정 높이면 논리 조건은 해결되지 않고, 실제 실패 거래의 최대 지출 범위만 커질 수 있다.
동일한 계약 호출을 비교할 때는 ETH 환산 금액만 보지 말고 gas used와 effective gas price를 나눈다. gas used가 늘었다면 실행 경로가 달라졌을 가능성이 있고 단가만 올랐다면 블록 혼잡이나 팁 설정을 살핀다. L2에서는 별도의 데이터 게시 비용이 합산될 수 있어 영수증 항목 정의를 확인한다.
자주 묻는 질문
실패 거래는 왜 수수료가 드나요?
노드가 거래를 실행해 실패 조건에 도달하기까지 계산 자원을 사용했기 때문이다.
gas limit을 높이면 무조건 더 많이 내나요?
상한을 높였다고 전부 소비되는 것은 아니다. 실제 사용량과 단위당 가격에 따라 비용이 정해지고 미사용 가스는 남는다.
가스비가 비싸면 이더리움 가격이 오른 건가요?
직접 같은 뜻이 아니다. ETH 표시 비용은 네트워크 수요와 fee market, 법정화폐 환산은 ETH 가격의 영향을 함께 받는다.



