본문 바로가기
리치한정보 리치한정보

같은 거래인데 수수료는 왜 달라질까? 블록체인 가스비의 원리

richissue 읽는 시간 약 22분

이더리움 가스비는 왜 거래할 때마다 달라질까요? Gas Used와 Base Fee, Priority Fee, Gas Limit의 차이부터 거래 실패 시 수수료가 발생하는 이유까지 쉽게 알아봅니다.

이더리움에서 ETH를 보내거나 토큰을 교환하려고 하면 거래를 승인하기 전에 예상 수수료가 표시됩니다.

그런데 이상한 점이 있습니다.

어제 했던 것과 거의 같은 거래인데 오늘은 수수료가 다르고, 단순히 ETH를 보내는 것보다 토큰을 교환하거나 디파이를 이용할 때 더 많은 수수료가 나타나기도 합니다.

심지어 같은 시간에 거래하더라도 어떤 작업을 하느냐에 따라 필요한 비용이 달라집니다.

이 차이를 이해하려면 가스비를 단순한 ‘송금 수수료’로 보면 안 됩니다.

이더리움에서 Gas는 거래와 스마트 계약을 실행할 때 필요한 작업량을 측정하는 단위이고, 가스비는 그 작업을 실제로 실행하기 위해 ETH로 지불하는 비용입니다.

쉽게 말하면 얼마나 많은 작업을 했는가그 작업 한 단위의 가격이 얼마였는가가 합쳐져 최종 수수료가 결정됩니다.

가스와 가스비는 같은 것이 아니다

먼저 가장 많이 헷갈리는 부분부터 구분해야 합니다.

가스(Gas)는 돈의 단위가 아닙니다.

이더리움 가상머신이 어떤 작업을 실행할 때 필요한 계산량을 측정하기 위한 단위에 가깝습니다.

단순한 ETH 전송은 비교적 적은 작업이 필요하지만 스마트 계약에서 여러 조건을 확인하고 데이터를 변경하면 더 많은 작업이 필요합니다.

그래서 거래마다 사용하는 가스의 양도 달라질 수 있습니다.

반면 가스비(Gas Fee)는 이렇게 사용한 가스에 당시의 가스 단위당 가격을 적용해 실제 ETH로 지불하는 금액입니다.

자동차에 비유하면 가스 사용량은 이동에 필요한 연료의 양이고, 가스 가격은 연료 1리터의 가격과 비슷합니다.

같은 거리를 달려도 기름값이 달라지면 실제 지출액이 달라지는 것처럼, 같은 작업에 비슷한 양의 가스를 사용해도 네트워크 상황에 따라 최종 수수료가 달라질 수 있습니다.

가스비는 실제로 어떻게 계산될까?

핵심 구조는 생각보다 단순합니다.

실제 사용한 가스량 × 가스 1단위당 실제 가격 = 최종 거래 수수료

예를 들어 일반적인 ETH 전송에서 21,000 Gas를 사용했고 실제 적용된 가스 가격이 12 Gwei라고 가정해 보겠습니다.

21,000 × 12 Gwei를 계산하면 252,000 Gwei이고, 이를 ETH로 바꾸면 0.000252 ETH가 됩니다.

이 값이 실제 거래 처리에 사용된 수수료입니다.

여기에서 중요한 것은 21,000 Gas와 12 Gwei가 서로 다른 값이라는 점입니다.

21,000은 작업량이고 12 Gwei는 그 작업 한 단위에 적용된 가격입니다.

그래서 가스비가 달라지는 원인도 두 방향으로 나뉩니다.

실행해야 하는 작업 자체가 많아져 사용한 가스가 증가할 수도 있고, 같은 작업이라도 당시 가스 가격이 올라 최종 비용이 높아질 수도 있습니다.

같은 ETH 전송인데 수수료가 달라지는 이유

단순한 ETH 전송은 일반적인 경우 필요한 가스량이 비교적 일정합니다.

그런데 어제와 오늘의 실제 수수료가 다를 수 있습니다.

이유는 가스 한 단위의 가격이 항상 같지 않기 때문입니다.

