이중 지불 문제는 말 그대로, 단일 화폐 단위가 두번(이중) 결제되어 발생하는 문제입니다.
은행의 경우 중앙제어 시스템이 있기 때문에 거래 요청이 발생한 순서대로 거래를 진행하면 이중 지불 문제가 발생할 수 없습니다.
예를들어 A의 잔고가 1,000원 밖에 없는 상태에서 A가 B에게 1,000원 송금을 요청함과 동시에 C에게도 1,000원 송금을 요청했을 경우 중앙 제어 시스템은 먼저 들어온 거래를 순차적으로 처리 하면됩니다.
B에게 송금하는 거래가 먼저 들어왔다면, 해당 거래를 처리하고 잔액을 차감합니다. 그리고 A의 통장 잔고는 이미차감이 되었기 때문에 C에게 송금 요청을 했던 거래는 잔액 부족 오류를 출력하면 되겠죠?
그렇다면 신뢰할 수 있는 단체가 없는 비트코인에서는 어떻게 이중 지불 문제를 해결했을까요?
비트코인 네트워크는 작업 증명방식의 합의 알고리즘을 이용하여 이중지불 문제를 해결하였습니다.