Ethereum gas란 무엇인가? 작동 원리 가이드

Ethereum 수수료 모델을 단계별로 풀어 보는 가이드 — gas, Gwei, base fee, priority tip까지. 제공: ChainGate.

Ethereum에서 트랜잭션을 보내 본 적이 있다면, 누구나 gas 값을 지불해 본 셈입니다. 그런데 "gas"라는 단어가 여기저기 등장하는데도, gas는 여전히 가장 흔히 오해받는 개념 중 하나예요 — 많은 분들이 따로 사야 하는 별도의 토큰이라고 생각하곤 하거든요. 그렇지 않습니다. 이 가이드는 gas가 실제로 무엇인지, Ethereum이 왜 gas를 필요로 하는지, 그리고 지갑에 표시되는 수수료가 몇 가지 단순한 요소로 어떻게 조립되는지 차근차근 풀어 드립니다.

요약

  • gas는 측정 단위입니다. 코인이 아니라, 트랜잭션이 수행하는 연산 작업량을 세는 단위예요.
  • 실제로 지불하는 자산은 ether(ETH)입니다. Gwei는 ether를 읽기 편하게 만든 작은 단위일 뿐이에요.
  • 수수료는 단순한 곱셈입니다: 사용된 gas × gas당 가격.
  • 가격은 수요에 따라 오르내리지만, 공식 자체는 결코 바뀌지 않습니다.

1. gas는 토큰이 아닌 측정 단위

Ethereum gas에 대한 가장 큰 혼란은, gas를 트랜잭션 전에 따로 사야 하는 별도의 통화처럼 여긴다는 점이에요. 하지만 그렇지 않습니다. 지갑에 gas 잔액이 표시되는 일도 없고, 친구에게 gas를 보낼 수도 없고, gas가 상장된 거래소도 없어요. gas는 네트워크가 트랜잭션을 처리하면서 만들어 내는 숫자 — 작업량을 세는 단위입니다.

가장 익숙한 비유는 주유기의 미터기예요. 휘발유 리터는 단위이고, 값은 돈으로 지불하잖아요. 마찬가지로 gas 단위는 단위이고, 값은 ether로 지불합니다. 주유소에서 기름을 산다고 해서 돈이 다른 통화로 바뀌는 게 아니듯, Ethereum에서 gas 값을 낸다고 해서 ether가 다른 무언가로 바뀌지도 않아요. 지갑에서 ether가 빠져나가고, 네트워크는 gas를 소비하고, 그걸로 끝입니다.

왜 굳이 두 개의 개념으로 나눠 두는 걸까요? Ethereum에서 연산을 실행하는 비용과 ether의 시장 가격은 서로 독립적이기 때문이에요. 토큰을 전송하는 데 드는 작업량은 몇 년째 거의 그대로지만, ether 가격은 초 단위로 바뀝니다. 작업(gas)과 돈(ether)을 분리해 두면, 프로토콜은 연산 비용을 안정적으로 매길 수 있고, 시장은 자산 가격을 자유롭게 움직일 수 있어요.

2. Ethereum에 gas가 필요한 이유

Ethereum은 공개된 공유 컴퓨터입니다. 누구나 실행할 코드를 제출할 수 있어요. 여기에 비용을 붙이지 않으면 뻔한 실패 모드가 생기죠 — 사용자 한 명이 네트워크에 무한 루프를 돌려 달라고 요청해, 모두의 접근을 막아 버리는 상황이요. gas는 바로 그걸 막기 위해 존재합니다. 모든 연산에는 고정된 gas 비용이 있고, 모든 트랜잭션은 소비할 gas의 상한을 선언해야 하며, 그 한도를 넘어가면 실행은 그대로 멈춥니다.

gas는 세 가지 역할을 동시에 해요. 트랜잭션이 수행할 수 있는 작업량을 제한해, 폭주하는 코드로 네트워크가 막히는 걸 막습니다. 각 블록은 한정된 gas 예산을 가지고 있고 사용자들은 그 안의 자리를 두고 경쟁하기 때문에, block space의 가격을 매기는 역할도 하죠. 그리고 작업을 수행해 주는 validator에게 보상을 지급합니다 — 이 보상이 없다면 네트워크를 살아 있게 해 주는 하드웨어를 누구도 돌리지 않을 테니까요.

3. 수수료의 구조: 단위 × 가격

