오늘은 비트코인의 해킹 방법으로 알려진 것들 중에서도 가장 유명한 시나리오, 51% 공격에 대해 알아보겠습니다. 현재로서는 비트코인을 비롯한 메이저 암호화폐에 대한 51% 공격이 성공할 가능성은 극히 희박하지만, 일부 소규모 알트코인들에 대해서는 실제로 일어났었고, 성공하기도 한 방법입니다.
1. 51% 공격의 원리
51% 공격과 그 원리에 대해 이해하려면, 먼저 비트코인을 비롯한 암호화폐들의 핵심인 '블록체인'과 '합의 알고리즘'에 대해 이해해야 합니다. 이 해킹 방법의 핵심적인 요소가 바로 블록체인의 합의 알고리즘의 약점을 파고드는 것에 있기 때문입니다.
1-1. 블록체인과 합의 알고리즘
비트코인에 대해 설명할 때 가장 흔하게 언급되는 요소 중 하나는 '신뢰성'입니다. 비트코인의 거래는 변경이나 조작이 불가능하므로 신뢰할 수 있다는 것입니다. 이러한 비트코인의 특성은 곧 비트코인의 핵심인 블록체인의 특성이기도 합니다.
블록체인은 지속적으로 검증되고 내용이 추가되는 거대한 데이터 덩어리로서, 모든 채굴자가 함께 참여하여 검증하는 하나의 거래 장부와 같은 역할을 합니다.
블록체인 상의 거래 장부에 한 번 추가된 거래기록은 변경할 수 없기 때문에, 해당 데이터가 신뢰할 수 있는지를 사전에 검증해야 합니다. 이를 위해 네트워크 참여자(채굴자)들은 데이터를 블록체인에 추가할 수 있도록 암호화하는 작업, 그리고 참여자 중 누군가에 의해 암호화된 데이터를 신뢰할 수 있는지 함께 검증하는 작업을 반복합니다.
이러한 과정을 거쳐 '이 암호화된 데이터는 사실이고 신뢰할 수 있다'고 결론이 지어지면 해당 데이터에 포함된 거래 기록들은 블록체인에 추가되며, 해당 거래들이 실제로 처리됩니다.
이 때, 블록체인에 추가될 데이터의 사실 여부를 검증하는 데 사용되는 방식을 두고 '합의 알고리즘'이라고 부릅니다. 합의 알고리즘에는 작업 증명(POW, Proof Of Work), 지분 증명(POS, Proof of Stake)와 같은 몇 가지 방식이 존재하며, 특정 코인이 어떤 합의 알고리즘을 사용하는지에 따라 해당 코인의 거래 처리 시간이나 코인 채굴 방법 등에 차이가 발생합니다.
각각의 합의 알고리즘은 상당히 다른 방식으로 작동하지만, 최종적으로는 전체 네트워크 참여자 중 절반 이상이 사실이라고 동의한 기록만이 블록체인에 최종적으로 남게 된다는 점은 동일합니다. 그리고 이 부분이 오늘 이야기할 51% 공격의 핵심입니다.
1-2. 51% 공격 원리
앞서 설명한 합의 알고리즘에 대한 설명을 이해하셨다면, 51% 공격의 기본적인 개념은 간단하게 예상할 수 있을 것입니다. 51% 공격의 개념은 공격자 본인이 전체 네트워크 참여자 중 절반 이상(51%)에 해당하는 지분을 차지하여 네트워크의 의사 결정 권한을 장악하고, 새로운 데이터의 사실 여부를 조작하는 것입니다.
51% 공격은 해당 블록체인 네트워크의 신뢰성을 심각하게 훼손시키기 때문에 그 자체로 치명적이며, 공격자가 자신의 지분을 악용해 금전적인 이득을 취하거나 블록체인이 제대로 작동하지 못하도록 하는 것 또한 가능합니다.
이 때 공격자가 네트워크 전체 참여자의 51%에 해당하는 지분을 확보하기 위해서는 상당한 연산 능력 또는 코인을 확보해야 하는데, 여기에는 매우 많은 비용이 필요합니다. 특히 잘 알려진 비트코인이나 이더리움과 같이 규모가 큰 코인일수록 필요한 비용도 더욱 늘어나게 됩니다.
반면 비교적 규모가 작은 소규모, 신규 알트코인들의 경우에는 51% 공격에 노출될 위험성이 더 큽니다. 때문에 신규 코인들은 충분한 노드를 확보하고 블록체인의 안정성을 확보하기 위해 다양한 노력을 기울입니다.
2. 51% 공격의 종류
앞서 이야기했듯 특정 공격자가 네트워크 참여자로서의 지분을 51% 이상 확보하게 되는 경우 네트워크 전체의 의사 결정에 큰 영향력을 갖게 되므로 다양한 형태의 공격을 수행할 수 있게 됩니다. 하지만 이것이 블록체인의 구성 요소 자체를 마음대로 변경할 수 있다는 의미는 아니므로, 이미 블록체인 알고리즘 수준에서 정해져 있는 규칙까지 마음대로 바꾸거나 무시할 수 있게 되는 것은 아닙니다.
때문에 51% 공격자가 수행할 수 있는 변칙적인 활동 중 유의미한 공격 방식은 몇 가지 예상 가능한 형태로 한정됩니다. 그 중 금전적인 피해와 직결되면서 가장 대표적인 방식은 '이중 지불 공격'입니다.
2-1. 이중 지불 공격
이중 지불 공격이란, 공격자가 자신의 코인 송금 기록이 포함된 블록을 무효 블록으로 간주시키고 새로운 블록이 승인되게 해서 기존 결제를 취소하는 방식으로 금전적 이득을 얻는 공격 방법입니다.
예를 들어 공격자 A가 단 1개의 비트코인을 가지고 있고, 피해자 B와 해당 비트코인으로 거래를 한다고 가정해 보겠습니다. A는 B에서 1BTC를 송금하고 그 대가를 받기로 합니다. A는 B에게 실제로 1BTC를 전송하고, B는 A로부터 1BTC가 입금된 것이 기록된 블록을 확인해서 해당 입금이 정상적으로 처리됐다고 생각하고 대가를 지불합니다.
그런데 이때, 공격자 A는 B에게 송금한 기록이 담긴 블록 외에 다른 블록(B에게 송금한 기록이 없는 블록)을 생성합니다. 그러면 해당 블록체인에는 원래 존재해야 할 'A가 B에게 송금한 기록이 있는 블록'과 새로 만들어진 'A가 B에게 송금한 기록이 없는 블록'이 동시에 존재하게 됩니다.
여기서 공격자 A는 자신이 보유한 지분을 사용해서 B에게 송금한 기록이 없는 블록이 진짜라고 인정받도록 만듭니다. 그러면 해당 네트워크 참여자들은 이 새로운 블록이 진짜라고 받아들이게 되고, A가 B에게 송금한 기록이 남아있는 블록은 가짜이기 때문에 폐기하게 됩니다.
B는 아직까지 자신이 입금받은 기록이 남아있던 블록을 가지고 있었지만 이후 다른 참여자들과 자신의 블록을 비교, 검증하는 과정에서 그 블록이 가짜라고 통보받게 됩니다. 이 때 B의 지갑에 A가 1BTC를 송금했다는 것은 사실이 아닌 것으로 처리됩니다.
공격자 A는 이미 B에게서 1BTC에 대한 대가를 받았지만, B에게 송금한 기록이 폐기되었으므로 여전히 1BTC를 보유한 것으로 처리됩니다. 공격자 A가 여전히 51% 지분을 유지하고 있다면, 같은 방식으로 또다른 사람과 거래하고 기록을 폐기하는 방식으로 반복해서 거래할 수 있습니다.
이렇게 블록 검증 과정에 영향을 주는 방법으로 자신이 가진 코인을 2번 이상 결제에 사용하는 방식의 공격을 '이중 지불 공격'이라고 부르며, 51% 공격의 가장 대표적인 형태로 알려져 있습니다.
2-2. 네트워크 방해 공격
위에서 알아본 이중 지불 공격 외에도, 51% 공격자는 자신의 지분을 바탕으로 블록체인 네트워크에 많은 영향을 행사하거나 정상적인 네트워크 작동을 방해할 수 있습니다.
예를 들어, 공격자가 자신의 연산 능력을 이용해 여러 개의 블록을 남들보다 빠르게 생성한 뒤 일부러 공개하지 않고 있다가 일시에 공개하는 방법을 통해 기존 거래기록이 포함된 블록이 폐기되게 하는 방식으로 블록체인 네트워크 상의 거래를 방해하는 등의 활동이 가능합니다.
이러한 공격을 감행하는 경우 해당 네트워크의 신뢰도는 급격히 하락하게 되며, 많은 혼란과 금전적 피해가 발생할 수 있습니다. 이러한 공격에 노출된 코인은 가격 또한 크게 하락하는 경우가 일반적이며, 만약 해당 블록체인이 51% 공격을 저지하는데 실패한다면 투자가치가 영구적으로 상실될 수도 있습니다.
지분증명(POS)방식의 코인은 51% 공격을 위해 매우 많은 양의 코인을 보유해야 하므로 이러한 방식의 공격이 발생할 가능성은 대단히 낮습니다. 공격자가 자신이 보유한 대량의 코인을 무가치하게 만들 타당한 이유가 존재하지 않기 때문입니다.
반면 작업증명(POW) 방식의 코인은 51% 공격을 위해 코인을 보유해야 할 필요가 없고, 블록체인의 알고리즘 구성에 따라 동일한 채굴환경에서 다른 코인을 채굴할 수 있는 경우가 많기 때문에 이러한 공격에 노출될 위험이 조금 더 높습니다. 다만 이것은 51% 공격 조건이 이미 성립되었다는 전제 하의 이야기로, POW방식의 코인에서 51% 공격을 성립시키기 위한 해시파워를 확보하는 것은 결코 쉽지 않습니다.
3. 마치며
오늘은 압도적인 해시파워 혹은 보유량 지분을 기반으로 네트워크 영향력을 확보하고, 이를 바탕으로 네트워크 자체를 공격하거나 금전적인 이득을 취하는 해킹 방식인 '51% 공격'에 대해 알아보았습니다.
마치 돈을 복사해내듯이 하나의 비트코인으로 여러 번 반복해서 결제하는 이중 지불 공격은 오늘 알아본 51% 공격의 대표적인 사례입니다. 실제로 지금까지 몇 차례 시도되어 왔었고, 그 중 몇 번은 실제로 성공하여 암호화폐 거래소 등에서 수십억대의 금전 피해를 입히기도 하였습니다.
이상적인 블록체인의 형태에서 이러한 51% 공격은 불가능에 가까울 것으로 여겨지기도 했었지만, 수많은 코인이 생겨나고 채굴 시장의 규모가 크게 성장하면서 51% 공격에 실제로 성공한 공격자가 나타났던 점은 상당히 주목할 만 합니다. 이번 포스팅에서는 다루지 못했는데, 실제로 발생한 51% 공격 사례에 대해서도 추가적으로 알아볼 수 있도록 하겠습니다.
'기본 개념' 카테고리의 다른 글
비트코인 투자 하는법 간단정리 (3) | 2023.11.22 |
---|---|
비트코인과 금의 비교 및 상관관계 (3) | 2023.10.01 |
디파이 코인의 뜻과 종류 (0) | 2023.09.24 |
코인 에어드랍의 뜻과 받는 방법 (0) | 2023.08.21 |
빗썸, 업비트 등 거래소 코인 앞에 붙은 유, 주 표시의 뜻 (0) | 2023.08.19 |