익명의 비트코인 개발자 사토시 나카모토는 2008년 논문과 함께 비트코인 코어를 처음 공개했습니다. 이렇게 공개된 비트코인은 처음으로 분산화된 네트워크를 통해 제3자가 필요 없는 P2P 거래를 구현했습니다. 이러한 구현을 하기 위해 반드시 풀어야 했던 문제가 바로 이중 지불 문제입니다. 지금부터 비트코인의 기본 구조를 알아보기 위한 전 단계로 이중 지불 문제에 대해 먼저 알아보겠습니다.
이중 지불 문제(Double spending problem)란 말 그대로 이중으로 지불되는 상황이 발생하는 문제를 말합니다. 오프라인에서 현금을 지급하는 경우 현금이 한 손에서 다른 손으로 직접 이동하기 때문에 이동 과정에서 지폐가 갑자기 복제되는 문제가 발생하지 않습니다. 하지만 온라인의 경우 모든 거래가 데이터, 즉 컴퓨터 코드로 이뤄졌기 때문에 코드의 수정으로 이미 거래된 돈을 거래되지 않은 것처럼 속일 수 있습니다.
예를 들어 A의 잔액이 10000원 B의 잔액이 0원인 상황에서 A가 B에게 10000원을 지불하는 거래를 실행하다면, 거래 이후 A는 0원 B는 10000원이 되어야 합니다. 그런데 만약 거래시간의 차이나 해킹 등으로 A에 지갑에 여전히 10000원이 존재한다면, 두 사람 모두 잔액이 10000원이 되는 이상한 상황이 발생하게 됩니다. 이 상황에서 A는 이 10000원을 이용해 다른 거래를 할 수 있게 됩니다. 이것이 같은 금액을 여러 차례 지불하는 이중 지불 문제입니다.
전자서명을 활용하면 이 문제를 어느 정도 해결하는 것이 가능하지만, 문제를 완전히 해결하기 위해서는 신뢰받는 제3자(은행 등 금융기관)가 필요합니다.
비트코인의 개발자 사토시 나카모토는 다음과 같이 온라인 세상에서 제3자 없이 거래가 가능한 전자화폐를 만들고자 했습니다. 그리고 개발된 것이 바로 비트코인입니다.
비트코인은 이중 지불 문제를 현재 우리가 블록체인이라고 부르는 기술로 해결했습니다. 지금부터 이어지는 글들을 통해 블록체인이 어떻게 이중 지불 문제를 해결했는지 알아보겠습니다.
'비트코인 > 비트코인 기본 구조' 카테고리의 다른 글
[비트코인 기본 구조] 6. 머클 트리와 SPV(Merkle Tree & SPV) (0) | 2022.06.29 |
---|---|
[비트코인 기본 구조] 5. 채굴(Mining) (0) | 2022.06.29 |
[비트코인 기본 구조] 4. 분산원장기술(Distributed Ledger Technology) (0) | 2022.06.28 |
[비트코인 기본 구조] 3. 작업증명(Proof-of-Work) (0) | 2022.06.27 |
[비트코인 기본 구조] 2. 타임스탬프(Timestamp) (0) | 2022.06.27 |