안녕하세요 :)
알기쉬운 블록체인 3강 강의 노트입니다.
3강에서는 소프웨어 시스템의 각 계층과 측면에서
어떤 목표와 서비스를 하는지에 대해 배웁니다.
더불어, 블록체인의 목적인 '무결성 유지'에서
'무결성'이 어떤 것인지,
어떤 종류가 있는지에 대해 강의를 들었습니다.
한 문장으로 요약하자면,
'블록체인은 소트프웨어 시스템 상에서
비기능적 측면에 해당하는 '무결성'을 확보하고 유지함으로써
P2P 시스템을 구성할 수 있게 해주는 도구다.'
라는 것입니다!! :)
제 3강 블록체인과 소프트웨어 기술
3-1. 소프트웨어 시스템 계층
- 소프트웨어 시스템의 구분 기준
1) 계층(Layer) : 사용자의 요구사항 목적과 이를 달성하기 위한 시스템웨어
사용자가 문자 메시지를 전송하기 위해 소프트시스템이 어떻게 구현되어 있나?
1-1) 응용계층(Application Layer) : 사용자의 필요 (기차 예매, 온라인 구매, 사진 촬영, 인터넷 검색 등과 같이 사용자의 목적과 관련되어 있다.)
1-2) 구현계층(Implementation Layer) : 목적 달성을 위한 계층 (지불하는 경우 메시지를 어떻게 전달할지, 사진이 어떻게 픽셀화되는지) -> 본질적으로 기술에 해당
2) 측면(Aspect) : 시스템이 무엇을 하고 어떻게 달성하느냐에 따라 연관
계층화되어 구현되어 있는 소프트시스템을 얼마나 효율적으로 사용하고 있나?
2-1) 기능적 측면 : (사용자가 직접 경험 가능한)시스템의 기능
ex. 네트워크를 통해 데이터 전송, 사진 촬영, 전화 걸기, 문자/이메일 보내기
2-2) 비기능적 측면 : 사용자가 얼마나 편리하게 특정 인터페이스를 사용할 수 있는지에 대한 구현 방법
ex. 얼마나 빨리 문자메세지를 보낼 수 있는지, 얼마나 효율적으로 시스템을 사용할 수 있는지, 얼마나 적은 에너지를 소비할 수 있게 만드는지
-> 보안(Security) : 시스템을 안전하게 보호하기 위해 활용하는 방법
-> 무결성(Integrity) : 데이터의 정보가 변경되거나 오염되지 않도록 하는 원칙. 네트워크에서 데이터 전송 시 비인가 접속자가 데이터를 변경하거나 위조하지 않았다는 것을 나타낸다.
즉, 시스템이 의도한대로 동작을 할 수 있게 만드는 기술 -> 블록체인의 보안 요구사항에 있어서 가장 중요하다
* 구현계층의 비기능적 측면은 사용자가 당연히 여기는 경향이 있지만 가장 중요한 요소다.
◈ 소프트웨어 시스템 무결성
** 기밀성, 가용성, 무결성은 정보보안의 세 가지 요소입니다. 이 중 특히 블록체인에서 무결성이 중요한 이유는 무엇일까요?
• 정보 보안의 3가지 요소
1) 기밀성 : 프라이버시와 관련된 것으로서 합법적인 사용자만이 데이터 접근이 가능하다.
2) 가용성 : 사용자가 언제 어디서든 시스템에 접근 가능하다
3) 무결성 : 정보, 데이터, 시스템이 원래 의도한대로 정상적으로 동작하는 것
• 무결성의 3가지 요소
1) 데이터 무결성 : 데이터나 정보가 원래 데이터와 정확히 일치해야 한다. 외부의 공격이나 시스템의 오류로 인해 데이터가 위조, 변조, 삭제될 경우 이런 것을 효율적이고 쉽게 탐지하고 쉽게 복구할 수 있어야 한다.
2) 연산 무결성 : 데이터를 이용해서 특정 연산처리를 하는 경우 결과를 신뢰할 수 있고 오류없이 정확한 결과를 받을 수 있다.
3) 작동 무결성 : 소프트웨어 시스템이 의도한대로 동작하며 논리적 오류가 없어야 한다.
• 소프트웨어 시스템의 무결성 침해의 예시
1) 시스템 결과의 오류
2) 시스템 데이터 손실
3) 시스템의 비논리적 작동
-> 대부분의 소프트웨어 시스템은 무결성이 전제되어야만 의미가 있다.
3-2. 소프트웨어 아키텍쳐 측면에서의 블록체인
◈ 소프트웨어 시스템 아키텍쳐
• 소프트웨어 시스템 아키텍쳐란?
소프트웨어 구성요소를 구조화하고 소프트웨어 구성요소 간 관계 설정
• 소프트웨어 아키텍쳐의 영향
소프트웨어 아키텍쳐는 소프트웨어의 성능, 응용 분야, 안전성, 그리고 개발 및 유지 비용에 막대한 영향을 미치기 때문에 개발하고자 하는 소프트웨어의 요구사항을 잘 파악해야 한다.
- 차를 구매한다고 가정했을 때, 디젤/가솔린/하이브리드 중 선택하는 엔진의 종류에 따라 유지 비용과 성능이 큰 차이가 있다. 따라서 기능적 측면에서의 구현 계층은 어떤 기술들을 선택하느냐에 따라서 시스템의 전체적인 성능에 차이점을 가지고 온다.
- 엔진에 해당되는 것이 시스템 아키텍쳐의 구조.
• 소프트웨어 시스템의 두 가지 아키텍쳐
1) 중앙통제 방식
2) 분산통제 방식
각 노드들이 직접적으로 연결되지 않더라도 몇 번의 네트워크를 통해 간접적으로 연결된다.
◈ 분산 시스템의 장점과 단점
- 장점
1) 계산 능력이 더 뛰어남
2) 비용이 절감됨 : 단일 컴퓨터가 아니라 다수 컴퓨터로 구성되기 때문에 초기 비용이 개별 컴퓨터에 비해 크다. 분산 시스템과 동일한 능력을 가지는 슈퍼 컴퓨터를 제작한다고 가정하면 슈퍼 컴퓨터를 운영하는 비용은 훨씬 더 많이 든다.
3) 중앙통제 방식보다 안정적임
4) 자연스럽게 확장됨
- 단점
1) 조정 오버헤드(Coordination Overhead)가 발생함
- 전체 컴퓨터들과의 조정을 위해 계산 작업을 해야 해서 오버헤드가 추가적으로 발생한다.
2) 통신 오버헤드(Communication Overhead)가 발생함
3) 네트워크 의존도가 높음
4) 프로그램이 복잡해짐
5) 보안에 신경써야 함
◈ 블록체인의 목적
• P2P 네트워크란?
분산 시스템의 특별한 형태. 네트워크를 구성하는 개별 컴퓨터들이 자원 공유. 자원(계산 능력, 저장공간, 데이터, 네트워크 대역폭)
=> 각 컴퓨터는 자원의 공급자이자 동시에 소비자. 따라서 더 많은 사용자가 P2P에 참여하면 시스템은 더욱 거대해지고 안정적인 서비스를 받을 수 있다.
• P2P 활용분야
콘텐츠 분배, 보안 정책 공유, 파일 공유, 블록체인, 기타 응용 분야
- 혼합시스템
1) 분산 시스템 내의 중앙통제 시스템
실질적인 중앙통제 시스템 : 모든 원이 중앙의 큰 노드에 직접적으로 연결되어 있다.
2) 중앙통제 시스템 내의 분산 시스템
실질적으로 분산 시스템 : P2P 네트워크를 구성할 수 있는 분산 시스템
=> 따라서, 어떤 것이 중앙이고 분산이냐를 구분할 수 있는 기준은 ‘전체 시스템을 통제할 수 있는 단일 구성요소 여부에 따라 구분’. 예를 들어, 전체 시스템을 동시에 종료시킬 수 있는 요소가 있는지(사용자 ID, 패스워드, 로그인 기능 등이 존재 여부)
- 블록체인의 목적은 분산 시스템의 무결성 구현 및 유지다. 블록체인은 구현 계층의 비기능적 측면을 성취하게 해주는 기능적 도구다.
3-3. P2P 네트워크 시스템
◈ P2P 시스템 정의
과거의 음악 시장 : 테이프, LP (소유의 개념)
현재의 음악 시장 : P2P 소프트웨어를 통한 음악의 네트워크 공유 및 스트리밍 (공유 및 대여의 개념)
- 과거의 음악 산업
- 2000년대 이후의 음악 산업
• 냅스터의 아이디어
중앙의 스튜디오와 같은 독점적 지식을 가지고 있던 entity가 있었던 것이 아니라 중개자 역할을 개인 간의 상호작용으로 대체한 것이다.
• P2P 시스템의 잠재력
무형의 상품, 디지털화된 상품, 서비스를 중개하는 상업을 모두 대체 가능
• 금융산업
- 우리가 사용하는 계좌나 신용카드에는 진짜 돈이 없다. 돈과 자산은 무형의 비트, 바이트 형태로 금융회사의 중앙정보시스템에 저장.
- 은행은 돈과 관련된 정보를 비트, 바이트 단위로 생산하고 소비하는 사람들 사이를 중개해주는 역할 수행.
• P2P를 통한 금융거래의 장점
1) 간단한 이체
2) 시간과 비용 절약
3) 거래 당사자끼리의 직접 상호작용
- P2P 기타 적용 가능 분야 : 출생증명, 여권, 운전면허, 신분증, 지불, 저출, 학력증명, 대출, 보험, 근로계약서, 특허
• P2P 시스템의 정의
여러 노드(개별 컴퓨터)들로 구성된 분산 소프트웨어 시스템.
• P2P 파일 공유 시스템
개별 컴퓨터에 저장되어 있는 파일을 다른 모든 사용자와 공유
누군가 한 컴퓨터에서 파일을 다운로드 하면 해당 파일이 저장되어 있는 컴퓨터로부터 파일이 다운로드되기 시작
◈ P2P 시스템 아키텍쳐
• P2P 시스템의 아키텍쳐
1) 분산 P2P 시스템 : 개별 노드들이 자원 공유
2) 중앙통제 P2P 시스템(혼합형 분산 시스템) : 중앙노드를 이용해 노드 간 상호작용 중재
*중앙노드 : 피어 노드가 제공하는 서비스 목록들을 유지 관리, 노드를 검색하고 식별
혼합형 분산 시스템의 대부분이 이 유형에 해당
=> 중앙통제 시스템의 장점 + 분산계산의 장점
ex. 냅스터 : 중앙 데이터베이스에 노드들이 보유한 노래정보 저장. 중앙 데이터베이스를 접근, 관리하는 중앙 시스템에 존재할 수밖에 없는 혼합형 분산 시스템의 일종.
◈ P2P 시스템과 블록체인의 연관성
• P2P 시스템과 블록체인의 연관성
블록체인은 P2P 시스템의 무결성을 확보하고 유지하는 도구. 특히 순수 분산 P2P 시스템의 무결성 확보와 유지를 위해 블록체인 사용
중앙통제에 비해 분산 시스템은 통제를 할 수 있는 중앙이 없기 무결성을 검사하는 과정이 필요하고 이 과정에 블록체인이 쓰일 수 있다.
• 블록체인의 잠재력
1) 순수 분산 P2P 시스템의 장점 활용 가능
2) 무결성 확보 및 유지 가능
3) 탈중개화를 통한 상업적 잠재력
3강 강의 노트 끝-!
감사합니다 :)
*사진의 모든 출처 : http://www.kmooc.kr/
'Investment > Blockchain, Bitcoin' 카테고리의 다른 글
알기쉬운 블록체인 6강 : 블록체인과 암호기술I (0) | 2021.07.12 |
---|---|
알기쉬운 블록체인 5강 : 블록체인과 소유권 (1) | 2021.07.05 |
알기쉬운 블록체인 4강 : 블록체인의 본질 (0) | 2021.07.01 |
알기쉬운 블록체인 2강 : 블록체인의 개요 (1) | 2021.06.23 |
알기쉬운 블록체인 1강 : 4차 산업혁명과 블록체인 (0) | 2021.06.23 |
댓글