[Xangle Digest]
※ 해당 컨텐츠는 Crypttempo(크립템포)에서 DeFi Lesson Series 영상을 기반으로 작성된 내용입니다. 컨텐츠에 대한 추가적인 주의사항은 본문 하단에서 확인해주세요.
가스 (GAS)
가스비는 블록체인 네트워크를 사용하기 위해 지불해야 하는 사용료입니다.
가스비를 도입하게 된 이유와 개념에 대한 설명, 실질적인 가스비의 계산 방법은 처음에 이해하기 다소 어려울 수 있지만, 당장은 전부 이해하지 못하더라도 크게 문제가 되지 않습니다. 실전에서 블록체인 네트워크를 사용하기 위해서는 중요한 개념이지만 지금은 포기하지 말고 가벼운 마음으로 한 번 살펴보며 가스비가 있다는 정도로 기억하고 넘어가도 되겠습니다.
이더리움 네트워크가 실생활에 이용되기 위해서는 스마트 컨트랙트의 무한루프와 네트워크 자원 분배의 두 가지 문제를 해결해야 합니다.
이더리움 블록체인이 스마트 컨트랙트를 채택하면서 일반적인 컴퓨터에서 실행되는 것과 같이 반복문을 사용할 수 있게 되어, 무한루프가 가능해졌습니다.
일반 컴퓨터는 무한 루프가 실행되면 프로그램이 다운되거나 컴퓨터가 멈추게 되고 이럴 경우 컴퓨터를 재부팅 하게 되면 다시 사용할 수 있는 상태가 됩니다. 그러나 블록체인은 멈추지 않고 돌아가는 컴퓨터이기 때문에, 네트워크가 마비되고 전체 노드가 이탈하여야만 멈추게 되므로 실제로는 블록체인 네트워크가 파괴된다고 볼 수 있을 것입니다. 따라서 컴퓨터에서와 마찬가지로 강제 종료와 같은 역할을 할 장치가 필요합니다.
두 번째는 네트워크의 자원 분배 문제입니다. 블록체인 네트워크에서는 데이터의 처리 및 기록이 블록의 형태로 일어나고 블록의 최대 사이즈가 정해져 있기 때문에 한 번에 처리할 수 있는 데이터의 양이 일정합니다. 만약 거래가 요청한 순서대로 처리된다면 디도스 공격같이 의미 없는 실행을 무수히 반복하여 네트워크를 마비시키는 경우 거래를 위해서는 무한정 기다려야 하는 일이 발생하게 됩니다.
이더리움에서는 이런 두 가지 문제를 해결하기 위해 비트코인의 트랜잭션 수수료의 개념을 차용하여 가스비의 개념을 도입하게 되었습니다. 가스비는 이더리움의 자원을 사용하는데 소요되는 수수료의 개념으로 자원을 소모할 수 있는 양과 우선순위를 결정해 줍니다.
이더리움 네트워크를 하나의 컴퓨터라고 생각했을 때 처리할 수 있는 일의 양을 가장 작은 단위로 나눈 것이 가스 유닛(Gas Unit) 입니다. 이 가스 유닛당 지불해야 할 수수료를 가스비(Gas Price)라고 하고 실행할 트랜잭션에 분배해야 할 최대 가스 유닛 양을 가스한도(Gas Limit)라고 합니다.
트랜잭션을 실행할 때 가스한도와 가스비를 적어 함께 제출하면 블록을 생성하는 채굴자는 제출된 트랜잭션 중 가스비가 높은 순서로 트랜잭션을 블록에 담아 저장하게 됩니다.
이때 최대 가스한도는 가스한도와 가스비의 곱으로 산정되며 트랜잭션을 제출할 때 적었던 최대 가스한도 이상의 이더를 보유하지 않으면 트랜잭션을 실행할 수 없습니다. 최종 지출되는 가스비는 사용한 가스 유닛과 가스비의 곱으로 정해지며 트랜잭션이 완료되는 데 필요한 가스 유닛이 적어낸 가스 한도를 초과하게 되면 그 시점에서 트랜잭션은 실패로 처리되고, 모든 기록은 트랜잭션을 제출하기 전 상태로 되돌아갑니다. 트랜잭션이 성공하면 그 결과는 블록에 담겨 저장되고 가스 한도 중 남은 가스 유닛에 대한 수수료는 환불 처리됩니다. 만약에 요청했던 트랜잭션이 실패하거나 필요에 의해 취소한다 해도 사용된 가스비는 환불되지 않기에 신중히 거래를 결정해야 합니다.
-> Crypttempo(크립템포)의 '가스(GAS)' 영상 보러가기