📋 블록체인 취약점 요약#
이 문서는 블록체인 네트워크가 공격받을 수 있는 다양한 방법들을 설명합니다. 주요 블록체인(비트코인, 이더리움)에서는 대부분의 공격이 경제적으로 불가능하지만, 작은 블록체인에서는 실질적인 위협이 될 수 있습니다.
1. 시빌 공격 (Sybil Attack)#
- 정의: 악의적인 주체가 다수의 가짜 노드를 생성하여 네트워크 통제권을 얻으려는 공격
- 피해: 사기 거래 승인, 이중 지불, 거래 검열, 블록체인 기록 변조
- 방어:
- PoW: 해시 파워(연산력) 기반 → 가짜 작업 불가
- PoS: 경제적 지분 기반 → 막대한 암호화폐 보유 필요
2. 51% 공격 (Majority Attack)#
- 정의: 네트워크 합의 파워의 과반수를 장악하는 공격
- PoW: 50% 이상의 해시 파워로 블록체인 기록 재작성 가능
- PoS: 50% 이상의 스테이킹으로 조작 가능, 완전 통제는 67% 필요
- 방어: 수십 조 원의 비용 + 커뮤니티의 하드포크로 공격 무력화
3. 블록체인 재구성 (Re-org)#
- PoW에서 두 채굴자가 동시에 블록을 발견할 때 자연적으로 발생 가능
- 해결책: 컨펌(확인) 수가 많을수록 재구성 위험 감소
- PoS는 최종성(finality) 메커니즘으로 더 안전
4. MEV & 샌드위치 공격#
- MEV: 블록 생성 시 거래 순서 조작으로 얻는 추가 수익
- 샌드위치 공격 과정:
- 사용자의 대량 매수 주문 감지 (멤풀에서)
- 봇이 먼저 매수 (프론트러닝) → 가격 상승
- 사용자 주문 실행 → 가격 더 상승
- 봇이 매도 (백러닝) → 차익 실현
- 사용자는 예상보다 높은 가격에 구매 (슬리피지)
5. 클라이언트 소프트웨어 버그#
- 사례: 2010년 비트코인 184억 개 버그
- 정수 오버플로우 버그로 184억 BTC가 무에서 생성됨
- 커뮤니티가 신속히 하드포크로 해결
- 교훈: 철저한 코드 감사와 테스트의 중요성
6. 리플레이 공격 (Replay Attack)#
- 정의: 한 체인에서 유효한 서명된 거래를 다른 호환 체인에서 재전송
- 방어책:
- Chain ID: 각 체인 고유 식별자 (예: 이더리움 = 1)
- Nonce: 거래 카운터로 동일 거래의 재사용 방지
💡 핵심 결론#
블록체인 프로토콜은 공격을 불가능하게 만드는 게 아니라, 경제적으로 비합리적으로 만든다. 정직하게 행동하는 것이 속이는 것보다 항상 더 이익이 되도록 설계되어 있다.