본문 바로가기
Investment/Blockchain, Bitcoin

알기쉬운 블록체인 5강 : 블록체인과 소유권

by YOU_IN 2021. 7. 5.

안녕하세요 . :D

 

이번 강의에서는 P2P 시스템에서의 이중사용 문제와

소유권 주장에 관한 내용을 정리해 보았습니다.

 

그럼 오늘도 블록체인 공부에

도움이 되셨으면 좋겠습니다!

 

 


제 5강 블록체인과 소유권

출처 :  https://www.bernardmarr.com/default.asp?contentID=1389

 


 

5-1. P2P 시스템과 블록체인

◈ 이중사용의 문제

- 지폐가 위조되는 경우 경제에 막대한 피해를 입힌다. 따라서 지폐 위조에 대한 안전장치로 지폐마다 고유의 일련번호를 만들거나 워터 마크, 형광섬유 등의 기술들이 사용된다.

- 화폐나 물품이 디지털화되어 원장의 분산 P2P 시스템에 관리된다면?

i) 시스템의 무결성 침해 ii) 이중사용의 가능성

• 부동산 소유권을 관리하는 P2P 시스템

- 개별 컴퓨터가 소유권 정보에 대한 자신만의 원장 복사본 관리

- 각각의 노드가 자신의 원장을 복사하여 관리하므로 기록된 최신 버전으로 갱신되어야 한다.

- 하지만 소유권 변동의 경우, 피어 간의 정보 전달을 통해 개별 원장을 모두 갱신하는데 시간이 소요된다. 이 경우 시스템의 마지막 피어까지 원장을 갱신하여 최신 복사본을 가질 때까지 시스템 내의 정보는 일관성을 상실한다. 이러한 시간 동안 원장 정보를 획득한 누군가가 이를 악용할 가능성이 존재한다.

• Ex) 이중사용의 예

- A가 B에게 집을 판매한다. 즉, A로부터 B로 집의 소유권이 넘어간다.

- 소유권 이전은 P2P 시스템의 어느 원장에 기록되고, 이 원장을 기록하는 피어는 그 즉시 다른 피어에게 소유권 이전 사실을 알린다. 전달받은 각 피어는 또 다른 피어에게 그 사실을 전달한다. 집을 팔았다는 정보가 점차 확산되는 시점에서 A가 C에게 소유권이 이전되도록 기록하도록 요청한다. 이 사실을 전달받은 피어는 B로의 소유건 이전 사실을 모르는 피어일 경우 요청을 받아들인다. 동일한 하나의 집을 A가 B, C 모두에게 파는 것으로 기록된다. (두 번 판매할 수 있음)

• 이중사용 문제의 세 가지 유형

1) 디지털 재화를 복사해 발생하는 문제

: 컴퓨터 데이터는 제약없이 쉽게 복사할 수 있다. 디지털 화폐를 복사하여 동일한 돈을 반복해서 지불에 사용 가능하다. 이는 마치 복사기를 이용하여 실물화폐를 복사하는 것과 유사하다. 결과적으로 정밀하게 만들어진 복사기를 통해 위조지폐를 만들 수 있는 기술이 있다면 이중사용이 가능하게 된다.

2) 원장의 분산 P2P 시스템에서 발생하는 문제

: P2P 시스템의 모든 피어가 정보를 전달받기까지 발생하는 시간차로 인해 일부 피어가 상이한 소유권을 가지는 상황이다. 먼저 최신 정보를 획득한 피어가 소유권을 한 번 이상 이전할 가능성이 발생하고 결국 이중사용 문제를 초래한다. 시스템의 네트워크 환경이나 시스템 자원의 특징으로 인해 불균등, 불규칙한 정보의 차이로 인해 발생하는 문제다.

3) 순수 분산 P2P 시스템의 무결성이 침해된 사례

: P2P 시스템의 데이터 일관성은 시스템 무결성의 한 측면으로 볼 수 있다. 따라서 이중사용 문제는 시스템의 무결성이 침해된 특정 사례로 볼 수 있다.

 

 

◈ 이중사용 문제 해결 방법

Q1. 디지털 재화 복사로 인한 이중지불 문제

소유권의 본질과 연관됨.

A1. 디지털 재화를 나타내는 데이터와 소유자를 매핑하는 수단을 수립한다.

Q2. 원장의 분산 P2P 시스템에서 발생한 이중사용 문제

원장 관리라는 응용 분야가 특정됨. 원장의 분산 P2P 시스템이 블록체인 구조.

A2. 블록체인-기술묶음 이용 (브로드캐스팅, 트랜잭션 검증) : 정보를 피어들에게 툭 뿌려주는 기법 등 트랜잭션을 검증할 수 있는 기술 등을 이용한다.

