이중지불

용어심층

Double Spending

이중지불은 하나의 디지털 화폐 단위를 서로 다른 두 거래에 동시에 또는 연달아 사용하려는 부정 행위를 말한다. 이를 중앙 관리자 없이 막는 것은 암호화폐가 화폐로 성립하기 위한 핵심 전제이다.

1.개요

이중지불(Double Spending)은 하나의 디지털 화폐 단위를 서로 다른 두 거래에 동시에 또는 연달아 사용하려는 행위를 말한다. 물리적 현금은 한 번 건네면 손에서 사라지지만, 디지털 데이터는 완벽하게 복제할 수 있기 때문에 별도의 장치가 없다면 같은 코인을 여러 번 쓰는 부정이 가능하다. 이 문제를 해결하는 것은 중앙 관리자 없이 운영되는 디지털 화폐가 성립하기 위한 핵심 전제이다.

전통적인 전자 결제는 은행이나 카드사 같은 중앙 기관이 모든 거래 기록을 관리하며 잔액을 확인해 이중지불을 막는다. 반면 분산원장에 기반한 암호화폐는 신뢰할 수 있는 중앙 기관이 없으므로, 다수의 노드가 거래 순서에 대해 합의하는 방식으로 이 문제를 해결한다. 2008년 사토시 나카모토가 제안한 비트코인은 이 이중지불 문제를 실용적으로 해결한 최초의 사례로 평가된다.

그런 의미에서 이중지불은 단순한 결제 사기의 한 유형이 아니라, 탈중앙화된 화폐가 풀어야 했던 근본 난제이자 블록체인 기술이 등장한 배경 그 자체로 이해된다.

2.배경: 디지털 화폐의 근본 난제

화폐가 화폐로서 작동하려면 같은 돈을 두 번 쓸 수 없다는 성질, 즉 소비된 화폐가 확실히 소멸한다는 성질이 보장되어야 한다. 현금·금화 같은 실물은 물리적으로 하나뿐이므로 이 성질이 저절로 성립한다.

그러나 화폐를 순수한 디지털 데이터로 표현하면 사정이 달라진다. 디지털 정보는 원본과 사본을 구별할 수 없이 무한히 복제할 수 있기 때문이다. 어떤 사용자가 같은 잔액 정보를 담은 결제 메시지를 두 상대에게 각각 보내면, 두 상대는 모두 자신이 정당하게 돈을 받았다고 믿게 된다. 별도의 검증 장치가 없다면 디지털 화폐는 이러한 위조와 반복 사용에 무방비하게 노출된다.

이캐시로 대표되는 초기 전자화폐 연구부터 이 문제는 핵심 과제였으며, 그 해법의 방향에 따라 화폐 시스템이 중앙집중형이 되느냐 탈중앙형이 되느냐가 갈렸다.

3.중앙집중형 결제와의 비교

이중지불을 막는 가장 직관적인 방법은 모든 거래를 한 곳에서 기록하고 확인하는 것이다. 은행 계좌 이체나 신용카드 결제에서는 은행·카드사라는 중앙 기관이 사용자의 잔액을 관리하며, 잔액을 초과하거나 이미 쓴 돈을 다시 쓰려는 시도를 즉시 거부한다. 최근 각국이 검토하는 중앙은행 디지털화폐 역시 발행 주체가 원장을 통제해 이중지불을 원천 차단하는 구조를 취한다.

이 방식은 확실하지만, 그 신뢰가 전적으로 하나의 기관에 집중된다는 한계가 있다. 그 기관이 검열하거나, 오류를 내거나, 공격당하면 시스템 전체가 흔들린다.

암호화폐는 신뢰할 수 있는 중앙 기관을 두지 않는 것을 목표로 하므로, 이 검증 역할을 누구도 단독으로 맡지 않는다. 대신 네트워크에 참여한 다수의 노드가 거래 내역을 공유하고 그 순서에 합의하도록 함으로써, 중앙 기관이 없이도 같은 코인이 두 번 쓰이지 않도록 만든다. 이것이 법정화폐 기반 전자결제와 암호화폐가 갈라지는 지점이다.

4.해결 원리

암호화폐는 모든 거래를 시간 순서대로 블록에 담아 사슬처럼 연결하고, 이를 네트워크 전체가 공유한다. 각 거래는 전자서명으로 소유권을 증명하며, 비트코인의 경우 아직 사용되지 않은 출력값인 미사용 트랜잭션 출력만을 지불 재원으로 인정한다. 어떤 코인이 한 번 소비되어 원장에 기록되면, 같은 코인을 다시 쓰려는 두 번째 거래는 네트워크가 유효하지 않은 것으로 판단해 거부한다.