Ethereum의 모든 수수료는 두 숫자의 곱이에요. 이 둘과 친숙해지면 대부분의 문제는 이미 절반쯤 풀린 셈입니다.

  1. 사용된 gas — 트랜잭션이 얼마나 무거운지 나타내는 작업 단위의 개수입니다. 단순한 ether transfer는 정확히 21,000 단위예요. 토큰 transfer는 대략 50,000 단위. 탈중앙화 거래소에서의 swap은 150,000 단위 이상이 될 수 있습니다.
  2. gas당 가격 — 단위 하나당 지불하는 금액으로, gwei로 표기합니다. 수요에 따라 움직이는 레버가 바로 이 값이에요.

두 숫자를 곱하면 gwei 단위의 수수료가 나옵니다. 그걸 10억으로 나누면 ether 단위가 되고요. 모델의 전부입니다.

4. Wei, gwei, ether: 단위 해설

ether에는 wei라는 하나의 기본 단위가 있습니다. 나머지는 모두 서로 다른 wei 숫자를 가리키는 이름표일 뿐이에요. 이 이름들이 존재하는 이유는, 수수료를 순수 ether나 순수 wei로 쓰는 게 불편하기 때문입니다. ether 단위의 수수료는 소수점이 너무 많고, wei 단위의 금액은 정수가 너무 커요. Gwei는 그 중간에 자리 잡아, 읽기 편한 숫자를 만들어 줍니다.

단위wei 기준 값ether 기준 값주요 용도
wei110⁻¹⁸프로토콜 내부 회계
gwei10⁹10⁻⁹gas 가격과 tip 표기
ether10¹⁸1잔액과 전송 금액

지갑에 수수료가 예를 들어 30 gwei로 표시된다면, 그건 트랜잭션이 소비하는 gas 단위 하나마다 네트워크가 현재 300억 wei를 청구한다는 뜻이에요. transfer의 21,000 gas를 곱하면 비용은 630,000,000,000,000 wei, 즉 0.00063 ether가 됩니다. 같은 값을 세 가지 방식으로 쓴 것뿐이에요.

5. Base fee와 priority tip: 가격이 만들어지는 방식

EIP-1559라는 업그레이드 이전에는 사용자가 단일 가격을 제시하고 보이지 않는 경매에 참여했습니다. 이 업그레이드 이후, gas 단위당 지불하는 가격은 두 부분으로 나뉘게 됐어요:

  • base fee는 프로토콜 자체가 정합니다. 매 블록마다 직전 블록이 목표치보다 얼마나 더 찼는지(또는 덜 찼는지)에 따라 소폭의 비율로 위아래로 조정되죠. base fee는 누구에게도 지급되지 않고 소각 — 파괴 — 되기 때문에, 활동이 활발할 때면 ether가 약간 디플레이션적으로 작동하게 됩니다.
  • priority tip은 validator를 끌어오려고 위에 얹는 금액이에요. tip이 높을수록 트랜잭션이 대기열의 앞쪽으로 옮겨집니다. 이 tip은 트랜잭션을 블록에 포함해 주는 validator에게 작업에 대한 보상으로 지급됩니다.
  • max fee는 단위당 지불할 수 있는 상한선으로, base fee와 tip을 합친 값입니다. base fee가 이 상한을 넘어가면, 트랜잭션은 상황이 가라앉을 때까지 그저 대기합니다.

정리하면, 단위당 base fee + tip을 지불하며, 어떠한 경우에도 max를 넘지 않습니다. 네트워크가 한산할 때는 지갑이 보통 1~2 gwei 정도의 tip을 제안하고, 전체 금액의 대부분은 base fee예요. 활동이 몰리면 base fee가 크게 오르고, tip은 총액에서 차지하는 비중이 작아집니다.

6. 자주 쓰는 연산과 일반적인 gas 비용

트랜잭션이 소비하는 gas는 무엇을 하느냐에 따라 달라집니다. 아래 수치는 대략적인 값이고 — 관련된 contract에 따라 정확한 수치는 달라질 수 있어요 — 상대적인 무게를 가늠하기에는 충분합니다:

연산일반적인 gas
다른 지갑으로 ether 전송21,000
토큰 contract 승인~46,000
ERC-20 토큰 transfer~50,000–65,000
탈중앙화 거래소에서의 swap~120,000–250,000
일반적인 NFT mint~100,000–300,000
smart contract 배포500,000–3,000,000+

