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