[블록체인] 3주차_블록체인과 소프트웨어 기술

8 분 소요

이 내용은 K-MOOC 알기쉬운블록체인 강의를 듣고 정리한 내용입니다.

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

소프트웨어 시스템 측면에서 본 블록체인

1. 블록체인은 해킹이 불가능하다?

  • 정보가 모든 사용자들 PC에 분산되어 저장된 블록체인은 해킹이 어렵다.

    전문가들은 블록체인을 기반으로 한 가상화폐를 해킹하는 것은 불가능하며, 만약 해킹을 했다고 해도 가상화폐를 현금화할 수 없을 것이라고 예상했다.

  • 그러나 해커들에 의해 수천억 규모의 가상화폐가 현금화되어 사라지는 사건 발생: 코인거래소 해킹
  • 원래 가상화폐는 개인 사용자가 가진 전자지갑을 서로 연결한 형태로 분산하여 관리 및 거래가 이루어지기 때문에 해커가 코인에 접근하기 어렵다.
  • 하지만 가상화폐 거래소: 운영 비용 및 효율을 위해 중앙 큰 지갑에 모든 사용자들의 코인을 넣고 거래함
  • 결론: 블록체인 기술은 분산을 통해 안전성을 추구하는 기술인데 거래소가 중앙 집중적인 시스템으로 운영했기 때문에 문제 발생 = 즉 소프트웨어 시스템이 중요하다.

소프트웨어 시스템 계층과 측면

1. 소프트웨어 시스템 구분 기준: 계층과 측면

  1. 계층 (Layer)
    • 사용자의 요구사항, 혹은 목적
    • 이를 달성하기 위한 시스템의 기술 구조
  2. 측면 (Aspect)
    • 시스템이 무엇을 하는가
    • 시스템이 그것을 어떻게 달성하는가

2. 계층 - 응용 계층 / 구현 계층

계층명 내용 예시
응용계층 (Application~) 사용자의 필요성, 목적 기차 예약, 온라인 구매 등
구현계층 (Implementation~) 목적 달성을 위한 기술 데이터 통신 기술 등


3. 측면 - 기능적 측면 / 비기능적 측면

측면 내용 예시
기능적 측면 (Function~) 사용자가 경험하는 기능 사진 촬영, 전화걸기, 이메일 보내기 등
비기능적 측면 (Non-function) 사용자가 직접 느끼지 않지만 잘 기능하는 데 필수적인 부분 적은 에너지소모, 안전성, 사용자친화적 UI, 보안, 무결성 등


4. 사용자 관점에서 소프트웨어 시스템을 계층과 측면으로 분리

소프트웨어시스템

  • 응용계층/기능적 측면
    • 사용자가 명확하게 요구하는 것
    • 시스템에서 가장 중요하게 부각됨
    • 그러나 이런 요소들은 대부분 사용자들이 스스로 학습하려는 노력 함
  • 구현계층/비기능적 측면
    • 사용자 입장에서 눈에 보이지 않고 이해하기도 힘듦
    • 당연하게 여김
    • 하지만 소프트웨어 개발하는 입장에서는 시스템이 잘 동작하게 하는 가장 중요한 요소

5. 비기능적 측면: 보안과 무결성

  • 보안 (Security), 무결성 (integrity)
  • 무결성(integrity)이란? 시스템이 의도한 대로 동작할 수 있도록 만들기 위한 요구사항 및 그렇게 하도록 하는 기술
  • 블록체인의 보안 요구사항에 있어 가장 중요한 요소는 무결성이다.

소프트웨어 시스템 무결성

