이더리움 가스비 계산법: 기본 수수료·우선 수수료·가스 한도
이더리움에서 가스 단위, 가스 한도, 기본 수수료, 우선 수수료와 최대 수수료가 각각 무엇을 뜻하는지 살펴보고 실제 거래 비용을 계산합니다.
이 글에서 다루는 내용가스는 전송 금액이 아니라 계산 작업의 단위입니다
짧은 요약
이더리움 가스비는 거래가 실제로 사용한 가스 단위에 해당 블록의 유효 가스 가격을 곱해 계산합니다. 기본 수수료는 프로토콜이 정하고 소각하며, 우선 수수료는 검증자에게 전달될 수 있습니다. 최대 수수료는 상한이고 실제로 지불하는 단가와 다를 수 있습니다.
가스는 전송 금액이 아니라 계산 작업의 단위입니다
이더리움에서 가스는 EVM이 거래를 처리하는 데 필요한 계산 작업량을 세는 단위입니다. ETH를 보내는 단순한 거래는 비교적 적은 작업으로 끝나지만, 토큰을 옮기거나 스마트 컨트랙트의 여러 조건을 실행하면 더 많은 작업이 필요할 수 있습니다. 그래서 같은 시점에 같은 양의 ETH를 보내더라도, 수행하는 작업의 종류와 수에 따라 사용 가스가 달라집니다.
가스 단위는 작업량을 나타내고 가스 가격은 가스 한 단위에 지불할 ETH를 나타냅니다. 둘을 곱해야 수수료가 됩니다. 가스 한도는 사용할 수 있는 최대 단위 수이고, maxFeePerGas는 단위당 지불하겠다고 정한 상한입니다. 서로 다른 필드가 같은 종류의 “최대 수수료”를 나타내는 것은 아닙니다.
이 글은 이더리움 메인넷의 일반적인 EIP-1559 거래를 기준으로 설명합니다. 다른 블록체인이나 레이어 2는 수수료를 계산하는 구조, 결제 자산, 표시 방식이 다를 수 있습니다. 이더리움의 용어를 모든 네트워크에 그대로 적용하지 마세요. Ethereum.org의 가스 안내와 거래 설명은 필드별 정의를 제공합니다.
가스 사용량은 거래가 수행하는 작업에 따라 달라집니다
EVM은 연산과 상태 변경에 가스 비용을 매깁니다. 단순 이체와 달리 컨트랙트 호출에는 함수 실행, 저장값 확인이나 변경, 이벤트 기록 등 추가 작업이 들어갈 수 있습니다. 동작이 복잡하거나 실행 경로가 길수록 필요한 가스가 커질 수 있습니다. 가스 사용량은 보내는 ETH의 금액이나 토큰의 시장 가격을 직접 곱해서 계산하지 않습니다.
ETH 단순 전송, 토큰 전송, 디앱 호출은 서로 다른 작업을 실행합니다. 컨트랙트 호출에는 추가 함수 실행이나 저장값 읽기·변경이 들어갈 수 있어 단순 전송보다 가스를 더 쓸 수 있습니다. 블록에 포함된 거래 영수증에는 실제 사용한 가스가 기록됩니다.
Ethereum.org는 일반 ETH 전송의 예로 21,000 가스 단위를 듭니다. 이는 단순 전송을 위한 기준이지 컨트랙트 호출에 그대로 적용할 한도는 아닙니다. 컨트랙트 호출의 작업량은 실행하는 함수와 저장값 접근에 따라 달라질 수 있습니다.
이 두 요인은 비용을 서로 다른 방향으로 바꿉니다. 계산을 위한 가정으로 20,000 가스를 10 gwei 단가에 실행하면 20,000 × 10 = 200,000 gwei, 즉 0.0002 ETH입니다. 작업량만 30,000 가스로 늘고 단가가 같으면 비용은 0.0003 ETH가 됩니다. 작업량은 그대로 두고 단가만 12 gwei로 바꾸면 비용은 0.00024 ETH입니다. 앞의 증가는 컨트랙트가 수행한 일이 늘어난 결과이고, 뒤의 증가는 가스 단위당 가격이 오른 결과입니다. 지갑의 예상 수수료가 바뀌었을 때 이 둘을 구분하면 어느 입력이 변했는지 더 쉽게 파악할 수 있습니다.
가스는 서비스가 임의로 붙이는 “거래 수수료”와 구분해야 합니다. 거래소 출금 수수료에는 운영 비용이나 별도 정책이 포함될 수 있지만, 온체인 가스비는 네트워크에서 거래를 처리하는 계산 자원에 대한 비용입니다. 출금 화면에서 보는 금액이 네트워크 비용과 거래소 수수료를 합친 것인지 구분해서 읽으세요.
가스 한도와 실제 사용량은 서로 다릅니다
가스 한도(gasLimit)는 거래가 소비하도록 허용한 가스 단위의 최대치입니다. 실제 사용량(gasUsed)은 실행이 끝났을 때 실제로 소비된 양입니다. 한도를 높게 설정했다고 그 모든 단위의 비용을 자동으로 지불하는 것은 아닙니다. 거래가 정상적으로 포함되면 실제 소비한 가스에 유효 가스 가격을 곱한 비용이 적용되고, 사용하지 않은 한도 부분은 소비되지 않습니다.
거래 실행 자체가 가스를 모두 소모하면 가스 한도 전체가 소비되고 거래가 실패합니다. 해당 거래의 상태 변경은 되돌아가지만 실행 과정에서 사용한 가스 비용은 남습니다. 한도를 높이면 더 많은 작업을 실행할 여지가 생기지만 최대 가스 비용 상한도 커집니다. gasLimit × maxFeePerGas가 최대 가스 비용의 상한이며, 실제 청구액은 실제 사용량과 유효 가스 가격으로 결정됩니다.
가스 한도는 실제 사용량에 대한 예측값이 아니라 소비할 수 있는 최대 단위 수입니다. 한도는 단가가 아니며, 가스 가격을 올려도 부족한 가스 단위 수를 보완하지 못합니다. 거래가 무엇을 실행하는지 이해하지 못한다면 한도 숫자만 임의로 바꾸지 말고 디앱이나 지갑의 공식 안내를 먼저 확인하세요.
기본 수수료는 블록 공간 수요에 따라 움직입니다
EIP-1559 거래에서 기본 수수료(base fee)는 프로토콜이 블록마다 정하는 가스 단가의 기준입니다. 거래가 포함되려면 최대 수수료가 해당 블록의 기본 수수료를 감당할 수 있어야 합니다. 직전 블록에서 가스가 목표보다 많이 사용되면 기본 수수료가 올라가고, 목표보다 적게 사용되면 내려가는 방식으로 수요를 반영합니다. 따라서 기본 수수료는 영구히 고정된 요율이 아닙니다.
포함된 거래가 실제로 사용한 각 가스 단위에 대한 기본 수수료 몫은 소각됩니다. 검증자가 기본 수수료를 그대로 받는 구조가 아닙니다. 기본 수수료는 블록마다 바뀌므로 대기 중인 거래는 제출 시점과 포함 시점에 서로 다른 기본 수수료를 적용받을 수 있습니다.
기본 수수료 단위인 gwei는 ETH의 작은 단위입니다. 1 gwei는 0.000000001 ETH입니다. 가스 단가가 같아도 거래가 더 많은 가스를 쓰면 비용은 커집니다. 반대로 가스 사용량이 같아도 블록 공간 수요가 높아 기본 수수료가 오르면 ETH 기준 비용이 달라집니다. 이는 ETH의 달러 가격과는 별도의 변화입니다.
우선 수수료는 포함 순서를 유도하는 팁입니다
우선 수수료(priority fee, 팁)는 거래를 포함하는 검증자에게 제안하는 가스 단위당 보상입니다. 사용자들은 같은 블록 공간을 두고 경쟁하므로 팁이 높으면 다른 조건이 비슷할 때 거래를 더 빨리 포함할 유인이 생길 수 있습니다. 팁은 긴급도를 알리는 한 요소지만, 특정 블록이나 시간 안에 체결된다는 보장은 아닙니다.
수수료 화면에서 “priority fee”가 높게 보이면 실제 가스 단위 수도 높은지와는 다른 문제입니다. 우선 수수료는 가스 단위당 가격을 바꾸고, 가스 한도는 허용할 작업량을 제한합니다. 복잡한 컨트랙트 거래는 팁을 높여도 실행에 필요한 한도가 부족하면 실패할 수 있습니다. 반대로 필요한 가스 단위를 충분히 확보해도 단가 상한이 기본 수수료를 감당하지 못하면 거래가 포함되지 않을 수 있습니다.
검증자의 거래 선택에는 블록 공간과 다른 거래의 조건도 작용합니다. 기본 수수료와 블록 공간은 시간에 따라 달라지며, 팁이 높아도 특정 블록이나 시간 안에 포함된다는 보장은 없습니다. EIP-1559 명세는 기본 수수료와 팁이 다른 역할을 하고, 둘의 합이 최대 수수료 상한을 넘을 수 없도록 정의합니다.
최대 수수료는 실제 단가가 아니라 단가 상한입니다
maxFeePerGas는 가스 한 단위에 대해 감당할 최대 ETH 가격입니다. maxPriorityFeePerGas는 그중 팁으로 지불할 최대 단가입니다. 거래가 포함될 때 실제 단가는 기본 수수료에 실제로 적용된 팁을 더해 정해집니다. 팁은 maxPriorityFeePerGas와 maxFeePerGas - baseFee 중 더 작은 값으로 제한되므로 실제 단가가 최대 수수료를 넘지 않습니다.
예를 들어 최대 수수료가 30 gwei, 최대 팁이 2 gwei, 블록 기본 수수료가 18 gwei라면 가능한 팁은 2 gwei입니다. 실제 단가는 20 gwei입니다. 이때 maxFeePerGas가 30이라는 이유로 거래가 30 gwei를 무조건 지불하는 것은 아닙니다. 반대로 기본 수수료가 31 gwei라면 30 gwei 상한으로는 그 블록에 포함될 수 없습니다. 지갑이 거래를 기다리게 하거나, 사용자가 설정을 다시 검토해야 할 수 있습니다.
기본 수수료가 최대 수수료에 가까워지면 팁에 쓸 수 있는 여유가 줄어듭니다. 최대 팁을 5 gwei로 설정했더라도 maxFeePerGas - baseFee가 1 gwei뿐이면 실제 팁은 최대 1 gwei입니다. 그러므로 “팁 상한”만 보지 말고 두 상한과 당시 기본 수수료의 관계를 함께 읽어야 합니다.