거래의 순서를 위·변조 없이 정하기 위해 비트코인은 작업증명이라는 합의 알고리즘을 사용한다. 채굴자는 해시 함수 연산을 반복해 유효한 블록을 찾아야 하며, 이 과정에 실제 계산 비용이 들기 때문에 거래 순서를 조작하는 일이 경제적으로 매우 비싸진다.

어떤 거래가 블록에 포함되고 그 위에 후속 블록이 쌓일수록, 이를 뒤집는 데 필요한 계산량이 기하급수적으로 커져 사실상 되돌릴 수 없게 된다. 이는 비잔틴 장애 허용 문제를 순수한 알고리즘이 아니라 경제적 비용으로 해결한 접근이라 할 수 있다.

5.확인과 거래 최종성

이중지불 방어의 강도는 시간이 지날수록, 정확히는 블록이 쌓일수록 강해진다. 어떤 거래가 담긴 블록 위에 새로운 블록이 하나씩 연결될 때마다 그 거래는 한 번의 확인을 얻는다.

확인이 1회에 불과한 거래는 드물게 발생하는 체인 재구성(하나의 블록 높이에 두 블록이 경쟁하는 상황)에서 뒤집힐 여지가 있다. 그러나 확인이 여러 번 쌓이면 그 거래를 무효화하려는 공격자는 그만큼의 블록을 정직한 네트워크보다 빠르게 다시 만들어야 하므로, 필요한 해시레이트와 비용이 비현실적으로 커진다. 이 때문에 확인 수가 늘어날수록 거래는 최종성에 가까워진다.

다만 이 최종성은 수학적으로 100% 확정되는 값이 아니라 확률적으로 굳어지는 성질이라는 점이 중요하다. 그래서 풀 노드블록 익스플로러는 각 거래의 확인 수를 표시해, 받는 쪽이 위험 수준을 스스로 판단할 수 있게 한다.

6.공격 유형

확인이 충분히 쌓이기 전에는 여전히 이중지불 시도가 가능하며, 대표적인 유형은 다음과 같다.

  • 레이스 공격: 상대방에게 보내는 거래와, 자신에게 되돌리는 거래를 거의 동시에 네트워크에 퍼뜨려 둘 중 하나만 블록에 담기게 만드는 방식이다. 상대가 확인을 기다리지 않고 결제를 승인할 때 성립한다. 자세한 내용은 레이스 공격 문서를 참고한다.
  • 피니 공격: 공격자가 미리 이중지불 거래를 담은 블록을 채굴해 두었다가, 상대가 확인 없이 거래를 수락하는 순간 이를 공개하는 방식이다. 미리 블록을 확보해 둔다는 점에서 레이스 공격보다 성공률이 높지만, 채굴 능력과 시점 조율이 필요하다.
  • 51% 공격: 네트워크 전체 해시파워의 과반을 확보한 공격자가 자신이 유리한 방향으로 블록 사슬을 다시 작성해 이미 확정된 거래마저 되돌리는 방식이다. 자세한 내용은 51% 공격 문서를 참고한다.

이 밖에 특정 노드를 네트워크에서 고립시켜 조작된 사슬을 보여 주는 이클립스 공격도 이중지불을 돕는 보조 수단으로 쓰일 수 있다.

7.51% 공격과 해시파워의 경제학

세 유형 가운데 가장 파괴적인 것은 51% 공격이다. 앞의 두 공격이 확인을 기다리지 않은 거래만 노리는 반면, 51% 공격은 이미 여러 번 확인된 거래까지 되돌릴 수 있기 때문이다.

공격자가 네트워크 전체 해시레이트의 과반을 쥐면, 정직한 채굴자들보다 빠르게 블록을 만들어 낼 수 있다. 공격자는 정상 거래를 담은 사슬과 별개로, 그 거래를 지운 비공개 사슬을 몰래 더 길게 만든 뒤 한꺼번에 공개한다. 네트워크는 더 긴 사슬을 정당한 것으로 채택하므로 원래 거래는 없던 일이 되고, 공격자는 이미 받은 상품이나 코인을 그대로 챙긴다.

대형 네트워크에서는 과반의 해시파워를 확보·유지하는 데 드는 장비와 전기 비용이 공격 이득을 압도하므로 현실적 유인이 낮다. 그러나 총 해시레이트가 낮은 소규모 작업증명 체인은 상대적으로 적은 비용으로 과반을 장악할 수 있어, 이더리움클래식 같은 일부 체인에서 실제로 51% 공격에 의한 이중지불 피해가 보고된 바 있다. 이는 이중지불 방어의 강도가 결국 네트워크의 규모와 탈중앙화 정도에 비례함을 보여 준다.

