용어집 / 프라이버시와 보안
51% 공격
별칭은 다수 공격, 51% 공격입니다.
- 51% 공격이란 무엇입니까?
- 51% 공격은 네트워크 채굴력의 과반을 통제하여 최근 비트코인 기록을 다시 쓰려는 시도로, 공격자가 자신의 최근 결제를 되돌릴 수 있게 합니다.
채굴은 경주이며, 가장 많은 하드웨어를 운영하는 쪽이 가장 많은 경주에서 이깁니다. 해시레이트의 절반을 넘게 보유한 집단은 더 긴 사설 체인을 만들어 공개할 수 있고, 다른 사람들이 이미 최종으로 취급한 블록들을 지웁니다. 그 집단은 사용자의 서명을 위조할 수 없으므로, 사용자가 관리하는 지갑에 이미 들어 있는 코인이 그러한 공격이 가져가는 대상은 아닙니다.
작동 방식
비트코인 노드는 처음 본 체인이 아니라 누적 작업 증명이 가장 많은 체인을 따릅니다. 공격자는 비밀리에 채굴하여 그 규칙을 악용합니다. 최근의 어떤 블록에서 시작해 공개하지 않은 채 자신의 분기를 만들고, 네트워크의 나머지는 공개 분기를 연장합니다. 비밀 분기가 더 길어지면 그것을 공개하는 순간 모든 노드가 전환하고, 경쟁에서 진 블록들은 그 안에만 존재했던 결제와 함께 폐기됩니다.
백서는 그 난이도를 정확히 측정했습니다. 11번 절은 성공적인 추월 확률을 0.1% 아래로 낮추는 데 필요한 확인 수를 계산합니다. 해시레이트 10%를 가진 공격자에 대해서는 5개 블록, 25%에서는 15개 블록, 30%에서는 24개 블록, 45%에서는 340개 블록입니다. 곡선은 가파르게 오르다가 끊깁니다. 50%를 넘으면 결국 추월할 확률은 1이며, 확인 수를 아무리 늘려도 해결되지 않습니다. 해시레이트의 절반에서 나타나는 이 불연속이 이 이름의 유래입니다.
해시파워 과반수는 루트 권한이 아닙니다. 블록 보조금이 3.125개인데 자기 자신에게 10개를 지급하는 블록이나, 자신이 키를 갖지 않은 출력을 사용하는 블록처럼 유효하지 않은 블록을 채굴한 채굴업자는 모든 풀 노드에게서 그 블록을 거부당합니다. 노트북에서 실행되는 값싼 노드도 마찬가지입니다. 공격자의 권한은 좁고 구체적입니다. 블록에서 트랜잭션을 제외하고, 정직한 채굴업자가 찾은 블록을 고아로 만들고, 자신이 최근 몇 개 블록 안에서 했던 결제를 되돌립니다. 공격자는 정해진 일정 밖에서 코인을 발행할 수 없고, 2,100만개 상한을 올릴 수 없으며, 서명할 수 없는 주소의 자금을 옮길 수 없습니다.
이 공격은 또한 직접 구축하는 것이 아니라 임대하는 것입니다. 난이도는 2,016개 블록마다 재계산될 뿐이므로, 공격자는 2주 동안 무언가를 유지할 필요가 없습니다. 채굴 시장에 여유 용량이 있는 알고리즘의 체인이라면 몇 시간 임대한 용량으로 충분하며, 피해자가 모두 비트코인이 아니라 소규모 체인이었던 이유가 여기에 있습니다.
비트코인을 구매할 때 이것이 중요한 이유
비트코인 메인 체인에서 성공한 과반수 공격은 지금까지 한 번도 없었습니다. 가장 아슬아슬했던 사례는 2014년 7월에 있었는데, GHash.io 풀이 네트워크 해시레이트의 절반을 넘어서자 공개 압력에 따라 39.99%를 초과하지 않겠다는 약속을 공개했고, 그 풀은 2016년 10월에 문을 닫았습니다. 집중은 여전히 현재의 우려입니다. Foundry USA와 AntPool 두 풀을 합치면 전체 블록의 대략 절반을 만들지만, 그들에게 향하는 해시레이트는 몇 분 만에 기계를 다른 풀로 돌릴 수 있는 수천 명의 개별 채굴업자가 소유합니다.
구매자에게 실질적인 노출은 좁습니다. 자신의 지갑에 보관한 코인은 재구성으로 사라질 수 없는데, 재구성은 키를 누가 보유하는지 바꿀 수 없기 때문입니다. 영향 범위에 들어가는 것은 이동 중인 가치입니다. 거래소가 이미 입금 처리했지만 아직 확인 중인 입금, 그리고 같은 플랫폼에서 비트코인 옆에 상장된 작은 작업 증명 알트코인 전부가 여기에 해당합니다. 이 사이트에서 리뷰한 거래소 24곳 중 고객 자금을 잃은 거래소들은 체인 재구성이 아니라 수탁 실패와 사기로 잃었습니다. 이 비율은 해당 자산의 전체 역사에서 유지되어 왔습니다.
확인 대기는 이 방어의 가시적인 비용입니다. 거래소가 입금을 거래 가능하게 하기 전에 여러 블록을 기다리게 한다면, 그것은 백서가 설명하는 안전 여유를 스스로 확보하는 것입니다. 플랫폼 사이로 코인을 옮긴다면 그 지연을 버그로 여기지 말고 미리 계획하십시오.
두 번 공격받은 Bitcoin Gold
Bitcoin Gold는 해시레이트를 제외한 모든 것을 물려받은 비트코인 코드의 2017년 포크이기 때문에 가장 명확한 실제 사례입니다. 2018년 5월에 공격자는 BTG를 거래소에 입금하고 다른 자산으로 교환한 뒤 출금했고, 그다음 체인을 재구성해 입금이 없었던 것으로 만들었습니다. 보고된 이중 지불은 대략 1,800만 달러에 달했습니다. 손실을 입은 거래소 중 하나인 Bittrex는 프로젝트가 손실 보상을 거부하자 2018년 9월에 BTG 상장을 폐지했습니다.
2020년 1월 23일에 다시 발생했으며, 공개 시장에서 임대한 해시파워로 실행된 두 차례의 심층 재구성이 약 1,900 BTG와 5,267 BTG를 되돌렸습니다. 교훈은 일반화됩니다. 체인을 공격하는 비용은 시가총액이나 브랜드가 아니라 그 해시레이트를 따릅니다. 어떤 코인이 수억 달러의 가치가 있어도 몇 시간 임대한 기계의 가격으로 재구성될 수 있습니다.
51% 공격 vs 이중 지불
51% 공격은 수단이며, 이중 지불은 대개 그 결과입니다. 비트코인 역사상 실제 이중 지불 시도의 거의 전부는 채굴을 전혀 수반하지 않았고, 멤풀에서 확인되지 않은 트랜잭션을 교체하는 것에 불과했으며, 공격자에게는 더 높은 수수료 외에 비용이 들지 않았습니다. 이미 블록에 묻힌 결제를 되돌리는 데 필요한 것은 해시파워 과반수이며, 그것은 완전히 다른 예산입니다.
51% 공격 vs 이기적 채굴
이기적 채굴은 이익 전략이지 역사의 재작성이 아닙니다. 2013년에 Eyal과 Sirer는 찾은 블록을 숨겼다가 전략적으로 공개하는 채굴업자가 해시레이트의 절반에 훨씬 못 미치는 수준에서, 일부 네트워크 조건에서는 약 3분의 1 수준에서도 공정한 몫보다 많은 보상을 얻을 수 있음을 보였습니다. 이기적 채굴업자는 여전히 합의 규칙을 존중하며 확인된 결제를 되돌리지 않습니다. 사용자의 코인이 아니라 다른 채굴업자의 수익을 훔치는 것입니다.