2020. 5. 27. 03:12ㆍ책, 1년에 100권
요즘 핫한 기술들이 많다. 인공지능, 블록체인, 양자컴퓨터, 빅데이터 등등. 그리고 이중에서 잘 알지 못해서 기본적인 지식이라도 쌓아두고 싶은 것 중에 하나가 블록체인 이었다. 이 분야에서 연구를 할 정도로 깊이 있는 지식이 아니라 기술에 대해 이해하 정도로의 깊이로. 이런 목적을 가지고 서점에서 이책 저책을 뒤지다가 집은 책이다.
"블록체인 무엇인가?"
저자는 다니엘 드레셔다. 블록체인에 대해서 깊이 연구하는 사람은 아니고, 금융관련 거래 자동화, 머신러닝 및 빅데이터에서 활동하는 금융 전문가라고 한다.
블록체인의 기본 개념에 대해 수학 없이 쉽게 설명이 되어있어 일반인들도 이해할 수 있을 뿐만 아니라, 왜 블록체인이 필요한지, 한계는 무엇인지에 대해서도 얘기하고 있다.
책 내용 정리
시스템을 개념적으로 분리할 경우 응용계층vs구현계층, 기능적측면vs비기능적측면을 기준으로 삼을 수 있다. 응용계층은 사용자의 요구사항에, 구현계층은 요구사항을 실현해 주는 기술적 측면에 중점을 둔다. 기능적 층면은 '행위'에, 비기능적 측면은 그 행위를 '어떤식으로 했는가'에 중점을 둔다.
시스템의 무결성은 비기능적 측면으로 데이터 무결성, 작동 무결성, 보안 이 세가지 주요 요소로 구성된다.
시스템의 아키텍쳐는 크게 분산 방식과 중앙 통제 방식이 있다. 분산 시스템은 계산 능력이 더 뛰어나고, 비용이 낮으며, 안정적이다. 그리고 확장이 용이하다. 하지만 조정 오버헤드가 발생하고, 통신 오버헤드가 있으며, 네트워크 의존도가 높다. 프로그램이 복잡해지며, 보안에도 신경을 써야하는 단점이 있다.
분산시스템은 다수의 독립된 컴퓨터가 중앙 통제나 조정 요소 없이 특정 목적 달성을 위해 통신 매체를 사용해 서로 협력하는 시스템이다.
블록 체인은 분산 소프트웨어 시스템의 구현 계층에 속하며, 블록 체인의 목적은 분산 소프트웨어 시스템의 특정 비기능적 요소인 무결성을 확보하고 유지하는 것이다.
P2P 시스템은 여러 노드들로 구성된 분산 소프트웨어 시스템으로, 한노드의 자원을 다른 노드들이 직접 사용할 수 있는 특징을 지닌다. P2P 시스템의 장점은 중개자에 의존하지 않고 사용자들끼리 직접 상호작용할 수 있다는 것이다. 블록체인은 탈중개화를 통해 전체 산업 생태계를 변화시킬 잠재쳑을 지닌 분산 P2P시스템이 무결성의 확보와 유지를 위한 도구로 사용될 수 있다.
P2P 시스템의 무결성을 위협하는 주된 요인은 2가지는 기술적 결함과 악의적인 피어다. 블록체인이 해결해야할 문제는 '개수도 알려지 있지 않고 신뢰성과 안정성도 알수 없는' 피어들로 구성된 순수 분산 P2P 시스템의 무결성을 확보하고 유지하는 것이다.
블록체인 (임시 정의)
무결성을 확보하고 유지하기 위해 순서에 따라 연결된 블록들의 정보 내용을 암호화 기법과 보안 기술을 이용해 협상하는 알고리즘으로 구성된 소프트웨어 요소를 활용하는 원장의 순수 분산 P2P 시스템
소유권 증명에 필요한 3가지 요소
-소유자의 식별
-소유 물건의 식별
- 소유자와 물건의 매핑
소유권을 관리하는 원장의 순수 분산 P2P시스템을 디자인 하려면 다음 과제를 해결해야 한다.
-소유권 기술(describing)
-승인받지 않은 접근으로부터 소유권보호
-트랜잭션 데이터 저장
-신뢰할 수 없는 환경에 배분할 원장 준비
-분산 원장 시스템 형성
-새로운 트랜잭션 검증 및 추가하기
-진실을 담은 원장 가려내기
해시함수는 어떤 데이터든 입력한 길이에 생관없이 일정한 길이의 수로 변환한다.
해시값의 주된 용도는 데이터 비교, 데이터 변경 감지, 계산량이 많이 필요한 과제 생성 이다.
블록체인은 두가지 목표를 성취하기 위해 비대칭 암호화 기법을 사용한다.
-계정 식별:사용자 계쩡 번호는 공개 암호 키이다.
-트랜잭션 승인: 소유권 이전을 원하는 계정 소유자는 자신의 개인키를 이용해 암호문을 생성한다. 다른 모든 사람들은 공개키를 이용해 거래를 증명할 수 있다.
블록체인에서 트랜잭션의 디지털 서명은 소유권을 이전하려는 계정의 개인키를 이용해 암호화한 트랜잭션 데이터의 암호화 해시값이다.
블록체인 데이터 구조의 각 블록은 블록 헤더와 트랜잭션 데이터를 가지고 있는 머클 트리로 이루어진다. 블록 헤더는 이전 블록 헤더를 가리키는 해시 참조와 응용 데이터를 가리키는 해시 참조를 가지고 있다.
블록체인 데이터 구조의 데이터를 변경하려면 조작된 데이터를 직접적으로 가리키는 해시 참조에서부터 헤드까지 모든 해시 참조를 오나전히 갱신해야만 하므로 대단히 힘든 작업이다.
블록체인 헤더는 최소한 다음의 정보를 가지고 있어야 한다.
-직전 블록의 헤더를 가리키는 해시 참조
-트랜잭션 데이터를 갖고 있는 머클트리의 루트
-해당 해시 퍼즐의 난이도
-해시 퍼즐 풀이를 시작한 시각
-해시 퍼즐을 해결할 난스
네트워크 내에서 노드들의 메시지는 소문 형식으로 전달된다. 메시지는 디지털 지문이나 암호화 해시값으로 식별 가능하기 때문에 노드는 중복 메시지를 쉽게 식별할 수 있다. 그리고 블록 헤더에는 타임 스탬프가 포함되어 있어 노드들은 객관적인 시간 기준에 따라 메시지를 정렬할 수 있다.
블록 체인 알고리즘은 트랜잭션 데이터를 처리하고 시스템에 추가하는 방법을 통제하는 일련의 규칙과 명령어이다. 해결해야할 과제는 시스템을 누구에게나 개방된 상태로 유지하면서 유효하고 승인된 트랜잭션만 추가되도록 하는 것이다.
새 블록을 네트워크에 전송하는ㄷ ㅔ걸린 시간의 지연으로 인해, 또는 거의 동시에 새 블록을 생성한 노드들로 인해 블록 체인 데이터 구조는 트리나 선인장처럼 자란다. 그리고 기준의 의해 하나의 경로를 선정하게 된다.
블록체인은 시스템 무결성에 기여한 피어들에게 보상으로 수수료를 지급한다.
블록체인은 두가지 응용 목표를 가지고 있다.
-소유권 명확화
-소유권 이전
블록체인의 주요 기술적 제약사항
-개인정보 보호의 부재
-보안모델
-제한적 확장성
-고비용
-숨겨진 중앙 통제
-유연성의 부재
-임계 크기
블록체인이 내포하고 있는 갈등 요소
- 투명성 vs 개인 정보보호
- 보안 vs 속도
블록체인의 특성에 기반하는 포괄적 사용 패턴
-존재 증명
-비존재 증명
-시간 증명
-순서 증명
-신원 증명
-저작권 증명
-소유권 증명
블록체인 응용분야
-결제
-암호화폐
-디지털 자산
-디지털 식별
-공증 서비스
-세금
-투표
-기록 관리
새로운 기술을 접할 때 가져야할 세가지 의문점
이것은 무엇인가?
이것이 왜 필요한가?
이것은 어떻게 작동하는가?
'책, 1년에 100권' 카테고리의 다른 글
몰입 (Flow) (0) | 2020.06.10 |
---|---|
결단 (Start now get perfect later) (0) | 2020.06.03 |
초연결 (0) | 2020.05.20 |
코스모스 (0) | 2020.05.13 |
구글의 종말 (0) | 2020.05.06 |