TigerCow.Door


이전글

#1_블록체인 무엇인가::소프트웨어 시스템 아키텍처

#2_블록체인 무엇인가::분산 P2P 시스템

#3_블록체인 무엇인가::블록체인의 과제

#4_블록체인 무엇인가::소유권의 본질



안녕하세요. 문범우입니다.

이번 포스팅에서는 분산 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 시스템의 응용분야에 따라 블록체인이 아닌 다른 기술이나 데이터 구조 혹은 다른 알고리즘이 무결성을 확보하고 유지하기에 더 적합할 수 있습니다.



이렇게 이중 사용 문제에 대해서 알아보았습니다.

다음 포스팅에서는 블록체인이 어떻게 무결성을 확보하고 유지하는지에 대해서 알아보도록 하겠습니다.




블로그 이미지

Tigercow.Door

Web Programming / Back-end / Database / AI / Algorithm / DeepLearning / etc


이전글

#1_블록체인 무엇인가::소프트웨어 시스템 아키텍처



안녕하세요. 문범우입니다.

지난 첫번째 글에서 '소프트웨어 시스템 아키텍처'에 대해서 알아보았습니다. 그 중에서도 블록체인이 도구로서 활용될 분산 시스템에 대해서 주로 알아보았습니다.

그리고 이번 포스팅에서는 분산 시스템 중에서도 특수한 형태로 나타난 '분산 P2P 시스템'에 대해서 알아보도록 하겠습니다.




1. 분산 P2P 시스템이란


피어 투 피어(peer - to - peer) 시스템은 분산 시스템의 특수한 형태입니다. P2P 시스템에서는 개별 컴퓨터(노드)로 구성되어 있으며 분산 시스템이기 때문에 중앙 노드의 조정 없이 네트워크의 모든 구성원이 서로에게 계산 자원을 제공합니다.

무엇보다 중요한 것은 네트워크 상에서 각 노드는 시스템 내에서 동등한 권리와 역할을 가집니다. 즉, 모든 노드가 자원의 공급자인 동시에 소비자가 됩니다.

쉽게 생각해보면 많은 사람들이 사용하고 있는 '토렌'를 생각해볼 수 있습니다.

토렌트또한 개방형 P2P 시스템으로써, 동일한 네트워크에 참여한 모든 노드가 소비자로서, 피어의 역할을 하게 되며 공급자로서 시드의 역할도 하게 됩니다.


추가로 보다 세부적인 내용에 대한 설명은 아래 블로그들을 참고하시면 좋을 것 같습니다. 아무래도 블록체인과 토렌트의 네트워크 방식이 동일하기 때문에 관련되어 설명하는 부분들이 많습니다. 만약 블록체인과 관련된 내용에 대해 이해하기 어렵다면 무시하시고, 토렌트에서 사용되는 P2P 네트워크에 대해서만 이런거구나 하는 느낌으로 이해하시면 좋을 것 같습니다.

토렌트를 알아보자

토렌트 개념잡기

토렌트와 블록체인


그 내용을 대략적으로 이해해본다면, P2P 네트워크 상에는 더 많은 사용자가 네트워크에 참여할수록 네트워크는 더 거대해지고 더 강력해집니다. 토렌트를 사용해보신분들도 있겠지만 많은 사람들이 다운받으려고 하는 최신 파일을 다운 받을때는 정말 빠른 속도로 다운받을 수 있죠.(물론 우리나라에서는 저작권등의 문제로 불법입니다!)

하지만 토렌트의 단점으로는 오래되거나 사람들에게 관심없는 파일의 경우에는 파일의 조각을 공급해주는 시더가 없기 때문에 다운받는 속도가 느립니다. 그리고 이것이 블록체인과 토렌트의 차이이기도 합니다. 추후에도 알아보겠지만 블록체인에서는 이러한 문제를 막기위해, 시더의 존재를 유지하기 위해 '채굴'이라는 개념이 존재합니다.



2. P2P 네트워크의 잠재력


사실 P2P 네트워크는 과거에도 존재했으며, 특정 산업에 대한 변화도 이끌어내었습니다. 대표적인 것은 바로 음악산업입니다.

