이더기룸의 가스비 부족으로 전송실패 시 가스비를 돌려받지 못하는 이유는 무엇 인가요?
이더리움 개인 지갑에서 이더리움이나 같은 계열 토큰을 전송할 경우에는 적정량의 가스비가 필요합니다.
그런데 이 때 송금의 성공유무와 무관하게 가스가 필요한데, 왜 전송 실패를 해도 가스가 필요한지 잘 모르겠습니다.
왜 그런건가요?
송금의 성공유무와 무관하게 가스가 필요한데, 왜 전송 실패를 해도 가스가 필요한지 잘 모르겠습니다. 왜 그런건가요?
이더리움의 가스비는 '가스 가격(gwei) X 가스 리미트(한도)'로 계산됩니다. 그리고 이더리움 블록체인 상에서 트랜젝션이 브로드캐스팅 되면 EVM의 연산을 통해 해당 트랜젝션이 처리되는데 이때 EVM에서 실행되는 명령어인 Opcode(Operatin Code)마다 각각 필요한 가스비가 정해져 있다고 할 수 있습니다.
그리고 이러한 EVM의 연산에는 마이닝 노드들의 컴퓨팅 파워가 이용되므로 트랜젝션 처리 수수료가 마이너들에게 지급됩니다.
이때 이더리움 블록체인 상에서 트랜젝션을 발생시키면서 가스비를 낮게 설정해 두면 트랜젝션의 처리가 우선 순위에 밀려 처리 시간이 오래 걸릴 확률이 있습니다.
또한 앞서 말씀드린 가스 리미트도 중요할 텐데요, 이것은 트랜젝션을 처리하기 위해 지불하는 수수료의 한도라고 할 수 있습니다. 예를 들어 차를 타고 서울에서 부산까지 간다고 할 때 중간에 연료를 보충하지 않을 것이라면 처음부터 충분한 연료를 준비해서 출발하는 것이 맞습니다.
그런데 중간에 연료를 보충하지도 못하는데 처음부터 부산까지 갈 수 없을 만큼의 연료를 준비했다면, 곧 연료의 한계에 도달하게 되고 차가 멈춰 버릴 가능성이 높을 것입니다.
이더리움의 거래 처리도 이와 마찬가지로 중간에 가스 리미트에 도달하게 되면 그 동안 해당 트랜젝션의 처리를 위해 연산 작업을 했던 모든 것들이 없었던 것으로 되어 버립니다. 왜냐하면 처리되지 않은 거래 내역을 블록에 기록할 수가 없기 때문입니다.
따라서 가스비와 가스비 한도가 낮을 경우 트랜젝션이 취소되는 결과가 생기게 되며 해당 거래 내역이 블록에 기록되지 않으므로 사실상 없었던 거래가 되어버립니다.
그러나 앞서 말씀드린 것처럼 트랜젝션이 취소가 되더라도 마이닝 노드의 컴퓨팅 파워를 이용하여 EVM에서 연산이 이루어졌기 때문에 가스비가 마이너에 대한 보상으로 지급되는 것입니다.
답변이 도움이 되길 바랍니다.