궁금한 주제를 찾아보세요

비트코인, 스테이블코인, 온체인 데이터처럼 주제로 검색하세요.

다시 읽을 이야기

저장한 글은 이 브라우저에만 보관됩니다.

해설블록체인 기술

EVM 가스 환급 상한은 저장소 정리 보상을 어떻게 제한하나

SSTORE가 refund counter를 늘려도 EIP-3529의 사용 가스 1/5 상한 때문에 전액 차감되지 않는 과정을 숫자 예제로 계산합니다.

난이도 중급주제 카테고리와 개념 밀도 기준
환급 후보 구슬이 쌓인 기둥에서 상한 위 부분이 잘려 나가는 EVM 가스 환급 제한 그림
주제의 이해를 돕기 위한 개념 일러스트
먼저 읽는 핵심

Refund counter는 실행 종료 뒤 effective gas를 줄이며 call gas를 보충하지 않습니다.
EIP-3529는 clear refund를 4,800으로 낮추고 SELFDESTRUCT refund를 없앴습니다.
적용 refund는 refund 전 gas used의 20% 상한에 잘릴 수 있습니다.

EVM 가스 환급(gas refund)은 실행 중 남은 가스를 늘려 주는 쿠폰이 아닙니다. 거래가 끝날 때 환급 카운터를 실제 사용 가스에서 제한적으로 빼 주는 정산입니다. EIP-3529 이후 메인넷 규칙에서는 SELFDESTRUCT 환급이 없어졌고, 값이 든 저장 슬롯을 비울 때 받는 SSTORE 정리 환급은 4,800 가스로 줄었습니다. 최종 적용되는 환급은 환급 전 사용 가스의 1/5 이하이므로, 여러 슬롯을 지워 카운터가 크게 쌓여도 사용량이 100,000 가스라면 최대 20,000 가스만 빠집니다. 실행 도중 가스 부족(out-of-gas)을 막아 주지는 않으므로, 보내는 사람은 환급 전 실행에 충분한 가스 한도를 줘야 합니다.

사용 가스와 환급 카운터를 따로 셉니다

SSTORE가 실행되면 클라이언트는 슬롯의 거래 시작 시점 원래 값, 지금 값, 새로 쓸 값을 비교해 가스를 바로 청구하고, 조건에 따라 환급 카운터를 더하거나 뺍니다. 이미 바뀐 슬롯을 원래 값으로 되돌릴 때도 카운터가 변합니다. 같은 옵코드라도 값이 어떻게 바뀌는지, 처음 접근인지 다시 접근인지에 따라 달라져 상수 하나로 비용을 예측할 수 없습니다.

환급은 거래 실행이 모두 끝난 뒤 적용됩니다. 안쪽 호출에 5,000 가스밖에 남지 않았다면, 나중에 받을 정리 환급을 믿고 8,000 가스짜리 작업을 할 수는 없습니다. 되돌려진(revert) 프레임의 상태 변경과 그에 따른 환급 변화도 함께 취소되므로, 추적 결과의 중간 카운터만으로 최종 수수료를 계산하지 않습니다.

가스 환급은 실행 중 꺼내 쓰는 연료가 아니라, 모든 실행이 끝난 뒤 상한 안에서만 인정되는 정산 할인입니다.

JOBCOIN 해설

그림으로 보기프로토콜 실행의 기본 구조
입력이 실행 규칙을 통과할 때 상태가 바뀌는 프로토콜 개념도
그림과 함께 짚어볼 본문 내용

그림은 이 주제의 공통 개념을 단순화한 설명입니다. 아래 항목에서 이 글의 구체적인 조건과 예외를 함께 읽어보세요.

  1. 사용 가스와 환급 카운터를 따로 셉니다

    SSTORE가 실행되면 클라이언트는 슬롯의 거래 시작 시점 원래 값, 지금 값, 새로 쓸 값을 비교해 가스를 바로 청구하고, 조건에 따라 환급 카운터를 더하거나 뺍니다.

  2. 런던 업그레이드 이후 상한은 1/5입니다

    EIP-3529는 MAX_REFUND_QUOTIENT를 5로 정해 적용 환급을 gas_used // 5로 묶었습니다.

  3. 세 가지 숫자 예제로 상한을 계산합니다

    가정 1에서 환급 전 사용 가스가 100,000이고 조건을 채운 정리 다섯 건으로 카운터가 24,000이면 상한은 20,000입니다.

설명을 위한 개념도 · 실제 가격·거래 내역·통계가 아닙니다.

런던 업그레이드 이후 상한은 1/5입니다

EIP-3529는 MAX_REFUND_QUOTIENT를 5로 정해 적용 환급을 gas_used // 5로 묶었습니다. 예전의 절반 상한보다 낮아져, 환급을 이용해 블록의 실제 연산량을 크게 늘리는 여지가 줄었습니다. SSTORE_CLEARS_SCHEDULE도 EIP-2929·2930 맥락에서 4,800 가스로 바뀌었습니다.

SELFDESTRUCT 환급은 완전히 사라졌습니다. 이는 이 옵코드가 잔액을 옮기고 상태에 미치는 효과와는 별개입니다. 칸쿤(Cancun)의 EIP-6780이 코드 삭제 방식을 바꾼 일과 런던(London)의 환급 폐지를 한 가지 변화로 섞지 않습니다. 어느 체인의 어떤 포크 규칙을 적용하는지부터 확인합니다.

