비트코인 51% 공격은 한 공격자나 서로 협력하는 집단이 비트코인 채굴에 사용되는 해시 연산력의 절반을 넘게 통제하는 상황을 말합니다.
이름만 보면 비트코인의 51%를 소유하거나 전체 풀노드의 51%를 장악하는 공격처럼 느껴질 수 있습니다. 그러나 여기서 51%는 코인 보유량이나 풀노드 수가 아니라, 새 블록의 작업증명을 찾는 데 사용되는 채굴 연산력의 비중을 뜻합니다.
과반의 채굴 연산력을 가진 공격자는 장기적으로 다른 채굴자 전체보다 더 빠른 평균 속도로 작업증명을 쌓을 수 있습니다. 이 우위를 이용하면 자신이 한 최근 지불을 되돌리는 이중 지불을 시도하거나 특정 거래가 확인되지 못하도록 방해할 수 있습니다.
풀노드(Full Node)는 거래와 블록을 합의 규칙에 따라 독립적으로 검증하므로 공격자가 영향을 줄 수 있는 범위는 제한됩니다. 공격자는 다른 사람의 개인키 없이 그 사람의 비트코인을 쓸 수 없고, 허용된 양보다 많은 비트코인을 발행한 블록이나 유효하지 않은 거래가 든 블록을 풀노드에 강제로 받아들이게 할 수도 없습니다.
이 글에서는 51% 공격이 최근 체인을 재구성하는 방식부터 이중 지불과 거래 검열, 풀노드 검증으로 막을 수 있는 일과 막을 수 없는 일, 확인 수가 위험을 줄이는 이유까지 차례로 살펴봅니다.
51%는 무엇의 절반을 뜻하는가
채굴 장비는 후보 블록의 블록 헤더를 반복해서 해시하며 작업증명 조건을 만족하는 결과를 찾습니다. 이 계산 능력을 해시 연산력이라고 하며, 초당 얼마나 많은 해시 계산을 시도할 수 있는지를 나타내는 값이 해시레이트입니다. 예를 들어 어떤 집단이 같은 시간 동안 비트코인 채굴에 사용되는 전체 해시 연산력의 51%를 통제한다면, 나머지 채굴자가 합친 49%보다 더 많은 계산을 시도할 수 있습니다.
이 비율이 높을수록 새 블록의 작업증명을 먼저 찾을 가능성도 커집니다. 다만 51%의 연산력을 가졌다고 해서 다음 블록을 반드시 그 공격자가 발견하는 것은 아닙니다. 블록 발견에는 확률이 작용하므로, 49%를 가진 쪽이 여러 블록을 연속으로 먼저 발견할 수도 있습니다. 51%는 매 블록의 결과를 보장하는 숫자가 아니라, 긴 시간 동안 평균적으로 어느 쪽이 더 빠르게 작업증명을 쌓을 가능성이 큰지를 나타내는 기준입니다.
51% 공격을 이해할 때는 다음 세 가지를 구분해야 합니다.
| 구분 | 51%의 기준인가 | 이유 |
|---|---|---|
| 채굴 해시 연산력 | 예 | 새 블록의 작업증명을 찾는 계산 능력의 비중을 뜻합니다. |
| 비트코인 보유량 | 아니요 | 비트코인을 많이 보유해도 작업증명을 만드는 채굴 연산력이 늘어나는 것은 아닙니다. |
| 풀노드 수 | 아니요 | 풀노드는 거래와 블록을 검증하지만, 여러 대를 실행한다고 그 자체로 채굴 작업량이 늘어나지는 않습니다. |
51%는 공격자가 장기적인 체인 경쟁에서 우위를 가질 수 있는 상태를 설명하는 통상적인 기준입니다. 절반보다 적은 연산력을 가진 공격자도 짧은 대체 체인을 만들어 최근 거래를 되돌리려 시도할 수 있습니다. 다만 나머지 채굴자들이 더 많은 연산력을 가지고 있고 확인 수가 늘어날수록 공격자가 따라잡을 가능성은 낮아집니다.
반대로 과반의 연산력을 계속 유지하면 공격자는 다른 채굴자 전체보다 대체 체인에 작업증명을 더 빠르게 쌓을 수 있는 장기적인 우위를 가집니다. 따라서 51% 공격은 비트코인 전체를 마음대로 통제하는 권한이 아니라, 경쟁하는 유효한 체인에 더 많은 작업증명을 쌓아 체인 선택에 영향을 줄 수 있는 위험으로 이해하는 것이 적절합니다.
51% 공격은 최근 체인을 어떻게 재구성하는가
공격자는 과거 블록 대신 대체 체인을 만든다
51% 공격으로 거래를 되돌린다는 말은 이미 만들어진 블록을 열어 거래 하나를 지운다는 뜻이 아닙니다. 비트코인 블록에는 바로 앞 블록의 해시가 들어 있으므로, 과거 블록의 거래 구성을 바꾸면 그 블록의 해시가 달라지고 이후 블록과의 연결도 맞지 않게 됩니다.
공격자는 기존 블록을 직접 수정하는 대신, 되돌리려는 거래가 포함되기 전 블록에서 갈라지는 새로운 체인을 만듭니다. 이 체인의 블록들도 작업증명과 거래·블록 규칙을 모두 만족해야 합니다.
예를 들어 현재 선택된 체인에 공격자가 보낸 거래 X가 들어 있다고 가정해보겠습니다.
현재 선택된 체인: A ─ B(거래 X) ─ C ─ D
공격자의 대체 체인: A ─ B′(거래 X 제외 또는 충돌 거래 포함) ─ C′ ─ D′
두 체인은 A 블록까지 같은 기록을 공유하지만 그다음부터 서로 다른 거래 기록을 담습니다. 공격자가 단순히 거래 X를 제외하면 그 거래는 나중에 다시 포함될 수 있습니다. 자신의 지불을 실제로 되돌리려는 경우에는 거래 X가 사용한 비트코인을 다른 곳으로 보내는 충돌 거래를 대체 체인에 넣을 수 있습니다. 이때 공격자는 자신이 쓸 권한이 있는 비트코인으로만 충돌 거래를 만들 수 있습니다.
거래 X와 그 충돌 거래는 같은 체인 안에서 모두 유효할 수 없습니다. 하지만 현재 체인에는 거래 X만, 대체 체인에는 충돌 거래만 들어 있다면 각 체인은 서로 다른 거래 이력을 가진 유효한 후보가 될 수 있습니다. 어느 거래 이력이 현재 기록으로 선택되는지는 두 유효한 체인의 누적 작업량 비교에 따라 달라집니다.
풀노드는 유효성과 누적 작업량을 확인한다
공격자는 대체 체인을 바로 공개하지 않고 별도로 만들다가 현재 체인보다 더 많은 누적 작업량을 갖게 되었을 때 네트워크에 공개할 수 있습니다. 풀노드는 체인을 보낸 주체와 관계없이 분기점 이후의 블록과 거래를 직접 검증하고 다음 두 조건을 모두 확인합니다.
- 대체 체인의 모든 블록과 거래가 비트코인의 합의 규칙을 지켰는가
- 대체 체인의 누적 작업량이 현재 선택된 유효한 체인보다 큰가
첫 번째 조건을 통과하지 못하면 누적 작업량이 아무리 많아도 풀노드는 그 체인을 거부합니다. 반대로 두 체인이 모두 유효하고 대체 체인의 누적 작업량이 더 크다면, 풀노드는 대체 체인을 현재 체인으로 선택합니다. 이 과정에서 이전에 선택했던 일부 블록을 현재 체인에서 제외하고 새 체인의 블록을 연결하는 일을 체인 재구성 또는 리오그(reorganization)라고 합니다.
여기서 비교하는 기준은 블록 개수만으로 본 체인 길이가 아니라 누적 작업량입니다. 풀노드는 채굴 장비가 실제로 시도한 해시 횟수나 사용한 전력을 세지 않습니다. 각 블록의 작업증명 난이도가 나타내는 작업량을 계산해 체인 전체에 누적된 값을 비교합니다. 이 계산과 체인 선택의 자세한 원리는 비트코인 작업증명이란? 블록 해시·목표값과 채굴 난이도 원리에서 설명했습니다.