8.판매자와 상점의 대응

이러한 위험 때문에 코인을 받는 쪽은 금액과 상황에 맞춰 방어 수위를 조절한다.

  • 확인 대기: 금액이 큰 거래일수록 여러 번의 확인을 기다린 뒤에 결제를 최종 승인하는 것이 안전하다. 소액 결제에서는 0회 확인을 감수하기도 하지만, 고액 결제에서는 통상 여러 확인을 요구한다.
  • 거래 관찰: 결제 시점에 같은 코인을 쓰는 상충 거래가 네트워크에 함께 퍼지고 있지 않은지 감시해 레이스 공격 정황을 조기에 포착한다.
  • 결제 채널 활용: 라이트닝 네트워크 같은 오프체인 채널은 참여자가 부정한 과거 상태를 방송하면 예치금을 몰수하는 벌칙 구조를 두어, 본체인 밖에서도 이중지불을 억제한다.

결국 상점의 전략은 결제 금액이라는 잠재적 손실과, 확인을 기다리는 시간이라는 비용 사이의 균형점을 찾는 문제로 귀결된다.

9.비잔틴 장군 문제와의 관계

이중지불 방지는 분산 시스템 이론의 오랜 난제인 비잔틴 장애 허용 문제와 직결된다. 서로를 신뢰할 수 없는 다수의 참여자가, 일부가 거짓 정보를 흘리는 상황에서도 하나의 일관된 결론에 도달할 수 있는가라는 물음이다.

같은 코인의 두 거래 중 어느 것이 먼저인지에 대해 전 세계 노드가 이견 없이 합의해야 이중지불을 막을 수 있으므로, 이는 본질적으로 비잔틴 장군 문제의 한 형태다. 비트코인의 기여는 이 문제를 완전무결한 결정론적 해법 대신, 작업증명과 가장 긴 사슬 규칙을 결합해 확률적으로, 그리고 경제적 비용을 통해 실용적으로 풀어냈다는 데 있다. 정직하게 행동하는 편이 공격보다 이득이 되도록 유인을 설계한 것이다.

10.다른 합의 방식에서의 방어

이중지불 방지는 작업증명만의 과제가 아니라 모든 합의 알고리즘이 공통으로 풀어야 할 목표다.

지분증명 계열에서는 해시파워 대신 예치된 자산의 규모로 블록 생성 권한을 정하며, 부정한 방식으로 이중지불을 시도하는 검증자의 예치금을 삭감하는 벌칙으로 공격을 억제한다. 즉 작업증명이 외부의 전기·연산 비용으로 공격을 비싸게 만든다면, 지분증명은 네트워크 내부에 묶인 자산을 담보로 삼는다.

방식은 달라도 지향점은 같다. 누구도 단독으로 거래 순서를 조작할 수 없게 만들고, 조작을 시도하면 그에 상응하는 경제적 손실을 지도록 설계함으로써 같은 코인이 두 번 쓰이는 일을 막는 것이다.

11.한계와 남는 과제

블록체인의 이중지불 방어는 강력하지만 절대적이지는 않다. 앞서 보았듯 최종성은 확률적이며, 총 해시레이트나 예치 자산이 작은 네트워크는 여전히 과반 장악 공격에 취약하다.

  • 규모 의존성: 방어력이 네트워크 규모에 비례하므로, 신생 체인이나 탈중앙화가 덜 진행된 체인은 상대적으로 위험이 크다.
  • 확인 지연: 안전을 위해 확인을 기다리는 구조는 결제 속도를 늦추는 요인이 되며, 이는 라이트닝 네트워크를 비롯한 확장 기술이 풀려는 과제와 맞닿아 있다.
  • 분기 상황: 하드 포크로 체인이 갈라지는 국면에서는 재구성 위험이 일시적으로 높아질 수 있다.

이중지불은 암호화폐가 태어나면서 극복한 문제이자, 새로운 체인과 합의 방식이 등장할 때마다 그 안전성을 가늠하는 잣대로 남아 있는 주제다.

12.연표2

  1. 2008이정표사토시 나카모토가 비트코인 백서를 공개하며 중앙 기관 없이 이중지불을 막는 방법을 제안
  2. 2009설립비트코인 네트워크가 가동되고 제네시스 블록이 생성되어 이중지불 해법이 처음으로 실제 구현됨
이 문서 인용하기
토큰포스트 위키, “이중지불”, 2026-08-06 수정, https://wiki.tokenpost.kr/w/double-spending

문단 11개 · 연표 2건 · 각주 0