암호화폐의 미체결 거래가 발생하는 이유는 무엇인가요?
안녕하세요?
비트코인과 이더리움의 네트워크 현황을 보면 미체결 거래가 굉장히 많이 발생하는 것 같습니다. 예전처럼 불장이여서 트래픽이 많이 몰리는것도 아닐것 같은데 그럼에도 불구하고 계속해서 미체결 거래가 발생하는 이유가 무엇인가요?
미체결 거래가 발생할수 있는 다양한 원인에 대해서 설명 부탁드립니다.
답변 미리 감사드립니다.
답변을 드리기 전에 '미체결 거래'가 정확히 어떤 것을 말하는 것인지 확실하지 않아서 망설여집니다만, 본 답변에서는 트랜젝션이 제대로 처리 되지 않는 현상을 의미한다고 생각하고 말씀드리도록 하겠습니다.
그리고 제가 비트코인, 이오스나 다른 블록체인에 비해 이더리움에 익숙하므로 이더리움을 기준으로 설명드리도록 하겠습니다.
처음부터 아예 트랜젝션 브로드캐스팅에 실패하는 경우
가끔씩 이더리움 지갑에서 암호화폐 전송 수량과 가스비, 가스 한도를 설정하고 트랜스퍼를 시켜도 아무 변화가 없이 브로드캐스팅이 안 될 경우가 있습니다. 특히 C모 지갑 앱에서 이런 현상이 많이 발생합니다. 이때는 가스비를 조금 더 높여서 브로드캐스팅을 시도하면 트랜젝션이 정상적으로 발생됩니다.
트랜젝션의 브로드캐스팅은 성공했으나 트랜젝션이 취소되는 경우(Out of Gas)
이더리움의 트랜젝션을 처리하기 위해서는 적절한 가스비를 지불하는 것도 중요하지만 가스 한도도 중요합니다. 트랜젝션이 EVM을 통해 연산될 때(채굴자들이 트랜젝션을 처리할 때) 가스가 소모되는데요, 트랜젝션이 완전하게 처리되기 전에 가스 한도에 도달해 버리면 더 이상 연료가 없기 때문에 차가 멈추듯 트랜젝션의 처리가 멈추고 원상태(트랜젝션이 일어나지 않은 상태)로 복구되어 버립니다. 즉, 트랜젝션이 완전히 처리 되지 못하고 취소되어 버리는 것입니다. 이 경우에도 지불한 가스비는 채굴자들에게 수수료로 지급됩니다. 트랜젝션이 취소되는 이유는 완전히 처리되지 못한 거래를 블록체인에 기록할 수 없기 때문입니다. 이 오류는 가스 한도를 보다 넉넉히 설정하는 것으로 해결할 수 있습니다.
트랜젝션 목적지 혹은 수신자 측에서 컨트랙트를 제대로 처리할 수 없는 경우(Bad Jump Destination)
이 오류는 주로 ICO에 참여하는 경우 트랜젝션이 한 번에 몰려서 스마트 컨트랙트가 오류를 일으킬 때 주로 발생하곤 합니다. 이 경우 해당 ICO 프로젝트에 문의하는 것이 좋습니다.
스마트 컨트랙트 코드에 기술적인 문제가 있을 경우(Bad Instruction)
스마트 컨트랙트 코드에 기술적인 문제가 있을 경우 오류가 발생할 수 있습니다. 또한 ICO에 참여하기 위해 컨트랙트 주소로의 전송에서 ICO가 아직 시작되지 않았거나, 끝났거나, 한도에 도달했거나 하는 등의 이유로 참여 조건을 만족하지 못한 경우에도 이 오류가 발생할 수 있습니다.
ERC20 토큰의 전송이 되지 않는 경우
해당 토큰이 락업되어 있어서 전송이 불가능 할 경우, 토큰 잔액보다 더 많은 양의 토큰을 전송하려고 할 경우, ERC20 발행과 관련한 컨트랙트에 오류가 있어서 ERC20 표준대로 제대로된 토큰이 발행되지 못한 경우에 토큰이 제대로 전송되지 않을 수 있습니다.
답변이 도움이 되길 바랍니다.