1. 정보 보안의 세 가지 요구사항

  1. 기밀성 (Confidentiality)
    • 프라이버시, 사생활 보호와 관련
    • 합법적인 권한이 있는 사용자만 데이터에 접근이 가능해야 한다.
  2. 가용성 (Availability)
    • 권한이 있다면 언제 어디서나 사용자가 원할 때 정보에 접근해서 서비스를 받을 수 있어야 한다.
  3. 무결성 (Integrity)
    • 정보나 데이터, 소프트웨어 시스템이 원래 의도한 대로 정확하게 동작해야 한다
    • 원래 오리지널 데이터와 같음을 보장해야 한다.
    • 기밀성, 가용성 등 다른 보안 요소보다 블록체인과 더 밀접하게 연관되어있다.

2. 무결성의 세 가지 요소

  1. 데이터 무결성 (Data Integrity)
    • 저장된 데이터가 원래 데이터와 정확히 일치해야 한다
    • 외부 공격이나 시스템 오류로 인해 데이터 위조, 변조, 삭제 시 그런 것을 쉽게 탐지하고 복구할 수 있다.
    • 침해) 외부 공격이나 사고로 인한 데이터 삭제, 위조
  2. 연산 무결성 (Computation Integrity)
    • 소프트웨어 시스템이 데이터를 이용해 특정 연산, 처리를 할 때 그 결과를 신뢰할 수 있다
    • 오류 없이 정확한 결과를 산출한다.
    • 침해) SQL select문 등으로 데이터를 쿼리하려고 했는데 연산이 잘못되어 잘못된 결과를 받는 경우
  3. 작동 무결성 (Function Integrity)
    • 소프트웨어 시스템이 의도한 대로 동작한다
    • 논리적인 오류가 없다
    • 침해) 앱을 실행했는데 갑자기 꺼지는 경우

소프트웨어 아키텍처 측면에서의 블록체인

소프트웨어 시스템 아키텍쳐

1. 소프트웨어 아키텍처(Software Architecture)란?

  • 정의: 소프트웨어 구성요소를 구조화하고, 구성요소 간 관계를 설정하는 방식
  • 아키텍처가 소프트웨어 시스템의 성능(performance)과 안정성(stability), 응용분야 안전성(safety), 그리고 개발 및 유지비용에 영향 주기 때문에 신중하게 개발해야 한다.
  • 안정성과 안전성: 안정성과안전성 참고
    • 안정성(stability): 바뀌어 달라지지 않고 일정한 상태를 유지하는 성질
    • 안전성(safety): 위험이 없거나 안전을 보장하는 성질

2. 결제 시스템의 계층과 측면

3_2_1_결제시스템

  • 기능적 측면(사용자의 요구사항)과 비기능적 측면의 요구사항을 전부 구현하기 위해 필요한 구현 기술은?
  • 예시) 자동차 구매 시 디젤 엔진, 가솔린 엔진, 하이브리드 시스템 등 여러 엔진 중 하나 고를 수 있다.
  • 사용하는 엔진 종류에 따라 유지비용이나 성능 등이 차이가 있을 것이다.
  • 이러한 엔진에 해당하는 것이 시스템 아키텍처

3. 시스템 아키텍처의 종류: 중앙통제방식 vs 분산방식

  • 각각의 점 = 노드: 시스템을 구성하는 하나의 요소로 실제 시스템을 사용하는 사용자 혹은 개별 컴퓨터
  • 노드를 잇는 선: 각 노드 간 네트워크 연결성
  • 블록체인은 분산 시스템과 더 밀접한 연관이 있다 3_2_2_시스템아키텍처종류
    1. 중앙통제방식(Central Control)
    • 모든 노드들이 중앙의 하나의 노드로 연결됨
    • 중앙 노드가 모든 노드들을 직접 관리한다.
      1. 분산 방식(Distributed)
    • 모든 노드와 연결되고 통제하는 중앙 노드가 없다.
    • 각 노드들은 직, 간접적으로 연결되어 통신한다.
    • 각 노드들은 몇 번의 네트워크 통신을 통해 간접적으로 연결된다.

분산 시스템의 장점과 단점