Q3. 분산 P2P 시스템의 무결성이 침해된 이중사용 문제

응용 분야가 특정되어있지 않음. 반드시 블록체인에 대한 특정화된 문제라고 말할 수 없고 보다 추상화된 형태로 시스템의 구체적인 용도와는 관계없이 분산 P2P의 무결성을 확보하고 유지할 수 있다면 해결할 수 있다. 즉, 분야에 따라 무결성의 내용과 의미가 결정된다. (파일 공유 Vs. 디지털화폐)

A3. 분산 P2P 시스템의 응용분야에 따라 블록체인이 아닌 적합한 데이터 구조나 알고리즘을 통해 무결성을 확보하고 유지.

• 이중사용이란?

- 원장의 순사 분산 P2P 시스템에서 발생할 수 있는 취약성

- 원장의 분산 P2P 시스템의 무결성을 침해하는 중요한 예시

=> 이를 해결하기 위한 도구, 블록체인-기술묶음


 

5-2. 블록체인에서의 소유권

◈ 소유권을 관리하는 블록체인 개발하기

** 목표 : 블록체인을 구성하는 과정 이해하기

• 블록체인을 처음 만들 때의 고민

- 완전히 개방된 환경에서 작동하는 원장의 순수 분산 P2P 시스템에서 소유권을 관리하는 소프트웨어를 디자인하려면?

• 블록체인을 개발하기 위한 시스템의 주요 사항

1) 시스템은 순수 분산 P2P 시스템이고

2) 각 사용자가 기여한 계산 자원으로 구성

3) 인터넷을 사용해 개별 노드의 네트워크를 연결

4) 노드의 개수와 안전성, 신뢰성을 없음

=> 이러한 환경에서 디지털 재화의 소유권 관리가 목표

ex) 가상 보너스 포인트 혹은 디지털 화폐 등

◈ 블록체인 개발을 위한 일곱 가지 과제

1) 소유권 기술(Description) – Not Technology

- 소유권을 관리하는 소프트웨어 시스템을 디자인하기 위해서 소유권을 어떻게 기술할 것인지 먼저 결정해야 한다.

- 트랜잭션은 소유권 이전을 설명하는 좋은 방법이다. 트랜잭션의 전체 이력을 통해 현 소유자를 확인할 수 있다.

2) 소유권 보호

- 타인이 다른 사람의 자산에 함부로 접근하기 못하도록 해줄 장치가 필요하다

- 암호화 기술을 이용하여 개별적 트랜잭션을 보호한다.

ex) 집이나 자동차에 자물쇠를 이용해서 보호하는 것.

* 소유권 보호의 세 가지 요소

i) 소유주 식별 ii) 인증 iii) 접근 허가

=> 해시함수를 이용해서 구현한다. (암호학적 해시함수는 일방향적 특징이 있는 함수)

3) 트랜잭션 데이터 저장

- 트랜잭션 이력은 소유권을 명확히 하는 핵심요소이므로 안전한 방법으로 저장해야 한다. 이를 위해 블록체인-데이터구조를 디지털 원장으로 사용한다.

 

 

 

4) 신뢰할 수 없는 환경에 배분할 원장 준비

- 신뢰할 수 없는 환경에서 동작하는 원장의 분산 P2P 시스템을 디자인한다.

- 원장의 복사본들이 노드들 사이 분산 존재하므로 중앙 통제 노드는 존재할 수 없다.

- 신뢰할 수 없는 노드들이 원장에 대한 제어를 맡겨야 한다. 따라서, 원장 위조에 대한 방지책 필요하다. -> 악의적인 목적을 가진 노드들을 방지할 수 있는 방지책이 있어야 한다.

- 트랜잭션을 바꾸지 못하게 만들면 안전하나 사용 불가하다. -> 불법, 위조 조작 방법에 대해서는 안전성을 제공할 수 있으나 새로운 트랜잭션을 추가할 수 없기 때문에 소유권이 변경되는 경우 새롭게 원장에 넣을 수 없는 문제가 있어 실질적인 환경에서는 쓸 수 없다.

- 블록체인-데이터구조를 변경하지 못하여 동시에 새로운 트랜잭션을 추가할 수 있도록 승인한다.

=> 이를 위해 추가적으로 블록체인에서의 전용 블록체인-데이터구조가 필요

5) 원장 배분

- 원장을 추가전용으로 만들고 복사본을 만들면 원장의 분산 P2P 시스템 구성 가능하다.

- 단순하게 추가적으로 전용 원장의 복사본만 제공한다고 해서 목표가 달성되지는 않는다. 소유권을 관리하는 분산 시스템에서 노드끼리의 상호관계가 필요하기 때문이다.

ex) 어떻게 상호작용하는지, 어떤 정보를 주고 받는지 등