이더리움에서는 블록 공간에 대한 수요가 달라지면 기본 수수료가 변합니다.

네트워크에서 처리하려는 거래가 많아 블록의 가스 사용량이 목표 수준을 넘으면 이후 블록의 기본 수수료가 올라갈 수 있고, 반대로 사용량이 적으면 내려갈 수 있습니다.

따라서 똑같이 21,000 Gas를 사용한 거래라도

어떤 시점에는 5 Gwei가 적용되고 다른 시점에는 20 Gwei가 적용된다면 최종 수수료는 달라집니다.

같은 작업을 했는데 수수료가 다른 가장 기본적인 이유가 바로 여기에 있습니다.

Base Fee와 Priority Fee는 무엇이 다를까?

현재 Ethereum Mainnet의 수수료 구조를 이해하려면 Base Fee와 Priority Fee를 구분해야 합니다.

Base Fee

Base Fee는 해당 블록에서 요구되는 기본 수수료입니다.

사용자가 임의로 정하는 값이라기보다 네트워크 규칙에 따라 조정됩니다.

블록 공간에 대한 수요가 많으면 높아질 수 있고, 이용량이 줄어들면 낮아질 수 있습니다.

여기서 중요한 점이 하나 있습니다.

Base Fee는 검증자가 가져가는 수수료가 아닙니다.

EIP-1559 이후 Ethereum Mainnet에서 지불된 Base Fee는 소각됩니다.

Priority Fee

Priority Fee는 흔히 팁이라고 부릅니다.

사용자가 자신의 거래를 블록에 포함시키도록 검증자에게 제공하는 추가적인 수수료입니다.

네트워크가 한산하다면 높은 Priority Fee가 필요하지 않을 수 있지만, 거래 수요가 많을 때 더 빠른 포함을 원하면 지갑이 조금 더 높은 값을 제안할 수 있습니다.

이 부분이 중요한 이유는 기존의

“가스비 전체가 검증자에게 지급된다”

라는 설명이 현재 Ethereum의 수수료 구조와 맞지 않기 때문입니다.

기본 수수료는 소각되고, 검증자는 우선순위 수수료를 받을 수 있습니다.

Max Fee는 실제로 내는 금액일까?

지갑의 고급 수수료 설정을 보면 Max Fee 또는 Max Fee per Gas라는 항목을 볼 수 있습니다.

이 숫자를 보고

“이 금액을 전부 내는 건가?”

라고 생각하기 쉽지만 그렇지 않습니다.

Max Fee는 사용자가 가스 한 단위당 여기까지는 지불할 의향이 있다고 정하는 상한선입니다.

실제로 적용되는 Base Fee와 Priority Fee가 이보다 낮다면 남는 부분을 전부 수수료로 지불하는 것은 아닙니다.

예를 들어 최대 30 Gwei까지 지불하도록 설정했는데 거래가 포함될 때 Base Fee와 Priority Fee를 합친 실제 가격이 12 Gwei였다면 30 Gwei를 모두 지불하는 구조가 아닙니다.

따라서 지갑에 크게 표시되는 최대 예상 비용과 실제 거래가 끝난 뒤 블록 탐색기에 표시되는 수수료가 다르게 보일 수도 있습니다.

Gas Limit은 수수료 가격이 아니다

가스비를 이해할 때 특히 헷갈리는 것이 Gas Limit입니다.

Gas Limit은 가스의 가격을 의미하지 않습니다.

해당 거래가 사용할 수 있도록 허용한 최대 가스량입니다.

스마트 계약이 얼마나 많은 작업을 할지 정확히 알 수 없기 때문에 거래를 보낼 때 사용할 수 있는 가스의 상한을 정합니다.

예를 들어 Gas Limit이 100,000으로 설정됐다고 해서 반드시 100,000 Gas를 모두 사용하는 것은 아닙니다.

실제 실행에 62,000 Gas만 필요했다면 사용하지 않은 나머지 가스를 전부 사용한 것으로 계산해 수수료를 부과하는 것은 아닙니다.

그래서 블록 탐색기에서는 보통

Gas Limit

Gas Used

를 별도로 확인할 수 있습니다.