1. 분산 시스템의 장점

  1. 더 강력한 계산(Computing) 능력
    • 서로 연결된 여러 컴퓨터의 계산 능력이 합쳐져서 동작
    • 단위 시스템보다 훨씬 강력한 계산 능력
  2. 비용 절감
    • 초기비용은 개별 컴퓨터보다 많이 듦: 다수의 컴퓨터 필요
    • 하지만 분산 시스템과 동일한 성능을 가진 슈퍼컴퓨터 한 대를 제작한다고 가정했을 때 그 한 대를 유지, 운영하는 비용보다 저렴
    • 분산 시스템의 경우 일부 컴퓨터가 고장나도 그 부분만 교체하면 되는데, 중앙통제 방식의 경우 해당 슈퍼컴퓨터 전체를 교체해야 해서 유지보수 비용이 더 많이 든다.
  3. 더 안정적(stable)이다.
    • 안정성(stability): 바뀌어 달라지지 않고 일정한 상태를 유지하는 성질 / 항상 동일한, 비슷한 수준의 서비스 계속 제공할 수 있다.
    • 분산 시스템의 일부 컴퓨터가 고장나도 전체 네트워크 시스템에 영향주지 않음
    • 다른 노드들이 고장난 시스템의 일 분담 가능
  4. 확장성, 유연함
    • 분산 시스템의 계산 능력 = 각 노드의 개별 계산 능력의 합
    • 따라서 시스템에 새로운 컴퓨터들 추가하면 그만큼 계산능력 쉽게 높일 수 있다.

2. 분산 시스템의 단점

  1. 구성 요소를 조정하는 중앙 요소의 부재
    • 전체적인 분산 시스템 조정이 필요할 경우: 조정하는 중앙 노드가 따로 없어서 조정을 위해 서로 계산하는 과정이 필요하다.
    • Coordination Overhead: 시스템 조정으로 인한 추가자원, 오버헤드 발생
    • 오버헤드(Overhead): 어떤 처리를 하기 위해 들어가는 간접적인 처리시간, 메모리 등(자원). 예를 들어 A라는 처리를 단순하게 실행한다면 10초 걸리는데, 안전성을 고려하고 부가적인 B라는 처리를 추가한 결과 처리시간이 15초 걸렸다면, 오버헤드는 5초가 된다.
  2. 조정하기 위해 각 노드 간 네트워크 통신 추가로 발생
    • 계산 능력 일부가 통신 프로토콜을 지원한다거나 메시지 송, 수신하기 위한 연산, 처리 등에 사용됨
    • 통신 오버헤드 발생
  3. 네트워크에 대한 의존도가 높다.
    • 분산 시스템의 모든 노드들은 네트워크를 통해 서로 통신한다.
    • 특히 중앙통제 노드가 없어서 다른 노드와 통신하기 위해 여러 번의 네트워크 채널을 통해 통신 서로 주고 받아야 한다.
  4. 프로그램이 복잡해진다.
    • 중앙통제 시스템: 시스템 조정 오버헤드, 통신 오버헤드 등을 고려하지 않아도 됨
    • 분산 시스템의 문제를 해결하기 위해 시스템 자체가 훨신 복잡해진다.
  5. 보안 문제
    • 중앙에서 보안을 책임지고 통제하는 시스템 없음
    • 따라서 전체 분산 시스템에 악의적인 컴퓨터가 몇 대 들어와서 공격을 시도하는 경우, 중앙에서 컨트롤하고 막아주는 보안 메커니즘 만들기가 어렵다.
    • 시스템의 각 노드들이 보안 위협에 대해 직접적인 책임과 대응 할 수 있도록 신경써야 한다.

게시판 질문: 분산 시스템이 중앙통제 시스템에 비해 무결성을 보장하기 더 어려운 이유는 무엇일까?

