이더리움 트랜잭션 가스 한도: EIP-7825 상한선 이해하기
이더리움의 16,777,216 가스 트랜잭션 상한선과 블록 가스 한도의 차이, 대형 호출을 안전하게 나누는 개발자 대응법을 설명합니다.

이더리움은 한 블록에 담을 수 있는 작업량을 늘리면서, 하나의 트랜잭션이 차지할 수 있는 작업량에는 상한선을 뒀어요. 모순처럼 들리지만 두 가지 한도를 구분하면 간단합니다. 블록체인 기초가 공유 원장의 전체 구조를 설명한다면, 이 글은 하나의 거대한 작업이 실행 예산을 독점하지 못하게 하는 안전장치를 살펴봅니다.
2025년 12월 3일 푸사카(Fusaka) 업그레이드가 활성화된 뒤 이더리움 메인넷은 EIP-7825를 적용하고 있어요. 트랜잭션에 지정하는 가스 한도는 16,777,216 가스, 즉 2^24를 넘을 수 없습니다. 이는 프로토콜 규칙이지 지갑의 권장 설정이나 일반 전송의 예상 사용량이 아니에요.
이더리움 트랜잭션 가스 한도란?
모든 이더리움 트랜잭션은 발신자가 허용하는 최대 연산량인 gasLimit을 선언합니다. 실제 수수료는 사용한 가스를 기준으로 계산돼요. 실행 중 가스가 부족하면 상태 변경은 되돌아가더라도 그전까지 수행한 작업의 수수료는 들 수 있습니다.
EIP-7825는 실행 전에 유효성 규칙을 하나 더 적용해요. 선언한 가스 한도가 2^24를 초과하면 트랜잭션은 유효하지 않습니다. 실제 코드가 그보다 적은 가스를 사용할 가능성이 높아도 선언값 자체가 상한선 안에 있어야 해요.
이더리움 블록을 화물선, 트랜잭션을 컨테이너라고 생각해 보세요. 블록 가스 한도(Block Gas Limit)는 배 전체에 실을 수 있는 화물량입니다. EIP-7825는 컨테이너 하나가 16,777,216 단위보다 커서는 안 된다는 규칙이에요. 배가 커지면 컨테이너를 더 많이 실을 수 있지만, 안전하게 다루기 어려운 초대형 컨테이너는 여전히 거부하는 셈입니다.
트랜잭션 가스 한도와 블록 가스 한도의 차이
| 한도 | 통제 대상 | 푸사카 시기 값 | 설정·집행 주체 |
|---|---|---|---|
| 트랜잭션 가스 상한 | 트랜잭션 하나의 최대 선언값 | 16,777,216 가스 | EIP-7825 합의 규칙 |
| 블록 가스 한도 | 한 블록의 총 실행 가스 | 푸사카 목표 6,000만 | 검증자가 프로토콜 범위에서 조정 |
| 지갑 예상치 | 특정 호출의 예상 가스 | 호출·상태마다 다름 | 지갑 또는 RPC 시뮬레이션 |
트랜잭션 상한선이 있다고 블록 하나에 1,677만 가스 트랜잭션 하나만 들어가는 것은 아니에요. 사용 가스의 합이 블록 한도에 닿을 때까지 더 작은 트랜잭션 여러 개를 담을 수 있습니다. 반대로 블록 한도가 6,000만이어도 특정 트랜잭션의 자리가 보장되지는 않아요. 다른 거래가 공간을 먼저 쓰고 빌더가 순서를 정할 수 있습니다.
이 차이를 알면 가스 수수료가 자동으로 낮아지는 것은 아니라는 점도 보입니다. 블록 용량이 커지면 혼잡을 완화할 수 있지만, EIP-7825 자체는 안전 상한선이에요. 실제 수수료는 사용 가스, 기본 수수료(Base Fee), 우선 수수료(Priority Fee)에 따라 달라집니다.
이더리움이 EIP-7825를 도입한 이유
이더리움의 2026년 확장 작업은 클라이언트 벤치마킹과 프로토콜 개선을 바탕으로 블록 가스 한도를 1억 이상으로 높이는 방향을 잡고 있어요. 용량이 커질수록 새로운 위험도 생깁니다. 트랜잭션별 상한선이 없다면 작업 하나가 블록의 큰 부분을 차지하고 최악 조건의 검증 부담을 키울 수 있습니다.
EIP-7825는 단일 트랜잭션의 작업량을 제한합니다. 공식 제안서는 서비스 거부(DoS) 위험을 줄이고 미래 병렬 실행(Parallel Execution)을 준비하는 장치라고 설명해요. 서로 독립적인 트랜잭션은 나란히 처리할 수 있지만, 아주 거대한 직렬 작업 하나는 여전히 병목입니다. 작업 하나의 크기를 제한하면 일정 관리와 검증 부담을 예측하기 쉬워져요.
2^24라는 숫자도 임의로 고른 것이 아닙니다. 클라이언트가 일관되게 구현하기 쉬운 2의 거듭제곱이고, 더 큰 블록 한도보다 작지만 복잡한 작업을 처리할 여유는 남겨 둡니다. ethereum.org의 푸사카 안내서는 일반 사용자 트랜잭션은 이 상한선과 거리가 멀고, 대형 컨트랙트 배포·복잡한 디파이(DeFi) 호출·광범위한 배치 작업이 영향을 받을 수 있다고 설명합니다.
상한선을 넘으면 어떻게 될까요?
메인넷에서 gasLimit > 16,777,216인 트랜잭션은 프로토콜 유효성 검사를 통과하지 못해요. 유효한 블록에 포함될 수 없습니다. 실행을 시작한 뒤 가스 부족(Out of Gas)이 발생하는 경우와는 달라요.
- EIP-7825 상한 초과: 선언한 한도가 너무 높아 EVM 실행 전에 무효가 됩니다.
- 상한 안이지만 필요한 가스를 과소 추정: 실행 중 가스가 부족해 상태 변경이 되돌아가고 수행된 작업의 수수료가 발생할 수 있어요.
- 상한 안이고 가스도 충분: 다른 이유로 되돌려지지 않는다면 실행에 성공할 수 있습니다.
예상치가 불안하다고 무조건 최댓값을 넣으면 안 됩니다. 좋은 애플리케이션은 최신 상태에서 정확한 호출을 시뮬레이션하고, 근거 있는 여유분을 더한 뒤 서명자에게 예상치를 보여 줘요. 시뮬레이션과 블록 포함 사이에 상태가 바뀔 수 있으므로 정확한 추정도 성공을 보장하지 않습니다.
대형 호출을 위한 개발자 체크리스트
대부분의 애플리케이션은 마이그레이션할 필요가 없습니다. 대형 컨트랙트를 배포하거나 많은 동작을 배치 처리한다면 다음 순서로 점검하세요.
- 대상 체인에서 추정하세요. 실제 발신자, 목적지, 전송값, 콜데이터(Calldata), 최근 상태로
eth_estimateGas를 실행합니다. - 선언값을 검사하세요. 이더리움 메인넷에서
16,777,216가스보다 더 필요한 트랜잭션은 거부하거나 나눕니다. - 최악 경로를 테스트하세요. 저렴한 정상 경로가 반복문, 스토리지 쓰기, 증명 검증, 최초 초기화 같은 비싼 분기를 숨길 수 있어요.
- 독립 작업을 나누세요. 큰 배치를 재개 가능한 단위로 쪼개고, 재시도에도 효과가 중복되지 않도록 멱등성(Idempotency)을 설계합니다.
- 무제한 반복문을 피하세요. 사용자가 정하는 배열 길이는 상태가 커질수록 안전했던 함수를 실행 불가능하게 만들 수 있습니다.
- 실제 영수증을 관찰하세요.
gasUsed와 예상치를 비교하고 운영 호출이 상한선에 가까워지기 전에 알림을 설정합니다.
시뮬레이션에는 주의점이 있어요. ethereum.org에 따르면 eth_call은 합의 수준의 트랜잭션 상한선을 직접 적용받지 않지만, RPC 운영자가 별도 한도를 둘 수 있습니다. 따라서 큰 eth_call이 성공했다고 같은 트랜잭션이 메인넷에서 유효하다는 뜻은 아니에요. 시뮬레이션 결과와 체인의 트랜잭션 규칙을 따로 확인해야 합니다.
콜데이터가 무엇을 뜻하는지 불분명하다면 이더리움 콜데이터 해설에서 함수와 인자를 먼저 해독해 보세요. 배치가 무엇을 요청하는지 알아야 최적화할지 나눌지 판단할 수 있습니다.
위험과 흔한 실수
- 가스 한도와 가격 혼동: 가스는 작업 단위이고 수수료는 사용 가스와 수수료 변수의 곱입니다. 한도를 높였다고 최종 비용이 자동으로 늘지는 않지만 실패한 작업에도 비용이 들 수 있어요.
- 한 번의 시뮬레이션만 신뢰: 포함되기 전에 컨트랙트 상태, 접근 경로, 앞선 트랜잭션이 바뀔 수 있습니다.
- 모든 EVM 체인이 같다고 가정: 롤업과 다른 네트워크는 트랜잭션·블록·RPC·배치 한도가 다를 수 있어요.
- 비원자적 작업을 무심코 분할: 트랜잭션 하나는 원자적(Atomic)이지만 여러 개는 아닙니다. 앞부분이 성공한 뒤 뒷부분만 실패할 수 있어요.
- 용량을 성능 보장으로 오해: 유효한 트랜잭션도 수수료, 혼잡, 빌더 정책, 논스(Nonce) 순서 때문에 기다릴 수 있습니다.
자주 묻는 질문
가스 한도는 1,600만인가요, 16,777,216인가요?
정확한 상한은 2^24인 16,777,216입니다. “1,600만”은 설명용 표현일 뿐 검증 코드에는 정확한 값을 써야 해요.
EIP-7825가 블록 가스 한도를 낮췄나요?
아니요. 개별 트랜잭션에는 상한선을 두면서 푸사카 시기의 클라이언트 조정으로 블록 가스 한도는 6,000만으로 높였습니다.
일반 ETH 전송도 상한선에 가까운가요?
아닙니다. 외부 소유 계정(EOA)끼리의 단순 전송은 전통적으로 21,000 가스를 사용해 상한선보다 훨씬 작아요.
지갑에서 더 큰 값을 설정하면 우회할 수 있나요?
아니요. 지갑 설정으로 합의 규칙을 우회할 수 없습니다. 너무 큰 작업은 최적화하거나 여러 트랜잭션으로 나눠야 해요.
eth_call 성공은 실제 포함을 보장하나요?
아닙니다. RPC가 상한보다 큰 호출을 시뮬레이션할 수 있고, 시뮬레이션 상태와 포함 시점 상태도 달라질 수 있어요.
주요 출처
- EIP-7825: Transaction Gas Limit Cap — 공식 규격, 도입 이유, 유효성 규칙.
- Ethereum.org: 푸사카 업그레이드 — 활성화 상태, 개발자 영향, 6,000만 블록 가스 한도와의 관계.
- Ethereum Foundation: 푸사카 메인넷 공지 — 메인넷 활성화와 실제 실행 레이어 변경 사항.
- Ethereum Foundation: 2026 프로토콜 우선순위 — 블록 가스 한도를 1억 이상으로 높이려는 확장 방향.
EIP-7825는 확장을 위한 안전장치이지 수수료 할인이나 투자 재료가 아닙니다. 대부분의 사용자에게는 보이지 않지만, 아주 무거운 호출을 만드는 개발자라면 테스트와 트랜잭션 생성 로직에 반영해야 하는 경계예요. 체인별 규칙과 변하는 상태를 검증하고 스스로 조사하세요(DYOR). 이 글은 교육 목적이며 투자 조언이 아닙니다(NFA).
함께 읽으면 좋은 글

