아하
생활

생활꿀팁

탈퇴한 사용자
탈퇴한 사용자

이더리움 메타마스크 사용시 트랜잭션 speed up이나 취소가 가능한 원리?

메타마스크는 요청한 트랜잭션이 블록에 포함되기 전에 트랜잭션의 속도 향상 및 취소가 가능해서 자주 사용하는데요. 다른 이더리움 지갑에서는 이런 기능을 보지 못한 것 같아요. 메타마스크에서만 되는 건지, 또 이게 가능한 원리 궁금합니다.

55글자 더 채워주세요.
2개의 답변이 있어요!
  • 말쑥한호랑나비4
    말쑥한호랑나비4

    안녕하십니까 질문자님.

    먼저 질문자님께서 메타마스크를 사용하여 트랜잭션을 할 경우 블록에 포함되기전에는 말씀하신대로 속도 향상 및 취소가 가능합니다. 이 이유는 블록체인 내의 네트워크를 사용하기 전이기 때문에 가능하며, 전송이 되어 블록이 생성되는 과정이라면 그 과정을 취소하고 번복할 수 없습니다. 블록체인 특성상, 블록체인 네트워크내 블록 생성이 되면 위/변조가 불가능하여 임의 수정 및 취소가 불가능 한 원리와 같습니다.

    이는 메타마스크 제외하고도 마찬가지이며, 보통의 경우는 취소 기능을 잘 없습니다. 다만 네트워크 불안정, 너무 적은 가스비로 속도가 너무 느릴경우에는 자동으로 취소가 되거나 전송이 아예 되지 않는 경우는 발생합니다. 때문에 임의적인 취소보다 자동취소가 가능하며, 속도는 임의로 조정할 수 있습니다.

    질문에 도움이 되셨길 바랍니다.

    감사합니다.

  • 트랜잭션 스피드 업의 원리 : 이더리움은 가스비가 높은 트랜잭션부터 우선적으로 처리합니다.
    생성한 트랜잭션이 펜딩상태(블록에 반영되기 전)일 경우
    동일한 트랜잭션에서 높은 가스비를 지불하면 다른 트랜잭션보다 우선적으로 처리되어 스피드 업의 효과를 얻게 됩니다.

    트랜잭션 취소의 원리 : 스피드 업에서 높은 가스비를 지불하면 우선 채택된다고 하였습니다.
    이 점을 활용하여 A가 B에게 보내는 트랜잭션이 있다고 가정합시다.

    사실 트랜잭션에는 논스 값이라는 정보가 함께 포함되는데 논스값을 동일하게 적었을 경우
    가스비가 높은 트랜잭션을 먼저 블록에 반영하면 나머지 트랜잭션은 무시하게 됩니다.

    그래서 다음과 같은 취소가 가능해집니다.

    A가 B에게 보내는 트랜잭션을 취소하고 싶을때,
    A가 A에게 보내는 트랜잭션(아무의미 없는 트랜잭션)을 높은 가스비로 책정하여
    우선적으로 채택되게 하면 앞서 만들었던 A가 B에게 보내는 트랜잭션은 취소가 되는 효과가 일어납니다.

    위 같은 상황이 가능하려면 원래 트랜잭션과 취소 트랜잭션의 논스값이 동일해야 합니다.

    메타마스크에는 이런 기능을 제공하기 때문에 가능하게 된 것입니다.