분산 시스템은 네트워크 의존도가 높은데 일부 컴퓨터의 네트워크 상황이 좋지 않아 의도한 대로 계산을 처리하지 못하는 경우, 해당 노드를 확인하고 다시 업데이트 해 주어야 하는 문제가 있다. 이 때 중앙에서 모든 요소를 통제하는 요소가 없기 때문에 각 노드가 무결성을 유지하고 있는지 확인하고 맞게 맞춰주는 것 자체에 오버헤드가 발생할 것이다. 두번째로 기준이 되어 줄 중앙 노드가 없는 것도 무결성을 보장하기 더 힘들게 할 것 같다.

블록체인의 목적

1. P2P(Peer to Peer) 네트워크

  • 분산 시스템의 특별한 형태
  • 중앙 통제 시스템 없이 네트워크를 구성하는 모든 노드들이 서로 협의를 통해 분산화된 방식으로 시스템 운영하는 네트워크
  • 각 컴퓨터들이 자원 공유: 계산 처리능력(computational processing capacity), 저장 공간(storage space), 데이터(data), 네트워크 대역폭(network bandwidth) 등
  • 서로 자원 제공하고 다른 컴퓨터의 자원을 활용할 수도 있다.
  • 따라서 P2P 네트워크의 컴퓨터는 서비스의 공급자이자 동시에 서비스의 소비자
  • P2P 네트워크 사용자가 많아질수록 시스템이 더 강력해지고 안정적이게 된다.
  • 응용 사례: 파일 공유, 콘텐츠 공유, 보안 정책 공유, 블록체인 등

2. 혼합 시스템(Hybrid System)

3_2_3_hybrid

  • 중앙 통제 시스템 안에 분산 시스템을 넣거나, 분산 시스템 안에 중앙 통제 시스템 넣을 수 있다.
  • 구별 기준: 전체 시스템을 끄고 킬 수 있는 통제 요소가 존재하는가?
  • 전체 시스템(DB, 유저 아이디, 비밀번호, 로그인, 로그아웃 등의 기능)을 한 번에 통제하는 요소가 있으면 중앙 통제 시스템, 아니면 분산 시스템이다.
  • P2P 네트워크는 분산 시스템이라 모든 노드를 한 번에 통제할 수 없다.

3. 소프트웨어 구현 계층의 기능적 측면: 아키텍처

3_2_1_결제시스템

  • ?: 소프트웨어 아키텍처 종류가 들어간다. (중앙 통제 시스템 혹은 분산 시스템)
  • 두 방식은 시스템의 무결성을 보장하는 방식이 서로 다르다.
  • 블록체인은 분산 시스템의 무결성을 보장하는 하나의 기술이다.
  • 즉 블록체인은 구현 계층의 비기능적 측면을 성취하게 하는 기능(도구)라고 볼 수 있다.

P2P 네트워크 시스템

P2P 시스템 정의

1. P2P 시스템으로 바뀐 음악 산업 예시

  • 과거의 음악시장
    1. 음악가가 음반 제작사(Studio)와 계약을 한다.
    2. 음반 제작사가 음악을 녹음한다.
    3. LP, 카세트 테이프, CD 등 여러 실물 매체에 담는다.
    4. 백화점 등 오프라인 매장에서 판매한다.
      • 음반 제작사가 음악가와 음악을 원하는 사람 사이 중개자 역할
      • 음반 제작사가 음반 제작 관련 지식 및 기술 독점
  • 2000년대 이후 ‘넵스터(Nepster)’ 프로그램 (P2P 네트워크)
    • 음악의 디지털화
    • 녹음 장비 구축 및 음악 녹음에 드는 비용 현저히 감소
    • 개인 PC의 보급과 인터넷의 확산
    • 음악가 개인이 녹음해서 인터넷으로 사용자에게 배포->음반 제작사가 필요없게 되었다.
    • Nepster 프로그램: CD를 사지 않아도 P2P 네트워크를 통해 전 세계에 음악을 공유할 수 있게 되었다.
  • Nepster 프로그램의 핵심 아이디어는?
    • 과거 음반 제작사처럼 핵심 기술 및 노하우를 독점하는 중앙의 요소 사라짐
    • 그 대신 개인들 간 상호작용으로 대체됨
  • P2P 시스템으로 인한 구조 변화가 예상되는 산업?
    • 중앙의 일부 조직이 산업의 핵심 기술을 독점하고 있는 경우
    • 무형의(intangible) 상품, 디지털화된 상품, 서비스 중개 사업
    • 디지털 자료를 복사하고 전송하는 비용 및 데이터(자원) 매우 낮아짐
    • 그 중 규모가 가장 큰 것: 금융 산업