가상 숫자로 실제 비용과 상한을 계산해 봅니다
다음은 계산 방법을 보여 주기 위한 가정입니다. 가스 한도는 30,000 단위, 실제 사용량은 24,000 단위, 기본 수수료는 18 gwei, 최대 팁은 2 gwei, 최대 수수료는 30 gwei라고 하겠습니다. 실제 팁은 min(2, 30 - 18) = 2 gwei이고 유효 단가는 18 + 2 = 20 gwei입니다.
실제 가스비는 24,000 × 20 = 480,000 gwei입니다. 1 ETH가 1,000,000,000 gwei이므로 480,000 gwei는 0.00048 ETH입니다. 이 중 기본 수수료 부분은 24,000 × 18 = 432,000 gwei 또는 0.000432 ETH이고, 팁 부분은 24,000 × 2 = 48,000 gwei 또는 0.000048 ETH입니다. 두 부분의 합이 실제 가스비와 일치합니다.
수수료 상한만 곱한 30,000 × 30 = 900,000 gwei, 즉 0.0009 ETH는 이 가스 한도와 최대 단가를 전부 사용한다고 가정할 때의 가스비 상한입니다. 이 사례의 실제 가스비 0.00048 ETH와 같지 않습니다. 송금 거래라면 받는 사람에게 보내는 ETH 금액도 별도입니다. 최대 수수료를 전송 금액에 더해 고정으로 빠져나간다고 계산하거나, 실제 가스비를 ETH 전송액의 비율이라고 오해하지 마세요. 숫자는 설명용 가정이며 현재 네트워크 호가가 아닙니다.
실패한 거래에도 비용이 들 수 있습니다
“실패”라는 화면만 보고 가스비가 환불될 것이라고 단정하면 안 됩니다. 거래가 블록에 포함되어 EVM 실행을 시작한 뒤 조건을 충족하지 못해 되돌아가면 상태 변경은 취소되지만, 처리에 소비한 가스의 비용은 남을 수 있습니다. 거래 실행 자체가 가스를 모두 소모하면 설정한 가스 한도 전체가 소비됩니다. 계산 자원을 사용했기 때문에 결과가 성공인지 여부와 실행 비용은 별도로 처리됩니다.
반면 거래가 블록에 포함되기 전에 유효성 검사를 통과하지 못해 거절되는 상황은 다릅니다. 예를 들어 단순 ETH 전송에 필요한 양보다 낮은 가스 한도로 제출한 거래는 블록에 들어가기 전에 거절될 수 있고, 그런 경우에는 실행 가스가 소비되지 않습니다. “네트워크가 거절한 거래”와 “온체인 실행까지 갔다가 되돌아온 거래”는 같은 상태가 아닙니다.
거래 해시를 확인할 때 성공 여부와 함께 사용 가스, 유효 가스 가격, 실행 결과를 살펴보세요. 지갑의 실패 문구만으로 원인을 추정하기보다 공식 블록 탐색기에서 세부 내역을 확인하는 편이 정확합니다. Ethereum.org도 가스 비용은 거래가 성공했는지와 별개로 발생할 수 있고, 한도 부족으로 사전 거절된 사례와 실행 중 가스를 모두 쓴 사례를 구분해 설명합니다.
확인 화면에서 한도·가격·전송액을 따로 읽습니다
서명하기 전에는 먼저 이더리움 메인넷과 다른 네트워크 중 어디에 있는지 확인하고, 거래가 단순 전송인지 컨트랙트 호출인지 이해하세요. 지갑이 보여 주는 실제 예상 수수료, 가스 한도, 기본 수수료 추정, 우선 수수료 상한, 최대 수수료 상한, 전송할 ETH나 토큰 금액은 서로 다른 값입니다. 화면에 최대 가스 비용만 나오면 이를 확정 청구액으로 착각하지 말고 설명을 열어 어떤 상한을 뜻하는지 확인하세요.
지갑이 수수료 필드를 자동으로 채워 주더라도 제안값은 그 시점의 네트워크 상태를 바탕으로 한 추정치입니다. 거래가 언제 포함될지, 최종 비용이 얼마일지 보장하지 않습니다. 가격 상한이 낮으면 거래가 대기할 수 있습니다. 실행 내용을 모른 채 가스 한도나 팁을 높이면 최대 비용만 커지고 문제는 해결되지 않을 수 있습니다. 현재 표시값과 거래 내용을 확인한 뒤 이해되는 경우에만 서명하세요.
이 설명은 Ethereum 메인넷의 표준 거래 흐름을 다룹니다. 레이어 2나 다른 체인은 실행 수수료 외에 별도 데이터 비용을 보여 주거나 수수료 자산과 계산 방식을 달리할 수 있습니다. 다른 네트워크의 화면을 이더리움 가스 공식에 그대로 대입하지 마세요. 네트워크 선택 실수는 송금 네트워크·주소·메모 확인 안내에서, 컨트랙트가 토큰을 사용할 수 있는 별도 권한은 토큰 승인 안내에서 이어서 확인할 수 있습니다.
자주 묻는 질문
Q1왜 실패한 거래에도 ETH가 차감될 수 있나요?
거래가 블록에 포함되어 실행된 뒤 되돌아가면 상태 변경은 취소되어도 이미 수행한 계산의 가스 비용은 남을 수 있습니다. 블록에 포함되기 전에 유효성 검사에서 거절된 상황과 구분하고 거래 해시의 실제 상태를 확인하세요.
Q2`maxFeePerGas`가 지갑에 표시된 실제 가스 단가인가요?
아닙니다. 단위당 지불할 최대 상한입니다. 실제 단가는 포함된 블록의 기본 수수료와 상한 안에서 적용된 팁을 합쳐 결정되며, 최대 수수료를 그대로 지불하지 않을 수 있습니다.
Q3이더리움 메인넷에서 가스비는 ETH로 내나요?
일반적인 Ethereum 메인넷 거래에서는 가스 비용을 네이티브 자산인 ETH로 냅니다. 지갑이 다른 토큰이나 제삼자 후원을 표시한다면 별도의 수수료 대납 구조인지 확인하세요. 다른 체인에는 같은 규칙이 적용되지 않을 수 있습니다.
출처와 더 읽을 자료
내용 정정 제보
이 아티클 링크를 담은 이메일 초안을 준비합니다. 직접 보내야 Mark에 제보가 접수됩니다
QUICK CHECK
글을 다 읽었다면, 3문항으로 확인해보세요
Question 01
가스 한도(`gasLimit`)가 뜻하는 것은 무엇인가요?
정답을 고르면 바로 설명을 볼 수 있어요