요즘은 음악을 듣기 위해 CD를 사기보다 MP3 파일을 공유하는 스트리밍 서비스를 주로 이용합니다. 이런 변화는 사람들이 각자 가지고 있는 음악 파일을 서로 공유할 수 있는 소프트웨어의 등장으로 가능해졌습니다. 그리고 그것의 시작은 냅스터(Napster) 서비스 이었으며 냅스터의 공동 창업자 숀 패닝(Shawn Fanning)은 다음과 같은 말을 하였습니다.

"이 시스템의 어떤 점이 그렇게 흥미로운가 하면, 바로 동료들과 상호작용한다는 점이다. 길거리 사람들 그 누구와도 서로 정보를 주고받을 수 있다."


음악산업은 과거에 다음과 같이 작동하였습니다. 먼저 음악가와 스튜디오가 계약을 맺습니다. 계약이 성사된 후에, 스튜디오는 음악가의 노래를 녹음하고 CD와 테이프와 같은 다양한 매체에 담아서 이를 판매하였습니다. 즉, 스튜디오는 결국 음악가와 음악을 듣고자하는 소비자 사이에서 중개자 역할을 수행하였습니다.

이렇게 스튜디오가 중개자 역할을 할 수 있었던 이유는 음반 제작, 마케팅, 판매채널등에 대한 전문적인 지식을 보유하였기 때문입니다. 그러나 2000년 이후에 스튜디오 환경은 급격히 변화되었습니다.

음악의 디지털화, 저렴한 녹음시설 및 개인 PC의 보급, 인터넷의 등장은 사실상 음악 스튜디오가 사람들에게 필요없게 된 배경입니다. 이전에 스튜디오가 주로 하던 음반 제작, 마케팅, 판매채널에 대한 전문적인 지식의 장벽이 낮아짐에 따라 작곡가나 소비자 스스로가 해결할 수 있게 되었기 때문이죠.

즉, 냅스터는 중개자로서의 음악 스튜디오를 대체하는데 주된 역할을 수행한 것입니다.

냅스터의 등장으로 음악을 듣고자 하는 소비자들은 CD를 구입하지 않아도 최신 인기곡을 들을 수 있게 되었고, 다양한 사람들과 음악 파일을 공유할 수 있게 되었습니다. 스튜디오 산업에는 큰 타격을 입히게 되었지만 결국적으로 음악 소비자들은 이전에 경험하지 못한 폭넓은 음악 세계를 접하게 되었습니다.


이와 같이 P2P 네트워크는 거의 모든 산업을 뒤흔들 잠재력을 가지고 있습니다.

최소한 무형의 상품이나 디지털화 된 상품 또는 서비스를 중개하는 역할을 주업으로 하는 산업은 거의 모두 P2P로 대체될 가능성이 높은 것이죠. 그리고 우리 주변에 이런 종류의 산업중 가장 크게 다가오는 것은 금융업입니다.


은행계좌나 신용카드, 직불카드에 들어있는 것은 결국 무형의 비트와 바이트, 즉 디지털 정보입니다. 즉 이 세상의 대부분의 돈과 자산은 무형의 비트와 바이트 형태로 금융회사의 중앙 정보 기술 시스템에 저장되어 있습니다.

은행을 비롯한 금융계의 많은 회사들은 돈과 재산을 나타내는 비트와 바이트를 생산하고 소비하는 사람들 사이를 단순히 이어주는 중개자 역할을 주로 수행합니다. 우리가 돈을 빌리고, 빌려주는 등의 행위는 사실 중개자가 무형의 상품을 시스템 속에서 대상자에게 전달함으로 이루어집니다. 실질적으로 이용하는 우리는 느끼지 못하지만 간단한 거래하나에도 많은 중개자가 관여하게 됩니다.

'블록체인 무엇인가?'의 책에서 이야기하기로는 국가간의 은행 자금이체의 과정에서는 5개의 중개기관이 관여하게 되며 각 처리단계마다 일정 시간이 소요되며 해당 비용을 청구하게 됩니다. 하지만 P2P 거래에서는 동일한 행위가 훨씬 간단하며 시간과 비용도 거의 들지 않습니다.


