블록체인 보안 개요
블록체인은 분산 원장 기술로, 보안성이 높다고 알려져 있지만 고유한 보안 취약점이 존재합니다. 정보보안기사에서는 블록체인 구조와 합의 알고리즘, 주요 공격 유형이 출제됩니다.
블록체인 기본 구조
- 블록: 트랜잭션 묶음 + 이전 블록 해시 + 타임스탬프 + 논스
- 체인: 이전 블록 해시로 연결 → 하나 수정 시 이후 블록 전부 변경 필요
- 분산 원장: 모든 참여자가 동일한 사본 보유
- 해시 함수: SHA-256 (비트코인), Keccak-256 (이더리움)
합의 알고리즘
PoW (Proof of Work, 작업 증명)
- 해시 퍼즐을 가장 먼저 푼 노드(채굴자)가 블록 생성
- 비트코인, 이더리움(구버전)에서 사용
- 51% 공격: 전체 해시 파워의 51% 이상 장악 시 블록 위·변조 가능
- 에너지 소비 과다가 단점
PoS (Proof of Stake, 지분 증명)
- 보유 코인량(지분)에 비례하여 블록 생성 확률 결정
- 이더리움 2.0, Cardano에서 사용
- 에너지 효율적, Nothing at Stake 문제 존재
DPoS, PBFT 등 기타 합의 알고리즘
- DPoS (Delegated PoS): 대표자를 선출하여 합의 위임 (EOS)
- PBFT: 허가형 블록체인의 비잔틴 장애 허용 합의 (Hyperledger Fabric)
블록체인 주요 공격
- 51% 공격: 해시 파워 과반 확보 후 이중 지불, 블록 위조
- 셀피시 마이닝(Selfish Mining): 채굴한 블록을 숨겼다가 한꺼번에 공개하여 이득
- 이클립스 공격(Eclipse Attack): 특정 노드의 P2P 연결을 장악하여 고립
- Sybil 공격: 다수의 가짜 노드를 생성하여 네트워크 장악 시도
스마트 컨트랙트 보안 취약점
재진입 공격 (Reentrancy Attack)
이더리움 DAO 해킹(2016년)에 사용된 취약점. 외부 계약 호출 중 콜백을 통해 같은 함수를 반복 실행하여 자금 탈취. Checks-Effects-Interactions 패턴으로 방어.
정수 오버플로우/언더플로우
uint 타입 범위 초과 시 예상치 못한 값. SafeMath 라이브러리 사용으로 방어.
타임스탬프 의존성
블록 타임스탬프를 무작위성 소스로 사용 시 채굴자가 조작 가능
프론트러닝(Front-running)
미처리된 트랜잭션을 확인 후 더 높은 가스비로 먼저 처리되도록 선행 트랜잭션 제출
시험 핵심 포인트
- PoW 51% 공격: 해시 파워 과반 → 이중 지불 가능
- 스마트 컨트랙트: 이더리움의 자동 실행 계약 코드
- 재진입 공격 방어: Checks-Effects-Interactions 패턴
- 블록체인 불변성: 해시 체인으로 과거 블록 위변조 사실상 불가
- 허가형(Permissioned) vs 비허가형(Permissionless) 블록체인
마무리
블록체인 보안은 최신 기술 트렌드와 연계된 출제 영역입니다. 합의 알고리즘의 차이와 스마트 컨트랙트 취약점 유형을 이해하면 신규 출제 문제에도 대응할 수 있습니다.