가스비란? 블록체인 트랜잭션 수수료 완벽 가이드
이더리움 가스비의 작동 원리, 비용을 좌우하는 요인, 절약 실전 팁 7가지, 그리고 꼭 알아야 할 리스크까지 한 번에 정리했습니다.

이더리움 콜데이터 완전 정리: 트랜잭션 입력 데이터 해석법
이더리움 콜데이터의 함수 셀렉터와 ABI 인코딩 구조, 익스플로러 해석 원리, 컨트랙트 서명 전 확인할 보안 항목을 설명합니다.

스마트 컨트랙트란? 작동 원리와 활용 사례 완전 정리 (2026)
스마트 컨트랙트의 개념부터 자판기 비유로 풀어낸 작동 원리, 디파이·NFT·RWA 활용 사례, 버그·해킹·불변성 리스크, FAQ까지 한 번에 정리했습니다.
관련 주제 살펴보기

크로스체인 브릿지 완전 가이드: 작동 원리부터 단계별 안전 사용법까지 (2026)
크로스체인 브릿지가 무엇인지, Lock-and-Mint·유동성 풀 방식의 차이, 단계별 안전 사용법, 한화 수조 원 규모 해킹 역사와 무제한 승인 위험까지 한 번에 정리합니다.

폴카닷 반감기 2026: DOT 공급 상한 21억 개, 토크노믹스 대전환 총정리
2026년 3월 14일 폴카닷 최초 반감기 시행. 연간 발행량 53.6% 삭감, 21억 개 공급 상한, 스테이킹 구조 개편까지 DOT 홀더가 알아야 할 핵심을 정리합니다.