즉, 중앙 통제 시스템과 비교하여 P2P 시스템이 가진 장점으로는, 중개자를 통해 간접적으로 상호작용하지 않고 거래 당사자끼리 직접 상호작용한다는 점이며 그 과정속에서 처리 시간과 비용이 현저하게 줄어든다는 점 입니다.



3. P2P 시스템과 블록체인의 연관성


그래서, 이렇게 좋은 P2P 시스템과 우리가 알고자하는 블록체인은 정말 무슨 연관이 있는 것 일까요?

다시한번 P2P 시스템에 대해 결론을 내려보면서 블록체인과의 연관성을 알아보겠습니다.


1. P2P 시스템의 정의

P2P 시스템은 여러 노드(개별 컴퓨터)로 구성된 분산 소프트웨어 시스템으로, 한 노드의 자원(계산 능력, 저장 공간, 정보 배분 등)을 다른 노드들이 직접적으로 사용할 수 있다는 특징을 가집니다. 따라서 모든 사용자의 컴퓨터는 자원의 공급자인 동시에 소비자가 됩니다.


2. P2P 시스템의 아키텍처

P2P 시스템은 구조 자체가 분산 컴퓨터 시스템으로 되어 있습니다. 하지만 여전히 중앙 통제 요소를 가지는 P2P 시스템도 존재합니다. 중앙 통제 P2P 시스템은 중앙 노드를 이용하여 노드 간 상호작용을 중재하고, 피어 노드가 제공하는 서비스 목록들을 유지 관리하고 노드를 검색하며 식별합니다. 이러한 중앙 통제 P2P 시스템의 대표적인 예는 위에서 이야기한 냅스터입니다. 냅스터는 중앙 데이터베이스에 접속한 모든 노드와 각 노드가 보유한 노래 정보를 저장하고 있습니다.

반면 순수 분산 P2P 시스템에는 중앙에서 통제하거나 조정하는 어떠한 요소도 없습니다. 따라서 시스템의 모든 노드는 동일한 과제를 수행하며, 자원과 서비스의 생산자인 동시에 소비자 역할을 수행합니다.


3. P2P 시스템과 블록체인의 연관성

결론부터 이야기하면, 블록체인은 분산 시스템에서 무결성을 확보하고 유지하는 도구입니다. 즉 순수 분산 P2P 시스템은 무결성의 확보와 유지를 위해 블록체인을 도구로서 활용합니다.


즉, 사람들은 전체 산업을 통째로 뒤바꿀 수 있는 장점을 가진 순수 분산 P2P 시스템이 블록체인을 활용하여 무결성을 확보하고 유지할 수 있다는 점 때문에 블록체인에 대해 열광합니다. 그러나 엄밀히 이야기하면 사람들을 정말로 흥분시킨 요소는 '탈중개화'입니다. 즉, 블록체인은 단지 탈중개화를 위한 도구일 뿐입니다.


다시 한번 정리한다면, 사람들이 블록체인에 열광하는 이유는 탈중개화를 통해 전체 산업 생태계를 변화시킬 잠재력을 지닌 순수 분산 P2P시스템이 무결성의 확보와 유지를 위한 도구로 블록체인을 사용할 수 있기 때문입니다.



이렇게 해서 분산 P2P 시스템에 대해서 알아보았습니다.

다음 포스팅에서는 본격적으로 블록체인에 대해서 포커싱을 두며 '왜 우리에게 블록체인이 필요한가', 즉 블록체인이 해결해야 하는 문제점들과 그 문제점을 해결하는 것이 왜 중요한지등을 알아보며 이야기를 해보겠습니다.

추가적으로 궁금하거나 의문이 드는 점, 잘못된 내용들에 대한 피드백은 언제든지 댓글이나 메일, 카톡을 통해서 말씀해주시면 감사하겠습니다.



블로그 이미지

Tigercow.Door

Web Programming / Back-end / Database / AI / Algorithm / DeepLearning / etc