재구성으로 제외된 거래는 어떻게 되는가
체인 재구성 뒤의 거래 상태는 새로 선택된 체인의 거래와 충돌하는지에 따라 달라집니다. 충돌하지 않고 여전히 유효한 거래는 각 풀노드의 미확인 거래 목록으로 다시 받아들여질 수 있으며, 이후 블록에 포함될 수도 있습니다. 반면 대체 체인에 같은 비트코인을 먼저 사용한 충돌 거래가 들어 있다면, 기존 거래 X는 새 체인에서는 유효한 거래로 다시 포함될 수 없습니다.
짧은 체인 재구성은 서로 다른 채굴자가 비슷한 시점에 블록을 발견했을 때 정상적인 네트워크에서도 일어날 수 있습니다. 51% 공격은 이런 분기 가능성을 우연히 해결하는 것이 아니라, 공격자가 의도적으로 대체 유효 체인에 더 많은 작업증명을 쌓아 최근 거래의 확인 상태나 포함 여부에 영향을 주려는 경우입니다.
51% 공격으로 할 수 있는 일
51% 공격자가 얻는 힘은 합의 규칙을 지킨 유효한 블록의 범위 안에서 어떤 최근 거래 이력에 더 많은 누적 작업량이 쌓일지에 영향을 주는 데 있습니다. 이를 이용해 시도할 수 있는 대표적인 공격이 이중 지불과 거래 검열입니다.
자신의 지불을 되돌리는 이중 지불 시도
이중 지불은 같은 비트코인을 서로 다르게 사용하는 두 거래를 각각 다른 체인에 넣고, 공격자에게 유리한 거래가 담긴 체인이 나중에 선택되게 만드는 공격입니다. 최종적으로 선택된 하나의 체인에는 두 거래 중 하나만 유효한 기록으로 남습니다.
공격자가 판매자에게 비트코인을 보내고 상품이나 서비스를 받은 뒤 그 지불을 되돌리려 한다고 가정해보겠습니다. 공격 과정은 다음과 같이 진행될 수 있습니다.
- 공격자는 판매자에게 보내는 거래 X를 네트워크에 전달합니다.
- 동시에 공격자는 거래 X가 포함되기 전 블록에서 갈라지는 대체 체인을 비공개로 만들고, 같은 비트코인을 자신이 관리하는 곳으로 보내는 충돌 거래 X′를 넣습니다.
- 거래 X가 현재 체인의 블록에 포함되고 판매자는 하나 이상의 확인을 기다린 뒤 상품이나 서비스를 제공합니다.
- 공격자의 대체 체인에 더 많은 누적 작업량이 쌓이면 이를 네트워크에 공개합니다.
- 풀노드가 대체 체인의 유효성을 확인하고 그 체인을 선택하면 거래 X가 들어 있던 블록은 현재 체인에서 제외되고, 충돌 거래 X′가 선택된 기록에 남습니다.
이 경우 판매자가 이미 상품이나 서비스를 제공했다면 공격자는 그 대가를 받은 상태에서 비트코인 지불까지 되돌리는 결과를 노릴 수 있습니다.
충돌 거래 X′에 유효한 서명을 하려면 해당 비트코인을 쓸 수 있는 개인키가 필요합니다. 따라서 이중 지불 공격의 대상은 공격자가 자신이 서명할 수 있는 지불이며, 다른 사람이 보낸 거래에 임의의 충돌 거래를 만드는 공격과는 다릅니다.
이중 지불이 성공하려면 공격자는 대체 체인을 현재 체인보다 더 많은 누적 작업량을 가진 유효한 체인으로 만들어야 합니다. 또한 대체 체인을 공개하기 전에 상대방이 회수하기 어려운 상품이나 서비스를 제공해야 공격의 목적을 달성할 수 있습니다.
특정 거래의 확인을 늦추거나 막는 거래 검열
채굴자나 채굴 풀은 자신이 만드는 후보 블록에 어떤 미확인 거래를 넣을지 선택합니다. 비트코인의 합의 규칙은 모든 유효한 미확인 거래를 반드시 다음 블록에 넣으라고 요구하지 않습니다. 따라서 한 채굴자는 특정 거래를 자신의 블록에서 제외할 수 있습니다.
다만 연산력의 일부만 가진 채굴자가 거래를 제외해도 다른 채굴자가 그 거래를 블록에 포함할 수 있습니다. 과반의 연산력을 가진 공격자는 여기서 더 나아가 특정 거래가 포함된 다른 채굴자의 블록보다 더 많은 누적 작업량을 가진 대체 체인을 만들고, 그 블록을 현재 체인에서 제외하려고 시도할 수 있습니다.
이런 전략을 계속 유지하면 특정 거래의 첫 확인을 늦추거나, 이미 얻은 최근 확인을 재구성으로 없애는 거래 검열을 시도할 수 있습니다. 여러 거래를 제외하거나 일반 거래를 하나도 넣지 않고 코인베이스 거래만 담은 블록을 만드는 것도 합의 규칙 자체를 위반하지 않는 범위에서는 가능합니다.
풀노드는 블록의 작업증명과 거래·보상 한도 등 합의 규칙을 확인합니다. 특정 거래를 반드시 포함하는 것은 블록의 유효성을 판단하는 조건이 아니므로, 합의 규칙을 지킨 블록은 일부 거래를 넣지 않았더라도 유효할 수 있습니다. 풀노드 검증은 규칙을 위반한 거래와 블록을 거부하지만, 채굴자에게 특정 거래를 포함하도록 강제하지는 않습니다.
거래 검열의 목표는 거래 자체를 없애는 것이 아니라 블록에 포함되어 확인되는 과정을 방해하는 데 있습니다. 다른 노드와 지갑이 거래를 보관하거나 다시 전파할 수 있으며, 공격자가 과반의 연산력을 잃거나 검열을 중단하면 그 거래가 이후 블록에 포함될 수 있습니다.
정리하면 51% 공격자는 유효한 거래 이력 사이의 경쟁에 영향을 주어 자신의 최근 지불을 되돌리거나 특정 거래의 확인을 방해할 수 있습니다. 이 영향력의 범위는 다음 구간에서 설명하는 풀노드 검증으로 제한됩니다.
풀노드 검증 때문에 할 수 없는 일
한 주체가 네트워크 전체 채굴 해시레이트의 과반을 통제하면 유효한 체인 사이의 경쟁에서 큰 영향력을 가질 수 있습니다. 풀노드는 전달받은 블록과 거래가 자신이 따르는 합의 규칙을 지켰는지 직접 확인하며, 이 검증이 공격자의 영향 범위를 유효한 거래 이력 사이의 경쟁으로 제한합니다.
다른 사람의 비트코인을 마음대로 쓸 수 없다
일반적인 비트코인 거래에서 비트코인을 쓰려면 해당 거래 기록에 설정된 사용 조건을 만족해야 합니다. 보통은 그 비트코인을 관리하는 개인키로 만든 유효한 서명이 필요합니다.
해시 연산력이 많아진다고 해서 다른 사람의 개인키를 알아내거나 그 사람의 서명을 대신 만들 수 있는 것은 아닙니다. 공격자가 타인의 비트코인을 자신의 주소로 보내는 거래를 만들더라도 필요한 서명이나 사용 조건을 만족하지 못하면 풀노드는 그 거래를 유효한 거래로 인정하지 않습니다. 그런 거래가 포함된 블록도 거부합니다.
앞 구간에서 설명한 이중 지불은 이와 다릅니다. 공격자는 다른 사람의 비트코인을 빼앗는 것이 아니라, 자신이 사용할 권한이 있어 서명할 수 있는 비트코인을 두 개의 충돌 거래에 사용하고 자신에게 유리한 거래 이력이 선택되도록 시도합니다.
허용된 양보다 많은 비트코인을 발행할 수 없다
새 블록의 첫 번째 거래인 코인베이스 거래에는 채굴자가 받을 보상이 기록됩니다. 이 보상의 상한은 해당 높이에서 허용되는 블록 보조금과 그 블록에 포함된 거래 수수료의 합으로 정해집니다.
공격자가 코인베이스 거래에 이 상한보다 많은 금액을 기록하더라도 새로운 비트코인이 유효하게 발행되는 것은 아닙니다. 풀노드는 코인베이스 거래가 허용된 보상 한도를 넘었는지 확인하며, 한도를 초과한 블록은 작업증명이 충분하더라도 거부합니다.
따라서 과반의 해시 연산력은 비트코인 발행량이나 반감기 규칙을 마음대로 바꾸는 권한이 아닙니다. 채굴 보상과 반감기의 자세한 구조는 비트코인 채굴 보상과 반감기: 블록 보조금과 거래 수수료 구조에서 설명했습니다.
유효하지 않은 거래와 블록을 규칙에 맞는 것으로 만들 수 없다
풀노드는 블록 안의 거래에 사용된 비트코인이 실제로 존재하고 아직 쓰이지 않았는지, 같은 비트코인을 중복해서 쓰지 않는지, 필요한 서명과 사용 조건을 만족하는지 등을 확인합니다. 블록의 작업증명, 이전 블록과의 연결, 크기·무게 제한과 코인베이스 보상 한도도 함께 검사합니다.
이 가운데 하나라도 합의 규칙을 위반하면 그 블록은 누적 작업량 비교 대상이 되는 유효한 체인이 될 수 없습니다. 풀노드는 먼저 유효성을 확인한 뒤, 유효한 후보들 사이에서 누적 작업량이 가장 큰 체인을 선택합니다. 연산력이 많다는 이유만으로 이 순서가 뒤집히지는 않습니다.
공격자가 자신에게 유리하게 규칙을 바꾼 프로그램으로 블록을 만들 수는 있습니다. 그러나 기존 규칙을 따르는 풀노드는 그 블록을 거부합니다. 기존 네트워크의 합의 규칙을 바꾸려면 해시 연산력만 확보하는 것이 아니라, 풀노드 운영자를 포함한 네트워크 참여자들이 새로운 규칙을 적용하는 소프트웨어를 선택해야 합니다.
정리하면 풀노드 검증이 지키는 경계는 분명합니다. 공격자가 영향을 줄 수 있는 범위는 유효한 거래 이력의 순서와 포함 여부이며, 타인의 서명 위조, 허용량을 넘긴 발행과 규칙 위반 블록은 풀노드가 거부합니다.

