[Xangle Digest]
※ 해당 컨텐츠는 Crypttempo(크립템포)에서 DeFi Lesson Series 영상을 기반으로 작성된 내용입니다. 컨텐츠에 대한 추가적인 주의사항은 본문 하단에서 확인해주세요.
가스 (GAS)- 이해를 돕기 위한 예시
농촌에 여러 명의 땅 주인이 있고 농사를 위해 땅을 갈아야 한다고 생각해 봅시다. 이 마을에는 소가 딱 한 마리가 있고 소 주인에게 요청을 하여 땅을 갈아야 하는데, 이 소는 하루에 500제곱미터를 갈아낼 수 있고 제곱미터 단위로 일감을 받습니다.
소 주인은 땅의 면적을 허위로 적어내어 소가 추가로 일해야 하는 것을 방지하기 위해 단서를 붙였습니다. 갈아야 할 땅의 면적을 실측하여 적어낸 땅의 면적보다 클 경우 땅은 갈지 않으며, 벌금으로 납부한 비용은 몰수하겠다는 것입니다. 또한 가진 땅보다 훨씬 많은 면적을 써서 무조건 남게 할 것을 방지하기 위해서 적어낸 비용을 선금으로 내야 하며, 다만 경작이 끝났을 때 결산하여 남는 비용에 대해서는 돌려주겠다고 하였습니다. 이렇게 되면 땅 주인들은 자신의 땅의 면적을 정확하게 파악하려 노력할 것이고 경작의 시급도에 따라 제곱미터당 경작 비용을 적게 될 입니다.
땅 주인들이 매일 아침 경작할 땅의 넓이와 제곱미터당 경작 비용을 적어내면 소 주인은 이를 확인하고 하루 가용 500제곱미터를 가장 이윤이 많이 남는 쪽으로 배분합니다.
이 농촌의 시스템이 이더리움 네트워크라면 땅 주인은 거래를 하는 사람이고 소는 이더리움의 컴퓨팅 능력입니다. 소가 할 수 있는 가장 작은 일의 단위인 일 제곱미터가 가스 유닛(Gas Unit)이 되고 땅 주인이 적어내는 소가 갈아야 할 땅의 최대 면적이 가스 한도(Gas Limit), 제곱미터당 경작 비용은 가스비(Gas Price)가 됩니다. 총 경작 비용은 경작 면적과 제곱미터당 경작 비용의 곱이 될 것이고 이것이 최대 가스비 한도(Maximum Gas Limit)가 됩니다.
소의 주인이 적어낸 땅의 면적과 비용을 확인하고 경작할 땅을 선택하는 것처럼 이더리움 블록체인 네트워크의 채굴자가 트랜잭션의 가스 한도와 유닛당 가스비를 확인하고 가장 높은 가스비의 트랜잭션을 골라서 블록에 담아 저장합니다.
경작할 면적보다 작은 면적을 적어내면 경작이 진행되지 않는 것처럼 가스 한도를 사용하는 가스보다 작게 적으면 가스 한도에 도달하는 순간 트랜잭션 실행은 실패하게 되고 모든 데이터는 트랜잭션 실행 전으로 환원되며, 지불한 총 가스비는 반환되지 않습니다. 반대로 가스 한도를 사용하는 가스보다 많이 적은 경우 거래가 성공하게 되고 남은 가스비는 반환 받습니다. 대신 비용을 선금으로 내는 것처럼 트랜잭션을 요청할 때 작성한 총 가스비 이상의 자산을 보유하지 않게 되면 트랜잭션을 시작할 수 없게 되기에 사용자는 무작정 가스 한도를 높여 쓸 수 없게 됩니다. 또, 사용자가 무한 루프를 도는 스마트 컨트랙트를 사용하게 되더라도 적어낸 가스 한도까지만 실행이 되고, 강제로 종료될 뿐만 아니라, 이번 트랜잭션을 통해 소모되어 버린 가스 값을 제외한 여러 잔액 등의 상태 값이 스마트 컨트랙트 실행 전으로 돌아가게 됩니다.
가스비 계산법
가스비 개념을 이해했다면 실제로 계산해 보겠습니다. 이더리움 네트워크에서 가스비는 기축통화인 이더로 지불하게 되고 가스 한도와 가스비의 단위는 Gwei이며 1 ETH는 10억 Gwei가 됩니다.
A가 B에게 10 ETH을 송금한다고 했을 때 가스 한도를 25,000 Gwei, 가스비를 40 Gwei로 설정했다면 최대 가스 한도는 다음과 같습니다.
참고로 현재 가스비는 EIP-1559를 적용한 것으로 가스비를 Base fee와 Priority fee로 나누어 지불하게 되었습니다. Base fee는 스마트 컨트랙트를 실행하기 위한 수수료로 사용 후 소각되어 유통되는 ETH 총량 증가의 속도를 줄이며 Priority fee는 채굴자에게 발행되는 ETH 외의 보상으로 사용됩니다.
일반적으로 가스 한도는 dApp에서 요청하는 한도의 2배 정도로 자동 설정되며 수정할 수 있으나 남는 가스비는 환불되기 때문에 보통은 그대로 적용합니다.
여기서 Base fee는 이더리움 네트워크 사용량에 따라 자동으로 정해지며, 사용자는 Priority fee를 조절하여 최종 가스비를 결정하게 됩니다.
거래 진행 순서는 먼저 A에게 수수료의 최대 금액인 0.001 ETH 이상이 있는 지 확인을 하고 보유하고 있다면 트랜잭션을 실행하게 됩니다. 실제 사용하는 가스 양이 20,000 Gwei라면 가스 한도를 25,000 Gwei로 적었기 때문에 이 거래는 성공하게 되고 남은 금액인200,000 Gwei는 A에게 반환됩니다. 반대로 A가 가스 한도를 15,000 Gwei를 적게 되면, 실제 사용되는 가스인 20,000 Gwei 보다작게 되어 트랜잭션은 실패하게 되고, 사용된 총 가스비인 600,000 Gwei는 반환되지 않습니다.
예에서 실패한 경우 사용된 수수료는 0.0006 ETH로 1 ETH가 $1,000일 경우 0.6 달러로 작게 느껴지지만 가스비가 40Gwei가 아니라 1,000 Gwei이고 1 ETH가 $5,000일 때를 고려한다면 거래 실패로 사용된 총 가스비는 0.015 ETH, 즉 $75 가 됩니다.
현재는 거래량도 줄고 EIP-1559 도입 등으로 가스비는 많이 저렴해졌습니다. 하지만, 디파이가 폭발적으로 성장했던 2019년~ 2021년에는 한 번의 복잡한 트랜잭션을 사용하기 위해 가스비로 $200 ~ $300 정도가 소모되는 일도 자주 발생했었고, 네트워크의 복잡도에 따라 금액이 늘 변하기 때문에, 거래를 진행할 때는 항상 가스비를 꼼꼼히 확인하고 신중하게 거래를 진행해야 합니다.
-> Crypttempo(크립템포)의 '가스(GAS) -이해를 돕기 위한 예시' 영상 보러가기