본문으로 이동
메뉴 여닫기
환경 설정 메뉴 여닫기
개인 메뉴 여닫기
로그인하지 않음
지금 편집한다면 당신의 IP 주소가 공개될 수 있습니다.

이중 지불(Double Spending)은 같은 디지털 자산을 두 번 이상 써서, 서로 다른 상대가 각각 자기가 받은 거래를 유효하다고 믿게 만드는 문제이자 그것을 노리는 공격이다.

종이 화폐는 건네면 손을 떠나지만 디지털 자산은 복사할 수 있는 데이터이다. 전통적 전자화폐는 중앙 기관이 모든 거래를 확인해 같은 돈이 두 번 쓰이지 않게 했다. 비트코인 백서는 신뢰할 제3자 없이 이 문제를 풀려고, P2P 네트워크가 거래를 작업 증명 체인에 시간 순서대로 기록하고 가장 긴 체인을 사건 순서의 증거로 삼는 방법을 제안했다.[1] NIST는 같은 디지털 자산으로 두 번 이상 거래하는 것을 이중 지불 문제로, 사용자가 일부러 그렇게 하려는 것을 이중 지불 공격으로 나눠 정의한다.[2]

방식 내용
경쟁 공격(race) 같은 코인을 쓴 거래 둘을 거의 동시에 서로 다른 경로로 퍼뜨린다. 상인이 블록 확인 전에 물건을 내주면 상인 쪽 거래가 버려질 수 있다
빠른 결제 공격 몇 초 안에 끝나는 매장 결제처럼 확인을 기다리지 않는 결제를 노린다. 카라메(Karame) 등은 이 공격이 적은 비용으로 가능하고, 당시 권장된 대책도 늘 통하지는 않음을 보였다[3]
체인 재구성 해시 파워 과반으로 비밀 체인을 쌓았다가 공개해, 이미 확인된 거래를 되돌린다 → 51% 공격
고립된 노드 이용 상인 노드를 공격자 노드에만 연결해 두고 그 노드에만 거래를 보여 준다 → 이클립스 공격
  • 금액에 맞게 확인 수를 기다린다. 블록이 쌓일수록 그 거래를 되돌리는 데 드는 연산이 기하급수적으로 커진다[1]
  • 확인 전 거래를 받을 때는 같은 입력을 쓴 충돌 거래가 네트워크에 퍼지는지 지켜본다
  • 피어를 여럿, 다양한 경로로 연결해 고립을 막는다

다른 공격과의 관계

편집 원본 편집

이중 지불은 목적이고, 51% 공격·이클립스 공격·경쟁 공격은 그것을 이루는 수단이다. 시빌 공격은 가짜 신원으로 다수결을 장악하는 것이라 그 자체로 이중 지불은 아니지만, 이클립스 공격을 준비하는 데 쓰일 수 있다.

구분 계층 핵심
이중 지불 거래 같은 자산을 두 번 쓴다
51% 공격 합의 해시 파워 과반으로 체인 선택을 좌우
이클립스 공격 네트워크 한 노드를 고립시켜 시야를 조작
시빌 공격 신원 가짜 신원으로 다수결 장악
  1. ↑ 1.0 1.1 Satoshi Nakamoto, 「Bitcoin: A Peer-to-Peer Electronic Cash System」, https://bitcoin.org/bitcoin.pdf, 확인일: 2026-11-04.
  2. ↑ 「Blockchain Technology Overview」(NISTIR 8202), NIST, https://nvlpubs.nist.gov/nistpubs/ir/2018/NIST.IR.8202.pdf, 확인일: 2026-11-04.
  3. ↑ Ghassan O. Karame, Elli Androulaki, Srdjan Capkun, 「Two Bitcoins at the Price of One? Double-Spending Attacks on Fast Payments in Bitcoin」, IACR ePrint 2012/248, https://eprint.iacr.org/2012/248, 확인일: 2026-11-04.