TigerCow.Door


이전글

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

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

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



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

지난 포스팅에서는 블록체인의 과제에 대해서 알아보았습니다. 이번에는 소유권의 본질에 대해 알아보도록 하겠습니다. 즉, 내가 가진 것을 내 것이라고 어떻게 증명하는지 함께 생각해보도록 합니다.



1. 소유권?


하나의 상황을 함께 생각해보겠습니다. 회사를 가기 전에 오전에 간단히 먹기 위한 쿠키를 하나 가지고 집을 나와 출근을 하기 위해 가는 길에서 목이 말라 편의점에 들려 바나나우유를 하나 구입하려 합니다. 헌데 편의점 직원이 가방 안에 있는 쿠키를 빤히 쳐다보고 있습니다. 하필이면 편의점에 있는 쿠키와 같은 쿠키입니다. 이런 상황이라면 불행히도, 직원은 내가 쿠키를 고르고 계산하지 않거나, 훔친 것으로 생각할지도 모릅니다. 더군다나 현재 편의점에는 다른 인원도 없고, CCTV도 없습니다.

이런 상황에서 그 쿠키가 나의 것이라는 것을 어떻게 증명할 수 있을까요?


너무나 당연한 것일지 모르지만, 내가 가지고 있는 것을 내 것이라고 증명하는 일. 그것을 어떻게 해야할 지 생각해본 적이 있나요?


과연 편의점에서 내가 가지고 있는 쿠키가 나의 것이라는 것을, 내가 훔치지 않았다는 것을 어떻게 증명해야 할까요?


물론 이러한 상황에서 법정을 가게 된다 하더라도, 내가 쿠키를 훔쳤다는 것을 증명할 사람도 없으므로 절도 혐의는 풀리겠지만 그렇다고 해서 소유권이 증명된 것은 아닙니다.


만약에, 내가 이전에 쿠키를 구입한 가게의 직원이 증명해준다면 어떨까요? 분명히 소유권을 증명하는데 도움이 될 것 입니다.

그러나, 법정에서 목격자에게 까다로운 질문 즉, 당신이 판매한 쿠키가 맞는지, 그 쿠키가 구체적으로 어떤 것인지, 그 쿠키를 산 것이 내가 맞는지 확신할 수 있는지, 그리고 그 모든것을 어떻게 세부적으로 기억하는지, 혹시 내가 목격자를 매수한 것은 아닌지 등을 이야기한다면 한 명의 독립적인 목격자보다, 독립적인 다수의 목격자를 확보하는 것이야 말로 소유권을 증명하는 좋은 방법이 될 것입니다.


즉, 동일한 사실을 증언하는 독립적인 목격자가 많을수록 그 사실은 진실일 가능성이 더 높아집니다. 그리고 그것이 블록체인의 핵심 개념 중 하나입니다.



2. 소유권 입증의 3요소


위의 상황을 개념화해본다면, 소유권을 입증하는데 필요한 세가지는 다음과 같습니다.


- 소유자가 누구인가

- 소유 물건은 무엇인가

- 소유자와 물건의 매핑


결국 목격자의 증언은 이 모든 것을 포괄하고 있습니다. 과거에는 이러한 목격자의 증언이 유일한 방법이었지만 최근에는 다양한 문서와 매체로 증언이 대체되고 있습니다. 



위의 사진은 소유권을 관리하는 소프트웨어를 디자인할 때 고려하는 여러 가지 개념 간의 관계를 보여주고 있습니다.

특히, 소유권을 증명하는데 있어서는 단순히 자산과 소유자의 매핑 뿐만 아니라 식별도 해야하고, 소유권을 사용하는데 있어서는 식별 뿐 아니라, 인증과 승인의 과정도 필요합니다.


이러한 식별과 인증, 승인은 보안의 개념으로 사용되는데 이에 대해서 조금 더 자세히 이해해야 합니다.


1. 식별(Identification)

