본문으로 이동

가스와 트랜잭션 수수료

포크를 명시해 가스 단위, 고유·실행 비용, EIP-1559 상한, 기본 수수료 소각, 우선 수수료, 되돌리기, 가스 부족, 환급, blob gas, L2 수수료를 설명합니다.

업데이트

교육 참고용이며 투자 또는 거래 조언이 아닙니다. 수수료는 해당 체인, 포크, 트랜잭션 유형, 실행 경로, 상태, 수수료 시장, 시퀀서 또는 빌더 정책과 포함 시점에 따라 달라집니다.

직접 답변

가스는 실행 작업과 상태 접근을 측정하는 프로토콜 회계 단위이고, 가스 수수료는 과금 가스 단위 수에 단위당 가격을 곱한 금전 비용입니다. EIP-1559 이더리움에서는 effectiveGasPrice = min(maxFeePerGas, baseFeePerGas + maxPriorityFeePerGas), 실행 수수료는 gasUsed * effectiveGasPrice입니다. 기본 수수료 부분은 소각되고 우선 수수료 부분은 블록의 수수료 수취인 경로를 통해 지급됩니다. 가스 한도와 수수료 상한은 허용하는 최대치이지 자동으로 전액 지출되는 금액이 아닙니다.

실제 가스 사용량은 calldata, opcode 경로, 메모리 확장, 콜드·웜 상태 접근, 저장소 변경, 중첩 호출, 프리컴파일, 성공·실패, 환급과 적용 포크에 따라 달라집니다. 가격을 높이면 포함 경쟁력은 높일 수 있지만 되돌리기, 부족한 가스 한도, 악성 컨트랙트, 오래된 견적 또는 잘못된 calldata를 고치지는 못합니다. Blob 트랜잭션과 많은 L2에는 별도 데이터 또는 프로토콜 수수료가 있으므로 이를 EVM 가스에 임의로 합치면 안 됩니다.

네트워크 수수료
0.000462 native
법정화폐 환산
$1.39
기본 수수료
22 gwei

결과는 교육용 근사치입니다. 명시되지 않는 한 거래소 규칙, 세금, 지연, 오라클 동작 및 프로토콜별 조건은 포함하지 않습니다.

작동 방식

  1. 체인, 포크, 블록 또는 상태 태그, 트랜잭션 유형, 발신자, nonce, 목적지, 전송 가치, calldata, 접근 목록, blob 필드, 가스 토큰과 수수료 통화를 고정합니다. 견적이 L1 트랜잭션, L2 실행, 데이터 게시, 출금 또는 복합 경로 중 무엇인지 기록합니다.
  2. 실행 전에 고유 가스를 재구성합니다. 트랜잭션 봉투, calldata 바이트 비용, 컨트랙트 생성과 접근 목록 비용, 유형별 추가 비용을 포함합니다. 가스 한도가 고유 가스보다 작거나 발신자가 프로토콜의 최대 비용 유효성 검사를 충족하지 못하면 트랜잭션은 포함·실행 전에 거부되며, 포함 후 되돌려지는 것이 아닙니다.
  3. 대상 포크 규칙으로 실행을 추적합니다. opcode 동적 비용, 메모리 확장, 콜드·웜 계정 또는 저장소 슬롯, SSTORE, 호출 가스 전달, 가치 이전, 프리컴파일 비용, 로그와 환급을 측정합니다. 같은 ABI 함수도 상태에 따라 다른 분기를 타고 다른 가스를 사용할 수 있습니다.
  4. 결과를 구분합니다. 실행 성공은 효과를 확정합니다. REVERT는 실패 범위를 되돌리고 해당 호출 프레임의 미사용 가스를 반환할 수 있습니다. 가스 부족 예외 종료는 보통 프레임에 제공된 가스를 모두 소비합니다. 포함된 최상위 실패는 컨트랙트 상태, 가치 이전과 로그를 되돌리더라도 발신자 nonce와 과금 가스를 소비합니다.
  5. 실행 가스의 가격을 계산합니다. 유형 2 트랜잭션은 기본 수수료, 우선 수수료 상한과 총액 상한으로 실효 가스 가격을 구하고, 과금 가스를 소각되는 기본 수수료와 우선 수수료로 나눕니다. 미사용 가스, 지출되지 않은 상한 여유분, 적격 상태 정리에서 발생해 적용 환급 상한의 제약을 받는 프로토콜 가스 환급을 구분합니다.
  6. 다른 수수료 시장은 별도로 계산합니다. Blob 트랜잭션은 실행 가스와 함께 blobGasUsed * blobGasPrice를 지불하며 maxFeePerBlobGas의 제약을 받습니다. blob 기본 수수료에는 독립 조정 경로가 있습니다. L2 사용자 수수료에는 L2 실행, 압축된 L1 데이터 또는 blob 비용, 운영자·프로토콜 요금과 마진이 포함될 수 있고, 공식과 스칼라 매개변수는 배포와 업그레이드마다 다릅니다.
  7. 견적, 포함과 영수증을 대조합니다. 서명 전에 전송 가치와 최대 허용 수수료에 맞춰 잔액을 확인하고, 고정한 상태에서 시뮬레이션해 유한한 상한을 설정합니다. 포함 후 가스 한도, 영수증 가스 사용량, 실효 가격, 기본·우선 수수료, 환급 영향, blob gas, L2 수수료 필드, 상태와 잔액 변동을 기록하고 견적 오차, 교체와 최종성을 구분합니다.