확인 수가 늘면 재구성 위험은 왜 줄어드는가
비트코인 거래의 확인 수는 거래가 현재 선택된 체인에서 얼마나 깊이 자리 잡았는지를 나타내는 값입니다. 거래가 블록에 포함된 뒤 그 위에 새로운 블록이 쌓일 때마다 확인 수가 늘어납니다. 여러 풀노드가 같은 거래에 찬성표를 던진 횟수를 뜻하는 것은 아닙니다.
거래가 블록에 포함되면 첫 번째 확인이 생긴다
네트워크에 전달됐지만 아직 블록에 포함되지 않은 거래는 확인 수가 0인 미확인 거래입니다. 이 거래가 현재 선택된 체인의 블록에 처음 포함되면 확인 수가 1이 됩니다. 그 위에 새 블록이 하나 추가될 때마다 확인 수가 하나씩 늘어납니다.
| 현재 체인의 상태 | 거래 X의 확인 수 |
|---|---|
| 거래 X가 아직 블록에 포함되지 않음 | 0 |
| B 블록에 거래 X가 포함됨 | 1 |
| B 위에 C 블록이 추가됨 | 2 |
| C 위에 D 블록이 추가됨 | 3 |
따라서 확인 수가 많다는 것은 거래가 현재 체인에서 더 오래된 블록에 들어 있고, 그 위로 더 많은 블록의 작업증명이 쌓였다는 뜻입니다.
확인 수가 늘면 현재 체인에 작업증명이 더 쌓인다
거래 X를 되돌리려는 공격자는 거래가 포함되기 전 블록에서 갈라지는 대체 체인을 만들어야 합니다. 이 대체 체인도 모든 합의 규칙을 지켜야 하며, 현재 체인보다 더 많은 누적 작업량을 가져야 풀노드가 선택할 수 있습니다.
거래 X 위에 새로운 블록이 계속 추가되면 현재 체인의 누적 작업량도 증가합니다. 공격자의 해시 연산력이 나머지 채굴자 전체보다 적다면, 확인 수가 늘어날수록 대체 체인으로 현재 체인을 따라잡을 가능성은 낮아집니다. 이것이 거래 금액이 크거나 되돌리기 어려운 상품을 제공할 때 여러 번의 확인을 기다리는 이유입니다.
다만 풀노드가 실제로 비교하는 기준은 확인 수 자체가 아니라 각 체인의 누적 작업량입니다. 확인 수는 거래가 현재 체인 안에서 얼마나 깊이 들어 있는지 보여주는 이해하기 쉬운 표시입니다. 공격자가 이미 비공개 대체 체인을 얼마나 만들어 두었는지는 알 수 없으므로, 화면에 보이는 확인 수만으로 두 체인의 실제 작업량 차이를 정확히 알 수는 없습니다.
확인 수는 거래 위험을 판단하는 기준이다
흔히 6회 확인이 안전 기준처럼 언급되지만, 실제 필요한 확인 수는 거래 금액, 제공하는 상품이나 서비스의 회수 가능성, 거래 상대방과 공격 위험에 대한 판단, 각 서비스의 운영 기준에 따라 달라집니다. 6회 확인은 이런 운영 판단에서 자주 쓰이는 기준이지, 합의 규칙이 모든 거래에 똑같이 적용하는 숫자는 아닙니다.
나머지 채굴자들이 더 많은 해시 연산력을 유지하는 상황에서는 확인 수가 늘수록 공격자가 따라잡을 가능성이 낮아집니다. 반면 공격자가 네트워크 전체 채굴 해시레이트의 과반을 계속 통제한다면 장기적인 체인 경쟁에서 우위를 가질 수 있습니다. 이 경우 확인을 더 기다리면 공격에 필요한 시간과 작업량이 늘어나지만, 확인 수와 함께 당시의 해시레이트 분포와 공격 정황도 고려해야 합니다.
결국 확인 수는 거래가 누적 작업증명 아래 얼마나 깊이 들어 있는지를 보여주는 위험 판단 기준입니다. 나머지 채굴자들이 더 많은 해시 연산력을 유지하는 상황에서는 확인 수가 늘수록 재구성 위험이 낮아집니다. 서비스는 거래 금액과 회수 가능성, 당시의 공격 위험을 함께 고려해 필요한 확인 수를 정합니다.
51% 공격을 어렵게 만드는 현실적인 조건
51% 공격은 네트워크 전체 채굴 해시레이트의 과반을 통제해 체인 경쟁에서 우위를 얻는 공격입니다. 실제로 거래를 되돌리거나 검열하려면 공격 목적을 달성할 만큼 충분한 시간과 작업량이 필요합니다.
공격에는 많은 채굴 장비와 전력, 시설과 운영 능력이 필요합니다. 나머지 채굴자들도 계속 블록을 만들기 때문에 공격자는 현재 체인과의 경쟁도 이어가야 합니다. 이러한 조건은 51% 공격의 실행과 유지를 어렵게 만드는 현실적인 장벽으로 작용합니다.
과반의 채굴 해시레이트를 확보하고 유지해야 한다
공격자가 과반을 차지하려면 직접 보유하거나 빌리거나 다른 참여자와 협력하는 방식으로 충분한 채굴 장비의 계산 능력을 통제해야 합니다. 이때 비교 대상은 채굴기 몇 대가 아니라 같은 시간에 비트코인 블록을 찾고 있는 전체 채굴자의 해시레이트입니다.
공격 목적을 달성하려면 잠시 과반에 도달하는 것을 넘어 충분한 시간 동안 해시레이트 우위를 확보해야 합니다. 대체 체인을 이용해 거래를 되돌리려면 나머지 채굴자들이 만드는 현재 체인보다 더 많은 누적 작업량을 쌓아 공개해야 합니다. 되돌리려는 거래의 확인 수가 많거나 검열을 오래 지속하려 할수록 통제해야 하는 시간과 필요한 작업량도 커질 수 있습니다.
네트워크 전체 해시레이트와 채굴 장비의 공급 상황은 계속 달라집니다. 따라서 특정 장비 수나 금액 하나를 51% 공격에 필요한 고정 조건으로 제시하기는 어렵습니다.
해시레이트 우위를 유지하려면 운영 자원이 계속 필요하다
채굴 장비를 확보한 뒤에도 장비를 작동시키는 전력, 냉각과 시설, 안정적인 네트워크 연결과 운영 관리가 공격을 지속하는 동안 필요합니다.
풀노드는 현재 체인보다 더 많은 누적 작업량을 가진 유효한 대체 체인이 나타났을 때 그 체인을 선택합니다. 공격자가 만든 대체 체인이 경쟁에서 밀리면 블록을 만드는 데 사용한 전력과 운영 비용을 회수하기 어렵고, 그 블록의 코인베이스 거래에 기록한 보상도 실제로 사용할 수 있는 채굴 보상이 되지 않습니다.
또한 블록 발견에는 확률이 작용하므로 공격자는 원하는 시점까지 현재 체인보다 많은 작업량을 쌓기 위해 경쟁을 계속해야 합니다. 공격 시간이 길어질수록 장비 고장, 전력 공급과 운영 문제처럼 공격 계획에 영향을 줄 변수도 늘어날 수 있습니다.
채굴 보상과 참여자의 대응도 공격을 어렵게 한다
51% 공격의 정황이 드러나면 큰 체인 재구성이나 거래 확인 지연 같은 이상 징후가 나타날 수 있습니다. 거래소와 결제 서비스는 입출금을 멈추거나 필요한 확인 수를 늘릴 수 있고, 채굴 참여자는 공격에 이용된 채굴 풀에서 다른 곳으로 해시 연산력을 옮길 수 있습니다. 이런 대응은 공격자가 과반을 유지하거나 공격으로 이익을 얻는 일을 어렵게 만들 수 있습니다.
공격은 공격자에게도 경제적 손실을 줄 수 있습니다. 정상적으로 채굴할 때 얻을 수 있었던 보상을 놓칠 수 있고, 네트워크 신뢰가 훼손되면 보유한 비트코인과 채굴 장비의 경제적 가치에도 불리한 영향을 받을 수 있습니다.
정상적으로 채굴하면 보상을 받을 수 있다는 점과 네트워크 참여자의 대응 가능성은 공격을 억제하는 중요한 요인입니다. 다만 공격자의 목적과 비용 감수 수준, 당시의 해시레이트 분포와 대응 속도는 상황마다 달라질 수 있습니다.
종합하면 비트코인 네트워크의 채굴 규모, 지속적인 운영 비용, 확률적인 블록 발견, 정상적으로 채굴해 얻는 보상과 참여자의 대응은 51% 공격의 실행 가능성을 낮추는 방향으로 작용합니다. 이러한 현실적 장벽이 높을수록 공격자는 과반의 해시레이트를 확보하고 유지하기가 더 어려워집니다.
비트코인 51% 공격의 핵심 정리
이 글의 핵심은 다음과 같습니다.
- 51%는 비트코인 보유량이나 풀노드 수가 아니라 비트코인 채굴에 사용되는 해시 연산력의 과반을 뜻합니다.
- 공격자는 합의 규칙을 지킨 대체 체인에 더 많은 누적 작업량을 쌓아 최근 거래 이력의 선택에 영향을 줄 수 있습니다.
- 이를 이용하면 자신이 한 지불을 되돌리는 이중 지불이나 특정 거래의 확인을 방해하는 거래 검열을 시도할 수 있습니다.
- 풀노드는 타인의 서명을 위조한 거래, 허용량을 넘긴 발행과 규칙 위반 블록을 거부합니다.
- 확인 수가 늘면 현재 체인에 작업증명이 더 쌓입니다. 나머지 채굴 연산력이 더 큰 상황에서는 확인 수가 늘수록 재구성 위험이 낮아집니다.
비트코인 채굴 관련 글 더 알아보기
51% 공격과 연결되는 채굴의 전체 흐름과 실제 장비 운영 환경은 다음 글에서 이어서 확인할 수 있습니다.
- 거래가 만들어져 후보 블록에 포함되고 풀노드의 검증을 받는 전체 흐름은 비트코인 채굴이란? 거래가 블록에 포함되는 과정과 노드·채굴자의 역할에서 설명합니다.
- 가정에서 소형 ASIC 두 대를 설치하고 운영한 과정은 가정용 비트코인 채굴기 2대 설치·운영 후기: Bitaxe Gamma와 NerdQaxe++에 정리했습니다.