본문 바로가기
Block Chain/Hack Series

[Hack Series] 51% 공격이란? || 고아 블록 Orphan Blocks | 체인재구성 Chain Reorganization ||

by 개발이 체질인 나그네 2023. 2. 25.
반응형

51% 공격 이란?

51% 공격은 단일 주체나 조직이 다수의 해시 파워를 제어하여 네트워크를 중단시킬 수 있는 공격입니다.

블록체인에 데이터를 저장하는 방식은, 채굴자라고 불리는 사람들이 저장시킬 데이터를 만들고, 다수가 데이터를 검증하여 문제가 없다고 판단이 되면, 해당 데이터를 블록체인에 저장합니다.

이때 만약 51%이상의 단일 주체 또는 조직이 본인들이 만든 변조된 데이터를 본인들이 검증한 후, 블록체인에 저장시킬 경우, 블록체인의 통제권을 갖게 되는 것입니다. 블록체인의 통제권을 갖게 되면 데이터 위변조뿐만 아니라, 트랜잭션의 일부를 승인하지 못하게 하고, 채굴작업의 보상을 독점할 수 있습니다.

 

※ 그러나 51% 공격 주체는 채굴 보상을 변경하거나 코인을 새롭게 생성하거나, 소유가 아닌 코인을 가로채는 작업은 할 수 없습니다.

 

 

 

51% 공격 동작 방식

네트워크 전체 해시 파워의 절반 이상을 확보하여 네트워크를 교란 시키는 공격이 51% 공격법입니다. 그렇다면 해커들은 어떻게 네트워크를 교란시킬 수 있을까요?

* 공격자가 51%의 해시 파워를 확보했다 가정하에 진행합니다.

 

(1) 공격자는 성능이 좋은 컴퓨터 파워를 통해 이더리움 네트워크에 접속합니다. 이때, 블록체인 네트워크에 접속해주는 프로그램을 수정해서, 채굴한 블록들(데이터가 저장된 블록)을 정상 네트워크에 전파(Broadcast) 하지 않고 혼자 보관합니다. 이런 식으로 여러 블록을 생성합니다. 이때 공격자는 51% 이상의 해시 파워를 갖고 있기 때문에, 블록 생성 속도가 기존 네트워크보다 빠릅니다.

 

(2) 공격자는 정상 네트워크에 트랜잭션을 발생시킵니다. 100 ETH를 어느 거래소에 입금합니다. 이때 블록 넘버가 150번에 기록됬다 가정해봅시다. 이때 공격자가 따로 갖고 있는 블록에는 100 ETH를 그대로 본인 지갑 주소에 갖고 있게 데이터를 저장합니다.

 

(3) 공격자는 거래소에 입금된 순간을 기다렸다가 거래소에서 100ETH를 현금으로 거래합니다. 이때의 블록 넘버가 160번이라고 가정해봅시다. 위에서 말한 거처럼, 51%의 해시 파워를 갖고 있기 때문에, 정상 네트워크 보단 블록 생성 속도가 훨씬 빠릅니다.

거래소에서 현금을 거래한 블록넘버가 160번이라면, 공격자가 갖고 있는 블록은 넘버는 160번을 넘은 그 이상의 블록 넘버일 겁니다.

 

(4) 공격자는 본인이 갖고 있는 블록과 체인을 정상 네트워크에 전파합니다. 

이때 정상 네트워크의 블록넘버가 160번이고, 공격자가 갖고 있는 블록 넘버는 그 이상인 170번이라고 가정해 봅시다.

블록체인은 이렇게 체인이 두 개로 나뉘었을 경우, 더 긴 체인을 선택하고 나머지 짧은 체인을 취소합니다.

이렇게 취소된 체인은 고아 블록(orphan blocks)라고 합니다. 그리고 이런 과정을 체인 재구성이라고 합니다.

 

(5) 공격자가 100ETH를 거래소를 통해 현금으로 바꾼 블록은 160번이지만, 그 내역은 고아 블록이 되어 취소되었습니다. 공격자가 갖고 있던 블록과 체인이 새로 재구성되며, 공격자의 지갑에는 여전히 100 ETH를 갖게 됩니다.

 

 

by Korbit medium

(6) 위와 같은 과정을 반복하며 공격자들은 계속해서 이득을 취하게 됩니다.

 

 

51% 공격에 대한 방지 및 대안

컨펌 횟수 증가

51% 공격은 블록체인 해시파워의 과반수를 확보하여 이중 지불 형태( 두 번의 거래 )로 입금한 후, 빼가는 방법입니다. 

이때 이중 지불 여부를 확인할 때 까지 거래 확정을 늦춘다면 예방이 가능합니다.