6) 원장에 새 트랜잭션 추가

- 분산 P2P 시스템에서 추가 전용 블록체인-데이터구조에 새로운 트랜잭션을 추가할 시 유효하고 승인된 트랜잭션만 추가될 수 있도록 보장한다.

- P2P 시스템의 구성원 모두가 새로운 데이터를 추가할 수 있도록 허용함과 동시에, 각 구성원이 각 피어를 감독하게 하면 해결 가능하다. 즉, 자기만 올바르게 행동하는 것이 아니라 주위에 있는 피어들이 어떻게 행동하는지 감독, 감시하게 만든다.

- 모든 피어들에게 감독에 대한 이슈를 떠맡기면 각각의 피어들은 굳이 할 이유가 없다. 자기에게 특별한 이득이 없기 때문이다. 따라서 블록체인에서는 역할을 충실히 수행한 피어에게 인센티브 제공한다.

7) 어느 원장이 진실인지 판단

- P2P 시스템에서 각 구성원들이 개별 원장에 새로운 트랜잭션을 추가하는 경우 각 피어들이 서로 다른 트랜잭션의 데이터를 받을 가능성이 존재한다.

- 이 경우 각자 유지하던 트랜잭션 이력이 달라져 P2P 시스템 내에 이력이 각기 다른 여러 버전의 트랜잭션이 존재하게 된다.

- 이는 무결성에 대한 중대한 위협 ▶ 진실을 담고 있는 트랜잭션을 가려내는 것이 매우 중요하다.

- 순수 분산 P2P 시스템에서는 중앙 통제 장치가 없음 -> 모든 노드들이 독립적인 다수 의견을 따라 개별적으로 결정하여 문제를 해결해야 함


 

5-3. 블록체인 트랜잭션

◈ 소유권 기록과 기술 방식

• 소유권 관리 = 바통을 이용한 이어달리기

경주의 주자는 바통을 다음 주자에게 전달.

1) 특정 팀의 어느 멤버가 바통을 쥐고 있는가?

직전에 누구에게 바통이 건네졌는가 확인

2) 특정 시간에 누가 바통을 쥐고 있는가?

바통을 건넨 시각과 각 선수의 이름을 기록

=> 블록체인의 소유권 관리는 이어달리기 게임의 바통을 취급하는 방법과 유사

• 소유권 기록의 목표

- 명확하게 소유권을 기록함

- 소유권을 투명하고 모든 사람이 이해 가능하도록 기록함

=> 이를 위해서는 누구나 자신의 소유권에 대해 명확한 판단을 내릴 수 있어야 한다.

• 소유권 기록을 위해 해결해야 할 과제

1) 소유권에 대한 주장을 기록하는 것

2) 소유권에 대한 증거를 제공하는 것

3) 소유권 자체를 증명할 수 있는 기록 방법을 찾아내는 것

• 과제 해결을 위한 아이디어

- 소유권의 현 상태를 재산 목록 데이터 형태로 기록

*재산 목록 데이터 : 모든 소유자의 전 재산 리스트

- 소유권이 이전된 이력까지 원장에 모두 기록

i) 누가 누구에게 어떤 아이템의 소유권을 언제 이전했는지 기록

ii) 소유권을 어떻게 획득했는지 보여주는 증거로 이용 가능

-> 이어달리기에서 바통을 건넨 이력을 기록하는 것과 유사

• 소유권의 기술 방식

1) 소유권 목록

: 소유권의 현 상태를 설명함. 은행 계좌의 현 잔고를 보여주는 잔고증명서와 비슷하다. 단순히 소유권을 주장하는데 활용된다.

2) 트랜잭션 데이터

: 소유권의 이전 이력을 기술한다. 출금, 입금, 자금이체 내역을 모두 표시해주는 거래내역조회서와 비슷하다. 소유권을 설명하고 증명하는데 활용된다.

◈ 블록체인 작동 원리

• 블록체인으로 소유권을 기록하기 위해 필요한 두 가지 기능

소유권 이전의 기술(Description), 트랜잭션 이력의 유지(Maintenance)

- 트랜잭션 데이터는 소유권을 이전하려는 계정에 대한 모든 정보를 가지고 있다.

- 트랜잭션의 전체 이력만 존재하면 각 계정에 대한 소유권 정보를 재구성할 수 있다.

*소유권 정보 : 소유권을 이전 받은 계정, 이전된 아이템, 이전된 총액 등

1) 소유권 이전의 기술(Description)

- 트랜잭션은 현 소유자의 소유권을 다른 사람에게 이전하는 행위를 의미한다.

- 소유권 이전을 위해 필요한 모든 정보를 데이터에 기록함으로써 이루어진다.