2. 금융 산업에서 P2P 네트워크

  • 현재 구조
    • 신용카드, 계좌에 찍힌 돈은 이미 오래 전부터 실물이 아닌 디지털 데이터로 저장되어 있다.
    • 실제로 시장에 유통되는 유형의(tangible) 지폐, 동전은 전체 자금의 일부일 뿐
    • 몇몇 은행이 중앙 통제 기관이 되어 무형의 데이터를 관리한다. (중앙통제방식)
    • 은행을 포함한 금융회사들은 생산자와 소비자 간 중개자 역할만을 수행
    • 모든 거래는 중앙 기관(은행)을 통해서 이루어진다.
    • 국가 간 거래라면 중개 기관을 5개 이상 거쳐야 하며, 중개 기관을 지날 때마다 매번 수수료를 지불한다.
  • P2P 시스템 적용 시
    • 금융 거래 시 중개 기관을 거치지 않고 거래 당사자들 간 직접 거래 가능
    • 절차 간편, 속도 빠름
    • 거래 수수료 절감
    • 중개 기관이 끼지 않아 더 신뢰성있고 안정적이다.

3. 그 외 P2P 활용 분야

  • 출생신고, 여권, 운전면허증, 주민등록증, 예금, 학위증명서, 대출, 보험, 노동계약서, 특허권 등
  • 무형의 (intangible), 디지털화된(digitalized) 상품 혹은 서비스 중개 사업

4. P2P 시스템 정의

  • 각각의 개인 PC가 시스템의 노드가 되는 분산 시스템의 일종
  • 각 노드는 서로의 계산 능력(computing power), 저장 공간, 네트워크 대역폭(network bandwidth)등의 자원을 공유한다.
  • 기본적으로 각 노드는 서로 동등한 권리와 역할을 갖는다.
  • 각 노드는 자원의 공급자(supplier)이자 소비자(consumer)가 된다.
  • P2P 파일 공유 시스템 예시
    • 개인 Pc에 저장된 파일은 시스템의 다른 유저와 공유한다
    • 누군가 파일을 다운로드하기 시작하면, 다른 컴퓨터들에 저장된 파일에서 다운로드한다.

P2P 시스템 아키텍처

1. P2P의 혼합 시스템 (분산 + 중앙통제)

  • 순수 분산 P2P 네트워크: 각 노드가 자원을 공유하고 시스템에 분배 가능
  • 중앙 통제 요소가 있는 경우: 혼합 방식(Hybrid System)
    • 다른 노드들 사이를 중재
    • 노드 검색, 식별 기능
    • 중앙 통제 방식과 분산 방식의 장점을 가지고 있다.
    • 예시) Nepster: 모든 노래의 정보가 중앙 DB에 저장된다.

P2P 시스템과 블록체인의 연관성

1. P2P 시스템의 무결성(integrity)를 보장하는 도구, 블록체인

  • 블록체인 = P2P 분산 시스템의 무결성을 보장하는 도구
  • P2P 네트워크의 장점 활용 가능
  • 탈중개화(de-intermediated)를 통한 상업적 잠재력: 순수 분산 방식의 P2P 네트워크 구현 가능

알기쉬운블록체인_3주차_마인드맵

댓글남기기