계산 예시

  • 유형 2 성공과 상한. 가스 한도는 120,000, 사용량은 70,000, 기본 수수료는 25 gwei, 최대 우선 수수료는 3 gwei, 최대 수수료는 40 gwei입니다. 실효 가격은 min(40, 25 + 3) = 28 gwei, 실제 수수료는 70,000 * 28 gwei = 0.001960 ETH이고, 0.001750 ETH가 소각되며 0.000210 ETH가 우선 수수료입니다. 실행 수수료 최대 허용액은 120,000 * 40 gwei = 0.004800 ETH입니다. 미사용 50,000 gas와 지출되지 않은 상한 여유분은 상태 정리에 대한 프로토콜 환급이 아닙니다.
  • REVERT와 가스 부족. 포함된 두 호출은 가스 한도 100,000, 실효 가격 30 gwei가 같습니다. 호출 A가 REVERT했을 때 영수증 가스 사용량은 60,000, 수수료는 60,000 * 30 gwei = 0.001800 ETH입니다. 호출 B는 전체 한도를 소진해 100,000 * 30 gwei = 0.003000 ETH를 냅니다. 둘 다 컨트랙트 효과를 되돌리고 nonce를 소비하지만 REVERT는 미사용 가스를 남길 수 있고 가스 부족은 그렇지 않습니다.
  • 환급 상한. EIP-3529 포크로 한정한 교육 예에서 환급 전 실행은 100,000 gas, 환급 카운터는 30,000 gas입니다. 적용 가능한 상한은 100,000 / 5 = 20,000 gas이므로 과금 가스는 100,000 - 20,000 = 80,000 gas입니다. 20 gwei일 때 수수료는 0.001600 ETH로, 환급 전 0.002000 ETH보다 0.000400 ETH 적습니다. 적격 작업과 환급 규칙은 포크에 따라 바뀔 수 있습니다.
  • 별도 blob 수수료 시장. 가상의 blob 트랜잭션이 실행 가스 100,000을 가격 20 gwei로 사용하고 blob 두 개를 담는다고 가정합니다. 131,072 blob gas/blob이면 blob gas는 262,144, 가격이 5 gwei이면 blob 수수료는 262,144 * 5 gwei = 0.00131072 ETH입니다. 실행 수수료는 0.002000 ETH, 프로토콜 수수료 합계는 0.00331072 ETH입니다. 5 gwei는 예시이며, blob 수수료는 검증자 우선 수수료도 L2 사용자의 전체 비용도 아닙니다.

위험

  • 체인, 포크, 가스 토큰, 트랜잭션 유형 또는 수수료 통화를 잘못 선택합니다.
  • 가스 단위, wei, gwei, ETH와 법정화폐 환산을 혼동합니다.
  • 가스 한도를 예상 또는 실제 수수료로 봅니다.
  • 고유 가스나 최대 비용 실행 전 검사를 통과하지 못합니다.
  • 상태, 기본 수수료 또는 calldata 변경 후 오래된 견적에 의존합니다.
  • 실제 분기에 필요한 양보다 가스 한도를 낮게 둡니다.
  • 가스 가격을 높이면 컨트랙트 되돌리기를 막는다고 생각합니다.
  • REVERT, 가스 부족, 유효하지 않은 opcode와 실행 전 거부를 혼동합니다.
  • 최상위 상태가 1이어도 포착된 하위 호출 실패를 놓칩니다.
  • 콜드·웜 상태 접근이나 불완전한 접근 목록의 가격을 잘못 계산합니다.
  • 메모리 확장, 호출 가스 전달, 프리컴파일 또는 로그 비용을 무시합니다.
  • 오래된 저장소 환급 규칙을 쓰거나 환급 상한을 초과합니다.
  • 미사용 가스나 상한 여유분을 프로토콜 가스 환급으로 계산합니다.
  • 최대 수수료를 포함 블록의 기본 수수료보다 낮게 둡니다.
  • 빌더나 시퀀서 정책을 모른 채 우선 수수료를 과다 지급합니다.
  • 다른 자산을 보유해도 네이티브 가스 토큰이 없습니다.
  • blob gas, blob 상한 또는 데이터 가용성 비용을 누락합니다.
  • 한 L2의 실행·데이터·스칼라·운영자 공식을 보편화합니다.
  • 교체, nonce, 드롭과 잔액 예약 경쟁을 무시합니다.
  • 수수료를 낸 성공 거래를 안전성이나 최종성의 증명으로 봅니다.

흔한 오해

  • 가스는 전송 가치의 일정 비율로 부과됩니다.
  • 가스 한도를 올리면 실제 청구액도 반드시 늘어납니다.
  • 높은 최대 수수료나 우선 수수료는 실행 성공을 보장합니다.
  • 미사용 허용액과 상태 정리 환급은 같은 메커니즘입니다.
  • L2 수수료는 로컬 EVM 가스뿐이고 blob 수수료는 일반 실행 가스입니다.

관련 주제

출처

탐색

위키 검색...