이 둘을 구분해야 실제 수수료가 어떻게 계산됐는지 이해할 수 있습니다.

Gas Limit을 너무 낮게 설정하면 어떻게 될까?

여기에는 조금 불편한 특징이 있습니다.

스마트 계약 실행 중 필요한 가스가 설정한 한도를 넘어가면 Out of Gas가 발생해 거래가 실패할 수 있습니다.

이 경우 완료되지 않은 상태 변경은 되돌려지지만, 이미 실행 과정에서 소비한 계산 자원까지 없었던 일이 되는 것은 아닙니다.

따라서 실패한 거래에서도 사용된 가스에 대한 수수료가 발생할 수 있습니다.

이 때문에

거래 실패 = 수수료도 전부 돌려받음

이라고 생각하면 안 됩니다.

스마트 계약과 디파이를 이용하다 보면 거래는 실패했는데 ETH 잔액에서 수수료가 빠져나간 것을 볼 수 있는데, 이런 경우가 대표적입니다.

거래가 실패했는데 왜 가스비를 내야 할까?

처음 접하면 가장 이해하기 어려운 부분입니다.

블록체인은 결과만 보는 것이 아니라 그 결과를 얻기 위해 실제로 수행한 계산 작업도 처리해야 합니다.

예를 들어 스마트 계약을 실행하면서 여러 조건을 확인하다가 마지막 조건에서 실패했다고 생각해 보겠습니다.

최종 상태 변경은 취소될 수 있지만 그 지점에 도달하기 전까지 노드가 계약 코드를 실행하고 조건을 확인하는 작업은 이미 이루어졌습니다.

이 계산 자원을 무료로 만들면 공격자가 의도적으로 실패하는 복잡한 거래를 반복해 네트워크 자원을 소모할 수도 있습니다.

가스 구조는 이런 무분별한 연산을 제한하는 역할도 합니다.

따라서 거래를 승인하기 전에는 전송 금액만 확인하지 말고 예상 수수료와 실행하려는 계약이 올바른지도 함께 확인하는 것이 중요합니다.

단순 ETH 전송과 토큰 거래는 왜 비용이 다를까?

ETH를 다른 주소로 보내는 것과 ERC-20 토큰을 보내는 것은 화면상으로는 모두 ‘전송’처럼 보입니다.

하지만 네트워크에서 하는 작업은 다릅니다.

ETH 전송은 비교적 단순한 기본 거래입니다.

반면 ERC-20 토큰을 보내면 토큰 스마트 계약의 함수를 실행하고 계약 내부의 잔액 상태를 변경해야 합니다.

DEX에서 토큰을 교환한다면 작업은 더 복잡해질 수 있습니다.

토큰 사용 승인을 확인하고 여러 스마트 계약을 호출하거나 유동성 풀의 상태를 변경하는 과정이 포함될 수 있기 때문입니다.

따라서

거래 유형가스 사용량이 달라지는 이유
일반 ETH 전송비교적 단순한 기본 거래
ERC-20 토큰 전송토큰 계약 실행 필요
NFT 발행·전송NFT 계약의 상태 변경 필요
토큰 Swap여러 계약과 유동성 처리 가능
디파이 예치·대출여러 상태와 조건을 함께 처리할 수 있음

처럼 실행할 작업이 복잡해질수록 더 많은 가스를 사용할 가능성이 있습니다.

다만 NFT니까 항상 몇 Gas, Swap이니까 항상 몇 Gas처럼 정해진 것은 아닙니다.

같은 종류의 서비스라도 스마트 계약이 어떻게 설계되어 있고 어떤 상태를 변경하는지에 따라 실제 Gas Used는 달라질 수 있습니다.

같은 Swap인데도 Gas Used가 다를 수 있다

여기서 한 단계 더 들어가 보겠습니다.

같은 DEX에서 같은 종류의 Swap을 했다고 해도 가스 가격만 달라지는 것은 아닙니다.

실제로 실행되는 경로나 스마트 계약의 상태가 달라지면 사용한 Gas 자체도 달라질 수 있습니다.

