이전글
안녕하세요. 문범우입니다.
지난번 포스팅을 통해 분산 P2P 시스템에 대해서 알아보고, 실제로 많은 사람들이 사용하는 토렌트 서비스를 통해서 이해해 보았습니다.
그럼 이번 포스팅에서는 이러한 분산 P2P 시스템을 왜 아직 많은 곳에서 사용하지 않는지, 그리고 그것을 블록체인이 어떻게 해결해 줄 수 있는지에 대해서 알아보며 블록체인에 대해 정의를 내려보도록 하겠습니다.
1. 순수 분산 P2P 시스템의 지속 가능성
사실 우리는 두번째 포스팅에서 순수 분산 P2P 시스템이 산업 전체를 뒤바꿀 수 있을 만큼 강력한 잠재력을 지니고 있다고 알아보았습니다. 그런데 왜 아직 많은 곳에서 사용되지 않는 것 일까요?
즉, 순수 분산 P2P 시스템이 산업 전반에 사용되기 위하여 해결해야 할 주요과제는 무엇일까요?
P2P 시스템에 대한 지속 가능성은 우리가 첫번째 포스팅에서 알아보았던 개념, 신뢰와 무결성에 달려 있습니다.
소프트웨어 시스템의 관점에서 무결성은 시스템의 안전성, 완결성, 일관성, 정확성 및 변형과 오류 없음을 의미하는 비기능적 측면이고, 신뢰란 별도의 증거나 증명 또는 조사 과정 없이도 누군가 또는 무엇인가의 신뢰성, 진실성, 능력을 믿어주는 확고한 신념을 의미합니다.
즉, 사용자들은 P2P 시스템에 대해 일단 시스템에 합류를 하고 시스템에 기여합니다. 이후 지속적인 상호작용에 대한 결과가 기대했던 바와 같으면 더 큰 신뢰가 쌓여가면서 지속적으로 시스템의 구성원으로 남게 됩니다. 이렇게 사용자들의 기대를 충족시키며 시스템에 대한 신뢰를 강화시키기 위해서는 무엇보다 시스템의 무결성이 필요합니다.
다시 말해, 시스템에 대한 무결성이 확보되지 않는다면 시스템은 사람들에게 신뢰를 잃어갈 것이며, 결국 사용자가 떠나는 문제가 발생하게 됩니다.
그렇다면, 우리가 순수 분산 P2P 시스템의 존립과 직결된 신뢰, 무결성에 대한 중요성을 이해했다면 다음과 같은 질문을 생각해볼 수 있습니다.
"순수 분산 P2P 시스템의 무결성을 확보하고 유지할 수 있는 방법은 무엇일까?"
순수 분산 P2P 시스템의 무결성을 확보하고 유지하는 일은 여러가지 요인에 달려 있지만 가장 중요한 두가지는 다음과 같습니다.
- 전체 노드 또는 피어의 개수를 아는가?
- 각 피어의 신뢰성에 대해 어느 정도 알고 있는가?
분산 P2P 시스템 내의 전체 노드 개수와 각 노드의 신뢰성을 알고 있다면 무결성을 확보할 가능성은 더 커집니다. 최악의 환경은 시스템에 참여한 노드의 개수도 모르고 각 노드의 신뢰성도 전혀 모르는 경우입니다. 모두에게 개방된 순수 P2P 시스템을 인터넷 상에서 운영하는 경우가 바로 그 최악에 해당 하는 것이죠.
2. P2P 시스템의 무결성을 위협하는 요소
그렇다면, P2P 시스템에서 우리가 중요하다고 이야기하는 무결성을 위협하는 요소는 또 무엇이 있을까요?
1. 기술적 결함
P2P 시스템은 인터넷으로 통신하는 사용자들의 개별 컴퓨터로 구성됩니다. 그런데 컴퓨터를 비롯한 모든 전자기기는 언제든지 고장이나 오류가 발생될 수 있습니다. 즉, 모든 분산 시스템에서는 개별 컴퓨터를 비롯하여 네트워크 장비 등이 고장이나 오류가 발생했을 때에 대한 대처가 가능해야 합니다.
2. 악의적 피어
P2P 시스템에서 무결성을 위협하는 두번째 요소는 악의적인 의도를 가진 사용자입니다. 이 요소는 첫번째와 같은 기술적 원인이 아니라, 시스템을 이용해 자신 개인의 이득을 취하려는 악의가 원인입니다.
부정직하고 악의적인 피어는 P2P 시스템의 근간인 신뢰성을 공격하려 하기 때문에 가장 심각한 위협 요소 입니다. 이러한 위협으로 인해 P2P 시스템 내의 사용자들이 다른 피어를 믿지 못하게 된다면 시스템을 떠나게 되고 더 이상 계산자원에 기여하지 않게 됩니다. 결국 전체 시스템 구성원이 감소되고 이로 인해 시스템의 효용성이 저하되며 또 다른 이탈자가 반복되는 악순환이 형성될 수 있습니다.
3. 블록체인, 무결성을 확보하라.
사실 위에서 이야기 한 것과 달리 최고의 상황, 최적의 상황에서 신뢰와 무결성을 확보하여 시스템을 유지하는 것은 어렵지 않습니다. 하지만 실제로 우리가 해야되는 것은 위에서 나온 것들을 바탕으로 한 최악의 조건을 가진 분산 시스템에서 신뢰와 무결성을 확보하는 점 입니다.
그리고 바로 이것이 블록체인이 해결해야 하는 과제 입니다.
즉, 블록체인이 해결해야 되는 문제는 '개수도 알려져 있지 않고 신뢰성과 안정성도 알 수 없는' 피어들로 구성된 순수 분산 P2P 시스템의 무결성을 확보하고 유지하는 것 입니다.
4. 그래서 '블록체인' 이란?
그래서 도대체 '블록체인'이 무엇일까요?
사실 블록체인은 다양한 의미로 사용될 수 있습니다.
먼저 4가지 다른 의미에 대해서 간략하게 알아보도록 하겠습니다.
1. 데이터 구조의 명칭
컴퓨터 과학이나 소프트웨어 공학에서 말하는 데이터 구조(data structure)란, 구체적인 정보나 내용과 상관없이 데이터를 정리하는 방식을 이야기 합니다.
데이터 구조는 간단하게, 건물 설계도의 평면도 쯤으로 생각해볼 수 있습니다. 평면도는 공간의 구체적인 용도와 상관없이 벽과 바닥 그리고 계단을 사용하여 공간을 분리되기 때문 입니다.
블록체인이 데이터 구저의 명칭으로 사용될 때에는 블록이라 불리는 단위에 모인 모든 데이터를 지칭합니다. 그리고 이 블록들은 책을 구성하는 페이지들과 유사하게 마치 체인처럼 서로 연결되어 있어서 블록체인이라는 이름이 붙었습니다.
2. 알고리즘의 명칭
소프트웨어 공학에서 알고리즘(algorithm)이란 컴퓨터가 실행해야 할 일련의 명령어들을 의미합니다. 그리고 이 명령어들은 대개 데이터 구조를 포함합니다.
블록체인이 알고리즘의 명칭으로 사용될 때에는 순수 분산 P2P 시스템에서 여러 블록체인 데이터 구조 내의 정보 내용을 민주주의 투표 방식과 비슷한 방법을 써서 서로 협상하는 일련의 명렁어를 의미하는 것 입니다.
3. 기술묶음의 명칭
블록체인이 기술 묶음의 명칭으로 사용될 때에는 블록체인 데이터 구조(blockchain-data-structure), 블록체인 알고리즘(blockchain-algorithm), 암호화 및 보안 기술의 조합을 의미하게 됩니다.
이들의 조합은 응용분야와 상관없이 순수 분산 P2P 시스템의 무결성을 확보하는데 이용될 수 있습니다.
4. 일반 응용분야를 가지는 순수 분산 P2P 시스템을 포괄하는 용어
블록체인은 블록체인 기술묶음을 활용하는 거래장부들의 순수 분산 P2P 시스템을 지칭하는 포괄적인 용어로도 사용됩니다.
즉, 순수 분산 시스템을 구성하는 한 부분인 소프트웨어의 단위를 의미를 이야기하는 것이 아니라 순수 분산 시스템 전체를 의미합니다.
그리고 우리가 이어서 블록체인에 대한 이야기를 할 때, 위에서 알아본 4가지 의미 중 4번째인, 순수 분산 P2P 시스템 전체를 의미하는 용어로 블록체인이라는 단어를 사용합니다.
그럼, 아직 중요하게 알아볼 내용들이 많지만 임시적으로 블록체인에 대한 정의를 내려보면 다음과 같습니다.
블록체인이란 무결성을 확보하고 유지하기 위해 순서에 따라 연결된 블록들의 정보 내용을 암호화 기법과 보안기술을 이용해 협상하는 알고리즘으로 구성된 소프트웨어 요소를 활용하는 원장(거래장부)의 순수 분산 P2P 시스템을 의미한다.
5. 비트코인 기술이 블록체인의 전부는 아니다.
위에서 임시적으로 정의한 내용에서 비트코인(Bitcoin)이나 암호화폐(Cryptographic money)에 대한 어떠한 언급도 존재하지 않습니다.
사실 많은 기사나 읽을거리에서 블록체인의 목적이 디지털 화폐의 소유권을 관리하기 위한 것으로 기술하고 있는데, 이렇게 암호화폐의 소유권을 관리하는 것은 아주 중요하고 자연스러운 블록체인의 응용분야 중 하나일 뿐이며 그 자체가 블록체인의 전부는 절대 아닙니다.
블록체인은 다양한 분야에 폭넓게 응용될 수 있습니다. 그럼에도 블록체인에 따라 암호화폐, 디지털화폐 등에 대한 소유권 관리 측면이 부각되는 이유는 두가지가 있습니다.
첫번째, 이해하기도 설명하기도 가장 쉽기 때문입니다.
두번째는 경제에 가장 크게 영향을 끼치는 실 사례이기 때문입니다.
블록체인을 원장(거래장부)의 분산 P2P 시스템을 관리하는 기술묶음의 용도로 활용하게 된다면 디지털 재화의 소유권 관리나 암호화폐와 같은 특별한 분야에 사용할 수 있습니다. 그러나 우리가 알아볼 때에는 이렇게 특정 분야만 고려하지 않지만, 블록체인을 더 쉽게 이해하도록 특정 재화와 상관없이 소유권을 관리하고 명료화하는 일반적인 응용 예에 대해서만 다룰 것 입니다.
이렇게 순수 분산 P2P 시스템이 유지되기 위해 필요한 점, 그리고 그것을 위협하는 요소들에 대해서 알아보고 이어서 블록체인이라는 용어에 대해 알아보며 임시적인 정의를 내려보았습니다. 그리고 비트코인 기술이 블록체인에 대해 보다 쉽게 이해하기 쉬운 사례일 뿐임을 말씀드렸습니다.
이후 포스팅에서는 우리가 블록체인에 대해 본격적으로 이해하기 위해 먼저, 소유권이라는 본질에 대해서 알아보도록 하겠습니다.
'블록체인' 카테고리의 다른 글
#5_블록체인 무엇인가::이중 사용(Double Spending) (0) | 2019.02.27 |
---|---|
#4_블록체인 무엇인가::소유권의 본질 (0) | 2019.01.19 |
#2_블록체인 무엇인가::분산 P2P 시스템 (0) | 2019.01.12 |
#1_블록체인 무엇인가::소프트웨어 시스템 아키텍처 (0) | 2019.01.06 |