ether 전송과 NFT mint의 gas 차이만 해도 10배가 넘는다는 점에 주목해 주세요 — 그날그날의 단위당 가격은 여기에 추가되는 변수입니다. 네트워크가 한산하든 북적이든, 무거운 연산은 무겁습니다.

7. 가격이 오르내리는 이유

Ethereum의 각 블록에는 1,500만 gas의 소프트 타깃과 3,000만 gas의 하드 캡이 있어요. base fee는 매 블록 이후 단 하나의 규칙으로 조정됩니다 — 직전 블록이 타깃을 넘겼다면 base fee를 조금 올리고, 타깃에 못 미쳤다면 조금 내립니다. 블록당 최대 변동폭은 약 12.5%예요.

그 결과가 스스로를 조절하는 가격입니다. block space에 대한 수요가 오르면, 사람들의 트랜잭션 욕구가 줄어들 만큼 체인이 비싸질 때까지 base fee가 꾸준히 올라갑니다. 수요가 줄면, 활동이 다시 살아날 때까지 base fee가 내려가고요. 가격을 정하는 중앙 운영자나 경매는 없습니다 — 연속된 블록 사이를 도는 피드백 루프만 있어요.

실전적으로 두 가지가 따라 나옵니다. 첫째, 수수료는 무작위로 움직이지 않아요 — 조용한 시간대는 실제로 더 저렴하고, 급하지 않은 트랜잭션은 그저 기다리면 됩니다. 둘째, 가끔 보이는 급등은 영구적이지 않아요. 갑작스런 수요 폭증이 몇 블록에 걸쳐 base fee를 끌어올리지만, 압력이 잦아들면 언제나 다시 내려옵니다.

8. 처음부터 끝까지 따라가는 예제

친구에게 0.1 ether를 보낸다고 가정해 볼게요. 숫자를 하나씩 따라가 봅시다:

  1. 단순한 transfer는 알려진 고정값인 21,000 gas를 소비합니다.
  2. 지갑이 최신 블록을 읽어 base fee를 28 gwei로 알려 줍니다.
  3. 제안된 priority tip은 그대로 2 gwei로 둡니다.
  4. 단위당 실질 가격: 28 + 2 = 30 gwei.
  5. gwei 단위 총 수수료: 21,000 × 30 = 630,000 gwei.
  6. ether로 환산: 630,000 ÷ 10⁹ = 0.00063 ether.

이 0.00063 ether 중 더 큰 쪽(28/30)은 프로토콜에 의해 소각되어 공급에서 사라지고, 더 작은 쪽(2/30)은 트랜잭션을 포함해 주는 validator에게 돌아갑니다. 친구는 어느 쪽이든 0.1 ether를 그대로 받아요 — 수수료는 보내는 금액에서 차감되는 게 아니라 그 위에 더해져 청구됩니다.

9. 짚고 넘어가면 좋은 오해

"트랜잭션 전에 gas를 따로 사야 한다."
아니에요. 필요한 건 ether뿐입니다. 트랜잭션이 블록에 포함되는 순간, 네트워크가 ether 잔액에서 수수료를 바로 차감해요.
"Gwei는 별도의 통화다."
Gwei는 1 ether의 10억분의 1일 뿐이에요. 수수료를 "30 gwei"라고 말하는 건 "0.00000003 ether"라고 말하는 것과 똑같습니다 — 같은 값을, 읽기 좋게 쓴 것뿐이에요.
"tip이 크면 언제나 트랜잭션이 더 빠르다."
도움은 되지만 마법은 아니에요. validator는 매력적인 tip부터 먼저 골라 넣지만, 이미 만들어진 블록에 트랜잭션을 끼워 넣을 수는 없습니다. 평범한 상황이라면, 적당한 tip만으로도 1~2 블록 안에 포함돼요.
"base fee는 채굴자에게 간다."
EIP-1559 업그레이드 이후, base fee는 프로토콜이 소각합니다 — 누구도 받지 않아요. validator의 보상은 priority tip과 Ethereum의 발행 보상을 통해 이루어집니다.

10. 이다음에 볼 것들