환급 계산 요소
항목 EIP-3529 이후 값·역할 주의
SSTORE 정리 환급 4,800 가스 원래 값이 비어 있지 않아야 하는 등 조건 필요
SELFDESTRUCT 환급 0 옵코드 효과와 별개
환급 상한 gas_used ÷ 5 소수점은 정수 규칙 적용
가스 한도 환급 전 실행 한도 카운터로 늘어나지 않음
실제 사용 가스 gas_used – 적용 환급 기본·우선 수수료 계산의 바탕

세 가지 숫자 예제로 상한을 계산합니다

가정 1에서 환급 전 사용 가스가 100,000이고 조건을 채운 정리 다섯 건으로 카운터가 24,000이면 상한은 20,000입니다. 실제 적용 환급은 min(24,000,20,000)=20,000이고 실제 사용 가스는 80,000입니다. 남은 4,000은 다음 거래로 넘어가지 않습니다.

가정 2에서 사용 가스 100,000, 정리 두 건으로 카운터가 9,600이면 상한보다 작아 9,600이 전부 적용되고 실제 사용 가스는 90,400입니다. 가정 3에서 카운터를 24,000까지 쌓았지만 그 뒤 실행이 되돌려져 관련 정리가 취소됐다면 카운터를 처음부터 다시 계산해야 합니다. 영수증의 gasUsed와 클라이언트 추적의 정의도 확인합니다.

  • 적용 포크와 체인 ID를 고정합니다.
  • 슬롯마다 원래 값·지금 값·새 값을 기록합니다.
  • 실행 사용 가스와 환급 카운터를 나눠 둡니다.
  • gas_used // 5와 카운터 가운데 작은 값을 고릅니다.
  • 적용 뒤 실제 사용 가스와 실제 수수료를 계산합니다.

저장소 정리는 여전히 공짜가 아닙니다

값이 든 슬롯을 비우면 4,800 환급 후보가 생기지만, 그 전에 SSTORE 실행 비용과 첫 콜드 접근 비용을 먼저 냅니다. 거래가 다른 일을 별로 하지 않아 상한이 낮으면 환급 일부가 잘립니다. 환급만 노리고 쓸데없는 슬롯을 만들었다 지우는 가스 토큰 전략은 EIP-3529가 힘을 뺀 대상입니다.

데이터를 지우는 일도 기록 삭제와는 다릅니다. 현재 상태 트라이에서 슬롯 값이 비워져도 과거 블록과 아카이브 자료에는 변경 이력이 남을 수 있습니다. 개인정보 삭제나 저장소 임대료 정책을 가스 환급 하나로 해결했다고 설명하지 않습니다.

측정할 때는 컴파일러와 포크 조건을 고정합니다

솔리디티 최적화기는 불필요한 SSTORE를 없애거나 쓰기 순서를 바꿀 수 있습니다. 재진입 방지 장치가 같은 거래 안에서 값을 설정했다가 되돌리는 패턴도 순변화 기준 계량의 영향을 받습니다. 소스 줄 수가 아니라 실제 바이트코드 추적에 나온 SSTORE와 접근 목록을 봅니다.

테스트에서는 빈 슬롯 설정, 값이 든 슬롯 비우기, 바뀐 슬롯 원복, 되돌려진 하위 호출, 상한 초과를 각각 나눠 봅니다. EstimateGas 응답은 특정 상태와 대기 블록 규칙에서 실행을 추정한 값이라, 실제 포함되는 블록에서 상태가 바뀌면 달라질 수 있습니다. 환급을 수익이나 확정 할인처럼 화면에 미리 반영하지 않습니다.

자주 묻는 질문

환급이 있으면 더 낮은 가스 한도로 보내도 되나요?

안 됩니다. 환급은 실행 뒤에 정산되므로, 가스 한도는 환급 전 전체 실행을 마칠 만큼 넉넉해야 합니다.

저장 슬롯 하나를 비우면 항상 4,800을 받나요?

원래 값·지금 값·새 값과 되돌리기 여부 같은 SSTORE 조건을 채워야 하며, 거래 전체의 상한에도 걸릴 수 있습니다.

쓰지 못한 환급은 다음 거래로 넘어가나요?

아닙니다. 해당 거래를 정산할 때 상한을 넘은 카운터는 넘어가지 않습니다.

더 깊이 읽기

본문에서 다룬 개념과 확인 절차를 다음 글에서 이어서 살펴보세요.

참고한 원문 자료

자료 확인 기준일 2026.09.27
  1. EIP-3529: Reduction in refundseips.ethereum.org
  2. EIP-2200: Structured Definitions for Net Gas Meteringeips.ethereum.org
작성 방식과 확인 범위
출처 수집
원문 링크 2개 제공
작성·확인
공식 기관 자료를 근거로 AI 도구를 활용해 작성했고, 운영자가 발행 전에 읽어 확인합니다.
전문가 검토
세무·법률 전문가 검토는 거치지 않았습니다.

투자·세무 판단은 전문가와 상의하세요. 제도와 거래소 안내는 바뀔 수 있으니 원문의 적용 대상과 최신 안내를 함께 확인해 주세요.

이해를 위한 정보 콘텐츠

이 글은 특정 자산의 매수·매도 또는 수익을 권유하지 않습니다. 자료의 발표 시점과 이후 변경 사항을 함께 확인해 주세요.

편집 원칙 보기 →이 기사 정정 제보 →