Blockchain

Blockchain Vulnerabilities

읽는 시간: 2

📋 블록체인 취약점 요약#

이 문서는 블록체인 네트워크가 공격받을 수 있는 다양한 방법들을 설명합니다. 주요 블록체인(비트코인, 이더리움)에서는 대부분의 공격이 경제적으로 불가능하지만, 작은 블록체인에서는 실질적인 위협이 될 수 있습니다.


1. 시빌 공격 (Sybil Attack)#

  • 정의: 악의적인 주체가 다수의 가짜 노드를 생성하여 네트워크 통제권을 얻으려는 공격
  • 피해: 사기 거래 승인, 이중 지불, 거래 검열, 블록체인 기록 변조
  • 방어:
    • PoW: 해시 파워(연산력) 기반 → 가짜 작업 불가
    • PoS: 경제적 지분 기반 → 막대한 암호화폐 보유 필요

2. 51% 공격 (Majority Attack)#

  • 정의: 네트워크 합의 파워의 과반수를 장악하는 공격
  • PoW: 50% 이상의 해시 파워로 블록체인 기록 재작성 가능
  • PoS: 50% 이상의 스테이킹으로 조작 가능, 완전 통제는 67% 필요
  • 방어: 수십 조 원의 비용 + 커뮤니티의 하드포크로 공격 무력화

3. 블록체인 재구성 (Re-org)#

  • PoW에서 두 채굴자가 동시에 블록을 발견할 때 자연적으로 발생 가능
  • 해결책: 컨펌(확인) 수가 많을수록 재구성 위험 감소
  • PoS는 최종성(finality) 메커니즘으로 더 안전

4. MEV & 샌드위치 공격#

  • MEV: 블록 생성 시 거래 순서 조작으로 얻는 추가 수익
  • 샌드위치 공격 과정:
    1. 사용자의 대량 매수 주문 감지 (멤풀에서)
    2. 봇이 먼저 매수 (프론트러닝) → 가격 상승
    3. 사용자 주문 실행 → 가격 더 상승
    4. 봇이 매도 (백러닝) → 차익 실현
  • 사용자는 예상보다 높은 가격에 구매 (슬리피지)

5. 클라이언트 소프트웨어 버그#

  • 사례: 2010년 비트코인 184억 개 버그
    • 정수 오버플로우 버그로 184억 BTC가 무에서 생성됨
    • 커뮤니티가 신속히 하드포크로 해결
  • 교훈: 철저한 코드 감사와 테스트의 중요성

6. 리플레이 공격 (Replay Attack)#

  • 정의: 한 체인에서 유효한 서명된 거래를 다른 호환 체인에서 재전송
  • 방어책:
    • Chain ID: 각 체인 고유 식별자 (예: 이더리움 = 1)
    • Nonce: 거래 카운터로 동일 거래의 재사용 방지

💡 핵심 결론#

블록체인 프로토콜은 공격을 불가능하게 만드는 게 아니라, 경제적으로 비합리적으로 만든다. 정직하게 행동하는 것이 속이는 것보다 항상 더 이익이 되도록 설계되어 있다.