[블록체인] 4주차_블록체인의 본질
이 내용은 K-MOOC 알기쉬운블록체인 강의를 듣고 정리한 내용입니다.
컴퓨터들의 협업
분산 P2P 시스템의 신뢰성과 무결성
1. 분산 P2P 시스템에서 신뢰성과 무결성 보장이 어려운 이유
- 중앙 통제 시스템을 알지 못하는 사용자
- 중앙 통제 시스템에 따르지 않으려는 사용자
2. 분산 P2P 시스템의 두 가지 문제: 신뢰성과 이를 보장하는 무결성
- 신뢰성 (reliability)
- 별도의 증명 없이 믿어주는 확고한 신념
- 사전에 형성된 이후의 상호작용에 따라 강해지기도 하고 약해지기도 한다.
- 무결성 (integrity)
- 비기능적 요구
- 시스템의
완결성(completeness)
,일관성(consistency)
,정확성(accuracy)
,안전성(security)
,오류 없는(apsence of manipulation or error)
속성 - 시스템의 신뢰성에 영향 주는 요소 무결성
3. 분산 P2P 시스템에 참여하는 사용자
- 처음엔 시스템 신뢰 불가능 -> 사용(상호작용) 후 신뢰도가 오르면 시스템에 참여한다.
- 시스템을 신뢰하지 못하면 사용자 감소 -> 참여자 감소로 전체 시스템 붕괴
4. 분산 P2P 시스템의 무결성 확보 방법
- 전체 시스템의 노드(node, peer) 개수를 알 수 있나?
- 개별 노드(피어)들을 얼마나 신뢰할 수 있는가?
- 순수 분산 P2P 시스템에서 가장 최악의 시나리오는 전체 시스템 노드 개수를 알 수도 없고, 개별 노드의 신뢰도도 확보되지 않은 상황이다. 그러면 전체 시스템의 신뢰성과 무결성을 확보하기가 매우 어려워진다.
- 순수 분산 P2P 시스템에서 가장 최악의 시나리오는 전체 시스템 노드 개수를 알 수도 없고, 개별 노드의 신뢰도도 확보되지 않은 상황이다. 그러면 전체 시스템의 신뢰성과 무결성을 확보하기가 매우 어려워진다.
분산 P2P 시스템의 무결성 위협요소
1. P2P 시스템의 무결성을 위협하는 요소 2가지
- 기술적 결함(technological defects)
- 개별 컴퓨터나 네트워크의 고장, 오류
- 따라서 기술적 결함이 생길 경우를 미리 대처할 필요가 있음
- 악의적인 사용자(malicious users)
- 시스템을 개인의 이익을 위해 착취하려는 개인의 악의가 원인
- 기술적 결함로 인한 문제와 다르게 기술적 해결 불가능, 사회학적 측면에 연관됨
- 악의적 사용자로 인해 다른 사용자들이 시스템을 신뢰하지 못하게 되면 시스템을 떠난다.
- 사용자들이 P2P 시스템에서 자원을 공유하지 않게 되면 시스템 유지 불가
무결성 측면에서 블록체인의 역할
1. 블록체인의 역할, 과제, 목표
- 분산 P2P 시스템 최악의 시나리오: 전체 노드 개수 모름 & 각 노드 신뢰 불가 -> 시스템 신뢰도, 무결성 확보 매우 어려움
- 그럴 때 시스템의 무결성을 확보하여 전체 시스템의 신뢰도를 높이는 것이 블록체인의 과제
2. 비잔틴 장군 문제(Byzantine General Problem)
- 1982, by Lesile Lamport의 논문
- 분산 네트워크에서 어떤 문제에 대한 합의점을 이끌어내는 방법은?
- 비잔틴 장군 문제
- 비잔틴 군대는 여러 장군들이 각각의 부대를 이끌고 있는 형태
- 각 군대는 물리적으로 떨어져 있어 파발로만 소통 가능하다.
- 전쟁에서 이기기 위해서는 중앙의 통제에 따라 한날 한시에 다같이 공격해야 한다.
- 장군들 사이에 배신이나 반역을 하려는 사람이 있을지도 모른다. 배신자들은 다른 장군에게 악의적으로 다른 명령을 전달할 수도 있다. (퇴각해야 하는데 공격하라고 전달한다던가)
- 배신자가 있을 때 군대의 모든 장군에게 올바른 명령을 전달하는 방법은?
블록체인의 정의
블록체인의 네 가지 의미
- 데이터 구조의 명칭, 알고리즘의 명칭, 기술 묶음의 명칭, 순수 분산 P2P 시스템 자체
- 어떻게 데이터가 저장되고 관리되는지, 어떻게, 무엇으로 데이터가 처리되는지, 그리고 그 데이터가 사용되는 환경은 어떠한지에 따라 정의가 달라진다.
1. 데이터 구조(Data Structure)의 명칭
- 데이터 구조(Data Structure)란?
- 데이터를 저장하고 정리하는 방식
- 건물을 지을 때, 재료를 어떻게 쌓고 방을 구분할 지 등을 적은 서레도, 평면도와 같다.
- 주요 데이터 구조의 종류 4가지
- 링크드 리스트(Linked List): 1차원(one-dimensional)으로 연결된 (선형, Linear) 데이터의 리스트
- 스택 (Stack): Last In First Out(LIFO) 구조의 Linked List
- 큐 (Queue): First In First Out(FIFO) 구조의 Linked List
- 트리 (Tree): 다차원(multi-dimensional, 비선형)으로 연결된 데이터의 리스트
- 데이터 구조로서의 블록체인
- 블록 단위에 모인 데이터들이 체인처럼 서로 연결된 구조 (선형)
- 예시) 책의 각 페이지들이 정보 담고 페이지 번호 순으로(in numerical order) 연결되어 있다. 각 페이지 안에도 내용이 시간 순서대로(in chronological order) 나열된다.
2. 알고리즘(Algorithm)의 명칭
- 알고리즘(Algorithm)이란?
- 어떤 문제를 해결하기 위해 컴퓨터가 실행해야 하는 일련의 명령어와 그 순서
- 사용하는 데이터 구조(자료구조)의 특징을 고려해야 한다.
- 자료구조 특징을 활용한 알고리즘 예시
- 링크드 리스트에 저장된 데이터 검색: 앞에서부터 차례대로 찾기 = 선형 검색(Linear Search)
- 이진 트리(Binary Tree)에 저장된 데이터 검색: 더 빠른 이진 검색(Binary Search)
- 알고리즘으로서의 블록체인
- 분산 합의 알고리즘(distributed consensus algorithm): 순수 분산 P2P 시스템에서 여러 블록체인 내의 정보를 노드 간 상호 합의된(mutual) 방법을 사용해 서로 협상하는 일련의 과정
- 서로 신뢰하지 못하는 수많은 노드들이 참여하는 분산 시스템에서 무결성 확보하기 위한 알고리즘
- 분산 합의 알고리즘(distributed consensus algorithm) 예시
- 비잔틴 장군 문제(Byzantine Generals Problem)
- 식사하는 철학자들 문제(Philosopher’s Dining Problem)
- 많은 철학자들이 하나의 식탁에 둘러앉아 식사를 한다.
- 앉은 자리 양쪽에 포크, 나이프 등 식기가 준비되어 있다.
- 모두가 ‘포크는 오른쪽 것을 쓰고, 나이프는 왼쪽 것을 쓰자’ 등 합의를 하면 식기는 모두에게 돌아간다.
- 그러나 누군가는 오른쪽 식기를 쓰고, 누구는 왼쪽 식기를 쓰면, 중간에 끼인 누군가는 식기가 부족한 경우가 생긴다.
- 함의점: 위 예시 두 개를 통해 순수 분산 시스템에서 공동의 목적을 달성하기 위해서는 합의 시스템이 반드시 필요함을 알 수 있다.
3. 기술 묶음(technology suite)의 명칭
- 기술 묶음으로서의 블록체인
- 블록체인의 데이터 구조 + 블록체인 알고리즘 + 암호화 및 정보보안 기술 + etc의 조합
- 응용 분야 상관 없이 순수 분산 P2P 시스템의 무결성 확보를 위해 사용됨
4. 응용 분야를 포함한 순수 분산 P2P 시스템의 명칭
- 일반 응용 분야를 가지는 순수 분산 P2P 시스템으로서의 블록체인
- 블록체인 기술 묶음을 활용하는 거래 장부(Ledger)들의 순수 분산 P2P 시스템
- 블록체인 기술 묶음을 활용하는 거래 장부(Ledger)들의 순수 분산 P2P 시스템
블록체인의 정의와 응용
1. 블록체인의 정의 총 망라 (네 가지 관점 결론)
- 목적 : 무결성을 확보하고 유지하기 위해
- 데이터구조: 순서에 따라 연결된 블록들의 정보를
- 알고리즘: 암호화 기법과 보안기술을 이용해 협상하는 알고리즘으로 구성된 소프트웨어를 활용하는
- 시스템: 원장(Ledger)의 순수 분산 P2P 시스템
2. 블록체인의 응용 분야
- 암호화폐(cryptocurrencies)
- 자산의 소유권을 관리하고 명확하게 검증하는 것(tracking assets for proof of ownership)
- 그러나 암호화폐의 소유권을 관리하는 것은 블록체인 응용 분야의 하나일 뿐, 그 자체가 전부는 아님
- 블록체인이 암호화폐의 소유권 관리 측면에서 부각된 이유는?
- 이해하고 설명하기 쉬움
- 경제에 매우 큰(substantial) 영향을 미치는 실제 사례이기 때문
- 은행, 보험, 법률 시스템의 많은 부분은 소유권 관리와 연관됨
- 소유권 관리는 관련 경제 규모가 크다.
- 전통적 금융시장: 중앙 통제 시스템이 소유권 관리함
- 소유권 관리 방법이 바뀐다면 시장에 큰 영향 줄 것
- 블록체인은 특정 재화 종류와 상관없이 소유권을 관리하고 명료화하는 일반적인 환경에 적용 가능
추가조사
비트코인 등의 암호화폐 이외에 소유권 관리 측면에서 블록체인이 활용될 수 있는 다른 응용분야에는 어떤 것들이 있을까요?- 암호화폐
- 금융기관: 은행 간 송금망에 블록체인 기술을 적용하여 중개 은행 없이도 상호 신뢰 하에 직접 거래하여 절차를 간소화하고 관련 수수료 비용 절감
- 산업 특화(4차 산업혁명): 다양한 산업 분야의 참여자들이 비즈니스 대상에 대한 정보 이력을 블록체인으로 연결하는 중 -> 플랫폼 이펙트 방지하고 사용자에게 맞춤형 서비스 제공 가능
- 공공 조직: 정부(중앙, 지방) 혹은 국가 차원에서
공공 행정 정보
및국민 신원 관리
,자산거래 내역 공증
,복지서비스 제공
등에 적극적 도입을 진행 - 민간 기업: 고객 이탈을 방지하고, 신사업보다는 기존 제공 사업에 접목하여 보안 및 분산화 등 보다 향상된 기능이 포함된 서비스 제공
- 블록체인에 대한 기술 영향 평가안
- 경제(산업, 거래 및 소비): 긍정적
기술영향평가위원장인 한양대 이상욱 철학과 교수는 “블록체인은 서로 신뢰하기 어려운 협업 주체 간 상호 신뢰도를 높이고, 협력 과정의 시간과 비용을 줄일 수 있다”고 설명했다. (중략) 중개자의 역할을 시스템에 내재하는 블록체인의 특성상 개인 간 거래가 활성화할 것이라는 평가도 이어졌다.
- 윤리: 부정적
블록체인에 기록되는 정보는 정정 및 삭제가 어려워 ‘잊힐 권리’가 침해될 수 있다. (중략) 김 교수는 “최근 문제시 되는 디지털 성범죄 영상물이 블록체인에 기록될 경우 극대화한 투명성과 비가역성, (문제를 중재할) 중앙 주체의 부재로 더욱 문제가 된다”고 지적했다.
- 경제(산업, 거래 및 소비): 긍정적
- 출처
- 블록체인투데이(http://www.blockchaintoday.co.kr)
- 블로킹프레스(https://blockinpress.com/archives/10722)
소유권의 개념
소유권 증명의 세 가지 요소
1. 내가 가진 물건이 내 것이라는 것을 증명하는 방법
집에서 가져온 사과를 들고 과일 가게를 갔다. 다른 과일을 사고 계산을 하려고 하는데, 점원이 내 사과를 보고 과일가게의 물건이라고 생각하는 것 같다. 내가 가진 사과는 내가 집에서 가져온 것이라는 것을 어떻게 증명할까?
- 위 사례: 목격자의 확보가 중요 (+동일한 사실을 증명하는 독립적인 목격자가 많을수록 유리) = 블록체인의 핵심 개념 중 하나
2. 소유권을 입증하는 세 가지 요소
- 소유자가 누구인가?
- 내가 나임을 증명
- 소유 물건은 무엇인가?
- 물건은 사과임을 증명
- 소유자와 물건의 매핑(Mapping)
- 물건 ‘사과’는 ‘나’라는 인물이 가져온 물건이다.
- 물건 ‘사과’는 ‘나’라는 인물이 가져온 물건이다.
- 소유권 입증의 세 가지 요소를 밝히는 것은 목격자의 증언
- 그러나 목격자의 증언에만 의지하면 많은 시간 소모 가능성 있음
- 그래서 신뢰할 수 있는 기관이 발행한 문서로 대체
3. 소유권: 식별(Identification)
- 사람에 대한 식별
- 그 사람은 누구인가?
- 예시) 신분증, 출생증명서, 운전 면허증 등
- 물건(Asset)에 대한 식별
- 그 물건이 무엇인가?
- 예시) 일련번호, 제조날짜, 제조증명서, 상세설명서 등 - 사람, 물건에 대한 식별 공통점: 사람과 물건의 속성은 불변함
- 소유자와 물건의 매핑 식별
- 소유자와 물건의 관계 (변할 수 있음)
- 물건의 소유권이 이전될 때마다 새롭게 기록함
- 예시) 원장, 등기명부 등
4. 소유권에 대한 증명 관리
- 소유권에 대한 최신 원장, 명부 관리 매우 중요 -> 특수기관 설립
- 소유물의 가치가 클 수록 정부에서 직접 규제
- 원장을 공공에 공개하여 소유권을 쉽게 검색, 증명 가능
- 예시) 미국 정부의 경우: 물건(부동산, 특허, 배, 비행기, 회사 등의 소유권에 대한 원장), 사람(결혼, 출생, 사망에 관한 등록 등)
- 물건의 가치가 매우 크고, 무결성이 침해되었을 경우 사회적 혼란이 클 것으로 예상되는 정보의 경우 정부 차원에서 집중 관리한다.
소유권 개념 간의 상관관계
1. 소유권 관련 여러 개념들
- 소유권 증명(->password): 자산과 소유자의 매핑, 사용자, 자산 자체가 맞는지 식별
- 소유권 사용(->signature 서명): 소유권을 가지고 있는 사람이 맞는지 인증-> 인증 받은 사람이 합당한 소유 권한을 승인 받았는지 확인해야 함
보안의 세 가지 개념
1. 보안의 세 가지 개념(블록체인 관련)
- 식별 (Identification)
- 식별자(identifier)(이름 등)를 이용해 내가 누구라고 주장하는 것
나는 ‘홍길동’이라는 이름을 가진 사람이다.
- 식별자(identifier)(이름 등)를 이용해 내가 누구라고 주장하는 것
- 인증 (Authentication)
- 누군가가 그 사람이 주장한 ‘누구’와 서로 일치하는지 증명하는 것
- 방법: 지식 기반 인증(그 사람만 알 수 있는 정보로 증명), 토큰 이용(내가 가진 소유물로 증명), 생체 인증(biometric authentication)
홍길동만 알 수 있는 정보로 인증: 아이디, 패스워드 입력 홍길동만 가지고 있는 물건으로 인증: 홍길동의 집 열쇠 홍길동의 생체 정보(biological information)으로 인증: 지문, 홍채 인식(retina)
- 승인 (Authorization)
- 인증을 거친 사람에 대해 특정 자원이나 서비스에 대한 접근 권한을 부여하는 것
- 인증된 특정인이 가진 특성과 권리에 대한 평가를 토대로 얻는 최종 결과
- 예시) 파일 시스템 내에서 사용자에 따라 파일 접근 권한을 다르게 줄 수 있다.
‘홍길동’은 A파일에 접근 가능하지만 다른 사용자는 접근 불가능
원장의 소유권과 블록체인
1. 원장의 개념과 원칙: 소유권 증명과 이전의 관점에서
- 소유권 증명(proof of ownership)
- 투명성(transperency) 중요
- 과거 데이터(data history)를 바탕으로 데이터 읽기
- 원장에서 읽은 과거 데이터를 이용해 소유권을 증명
- 소유권 이전(transfer of ownership)
- 개인정보 보호(privacy protection) 중요
- 데이터 이력 사용하지 않고 데이터를 신규로 생성함 (데이터 쓰기)
- 소유권이 이전될 때마다 원장에 신규 데이터를 생성하고 이 사실을 문서화(documentation)
2. 원장의 두 가지 상반된 특징
- 투명성 (Transperency)
- 소유권 증명과 관계됨
- 시스템의 누구나 데이터를 쉽게 검색하고 검증할 수 있다.
- 원장이 공개되어 있으면 소유권 증명이 훨씬 쉽다.
- 법정에서 목격자가 공개증언하는 것과 비슷한 방법
- 투명성은 소유권을 증명하는 기초가 된다.
- 원장 읽기
- 개인정보 보호 (Privacy Protection)
- 소유권 이전과 관련
- 나의 개인정보가 다른 사람에게 노출되지 않아야 한다.
- 소유권의 이전은 법적인 소유자에게만 배타적으로 허용되어야 한다.
- 즉 개인정보 보호는 소유권 이전의 기초가 된다.
- 원장 쓰기
- 두 가지의 상충되는 특징은 블록체인에서도 존재
3. 원장의 소유권과 블록체인
- 블록체인: 누구나 읽을 수 있게 개방된 원장과 비슷한 데이터 구조를 가지는 거대한 분산 P2P 시스템
4. 원장의 소유권을 명확하게 만들 수 있는 방법은?
- 최대한 여러 명의 독립적인 목격자를 확보한다. = 블록체인의 방식
- 조작될 위험이 있는 원장을 하나만 유지하지 않고 원장의 순수 분산 P2P 시스템을 활용
-
다수의 노드가 동의하는 다수의 원장을 이용해 소유권을 확인
- 원장의 소유권 유지와 블록체인의 관련성
- 소유권 관리를 위한 개별 원장: 블록체인 데이터 구조로 표현됨
- 개별 원장을 P2P 시스템의 노드(개별 사용자 PC)에 저장
- 블록체인 알고리즘: 개별 노드들이 공동의 일관된 소유권 상태에 합의할 수 있도록 해줌
- 블록체인 시스템의 무결성을 통해 소유권에 대한 진실 판단
- 암호화 기법(crptography): 식별(identification), 인증(authentication) 승인(authorization), 데이터 보안(encrypt data) 유지
댓글남기기