가스 한도 (Gas Limit)
가스 한도(Gas Limit)는 이더리움에서 트랜잭션 하나가 실행되는 동안 소비할 수 있는 가스의 최대량입니다. 가스는 연산량을 재는 단위이며, 가스 한도는 사용자가 트랜잭션에 직접 지정하는 연산량의 상한입니다. 수수료 금액 자체나 처리 우선순위를 뜻하지 않습니다.
자세히 알아보기
이더리움에서 ETH 전송이나 스마트 컨트랙트 호출 같은 모든 연산에는 정해진 양의 가스가 듭니다. 단순한 ETH 전송에는 21,000가스가 필요합니다. 실제로 내는 수수료는 사용한 가스량에 가스 1단위당 가격을 곱한 값입니다. 가스 가격은 네트워크가 정하는 기본 수수료(base fee)와 사용자가 덧붙이는 우선 수수료(priority fee, 팁)를 더한 것입니다.
수수료 = 사용한 가스량 × (기본 수수료 + 우선 수수료)
가스 한도는 이 공식에서 "사용한 가스량"이 넘을 수 없는 선입니다. 트랜잭션이 한도보다 적게 쓰면 쓰지 않은 가스는 사용자에게 돌아오므로, 한도를 넉넉히 잡았다고 해서 비용이 더 나오지는 않습니다. 다만 계정에는 가스 한도에 가스당 최대 가격(max fee)을 곱한 금액을 감당할 잔액이 있어야 트랜잭션이 유효합니다. 반대로 실행 도중 가스가 한도에 도달하면 트랜잭션은 "가스 부족(out of gas)"으로 실패합니다. 이때 상태 변경은 모두 되돌려지지만, 이미 수행한 연산에 쓰인 가스는 그대로 소비됩니다. 지갑은 보통 트랜잭션을 미리 시뮬레이션해 필요한 가스량을 추정하고 한도를 제안합니다.
처리 순서는 가스 한도로 정해지지 않습니다. 블록에 들어가려면 가스당 가격이 기본 수수료 이상이어야 하고, 같은 블록 안에서 먼저 처리되려면 우선 수수료를 높여야 합니다. 가스 한도를 올려도 트랜잭션은 빨라지지 않습니다.
블록 가스 한도
가스 한도라는 말은 블록 단위로도 씁니다. 블록 가스 한도는 블록 하나에 담길 수 있는 모든 트랜잭션의 가스 합계 상한입니다. 이더리움은 블록 가스 한도의 절반을 목표 크기로 두고, 블록 사용량이 목표보다 많으면 다음 블록의 기본 수수료를 올리고 적으면 내립니다. 예를 들어 블록 가스 한도가 3,600만이면 목표는 1,800만가스입니다. 트랜잭션 하나의 가스 한도는 블록 가스 한도를 넘을 수 없습니다.
블록체인·암호화폐에서는
가스 한도 개념은 이더리움과 이더리움 가상 머신(EVM)을 쓰는 여러 체인에서 같은 방식으로 쓰입니다. 복잡한 컨트랙트 호출일수록 많은 가스가 필요하므로, 한도를 너무 낮게 잡으면 실패한 트랜잭션에 수수료만 쓰게 됩니다. 한도는 무한 루프 같은 실행이 네트워크 자원을 끝없이 쓰지 못하게 막는 안전장치이기도 합니다.
쉽게 말하면
주유소에서 "최대 40리터까지만 넣어 주세요"라고 말하는 것과 같습니다. 40리터는 양의 상한이고, 리터당 가격은 따로 정해집니다. 탱크가 30리터에서 가득 차면 30리터 값만 냅니다. 상한을 높게 말한다고 해서 주유를 먼저 받는 것은 아닙니다.
예시
ETH를 단순 전송하면 21,000가스를 씁니다. 기본 수수료가 10gwei, 우선 수수료가 1gwei라면 수수료는 21,000 × 11gwei = 231,000gwei, 즉 0.000231 ETH입니다. 가스 한도를 30,000으로 지정해도 실제로 쓴 21,000가스분만 냅니다.
이 글은 학습을 위한 일반 정보이며 투자 권유나 법률 자문이 아닙니다. 가상자산은 가격 변동이 크고 원금 손실 위험이 있습니다.