예를 들어 한 번의 교환이 하나의 유동성 풀만 거치는 경우와 여러 풀을 차례로 거치는 경우의 실행 과정은 같지 않습니다.

새로운 토큰 사용 승인이 필요한 거래와 이미 승인이 완료된 상태에서 실행하는 거래도 사용자가 거쳐야 하는 작업이 다를 수 있습니다.

따라서 실제 수수료를 비교하려면 단순히

“둘 다 Swap이었다”

만 볼 것이 아니라

Gas Used와 실제 적용된 Gas Price를 각각 확인해야 합니다.

이것이 블록 탐색기에서 거래 수수료를 확인할 때 가장 중요한 기준입니다.

지갑에 표시되는 예상 수수료가 계속 바뀌는 이유

지갑에서 거래 승인 창을 오래 열어두면 예상 수수료가 조금씩 달라지는 것을 볼 수 있습니다.

오류가 아닐 수 있습니다.

지갑은 현재 네트워크 상태를 바탕으로 Base Fee와 적절한 Priority Fee를 추정해 사용자가 거래를 보낼 수 있도록 예상값을 보여줍니다.

그 사이 새로운 블록이 만들어지고 네트워크 이용량이 달라지면 추정값도 바뀔 수 있습니다.

또 지갑마다 수수료를

낮음 / 시장 / 빠름

처럼 다르게 표시하거나 자동으로 추천값을 설정하기도 합니다.

대부분의 일반 사용자는 매번 Gwei 값을 직접 계산하기보다 지갑의 추천 수수료를 이용하게 됩니다.

다만 큰 금액을 거래하거나 네트워크가 혼잡한 상황이라면 승인 버튼을 누르기 전에 최종 예상 수수료를 다시 확인하는 습관이 좋습니다.

Gwei는 왜 사용하는 걸까?

Ethereum의 가스 가격을 보면 ETH 대신 Gwei가 표시되는 경우가 많습니다.

가스 한 단위의 가격이 매우 작기 때문에 ETH 단위만 사용하면 소수점이 지나치게 길어지기 때문입니다.

1 Gwei는 0.000000001 ETH, 즉 10억분의 1 ETH입니다.

예를 들어 10 Gwei라는 숫자는 ETH 가격이 아니라 Gas 한 단위당 지불하는 가격입니다.

그래서

가스비가 10 Gwei다

라는 표현도 엄밀하게 보면 최종 거래 수수료 전체라기보다 Gas 단위당 가격이 10 Gwei 수준이라는 의미에 가깝습니다.

실제 거래 비용을 알려면 여기에 사용한 Gas를 함께 봐야 합니다.

블록 탐색기에서는 무엇을 확인하면 될까?

Etherscan 거래 상세 화면에서 Transaction Fee와 Gas Price, Gas Limit 사용량을 확인하는 이미지
Etherscan 거래 상세 화면에서는 실제 거래 수수료와 Gas Price, Gas Limit 대비 사용량을 함께 확인할 수 있습니다.

거래가 끝난 뒤에는 Etherscan 같은 블록 탐색기에서 실제 수수료를 확인할 수 있습니다.

처음부터 모든 항목을 볼 필요는 없습니다.

먼저 Transaction Fee를 보면 해당 거래에서 실제로 지불된 전체 수수료를 확인할 수 있습니다.

그다음 Gas Price 또는 Effective Gas Price를 확인합니다.

그리고 Gas Limit & Usage by Txn 항목을 보면 최대 얼마까지 사용할 수 있도록 설정했는지와 실제로 얼마를 사용했는지 비교할 수 있습니다.

이 세 가지를 함께 보면

얼마나 많은 Gas를 사용했고 → Gas 한 단위에 얼마가 적용돼 → 최종적으로 얼마를 냈는지

를 실제 거래 기록으로 확인할 수 있습니다.

가스비를 이해하는 가장 좋은 방법도 바로 이 숫자를 한 번 직접 비교해 보는 것입니다.

수수료를 많이 내면 무조건 가장 먼저 처리될까?

Priority Fee는 거래를 더 매력적으로 만들어 블록에 포함될 가능성에 영향을 줄 수 있습니다.

하지만