식별이란 이름 또는 다른 식별자를 사용해 '누구'라고 주장하는 것이다. 하지만 식별은 누구라고 주장된 사람과 주장한 사람이 일치하는지는 증명하지 못합니다. 즉, 식별은 단순히 '누구'라고 주장하는 것을 의미합니다.


2. 인증(Authentication)

인증의 목적은 어떤 사람이 다른 누군가를 사칭하는 것을 방지하기 위함입니다. 인증이란 당신과 당신이라고 주장한 누군가가 서로 일치하는지 증명하는 것입니다.

이때 중요한 건 주장하는 바를 증명해주는 것은 그 사람만의 고유한 무엇이어야 한다는 점입니다.


3. 승인(Authorization)

승인은 식별된 사람의 성질과 특성에 기반해 특정 자원이나 서비스에의 접근을 허가해 주는 것을 의미합니다. 승인은 성공적인 인증과 함께 인증된 특정인이 가진 특성과 권리에 대한 평가를 토대로 얻는 최종 결과입니다.



3. 원장은 소유권을 증명하기도, 이전하기도 한다.


원장은 단순히 하나의 기능을 하는 것이 아니라, 두 가지 상반된 역할을 수행합니다. 하나는 원장에서 읽은 과거 데이터를 이용하여 소유권을 증명해주는 역할이고, 다른 하나는 소유권의 이전이 발생한 경우 원장에 새로운 데이터를 생성하여 이 사실을 문서화해 두는 역할입니다.


만약 원장이 누구에게나 공개되어 있다면 소유권 증명은 훨씬 쉬워집니다. 그러나 소유권 이전은 법적등의 권리를 가진 특정인에게만 배타적으로 허가되어야 합니다. 따라서 소유권 이전의 기초에는 개인정보 보호가 필요합니다.

원장에 쓴다는 것은 소유권이 변경되었다는 의미이므로 상당히 신뢰할 수 있는 개체에게만 쓸 수 있는 권한이 주어져야 합니다.

그리고 이러한 원장은 블록체인에서도 찾아볼 수 있습니다. 블록체인은 누구나 읽을 수 있게 개방된 원장과 유사한 데이터 구조를 가지는 거대한 분산 P2P 시스템입니다.



4. 소유권 관리자, 블록체인


만약 위에서 이야기한 것과 같은 원장이 손상되거나 파괴되면 어떻게 될까요? 또는 원장을 갱신하는 담장자가 실수를 하거나 고의로 위조하면?

이러한 경우 원장은 더 이상 진실을 반영하지 않게 됩니다. 원장의 내용이 진실이라고 믿고있는 이들에게 이것은 재난과도 같은 일 입니다.


원장 하나에만 의존해 소유권을 판정하는 문제는 법정에서 여러 명의 목격자에게 증언을 듣는 것과 비슷한 방식으로 해결할 수 있습니다. 

즉, 조작될 위험이 있는 원장을 하나만 유지하는 대신 원장의 순수 분산 P2P 시스템을 이용하여 다수의 노드가 동의하는 진실을 통해서 소유권을 확인하면 되는 것이죠.


그래서 결국, 소유권 관리를 위해 사용된 개별 원장은 소유권 관련 데이터를 저장하기 위해 사용된 블록체인-데이터-구조 하나와 같습니다. 즉, 개별 원장들은 P2P 시스템의 개별 컴퓨터(노드)에 저장됩니다.

이에 따라서, 블록체인-알고리즘은 개별 노드들이 최종 판결의 기초가 되는 하나의 일관된 소유권 상태에 집단적으로 도달하게 해줍니다. 

그리고, 그 과정 중 식별, 인증, 승인, 데이터 보안을 믿을 수 있는 수단으로 만들기 위해서 암호화 기법이 필요합니다.



이렇게 이번에는 소유권에 대해 그 본질을 알아보는 시간을 가졌습니다.

다음 포스팅에서는 분산 P2P 시스템에서 무결성을 침해와 가장 관련된 문제 중 하나인 이중사용 문제에 대해서 알아보겠습니다.

블로그 이미지

Tigercow.Door

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