Race Attack은 어떤 방식의 블록체인 공격인가요?
가장 널리 알려져있는 사용자 레벨의 블록체인 공격 유형이라는 레이스어택(Race Attack)은 어떤 방식의 블록체인 공격인지 알고 싶습니다.
안녕하세요. 레이스어택 공격에 대하여 답변드리겠습니다.
레이스 어택(Race Attack)이란?
일종의 이중지불 공격으로 동일한 거래사항을 2번 이상 각각 다른 곳으로 거래를 연달아 신청 후 트랜잭션 전파 되는 과정에서 충돌이 발생하여 하나의 거래는 성공하고, 나머지 거래는 취소되어 되돌아오는 구조적 문제를 이용한 공격입니다.
즉, 동일한 거래를 하나는 A와 B에게 연달아 전송하지만 해당 블록체인 시스템의 트랜잭션 처리 결함으로 A의 거래는 승인이되고, B의 거래는 취소되어 되돌아오게 되어 한번에 두가지의 거래가 승인되는 문제를 말합니다.
감사합니다.
Race Attack이란 이중 지불을 가능하게 하는 공격 방식이라고 할 수 있습니다. 이때 공격자와 대상자가 있다고 할 때 대상자가 경우 0 컨펌 상태의 TxHash를 신뢰하는 사람일 경우 공격 성공 확률이 높아집니다.
예를 들어 공격자 A와 대상자 B가 1BTC를 1천만원과 교환하는 거래를 한다고 할 때 먼저 공격자 A가 동시에 같은 잔고를 이용하여 두 개의 트랜젝션을 발생시킵니다.
하나는 A가 B에게 1BTC를 전송하는 1번 트랜젝션이고 또 하나는 A가 1BTC를 자신의 다른 지갑 주소로 보내는 2번 트랜젝션이 됩니다.
그리고 A는 B에게 1번 트랜젝션을 보여준 후 1천만원을 받습니다. 이제 두 트랜젝션이 네트워크 상에서 무엇이 선택되느냐에 따라 공격의 성공 여부가 결정되게 됩니다.
이때 어떤 트랜젝션이 먼저 처리되느냐의 여부가 마치 Race와 같다고 하여 레이스 어택이라고 불리게 되는데, 2번 트랜젝션의 수수료를 1번에 비해 높게 책정할 경우 2번이 먼저 처리될 가능성이 높아질 수 있습니다.
결론적으로 1번 트랜젝션이 블록에 기록된다면 정상적인 거래가 될 것이고 2번 트랜젝션이 블록에 기록된다면 공격자 A는 공격에 성공하여 1BTC를 B에게 보내지 않고도 1천만원을 얻은 것이 되고 1BTC를 다시 C에게 보내어 판매할 경우 1천만원을 벌 수가 있기 때문에 이중지불 공격이 성공하게 된다고 할 수 있겠습니다.
답변이 도움이 되길 바랍니다.