본문으로 이동

51% 공격

51% 공격은 한 주체가 정직한 네트워크를 안정적으로 앞서고 최근 블록체인 기록을 재구성할 만큼 충분한 합의력을 통제할 때 발생합니다.

업데이트

교육 목적으로만 제공되며 투자 조언이 아닙니다. 투자로 인해 손실이 발생할 수 있습니다.

직접 답변

51% 공격은 한 주체가 정직한 네트워크를 안정적으로 앞서고 최근 블록체인 기록을 재구성할 만큼 충분한 합의력을 통제할 때 발생합니다.

작업 증명(PoW) 체인에서 이 용어는 일반적으로 활성 해시레이트의 과반수를 통제한다는 뜻입니다. 공격자는 정직한 분기보다 누적 작업 증명이 더 큰 경쟁 분기를 구축하고 노드가 이를 채택하게 할 수 있습니다. “51%”는 지속적인 우위를 줄여 부르는 표현이지 모든 경우에 적용되는 보편적인 스위치가 아닙니다. 해시레이트가 더 낮은 공격자도 우연히 얕은 블록을 재구성할 수 있으며, 일시적인 과반수 권한이 수익성 있는 공격을 보장하지도 않습니다.

이 명칭을 지분 증명(PoS)에 기계적으로 적용해서는 안 됩니다. 투표 임계값, 포크 선택, 최종성, 비활성 페널티, 슬래싱은 프로토콜마다 다릅니다. 예를 들어 Ethereum은 스테이크의 약 33%, 34%, 51%, 66%에서 서로 다른 결과가 발생한다고 설명합니다. 항상 어떤 합의 규칙과 어떤 공격 목표를 논의하는지 물어야 합니다.

임계값 미만
25%
공격자 비율
25%
임계값까지 여유
25%

결과는 교육용 근사치입니다. 명시되지 않는 한 거래소 규칙, 세금, 지연, 오라클 동작 및 프로토콜별 조건은 포함하지 않습니다.

작동 방식

PoW 노드는 유효한 블록만 받아들이고 누적 작업 증명이 가장 큰 유효한 분기를 따릅니다. 과반수 공격자도 유효하지 않은 서명을 유효하게 만들거나 프로토콜 규칙 밖에서 코인을 생성할 수는 없습니다. 그러나 충돌하는 유효한 분기를 비공개로 채굴한 뒤 공개 분기를 앞지르면 이를 공개할 수 있습니다.

일반적인 이중 지불 과정은 다음과 같습니다.

  1. 공격자는 공개 체인에서 판매자나 거래소에 지불하는 동시에 같은 코인을 다른 곳에 지출하는 분기를 비공개로 채굴합니다.
  2. 수취인은 확인을 기다린 뒤 상품을 넘기거나 출금을 허용합니다.
  3. 비공개 분기에 더 많은 작업 증명이 누적되면 공격자가 이를 공개합니다. 노드는 해당 분기로 재구성하며, 원래 결제는 채택된 기록에서 사라집니다.

확인이 추가될 때마다 정직한 분기의 선행 폭은 커집니다. 공격자의 해시레이트가 정직한 네트워크보다 낮으면 그 선행 폭이 커질수록 따라잡을 확률이 감소합니다. 지속적으로 과반수를 통제하면 공격자는 시간이 지나면서 정직한 분기를 안정적으로 앞설 수 있습니다. 확인은 위험을 줄이지만 절대적인 최종성을 만들지는 않습니다.

같은 통제력을 이용해 특정 거래를 검열하거나 지연하고, 최근 거래의 순서를 바꾸며, 확인을 방해할 수 있습니다. 그러나 다른 사람의 개인 키로 보호된 코인을 훔치거나, 공격자 소유가 아닌 코인을 지출하거나, 전체 노드가 합의 규칙을 위반한 블록을 받아들이도록 강제할 수는 없습니다.

예시

예시로 정직한 해시레이트가 1 TH/s인 소규모 PoW 네트워크를 가정합니다. 공격자는 1.2 TH/s를 시간당 $20,000에 임대할 수 있으며, 임대가 활성화된 동안 합계 2.2 TH/s의 약 54.5%를 차지합니다. 공격자는 거래소에 $200,000 상당의 토큰을 입금하는 동시에 충돌하는 지출이 포함된 비공개 분기를 채굴합니다.

