본문 바로가기

암호화폐 정보

이더리움 거래(트랜젝션) 오류(에러) 3가지

이더리움을 전송하다보면 거래(트랜젝션) 오류 때문에 전송이 안될때가 있습니다. 단순한 오류로 인하여 전송이 안될수도 있고 특정 상황 때문에 반복적으로 오류가 발생하여 거래가 안될때도 있습니다. 저 역시 수번 ICO를 진행하면서 전송 오류 때문에 답답했던 적이 초반에 많았습니다. 오늘은 이러한 오류들의 원인과 대처법에 대하여 살펴 보도록 하겠습니다.


우선 자신의 이더리움 거래 내역에 관해 살펴 볼 수 있는 방법부터 알려드리도록 하겠습니다. 이더리움 거래 내역은 이더스캔이라는 사이트에서 확인해 볼 수 있습니다. 이더스캔은 이더리움 블록체인 내에서 일어나는 모든 거래 내역을 확인해 볼 수 있는 사이트로서 개별 주소에 관한 거래 내역도 모아서 볼 수가 있습니다. 자신의 거래 내역만을 살펴 보실려면 https://etherscan.io/address/ 이 뒷부분에 자신의 이더리움 주소를 입력하면 한 번에 확인해 보실 수가 있습니다.



그럼 이제 본격적으로 이더리움 트랜젝션 오류에 대해서 살펴보도록 하겠습니다. 트랜젝션 오류는 크게 3가지 정도입니다. 우선은 트랜젝션 자체가 생성되지 않는 오류입니다. 바로 트랜젝션 생성을 시도하였으나 어떠한 이유들로 인하여 트랜젝션 생성이 취소된 경우입니다. 보통 대규모 거래가 일어나고 있을 때 많이 발생합니다.


특히 요근래에 특정 ICO가 짧은 시간 내에 대규모의 자금을 모금하면서 많이 발생하고 있습니다. 트랜젝션 생성이 과도하게 몰리면서 트랜젝션 자체가 사라지는 것입니다. 이럴 경우에는 말 그대로 트랜젝션이 생성이 된 것이 아니기 때문에 트랜젝션을 새로 생성해야만 합니다. 트랜젝션이 생성이 될 때까지 반복해서 트랜젝션을 생성하는 방법 밖에 없는데 이 경우에 가스 프라이스와 가스 리미트를 동일한 값으로 생성할 경우에는 신규로 트랜젝션이 생성되지 않기 때문에 가스 리미트 값을 미세하게 변경하면서 트랜젝션을 생성하는 것이 좋습니다. 또한 이 경우는 트랜젝션 자체가 사라진 것이기에 트랜젝션 비용 또한 들지 않습니다.





두 번째 오류는 트랜젝션은 생성이 되었으나 가스 리미트가 충분치 않아서 거래가 이뤄지지 않는 경우입니다. 에러 메시지는 Out of gas라고 표시가 됩니다. 위의 상황을 예시로 설명해드리도록 하겠습니다. 제가 이더리움 전송을 위하여 가스 리미트는 50,000 / 가스 프라이스는 24Gwei 로 트랜젝션을 생성하였으나 가스 리미트가 충분하지가 않아서 거래가 캔슬이 되었습니다.



위의 상황에서는 가스 리미트를 60,000으로 하여 트랜젝션을 신규로 생성하여 전송을 성공시켰습니다. 또 한가지 살펴 볼 수 있는 것이 트랜젝션은 캔슬 당했으나 트랜젝션 비용이 소모가 되었다는 점입니다.(참고로 트랜젝션 비용은 가스 프라이스 X 가스 리미트입니다.) 0.0012 이더의 트랜젝션이 비용이 거래가 취소되었지만 소모가 된 점입니다.





Out of gas 오류의 경우 가스 리미트를 충분히 올리면 대부분 해결이 됩니다. 참고로 가스 리미트를 130,000 이렇게 했다해서 130,000을 모두 사용하는 것은 아닙니다. 경우에 따라서 모두 사용할 수도 있으나 보통은 위와 같이 적정량 만을 사용합니다. 위에서 보시듯이 130,000으로 트랜젝션을 시도하였으나 실제로 사용된 가스 리미크는 52336에 그친 것을 보실 수가 있습니다.










세 번째 오류는 Bad jump destination 으로 가장 피곤한 오류입니다. 해당 오류는 대처 방법이라 할 수 있는 것이 특별하게 없기 때문입니다. 해당 에러의 원인은 여러가지가 있을 수 있으나 가장 흔한 원인은 바로 이더리움 전송 받는 주소 쪽에서 여러 환경적 요인들에 의해 받을 수 없기 때문입니다. 가장 빈번하게 이 오류를 확인할 수 있는 경우가 ICO를 진행할 때입니다. 대규모 거래가 동시에 발생할 때 많이 볼 수가 있을 것입니다. 이럴때 할 수 있는 방법은 사실상 없다고 보시면 됩니다. 이 에러는 자신뿐만 아니라 다른 사람들도 동시에 발생하는 에러이기에 정체가 해소될때까지 추이를 지켜보는 방법 밖에 없습니다. 이 또한 트랜젝션 비용이 수반되기 때문에 해당 에러가 동시다발적으로 발생한다 싶을때는 잠시 멈춰 추이를 지켜보는 것이 좋습니다.



이 외에도 다양한 오류로 인해서 트랜젝션이 실패할 수가 있습니다. 하지만 경험상 대표적으로 위의 세가지 정도가 가장 빈번하기 때문에 위의 경우만 잘 살펴보아도 왠만한 오류에는 대처를 하실 수가 있을 것입니다. 다시 한 번 정리하자면,

1. 트랜젝션 자체가 생성이 안될 경우에는 생성이 될 때 까지 가스 리미트 값을 미세하게 변경하면서 생성

2. Out of gas 오류의 경우 가스 리미트를 충분히 높여서 생성

3. Bad jump destination 오류의 경우 병목 현상일 가능성이 높기 때문에 추이를 살펴 보는 것

이 정도로 정리할 수가 있겠네요. 그럼 아무쪼록 도움이 되셨길 바랍니다.

반응형