그러나 거래 확정을 늦추는 방법은 안전성을 보장할 수 있지만 거래 처리 속도가 느려져 사용성이 떨어지게 됩니다.

 

지연 기능

51% 공격이 성공하려면 악의적인 노드가 거래 기록을 네트워크에 기록하기 전에 따로 블록을 생성해야 합니다. 지연 기능은 블록체인 트랜잭션을 증명하는 증명 노드를 따로 둠으로써 전체 불변성을 보장하고 트랜잭션에 보안의 두 번째 계층을 제공합니다.

 

하드 포크

해커가 공격하여 이득을 취하기 전 상태로 블록의 상태를 되돌리는 방식입니다. 되돌린다기보다, 이전의 블록들을 새로운 네트워크로 옮겨, 공격당하기 전 시점부터 네트워크를 다시 진행하는 방식입니다. 이는 블록체인의 탈중앙화 정신과 반대된다며 반대하는 세력도 많기에, 주로 투표를 통해 진행됩니다.

 

 

51% 공격 사례

버지(Verge)

버지의 첫 번째 51% 공격은 2018년 4월 '포르노 허브'와의 제휴를 발표하기 2주 전에 발생했으며, 25만 버지 코인을 탈취당했습니다.

그해 5월에 두 번째 공격을 당하며 3500만 버지 코인( 약 18억 원 )이 넘는 피해를 입었습니다. 51% 공격을 진행한 해커는 익명의 게시판에 거래 시간을 기록하는 장치를 조작하여, 쉽게 풀 수 있는 해쉬 함수로 된 블록을 한 번에 생산하여, 본인이 가진 컴퓨터 파워로 가장 빠르고 많이 채굴했다고 글을 올리기도 했습니다.

 

모나코인(Monacoin)

모나코인은 2018년 5월, 블록 보류 공격(Block With-Holding Attack)이라는 공격을 당했습니다. 이 공격으로 모나코인 블록체인의 대규모 체인 재구성이 일어났으며, 거래소는 약 1억 원 정도의 금전적 피해를 입었습니다.

 

모나코인 블록체인은 5월 13일부터 15일까지 빈번하게 블록체인이 재구성 됐으며, 최대 20블록까지 되돌아가기도 했습니다. 이에 모나코인 유저들은 다른 거래소들에 모나코인 입금 시 컨펌 횟수를 늘리도록 연락하여 각 거래소는 입금을 정지하거나 컨펌 횟수를 늘리면서 해당 사건을 정리했습니다.

 

 

비트코인 골드(Bitcoin Gold)

비트코인 공격자는 네트워크 전체 해시 파워의 51% 이상을 획득하여 블록체인을 제어했습니다. 비트코인 골드와 같은 작은 네트워크에서도 절반 이상의 해시 파워를 얻는 것은 비용이 많이 들어가지만, 이중 지불 공격을 같이 진행하며 수익을 낼 수 있었습니다. 공격자의 주소 거래 내역에는 2018년 5월 16일 이후 약 38만 8200 BTC( 약 201억 1900만 원 )이 입금되었습니다. 이후 비트코인 골드는 더 이상의 피해를 막기 위해 하드 포크를 진행했습니다.

 

젠 캐시(ZEN Cash)

2018년 6월 2일 젠 캐시는 블록 보류 공격(Block With-Holding Attack)으로 2만 3152개의 젠코인( 약 7억원 )에 대한 이중 지불 피해가 발생했습니다. 젠캐시 개발팀은 공격을 인지한 후, 해시 난이도를 높여 추가 공격을 방지했습니다.

 

이더리움 클래식(Ethereum Classic)

2018년 1월 5일부터 약 4일간 이더리움 클래식에는 11회의 이중 지불 공격이 발생했습니다. 이에 따라 8만 8500 ETC( 약 12억 3천만 원 )의 이중 지불이 되었습니다. 코인베이스는 공격을 감지한 직후, 이더리움 클래식을 주시하다가, 3번째 공격 발생 후, 거래를 중지시켰습니다.

이후 이더리움 클래식은 거래 컨펌 횟수를 400회까지 늘려 문제를 해결했습니다.

 


Reference 📑 :

- Korbit : 51% 공격?체인 재구성 공격? 이중 지불 공격?

https://medium.com/korbit/51-%EA%B3%B5%EA%B2%A9-%EC%B2%B4%EC%9D%B8-%EC%9E%AC%EA%B5%AC%EC%84%B1-%EA%B3%B5%EA%B2%A9-%EC%9D%B4%EC%A4%91-%EC%A7%80%EB%B6%88-%EA%B3%B5%EA%B2%A9-15ce3742104d

 

51% 공격? 체인 재구성 공격? 이중 지불 공격?

블록체인 네트워크를 교란시키는 51% 공격

medium.com

 

 

 

 

반응형

댓글