수수료를 많이 냈으니 무조건 몇 초 안에 처리된다

처럼 보장되는 것은 아닙니다.

현재 네트워크 상황과 거래의 유효성, 설정한 Max Fee, 계정의 nonce 같은 다른 조건도 영향을 줄 수 있습니다.

또 스마트 계약 자체가 실행에 실패하는 거래라면 높은 수수료를 설정했다고 성공하는 것도 아닙니다.

Priority Fee는 실패할 거래를 성공하게 만드는 비용이 아니라 유효한 거래의 블록 포함 우선순위에 영향을 줄 수 있는 요소라고 이해하는 편이 정확합니다.

레이어2를 쓰면 가스비는 사라질까?

사라지는 것은 아닙니다.

Ethereum의 롤업 기반 레이어2도 트랜잭션 처리에 비용이 필요합니다.

다만 많은 거래를 L2에서 처리하고 묶어서 Ethereum에 데이터를 게시함으로써 L1 비용을 여러 거래에 나눌 수 있어 사용자 한 명이 부담하는 비용을 줄일 수 있습니다.

현재 롤업에서는 L2에서 거래를 실행하는 비용뿐 아니라 Ethereum에 데이터를 게시하는 비용 등이 수수료에 반영될 수 있습니다. Blob을 이용하는 롤업은 데이터 공간에 대한 별도의 수수료 구조도 이용합니다.

그래서

레이어2 = 가스비 없음

이 아니라

레이어2 = 거래를 묶고 다른 방식으로 처리해 사용자당 비용을 낮출 수 있는 구조

라고 이해하는 것이 좋습니다.

네트워크마다 수수료 계산 방식은 다르기 때문에 실제 이용 전에는 현재 표시되는 예상 비용을 확인해야 합니다.

가스비가 낮은 시간만 찾으면 항상 절약할 수 있을까?

네트워크 이용량이 낮아 Base Fee가 내려가면 같은 Ethereum Mainnet 거래를 더 저렴하게 처리할 가능성이 있습니다.

그래서 급하지 않은 거래라면 현재 예상 수수료를 확인한 뒤 기다리는 방법을 생각할 수 있습니다.

하지만 모든 비용이 시간만으로 결정되는 것은 아닙니다.

복잡한 스마트 계약을 실행하면 Gas Used 자체가 많을 수 있고 ETH 가격이 변하면 같은 양의 ETH를 지불하더라도 원화로 환산한 비용은 달라집니다.

또 특정 서비스에서는 여러 거래를 따로 실행하기 때문에 처음 생각했던 것보다 많은 단계가 필요할 수도 있습니다.

따라서 가스비를 줄이는 가장 현실적인 방법은 단순히 ‘새벽에 거래하면 싸다’ 같은 시간을 외우는 것이 아니라 실제 승인 화면에서 예상 비용을 확인하고, 불필요한 거래를 반복하지 않는 것입니다.

가스비가 0원으로 표시되는 서비스는 정말 무료일까?

일부 서비스에서는 사용자에게 네트워크 수수료가 없는 것처럼 보일 수 있습니다.

하지만 이것만으로 블록체인에서 거래 처리 비용 자체가 사라졌다고 판단하면 안 됩니다.

서비스 운영자가 수수료를 대신 부담하거나 별도의 비용 구조에 포함할 수도 있고, 특정 기간에 프로모션 형태로 지원할 수도 있습니다.

다른 블록체인은 Ethereum과 전혀 다른 수수료 체계를 사용할 수도 있습니다.

따라서

사용자가 직접 지불하지 않는다

네트워크 처리 비용이 존재하지 않는다

는 서로 다른 이야기입니다.

가스비를 확인할 때 이것만 기억하면 된다

가스비 화면에 여러 숫자가 나오면 복잡해 보이지만 실제로는 세 가지 질문으로 정리할 수 있습니다.

첫째, 이 거래는 얼마나 많은 Gas를 사용했는가?

둘째, Gas 한 단위에 실제 얼마가 적용됐는가?

셋째, 최종 Transaction Fee는 얼마였는가?

