KEEP!T Column 비트코인 뽀개기(10편)
KEEP!T Column
안녕하세요! KEEP!T입니다. 최초의 암호화폐인 비트코인을 누구나 쉽게 이해할 수 있도록 '비트코인 뽀개기'라는 주제로 콘텐츠를 연재하고 있습니다. 지난 비트코인 뽀개기 9편에서는 비트코인 프로토콜에 적용된 합의 알고리즘에 관한 개념정리를 하였습니다. 이번 비트코인 뽀개기 10편에서는 스테일 블록 및 51% 공격이 무엇인지 자세히 알아보는 시간을 갖도록 하겠습니다. 혹시 앞선 비트코인 뽀개기 시리즈를 읽지 않으셨던 분들은 아래의 링크를 통해 읽어보시면 좋을 것 같습니다.
- 비트코인 뽀개기 1편
- 비트코인 뽀개기 2편
- 비트코인 뽀개기 3편
- 비트코인 뽀개기 4편
- 비트코인 뽀개기 5편
- 비트코인 뽀개기 6편
- 비트코인 뽀개기 7편
- 비트코인 뽀개기 8편
- 비트코인 뽀개기 9편
스테일 블록
비트코인 프로토콜은 수 많은 노드들로 이루어진 분산화된 네트워크 환경임으로 새로운 블록이 생성되어 전파되는 과정에서 또 다른 새로운 블록이 생성될 수 있습니다. 즉, 모든 노드의 블록 체인 데이터가 일치하지 않을 수 있으며 이는 곧 메인체인의 분기가 이루어질 수 있다는 의미입니다.
예를 들어 A라는 채굴자가 정당한 방법으로 새로운 블록을 생성하고 전파하는 시점에서 또 다른 채굴자 B가 새로운 블록을 생성하여 전파하였다면 채굴자 A와 가까운 주변 노드들은 A가 생성한 블록을 메인 체인에 연결하게 될 것이며, B와 가까운 주변 노드들은 B가 생성한 블록을 메인 체인에 연결하게 될 것 입니다.
위의 그림과 같이 메인 체인의 분기가 이루어졌을 경우 어떤 체인을 메인 체인으로 인정할 것인지에 관한 정의가 필요합니다. 비트코인 프로토콜에서는 작업 증명(Proof-of-work) 방식의 합의 알고리즘을 사용하고 있습니다. 작업 증명 방식의 합의 알고리즘은 더 많은 일을 한 사용자가 네트워크에 더 많은 기여를 했으며, 신뢰할 수 있는 사용자라고 판단합니다. 즉, 메인 체인의 분기가 이루어졌을 경우 가장 긴 체인을 형성하고 있는 체인이 가장 많은 일을 했음으로 메인 체인으로 인정받는 것입니다.
메인 체인 분기가 이루어진 상황에서 각 노드는 또다시 새로운 블록을 생성하며, 가장 긴 체인만이 메인 체인으로 인정받게됩니다. 이때 메인 체인으로 인정 받지 못한 블록들이 바로 스테일 블록입니다.
51% Attact
비트코인 프로토콜에서 해시 파워가 높은 사용자일수록 더 많은 연산을 할 수 있으므로 새로운 블록을 생성할 확률이 높습니다. 만약 특정 노드나, 그룹이 전체 네트워크의 과반수인 51% 이상의 해시 파워를 가지고 있을 경우 새로운 블록을 생성할 확률이 매우 높아지게 됩니다.
만약 A라는 채굴자 그룹이 비트코인 네트워크의 전체 해시 파워 중 51% 이상의 힘을 가지고 악의적인 마음으로 사용자들에게 비트코인을 판매 한다고 가정해보겠습니다.
A 그룹은 사용자 B에게 현금을 받고 50 BTC를 판매하기로 하였습니다. A가 B에게 50 BTC를 실제로 전송하는 트랜잭션을 생성하여 네트워크에 전파하고 해당 트랜잭션이 새로운 블록에 담겨 메인 체인에 연결되었습니다.
B에게 비트코인을 전송 하는 거래 기록이 정상적으로 메인 체인에 연결되었음을 확인 한 후 A 그룹에게 현금을 지급하였습니다. A 그룹은 현금을 받은뒤 B에게 비트코인을 전송하기 이전 블록부터 새로운 블록을 빠르게 다시 생성합니다.
높은 해시 파워를 가진 A 그룹이 B에게 비트코인을 전송하기 이전 블록부터 새로운 블록을 빠르게 생성하여 결국 가장 긴 체인을 형성하여 메인 체인으로 인정받을 수 있게 됩니다. 결국 A 그룹은 현금은 전달받았지만 여전히 50 BTC를 소유하게 되는 것입니다. 이렇게 높은 해시 파워를 바탕으로 스테일 블록을 유도하여 B에게 전달한 비트코인을 무효화 시키는 공격 방식을 51% 공격이라고합니다.
51% 공격이란 네트워크의 자원을 독보적으로 많이 가지고 있는 사용자, 혹은 그룹이 블록을 빠르게 생성해낼 수 있는점을 이용하여 스테일 블록을 유도함으로써 트랜잭션을 무효화 시키는 공격 방법입니다. 이러한 공격 방법은 언뜻 보면 네트워크의 치명적인 오류라고 생각할 수 있지만 경제적인 이유로 이러한 공격 방식은 이루어질 수 없습니다.
채굴의 목적
51% 이상의 해시 파워를 소유한 사용자 혹은 그룹은 엄청난 자본금을 투자하여 채굴 장비를 구매했을 것이며, 높은 전기료를 감당하면서 네트워크를 유지하고 있을 것입니다. 이렇게 많은 비용을 투자한 채굴자들은 채굴을 통해 얻은 보상이 반드시 유지비용 보다 높아야지만 채굴 사업을 운영할 수 있게 됩니다.
만약 51% 이상의 해시 파워를 소유한 채굴자가 51% 공격을 시도하였을 경우 스테일 블록이 발생하게 되며, 이 과정을 통해 특정 트랜잭션이 무효화됨으로서 부당한 이득을 취득한 사용자가 있다는 사실을 네트워크에 연결된 사용자들이 알게됩니다. 51% 공격으로 인해 스테일 블록이 발생될 경우 네트워크의 신뢰도는 바닥으로 떨어지게 될 것이며, 더 이상 비트코인을 신뢰할 수 없다고 판단한 많은 사용자들이 비트코인을 처분하면서 비트코인의 가격은 한없이 추락하게 됩니다.
비트코인 가격이 하락할 경우 가장 많은 피해를 받는 사용자는 네트워크에 가장 기여를 많이 하고 있는 공격자 자신이 되는것입니다. 즉, 높은 해시 파워를 소유한 채굴자는 네트워크를 공격하는 것보다 선의를 가지고 시스템과 협업하는 것이 유리하게 작용될 수 있음으로 공격보다는 네트워크의 신뢰도를 향상하기 위해 노력하게되는것입니다.
51% 공격은 이론적으로는 가능하나, 경제적으로는 불가능한 상황이 연출되는것입니다.
이상으로 비트코인 뽀개기 10편을 마치며 다음 비트코인 뽀개기 11편에서는 이중 지불 문제와 피니 어택에 관한 내용을 찾아뵙겠습니다.
yahweh87
이 저작물은 크리에이티브 커먼즈 저작자표시-비영리-변경금지 4.0 국제 라이선스에 따라 이용할 수 있습니다.