본문 바로가기
Bitcoin

비트코인의 51% attack

by PudgeKim 2021. 3. 24.

비트코인에서 51% 공격이란 말을 들어본적 있으실겁니다. 이번 글에서는 그게 정확히 무엇인지 알아보겠습니다.

 

Mastering Bitcoin에 나오는 예시로 설명해보겠습니다.

Bob, Alice, Tony 이렇게 세 사람이 있습니다. Bob과 Alice는 공범이고 Tony는 물건을 판매하는 사람입니다.

Alice가 Tony에게 어떠한 물건을 비트코인을 주고 구입하려 합니다. Alice가 비트코인 송금을 한 후 몇분 후 Tony는 Alice의 transaction이 포함된 1개의 블록이 생성된걸 확인하고 물건 판매를 완료하였습니다.

그럼 현재 블록상태는 아래와 같을 것입니다.

ㅁ - ㅁ - ㅁ - ㅁ    <-- Alice가 Tony에게 비트코인을 보냈다는 내역이 있는 transaction을 포함한 블록

 

이제 공범인 Bob이 나설 차례입니다. Bob은 51%의 hashing power를 갖고있는 mining pool을 운영하고 있습니다. 이러한 hashing power를 이용해서 블록을 분기시켜서 아래와 같이 만들어냅니다.

ㅁ - ㅁ - ㅁ - ㅁ <-- Alice가 Tony에게 비트코인을 보냈다는 내역이 있는 transaction을 포함한 블록
                  - ㅁ - ㅁ - ㅁ   <--  Bob이 51%의 hashing power를 이용해서 만든 블록들

Bob의 mining pool이 만들어낸 블록들에는 Alice가 Tony에게 비트코인을 보냈다는 transaction이 없습니다. 대신 Alice의 UTXO가 다시 Alice에게 돌아가게 transaction을 만들어버립니다.

비트코인의 분기가 일어났을 때 처리되는 규칙상 더 긴 포크가 결국 main chain이 되기 때문에 Bob이 만들어낸 블록들이 결국 main chain이 되어버립니다. 이렇게 되면 Tony는 결국 비트코인을 받지 못하게 되는 것입니다.

이런 거래조작말고 hashing power를 이용하여 특정 transaction을 계속 block에 포함시키지 못하게 방해할 수도 있습니다.

 

그러나 이러한 51% 공격은 비트코인 네크워크 참여자가 커지면 커질수록 더 어려워지고 아직까지 이러한 공격에 의해 일어난 큰 사건이 없었으며 갈수록 비트코인 네트워크는 커질것이기 때문에 현재시점에서는 별 문제가 없어보입니다. 

'Bitcoin' 카테고리의 다른 글

비트코인의 transaction과 script language  (1) 2021.03.27
비트코인의 디지털 서명  (1) 2021.03.25
비트코인의 Mining pool  (0) 2021.03.22
비트코인의 채굴심화 (Extra Nonce)  (0) 2021.03.22
비트코인에서의 분기  (0) 2021.03.21