아하
검색 이미지
생활꿀팁 이미지
생활꿀팁생활
생활꿀팁 이미지
생활꿀팁생활
WINTERFELL
WINTERFELL 19.10.02

이중지불 해킹의 종류들은 어떤 것들이 있나요?

블록체인 기술의 발전 역사는 해킹들의 도전 극복의 과정이라고 해도 될 듯 합니다. 블록체인상의 거래속도를 극대화하여 Availability를 높이려는 노력과 함께 블록검증 과정이 민주적으로 이루어지도록 여러가지 노력을 기울이고 있는데요.

이중지불의 문제는 블록체인 기술이 다루어야 할 가장 근본적인 도전이라고 생각합니다. 이중지불을 일으키는 해킹의 종류들은 어떤 것이 있는지 궁금합니다.

55글자 더 채워주세요.
답변의 개수
1개의 답변이 있어요!
  • 안녕하세요. 이중지불 공격 종류에 대하여 답변드리겠습니다.

    • 이중지불이란?

      • 동일할 암호화폐로 한번의 거래로 두 번이상 거래되는 현상을 말합니다.

      • 즉, A가 1Aha를 B와 C에게 동일한 거래 내역을 보내게 되고 승인 대기(팬딩) 상태 노드의 네트워크를 차단(거랜내역을 인근노드에게 전파 차단)하게 됩니다. 이때 51%의 블록체인 네트워크 점유율을 가지고 있는 A가 B에게 1Aha에 대한 거래완료 후 조작된 블록을 생산하게 하게 된 후 다시 네트워크를 연결하여 인근 노드에게 전파를 하게 됩니다.

      • 이렇게 되면 49%의 점유율을 가진 노드에도 블럭이 생산(정상거래 완료) 되지만 51% 점유율을 가진 A가 더 높은 힘에 의해 49%의 점유율을 가진 쪽의 블럭은 취소되고 51%의 점유율을 가진 A쪽이 정상적인 블록으로 인정받게 됩니다.

      • 이렇게 되면 이미 49%의 노드쪽의 거래도 완료되고, 차후에는 51%의 노드쪽의 거래도 완료되게 되어 이중지불 상태가 되게됩니다.

    • 이클립스 어택(Eclipse Attack)이란?

      • 악의적인 노드가 블록체인 네트워크에 허위로 작성된 전송 내역을 담긴 블록을 다수의 노드에게 검증 받은 것처럼 하여 타겟노드에 전파하여 이중지불을 발생하게 하는 공격을 말합니다.

      • IP주소와 노드 아이디를 기억하여 하나의 주소에서 여러 개의 키를 사용 하지 못하게 해야하만 가능합니다. 또한 내역을 전송 받을 시 인근 특정 노드와 연결(협력)하여 단독으로 처리하지 않도록 방지하여야 합니다.

      • 마지막으로 시간을 이용한 공격시에는 노드의 서버 시간 동기화를 주기적으로 확인해야 합니다.

    • Nothing at Stake Attack란?

      • 지분증명에서 사용되는 이중지불공격의 일종으로 일명 "손해보지 않는 공격" 이라는 뜻을 가지고 있습니다.

      • 공격자가 이중지불을 발생시키기 위해 만든 기존 블록 외 새 블록을 추가로 전파하게 되면 포크가 발생하게 됩니다. 이때 블록 중 정상적인 블록을 인정받기 위한 투표를 실시하게 되고 두가지 중 하나만 인정 받아도 정상적인 거래가 성립됩니다.

      • 즉, 약간의 팬딩(거래 대기)을 이용하여 두가지의 트랜젝션(거래)을 발생시켜 그 중 하나만 인정받아도 이익이 되는 상황을 말합니다.

      • 쉽게 말해 A에 사용되는 거래를 위해 트랜잭션을 실행하고 팬딩이 시작되면 거래가 완료되기 전에 다른 거래를 B에게 거래를 신청합니다. 그런 경우 실제 거래가 두가지가 신청되고 둘 중 하나만 인정받아도 실제 거래가 성립되게 됩니다.

      • Nothing at Stake Attack에는 "Long Range Attack"과 "Short Range Attack"이 존재합니다.

        • Long Range Attack이란?

          + 포크된 상태에서 올바른 블록을 검증하기 위해 투표를 할 경우 많은 지분을 가지고 있는

          노드가 거짓 블록을 옮바른 블록인 것 처럼 계속해서 체인에 연결되도록 조작하여

          올바른 블록을 검증한 노드들에게 손해를 보게 하는 공격입니다.

        • Short Range Attack이란?

          + 포크된 상태에서 지분을 많이 가지고 있는 공격자의 결정에 의해 둘 중 하나의 블록만

          인정받게 되기 때문에 지분이 상대적을 낮은 정상적인 노드들은 어느쪽이 올바른

          블록인지를 알 수 없어 두 곳 모두 검증하지 않으면 손해를 보게 되는 상황을 말합니다.

    • 리플레이 어택(Replay Attack)이란?

      • 특정 블록체인이 하드포크(별도의 체인)되면서 발생되는 이중지불 공격의 일종입니다.

      • 하드포크가 발생될 경우 동일한 거래내역이 분할된 다른 블록체인에도 존재하게 되어 두 체인에 동일 거래가 이루어지는 문제를 말합니다.

      • 이를 방지하기 위해 원본 거래내역에 리플레이 방지 코드를 삽입하여 이중지불 문제를 해결하게 됩니다.

    • 레이스 어택(Race Attack)이란?

      • 일종의 이중지불 공격으로 동일한 거래사항을 2번 이상 각각 다른 곳으로 거래를 연달아 신청 후 트랜잭션 전파 되는 과정에서 충돌이 발생하여 하나의 거래는 성공하고, 나머지 거래는 취소되어 되돌아오는 구조적 문제를 이용한 공격입니다.

      • 즉, 동일한 거래를 하나는 A와 B에게 연달아 전송하지만 해당 블록체인 시스템의 트랜잭션 처리 결함으로 A의 거래는 승인이되고, B의 거래는 취소되어 되돌아오게 되어 한번에 두가지의 거래가 승인되는 문제를 말합니다.

    • 그라인딩 어택(Grinding Attack)이란?

      • PoS방식은 특정 기준에 부합할 경우 블록을 생성할 권한을 얻게 되는데 특히 지분이 많을 수록 블록을 생성할 권한 얻을 수 있는 확률이 높아지게 됩니다.

      • 블록을 생성할 확률을 높이기 위해 변수를 미리 계산하여 블록을 생성할 확률을 얻을 때까지 전송내역을 누락시킵니다.

      • 그런 후 예측한 근거를 통해 지분(코인)을 사전에 확보여 블록을 생성할 권한을 높이는 방법을 말합니다.

      • 즉, PoS검증방식에서 블록을 생성할 권한을 얻기 위해 사용되는 공격입니다.

      • 이를 방지하기 위해서는 코인토싱(Coin Tossing) 프로토콜을 사용하게 됩니다. (에이다가 이 방식을 사용하고 있습니다.)

    • 뇌물수수 공격(Bribery Attack)이란?

      • 노물수수 공격은 51% 공격의 일종으로 공격자는 블록체인 채굴권을 가지고 있는 자에게 뇌물을 주어 채굴권(블록생성)을 획득하게 되고 이를 통해 거짓 블록을 생성하여 정상적인 채굴자에게 피해를 주는 공격을 말합니다.

      • 즉, 뇌물을 이용하여 다수의 블록생성의 권한을 획득 후 51%의 넘는 채굴권을 통해 공격자 의지대로 거짓 블록을 생성하여 해당 블록체인 네트워크에 피해를 입히는 공격을 말합니다.

    • 이기적인 채굴(Selfish Mining)이란?

      • 채굴한 블록결과를 다른 노드에게 공개하지 않고 일정기간 혼자만 알고 있다가 주변 노드에게 전파하는 행위를 말합니다.

      • 이런 경우 다른 경쟁자가 채굴에 성공했다 하더라도 먼저 생성된 블록이 인정되게 되기 때문에 정상 채굴자들의 전력을 낭비하여 전체 블록체인 네트워크의 채산성을 방해하는 행위를 말합니다.

      • 따라서 블록체인 네트워크의 정상적인 운영을 방해하는 악의적인 행위로 볼 수 있습니다.

    감사합니다.