ex) 은행의 계좌이체 서식 (보내는 사람, 받는 사람, 얼마의 돈 등이 담겨있다)

*블록체인에서 트랜잭션을 기술하기 위해 필요한 정보

i) 다른 계정으로 소유권을 이전하려는 계정의 식별자

ii) 소유권을 이전 받으려는 계정의 식별자

iii) 이전하려는 재화의 총액

iv) 이전이 완료되는 시각

v) 이전하기 위해 시스템에 지불해야 하는 수수료

vi) 이전에 동의한다는 원소유자의 증명

=> 블록체인은 중앙통제가 없는 분산시스템이기 때문에 통일된 수수료는 없다!

 

 

 

2) 트랜잭션 이력의 유지(Maintenance)

- 트랜잭션을 수행한다는 것은?

i) 트랜잭션 데이터에 기록된 대로 소유권 이전이 일어난다는 의미

ii) 원장에 트랜잭션 데이터를 추가한다는 의미

-> 새로 추가된 트랜잭션은 트랜잭션의 한 부분으로써 이후에 소유권을 명확화 할 때 사용된다. 즉, 원장에 한번 새롭게 추가된 트랜잭션은 이후에 발생될 수 있는 소유권과 관련된 내용을 명확히 하는데 사용될 수 있고 다수의 트랜잭션으로 인한 최종결과에 영향을 미친다.

- 블록체인은 모든 트랜잭션을 순서대로 블록체인-데이터구조에 저장하여 전체 이력을 유지한다.

-> 먼저 저장된 트랜잭션이 먼저 저장된 것으로 간주된다. 즉, 블록체인에 기록된 순서가 실제 발생한 트랜잭션의 순서는 아니다. 이력에 없는 트랜잭션은 일어난 적이 없는 것으로 간주한다. 따라서, 해당 트랜잭션을 실제 발생시키고 그 이력을 통해 현재 소유권을 식별하는데 영향을 미친다.

◈ 트랜잭션 순서와 이력의 무결성

• 트랜잭션 데이터를 합치는 이유는?

소유권 이전 내역을 재구성하고 현 소유권자를 찾음으로써 소유권을 명확히 하려는 것이 목적

- 데이터를 합칠 때 트랜잭션이 발생했던 순서대로 동일하게 재현하는 것이 중요

- 트랜잭션의 순서가 달라지면 결과도 달라지기 때문이다.

ex) 은행계좌에 잔고가 있을 경우 지불 Vs. 은행계좌에 잔고가 없을 경우 지불

• 트랜잭션 데이터 이력 – 무결성의 중요성

- 트랜잭션 데이터의 이력은 소유권을 구성하는 가장 중요한 기준이며 소유권을 관리하는 블록체인의 핵심이다.

• 전체 블록체인 시스템의 무결성을 위한 이력 데이터 요구사항

1) 안전성 2) 완전성 3) 정확성 4) 일관성

=> 오직 유효한 트랜잭션 데이터만 블록체인-데이터구조에 추가되도록 보장하는 보안 수단을 제공해야 한다. 이런 수단이 없다면 누구나 손쉽게 블록체인에 어떠한 정보를 올릴 수 있고 이 경우 각각의 노드들은 일관되지 않을 수 있고 검증되지 않은 악의적인 노드들이 개인의 이익을 위해 악용할 수 있다.

• 트랜잭션 데이터 유효성의 세 가지 측면

1) 형식적 정확성

- 트랜잭션 데이터가 필요한 모든 정보를 정확한 형식으로 기술하는 것

2) 의미상 정확성

- 트랜잭션 데이터의 의미, 의도한 결과와 연관이 된다.

- 이를 검증하기 위해서 해당 사업영역에 대한 이해가 필요하다.

ex) 계정에 있는 잔고 이상의 금액이 이전되지 않도록 보장, 이중사용 방지, 한 번의 트랜잭션으로 가능한 최대 금액 제한, 사용자 한 명 당 가능한 트랜잭션 회수 제한, 일정 기간 내 사용 가능한 총 금액 제한, 아이템의 소유권 이전을 위한 최소 보유기간 등

- 의미라고 하는 것은 해당 사업영역에 대한 defense가 있기 때문에 어떤 영역에 사용됨에 따라 어떤 의미가 있는지는 달라질 수 있다.

3) 승인

- 소유권을 이전하는 본인만 트랜잭션을 실행해 달라고 블록체인에 요청할 수 있어야 한다.

- 블록체인의 모든 트랜잭션 데이터는 계좌 소유자가 소유권 이전에 동의함을 증명할 수 있는 정보를 가지고 있어야 한다.

 


5강 강의 노트 끝-!

감사합니다 :)

*사진의 모든 출처 : http://www.kmooc.kr/

댓글