EVM 거래가 revert하면 그 거래 실행에서 발생한 저장 상태 변경과 가치 이동은 원자적으로 되돌아갑니다. 그러나 validator가 거래를 포함하고 EVM이 조건을 검사하며 실행한 계산에는 gas가 사용되므로 sender는 실제 gas used에 대한 수수료를 냅니다. 탐색기에서 status가 failed인지, value·token balance가 유지됐는지, gas used와 effective gas price가 얼마인지 확인해야 ‘코인은 돌아왔지만 수수료는 줄었다’는 결과를 정확히 이해할 수 있습니다.
거래 포함과 실행 성공은 다른 상태입니다
서명한 transaction이 block에 포함되면 nonce가 소비되고 validator가 EVM 실행을 시도합니다. receipt status가 0이면 포함은 됐지만 실행이 실패한 것입니다. pending이나 dropped 거래와 달리 확정된 실패 거래는 기록에 남고 같은 nonce를 다시 쓸 수 없습니다.
ethereum.org는 transaction이 state를 바꾸는 서명된 지시이며 gas가 계산 비용이라고 설명합니다. 계약의 require 조건, 권한, 잔액, deadline이 맞지 않거나 REVERT opcode가 실행되면 성공 상태를 만들지 못합니다. 탐색기의 빨간 표시만 보고 network가 거래를 받지 않았다고 말하면 안 됩니다.
실패 거래는 실행 결과를 되돌리지만, 그 실패를 계산해 확인한 작업까지 무료로 만들지는 않습니다.
JOBCOIN 해설

그림은 이 주제의 공통 개념을 단순화한 설명입니다. 아래 항목에서 이 글의 구체적인 조건과 예외를 함께 읽어보세요.
- 거래 포함과 실행 성공은 다른 상태입니다
서명한 transaction이 block에 포함되면 nonce가 소비되고 validator가 EVM 실행을 시도합니다.
- 롤백되는 것과 남는 것을 나눕니다
REVERT가 최상위 거래를 실패시키면 해당 실행에서 바뀐 contract storage, token transfers, 내부 호출의 상태가 되돌아갑니다.
- 잔액 감소를 가스와 value로 분해합니다
실패 뒤 sender ETH가 줄었다면 먼저 gas used × effective gas price를 확인합니다.
AI로 제작한 개념도 · 실제 가격·거래 내역·통계가 아닙니다.
롤백되는 것과 남는 것을 나눕니다
REVERT가 최상위 거래를 실패시키면 해당 실행에서 바뀐 contract storage, token transfers, 내부 호출의 상태가 되돌아갑니다. EIP-140은 revert 시 state changes와 logs가 손실된다고 정의합니다. 따라서 실패 receipt에 성공한 Transfer event가 최종 로그로 남았다고 해석하지 않습니다.
반면 거래 자체의 hash, sender nonce 증가, block inclusion, gas consumption과 fee는 남습니다. maxFeePerGas 전체가 항상 청구되는 것은 아니며 실제 gas used와 fee 규칙에 따라 계산됩니다. 사용하지 않은 gas는 일반적으로 돌려받지만 이미 소비한 계산비는 반환되지 않습니다.
| 항목 | 일반적 결과 | 확인 위치 |
|---|---|---|
| ETH value 이동 | 롤백 | 주소 balance·trace |
| Token balance 변경 | 롤백 | contract balanceOf |
| Event logs | 실패 실행분 미반영 | receipt logs |
| Sender nonce | 소비 | account transaction count |
| Gas fee | 사용분 지불 | gas used·effective price |
잔액 감소를 가스와 value로 분해합니다
실패 뒤 sender ETH가 줄었다면 먼저 gas used × effective gas price를 확인합니다. 계약에 보내려던 ETH value는 성공하지 않았다면 목적지에 남지 않아야 합니다. 지갑 UI 캐시 대신 같은 block 이후의 주소 balance와 receipt를 조회합니다. L2는 실행 gas 외에 L1 data fee가 표시될 수 있어 항목이 다릅니다.
token swap 실패에서는 input token과 output token balance가 거래 전과 같고 native gas token만 줄어드는 경우가 흔합니다. approval 거래가 먼저 성공하고 swap이 실패했다면 allowance는 이전 transaction에서 이미 바뀌었을 수 있으므로 두 TxID를 각각 봐야 합니다.
- TxID와 올바른 chain을 엽니다.
- receipt status와 block 확인을 봅니다.
- gas used·effective price·L2 fee를 확인합니다.
- 전후 token balance와 allowance를 조회합니다.
- revert reason 또는 trace를 확인합니다.
원인을 모른 채 재전송하지 않습니다
insufficient allowance, deadline expired, slippage, paused contract, access control, wrong input처럼 논리 조건이 원인이면 gas limit을 높여도 반복 실패합니다. out of gas인지 contract revert인지 receipt gas 사용률, error data, simulation으로 구분합니다. 프런트엔드의 짧은 오류 문구만으로 확정하지 않습니다.
프록시 contract는 현재 implementation이 바뀌어 이전 simulation과 다를 수 있습니다. 호출한 to 주소, input selector, arguments를 verified source와 대조합니다. 같은 버튼을 반복 누르면 nonce가 다른 실패 transaction과 수수료만 늘어날 수 있습니다.
지원 문의에는 영수증 증거를 제공합니다
거래소나 dapp support에는 TxID, chain, wallet address, 요청한 기능, receipt status, error data를 제공합니다. 시드나 private key는 진단에 필요하지 않습니다. 실패했으니 자금이 모두 사라졌다는 주장과 환불을 위해 다시 서명하라는 DM을 경계합니다.
사용자 화면에는 ‘실패’와 함께 자산 상태는 롤백됐고 실행 수수료는 소비됐다는 설명이 필요합니다. L2·account abstraction은 fee payer나 bundler 구조가 다를 수 있으므로 해당 네트워크 문서도 확인합니다. 일반 Ethereum 규칙을 모든 chain에 숫자까지 그대로 적용하지 않습니다.
자주 묻는 질문
실패 거래에서 보내려던 ETH는 사라지나요?
최상위 실행이 revert했다면 value 이동은 롤백됩니다. 다만 사용된 gas fee는 지불됩니다.
gas limit을 높이면 모든 실패가 해결되나요?
아닙니다. slippage·권한·deadline 같은 논리 revert는 가스 증액으로 해결되지 않습니다.
실패한 swap 전에 승인한 allowance도 롤백되나요?
승인과 swap이 별도 transaction이면 승인 성공은 남을 수 있습니다. 각 TxID를 확인하세요.
더 깊이 읽기
본문에서 다룬 개념과 확인 절차를 다음 글에서 이어서 살펴보세요.



