이전글
안녕하세요. 문범우입니다.
이번 포스팅에서는 분산 P2P 시스템의 무결성 침해와 관련된 가장 중요한 사례 중 하나인 이중사용(Double Spending)문제에 대해서 알아보겠습니다.
1. 이중사용(Double Spending)
이중사용은 쉽게 말해서 동일한 재화, 물건에 대해 두번 사용한다는 것 입니다.
보다 쉽게 이해하기 위해 부동산을 판매하는 상황으로 가정해보겠습니다.
A가 B에게 집을 팔았습니다.
이로 인해서 집에 대한 소유권은 A에서 B로 이전 되었음이 P2P 시스템의 어느 원장에 기록되었습니다. 그럼 우리가 이전에 학습한 바와 같이 원장을 관리하는 피어가 즉시 다른 피어에게 이러한 사실을 알립니다. 그리고 그 피어는 또 다른 피어에게 사실을 알립니다.
하지만, 이때 A가 아직 사실을 받지 못한 원장에 접근해서 집에 대한 소유권 이전을 A에서 C로 이전되었음이라고 기록했습니다. 마침 해당 원장을 관리하는 피어는 다른 사실에 대해 들은바가 없으므로 해당 기록을 받아들이게 됩니다.
즉, A가 B에게 집을 판 사실이 모든 피어에게 전달되기 전, 다른 피어에게 접근해 동일한 집을 판매하는 행위가 이중사용입니다.
2. 이중사용의 3가지 의미
이전에 알아본 블록체인도 다양한 의미를 가지고 있듯이 이중사용도 크게 3가지의 의미를 지니고 있습니다.
1. 디지털 재화를 복사해 발생하는 문제
실제로 컴퓨터의 데이터를 복사하는데는 별다른 제약이 존재하지 않습니다. 바로 이런 특성을 이용해서 동일한 디지털 재화를 반복해서 복사함으로써 지불하는데 사용할 수 있습니다.
이는 실물 화폐를 복사하는 범죄와 동일한 것 입니다.
2. 원장의 분산 P2P 시스템에서 발생하는 이중사용 문제
이는 위에서 알아본 예시에 대한 관점입니다. 모든 피어들이 정보를 전달받기까지 시간이 걸리는 문제로 인해 일부 피어가 서로 상이한 정보를 갖게 되는 것 입니다.
모든 피어가 동시에 최신정보를 얻지 못한다면, 최신 정보를 획득한 누군가에 의해서 정보가 악용될 가능성이 있습니다.
3. 순수 분산 P2P 시스템의 무결성이 침해된 이중사용 문제
이중사용 문제를 좀 더 추상화해서 크게 본다면, 분산 P2P 시스템 내의 데이터의 일관성을 유지하는 문제로 생각해볼 수 있습니다. 즉, 데이터의 일관성은 시스템 무결성의 한 측면이므로 이중 사용 문제는 결국 시스템의 무결성이 침해된 사례로 볼 수 있습니다.
3. 이중사용 문제를 해결하는 방법
1. 디지털 재화를 복사해 발생하는 문제 해결
사실상 디지털 재화나 화폐를 복사해 한 번 이상 사용하는 문제는 소유권의 본질과 관련이 있습니다. 즉, 특정 재화나 화폐의 소유권이 누구에게 있는지에 대한 관리가 필요한 것 입니다. 이렇게 특정 데이터와 그 소유자를 매핑하는 수단이 필요하는데 이러한 것은 올바르게 작동되는 원장으로써 해결될 수 있습니다.
2. 원장의 분산 P2P 시스템에서 발생한 이중사용 해결
사실상 이러한 문제에 대한 해결은 블록체인 구조로 가능합니다.
우리가 지난 포스팅에서 블록체인과 원장의 P2P 시스템 간의 관계를 알아보았던 것과 같이, 현재 다양한 포스팅에서 사용되고 있는 블록체인이란 용어 자체가 원장의 분산 P2P 시스템의 이중사용 문제를 없애주는 해결책인 셈 입니다.
3. 분산 P2P 시스템의 무결성이 침해된 이중사용 해결
무결성의 내용과 의미는 분산 P2P 시스템의 용도가 무엇인지에 따라서 결정됩니다. 즉, 간단한 파일 공유 시스템의 경우에는 디지털 화폐의 소유권을 비교하는 것과는 다른 측면의 무결성이 고려될 수 있습니다.
결국 분산 P2P 시스템의 응용분야에 따라 블록체인이 아닌 다른 기술이나 데이터 구조 혹은 다른 알고리즘이 무결성을 확보하고 유지하기에 더 적합할 수 있습니다.
이렇게 이중 사용 문제에 대해서 알아보았습니다.
다음 포스팅에서는 블록체인이 어떻게 무결성을 확보하고 유지하는지에 대해서 알아보도록 하겠습니다.
'블록체인' 카테고리의 다른 글
#4_블록체인 무엇인가::소유권의 본질 (0) | 2019.01.19 |
---|---|
#3_블록체인 무엇인가::블록체인의 과제 (0) | 2019.01.13 |
#2_블록체인 무엇인가::분산 P2P 시스템 (0) | 2019.01.12 |
#1_블록체인 무엇인가::소프트웨어 시스템 아키텍처 (0) | 2019.01.06 |