이제 모델이 잡혔습니다 — gas는 작업의 개수, ether는 돈, gwei는 읽기 좋게 만든 이름표, 그리고 수수료는 곱셈 한 번이에요. base fee와 priority tip이 실시간으로 움직이는 모습을 보고 싶다면, 실시간 Ethereum gas 트래커가 매 블록마다 값을 갱신해 줍니다. 그리고 멀티체인 gas station에서는 보통 L1 대비 아주 일부만 드는 rollup들 — Arbitrum, Base, Optimism 같은 네트워크들 — 과 Ethereum을 나란히 비교해 볼 수 있어요. 그 수수료가 자국 통화로는 어느 정도인지 궁금하다면, ether-달러 변환기가 실시간 시장 시세로 환산해 줍니다. 그리고 프로그램에서 트랜잭션에 서명하고 gas 값을 자동으로 지불하는 소프트웨어를 만들고 싶다면, ChainGate가 Ethereum과 저희가 지원하는 모든 체인에서 이 과정을 함께 처리해 주는 단일 라이브러리를 제공해 드려요. 특정 트랜잭션을 찾아 실제 Ethereum 블록 위에서 이 숫자들을 직접 확인해 보고 싶다면, Etherscan이란 무엇이고 어떻게 쓰는가에 관한 짝 가이드가 이 글이 끝난 지점에서부터 다시 이어갑니다.

자주 묻는 질문

Ethereum gas는 토큰이나 암호화폐인가요?

아니요. gas는 트랜잭션이 수행하는 연산 작업의 양을 세는 측정 단위입니다. 지갑에 보관할 수도, 누구에게 보낼 수도, 거래소에 상장할 수도 없어요. gas 값을 지불하는 실제 자산은 Ethereum의 네이티브 통화인 ether(ETH)입니다.

왜 이름이 gas인가요?

연료 비유에서 따온 이름이에요. 자동차가 여정의 거리와 난이도에 비례해 연료를 태우듯, Ethereum 트랜잭션도 네트워크에 요청하는 작업량에 비례해 gas를 소비합니다. 단순한 transfer는 짧은 여정이고, 복잡한 smart contract 상호작용은 긴 여정이에요.

gas, gwei, ether의 차이는 무엇인가요?

gas는 작업 단위의 개수예요. ether는 여러분이 지불하는 자산입니다. gwei는 ether의 편리한 소수 단위일 뿐이에요(1 gwei = ether의 10억분의 1). gas 단위당 가격을 ether로 표기하면 숫자가 너무 작아 읽기 힘들어서, gwei를 씁니다.

Ethereum 수수료는 실제로 어떻게 계산되나요?

총 수수료는 트랜잭션이 소비한 gas 단위에 단위당 지불하는 가격을 곱한 값이에요. EIP-1559라는 업그레이드 이후, 그 가격은 프로토콜이 정하는 base fee와 validator를 끌어오기 위해 여러분이 선택하는 priority tip으로 나뉩니다. 사용된 gas에 이 둘의 합을 곱하면 ether 단위의 비용이 됩니다.

EIP-1559는 블록 사이에서 base fee를 어떻게 조정하나요?

각 블록에는 목표 gas 양이 있습니다. 수요가 목표를 넘으면, 프로토콜은 다음 블록의 base fee를 최대 약 12.5%까지 자동으로 올려요. 수요가 목표보다 적으면, 같은 규칙으로 내립니다. 메커니즘은 결정론적이에요 — 경매도, 운영자도 없습니다 — 그래서 가격이 블록 단위로 스스로를 조절하죠.

Ethereum에서 gas 값 지불을 피할 수 있나요?

Ethereum에서 gas 값을 내지 않고 확정되는 트랜잭션은 없습니다. 다만 수요가 낮은 시간대에 트랜잭션을 보내거나, Ethereum의 보안을 이어받으면서 훨씬 저렴한 Layer 2 rollup을 선택하거나, 급하지 않은 트랜잭션에 priority tip을 낮게 설정하는 방식으로 비용을 줄일 수 있어요. 멀티체인 gas station은 실시간 수수료를 저렴한 순으로 정렬해 주어, Ethereum L1과 rollup 사이의 격차를 한눈에 볼 수 있게 해 줍니다.

ChainGate로 만들기

아이디어를 코드로 연결하세요 — ChainGate는 Ethereum과 20여 개 블록체인을 위한 지갑, 트랜잭션, 관리형 RPC를 하나의 라이브러리로 제공합니다.