본문 바로가기
Investment/Blockchain, Bitcoin

알기쉬운 블록체인 3강 : 블록체인과 소프트웨어 기술

by YOU_IN 2021. 6. 28.

안녕하세요 :)

알기쉬운 블록체인 3강 강의 노트입니다.

3강에서는 소프웨어 시스템의 각 계층과 측면에서

어떤 목표와 서비스를 하는지에 대해 배웁니다.

 

더불어, 블록체인의 목적인 '무결성 유지'에서

'무결성'이 어떤 것인지,

어떤 종류가 있는지에 대해 강의를 들었습니다.

한 문장으로 요약하자면,

'블록체인은 소트프웨어 시스템 상에서

비기능적 측면에 해당하는 '무결성'을 확보하고 유지함으로써

P2P 시스템을 구성할 수 있게 해주는 도구다.'

라는 것입니다!! :)

 

 

 


제 3강 블록체인과 소프트웨어 기술

 

출처 :  https://blog.westerndigital.com/value-of-blockchain/

 


 

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/

댓글