이 가상 체인에서 거래소가 10개 블록, 즉 약 20분 뒤에 입금을 반영한다면, 공격자는 비공개 분기를 공개하기 전에 다른 자산을 출금할 수 있습니다. 두 시간 임대료는 $40,000이지만 이 수치는 공격자의 이익이 아닙니다. 거래 수수료, 슬리피지, 실행 실패, 출금 동결, 탐지, 공격받은 자산의 가격 하락으로 인해 시도가 수익을 내지 못할 수 있습니다.

거래소가 요건을 200개 블록으로 높이면 공격자는 경쟁 분기를 훨씬 더 오래 유지해야 합니다. 블록 간격을 두 분으로 가정하면 확인 시간은 약 6시간 40분입니다. 공격은 더 비싸지고 탐지하기 쉬워지며, 정상 고객도 더 오래 기다려야 합니다. 따라서 확인 정책은 결제 속도와 재구성 위험 사이의 균형을 정합니다.

위험과 대응책

가장 취약한 대상은 운영자가 대응하기 전에 전환하거나 출금할 수 있는 최근의 고액 결제입니다. 수천 개 블록 전부터 기록을 다시 쓰려면 이후의 모든 작업 증명을 재구축하고 현재 체인을 앞질러야 하므로, 실제 공격은 대개 짧고 가치가 큰 구간을 노립니다.

경제적 보안은 토큰의 시가총액만으로 결정되지 않습니다. 임대 가능한 해시레이트, 특수 하드웨어 공급, 전력 및 조정 비용, 채굴 풀 집중도, 블록 보상, 시장 유동성, 수취인이 확인 후 내어주는 가치 등이 관련 요소입니다. 풀 집중은 경고 신호지만, 풀 운영자가 채굴자의 장비를 반드시 소유하는 것은 아닙니다. 채굴자는 해시레이트의 연결 대상을 변경할 수 있습니다.

수취인과 인프라 운영자는 다음 방법으로 노출을 줄일 수 있습니다.

  • 거래 가치와 현재 네트워크 상황에 따라 확인 요건을 설정합니다.
  • 경쟁 분기, 비정상적인 해시레이트 변화, 깊은 재구성을 모니터링합니다.
  • 재구성 위험이 높아지면 입금이나 출금을 일시 중지합니다.
  • 한 번의 확인 대기 기간에 외부로 나갈 수 있는 비가역적 가치의 양을 제한합니다.

이러한 대응책은 예상 손실을 줄이지만, 확률적인 PoW 결제를 수학적으로 되돌릴 수 없게 만들지는 않습니다.

흔한 오해

오해 1: 공격자에게 정확히 51.0%가 필요하다

아닙니다. 50% 미만이어도, 특히 격차가 작다면 공격자가 우연히 따라잡을 수 있지만 확인이 쌓일수록 그 확률은 낮아집니다. 50%를 넘는 해시레이트를 지속적으로 통제하면 공격자는 장기적으로 기대되는 우위를 얻습니다. 그래도 기간, 네트워크 상황, 비용, 선택한 목표는 중요합니다.

오해 2: 과반수 해시 파워로 모든 코인을 훔칠 수 있다

아닙니다. 합의력은 어떤 유효한 기록이 선택되는지에 영향을 줄 뿐, 개인 키를 노출하거나 유효하지 않은 지출을 승인하지 않습니다. 과반수 공격자가 주로 얻는 것은 자신의 최근 결제를 되돌리고, 거래를 검열하며, 최근 블록의 순서를 바꾸는 능력입니다.

오해 3: 고정된 확인 횟수는 항상 안전하다

모든 체인이나 결제에 적합한 고정 횟수는 없습니다. 위험은 공격자가 이용할 수 있는 해시레이트, 정직한 네트워크의 보안 예산, 거래 가치, 탐지 및 대응 시간, 받은 자산을 얼마나 빨리 출금하거나 전환할 수 있는지에 따라 달라집니다.

관련 주제

출처

탐색

위키 검색...