그리고 거래 전에는 Gas Limit과 Max Fee가 실제 지불액과 같은 숫자가 아니라 거래 실행을 위해 설정된 한도라는 점을 기억하면 됩니다.

이 구분만 제대로 해도 지갑과 블록 탐색기에서 보이는 수수료 숫자를 훨씬 쉽게 읽을 수 있습니다.

FAQ

가스비란 무엇인가요?

Ethereum에서 거래나 스마트 계약을 실행할 때 사용하는 계산 자원에 대해 ETH로 지불하는 수수료입니다. 실제 비용은 사용한 Gas와 당시 Gas 한 단위의 가격에 따라 결정됩니다.

ETH 전송에는 왜 21,000 Gas가 필요한가요?

일반적인 주소 사이의 기본 ETH 전송에는 21,000 Gas가 사용됩니다. 스마트 계약 호출처럼 추가 연산이 필요한 거래는 이보다 더 많은 Gas를 사용할 수 있습니다.

가스비 전체를 검증자가 가져가나요?

아닙니다. 현재 Ethereum의 EIP-1559 수수료 구조에서는 Base Fee가 소각되고 Priority Fee가 검증자에게 지급됩니다.

Gas Limit을 높이면 더 많은 수수료를 무조건 내나요?

아닙니다. Gas Limit은 사용할 수 있는 최대 가스량입니다. 실제 수수료는 실제 실행 과정에서 소비된 Gas를 기준으로 계산됩니다.

거래가 실패해도 가스비가 발생하나요?

발생할 수 있습니다. 스마트 계약을 실행하는 과정에서 이미 계산 자원을 사용했다면 최종 상태 변경이 실패하더라도 사용된 Gas에 대한 수수료가 발생할 수 있습니다.

가스비가 높으면 거래가 반드시 성공하나요?

아닙니다. Priority Fee는 거래 포함 우선순위에 영향을 줄 수 있지만 스마트 계약 오류나 잘못된 조건처럼 거래 자체가 실패하는 원인을 해결해 주지는 않습니다.

📌 핵심 정리

가스비가 거래할 때마다 달라지는 이유는 단순히 네트워크가 바쁘기 때문만은 아닙니다.

실제 수수료에는 얼마나 많은 Gas를 사용했는지와 Gas 한 단위의 가격이 얼마였는지가 함께 영향을 줍니다.

Ethereum에서는 Base Fee와 Priority Fee가 결합되어 실제 Gas 가격이 결정되고, Base Fee는 소각되며 Priority Fee는 검증자에게 지급됩니다.

또 Gas Limit은 실제 수수료가 아니라 거래에서 사용할 수 있도록 설정한 최대 Gas량이기 때문에 Gas Used와 구분해서 봐야 합니다.

스마트 계약이 복잡할수록 더 많은 Gas를 사용할 수 있고 같은 작업이라도 네트워크 상황에 따라 Gas 가격이 변하면 최종 수수료도 달라집니다.

그래서 블록 탐색기를 볼 때는 Transaction Fee 하나만 보는 것보다 Gas Used와 실제 Gas Price를 함께 확인하는 것이 가장 정확합니다.

결국 같은 거래인데 수수료가 다른 이유를 이해하는 핵심은 간단합니다.

작업량이 달라졌는지, Gas 가격이 달라졌는지를 따로 확인하면 됩니다.


📚 함께 읽으면 좋은 글

📚 참고자료

📢 안내

이 글은 Ethereum을 중심으로 블록체인 가스비의 구조를 이해하기 위한 일반적인 정보입니다. 실제 수수료와 계산 방식은 네트워크와 지갑, 사용하는 스마트 계약에 따라 달라질 수 있습니다. 거래를 승인하기 전에는 해당 서비스가 표시하는 최종 예상 수수료와 네트워크를 다시 확인하는 것이 좋습니다.

richissue

richissue
함께 보면 좋은 글

댓글 0

첫 댓글을 남겨보세요.

광고 차단 알림

광고 클릭 제한을 초과하여 광고가 차단되었습니다.

단시간에 반복적인 광고 클릭은 시스템에 의해 감지되며, IP가 수집되어 사이트 관리자가 확인 가능합니다.