Home [유비쿼터스 컴퓨팅 개론] 7강 - 블록 체인과 핀테크
Post
Cancel

[유비쿼터스 컴퓨팅 개론] 7강 - 블록 체인과 핀테크

💡해당 게시글은 방송통신대학교 정광식 교수님의 '유비쿼터스 컴퓨팅 개론' 강의를 개인 공부 목적으로 메모하였습니다.



학습 개요


  • 블록 체인을 기반으로 하는 가상 화폐 및 전자 결제 서비스는 가장 대표적인 분산 데이터 처리 사례이며, 기존 산업의 제품 및 서비스의 생산 · 소비 · 유통 · 관리 측면에서 다양한 변화를 가능하게 해 주고 있음
  • 특히 금융 부문의 블록 체인 플랫폼은 피할 수 없는 미래 서비스 기술로 인정받고 있음
  • 블록 체인의 개념과 정의, 블록 체인 플랫폼의 형태 및 합의 알고리즘을 알아보고 블록 체인의 구조에 대해서 이해함



학습 목표


  • 분산형 디지털 장부 기술을 대표하는 블록 체인의 정의 및 특징을 이해할 수 있음
  • 다양한 블록 체인 플랫폼을 이해하고 장단점을 설명할 수 있음
  • 블록 체인의 기술적 구조와 처리 기법(합의 알고리즘)을 이해할 수 있음



강의록


블록 체인의 정의

블록 체인의 개념

  • 기존 국가 중심의 화폐 및 결제 시스템은 아마존이나 알리 마켓 같이 국경의 한계를 벗어나 전 세계를 대상으로 하는 시장에는 적합하지 않았음
    • 전자 화폐 혹은 암호 화폐에 대한 수요가 증가하였고, 이를 현실화하기 위한 많은 시도와 연구가 이루어졌음
  • 블록 체인이 시장성과 대중성을 함께 지니게 된 것은 2008년 나카모토 사토시라는 가공의 인물이 발표한 “Bitcoin: A Peer-to-Peer Electronic Cash System” 이라는 논문을 통해 비트 코인이라는 전자 화폐를 처음 소개하였고, 2009년에는 “Bitcoin Core” 프로그램을 공개하였음
  • 블록 체인 기술을 활용한 Bitcoin은 중앙 집중형 구조에서 벗어나서 Bitcoin 네트워크에 참여하는 모든 노드가 암호 화폐에 대한 데이터와 거래 기록을 소유하며, 발생하는 거래의 내용을 검증하고 합의함
    • 분산형 시스템을 통한 안전한 화폐 거래 가능

    image.png

  • 블록 체인은 일정 시간마다 새로운 거래 내역을 담은 신규 블록이 생성되고 이에 대한 합의가 이루어지면 기존 블록에 연결되는 데이터 구조
  • 계속적으로 이루어지는 개인과 개인 사이의 거래 정보를 블록 단위로 저장하고, 구성원들에게 전송된 해당 블록의 유효성이 검증되면 기존 블록 체인에 추가되는 방식으로 관리 됨
  • 블록 체인에서 데이터는 연결 고리 형태의 분산 저장 환경에 저장되므로 이미 블록으로 연결되었다면 임의의 수정이 불가능하고 거래 기록은 모두에게 공개
  • 블록 체인은 중앙에서 전체를 통제하고 데이터를 중앙 서버에 저장하는 중앙 집중형 서버가 존재하지 않고 분산 P2P 네트워크 방식으로 운영 됨
  • 네트워크에 참여하는 참여자가 모두 같은 블록 데이터를 가지게 하는 분산 합의 알고리즘을 기반으로 관리되고 운영 됨
  • 네트워크 참여자는 다음과 같음
    • 채굴자(miner)
      • 네트워크 내에서 보상을 얻는 참여자 노드
    • 일반 참여자
      • 블록 체인 일부분의 데이터만 저장하는 라이트 노드가 있음
  • 모든 네트워크 노드(참여자)
    • 블록 체인에 대한 분산 합의에 참여하여 블록 체인의 데이터 순수성을 보장
    • 블록 체인을 기반으로 발생하는 모든 거래 정보 등의 데이터를 저장하고 저장된 데이터에 대한 합의 알고리즘에 참여함
  • 블록 체인의 합의 알고리즘
    • 기본적으로 모든 참여자가 보유한 거래 내용을 비교하고 확인함
  • 블록 체인은 네트워크에 참여한 모든 참여자가 각자 가지고 있는 데이터를 이용하여 서로의 데이터를 검증하고 저장하기 때문에 임의적인 조작이 불가능

블록 체인 플랫폼의 특징

  • 분산형 장부 관리
    • 중앙 통제 기능을 갖고 있지 않음
    • 거래 기록이 담긴 원장을 분산 된 형태로 관리하고 저장함
    • 정부 기관이나 특정 조직과 같은 제 3자(관리자)에게 관리와 통제를 맡기지 않음
    • 다수의 참여자가 직접 내용에 대한 검증, 승인, 합의에 참여함
    • 모든 참여자에 분산 되어 저장된 블록은 과거의 블록과 연결되어 관리되므로 거래 데이터의 위조를 방지할 수 있음
    • 자산과 그것들을 보유하는 존재를 연결함으로써 이중 이용을 방지하고 누구에게 양도 되었는 지를 정확하게 관리할 수 있음
    • 중앙의 서버가 아닌 다수의 컴퓨터에서 같은 데이터를 분산 관리하여 어느 1개의 데이터가 상실되더라도 다른 참가자의 컴퓨터가 가동되고 있으면 시스템을 유지하는 것이 가능함
  • 불변성
    • 새롭게 생성된 블록은 선행 블록의 해시(암호)가 이용되기 때문에 블록 사이의 순서가 고정 됨
    • 중간에 있는 특정 블록의 수정이나 삭제 작업을 위해서는 모든 참여자의 블록 내용을 모두 삭제하거나 수정해야 하기 때문에 블록에 기록 된 거래 데이터에 대한 삭제나 수정 작업은 불가능함
    • 참여자가 많을수록 수정하거나 삭제해야 할 블록도 증가하므로 임의의 변경(해킹)이 불가능함
  • 가용성
    • 블록 체인 플랫폼의 모든 참여자는 분산 저장된 블록의 거래 데이터의 일부 노드에 문제가 발생하더라도 합의 검증을 통해 거래 데이터의 순수성이 유지되며 24시간 중단되지 않고 접근할 수 있음
    • 전체 블록 체인 플랫폼에서 하나, 혹은 소수의 노드가 잘못되더라도 나머지 노드에 검증된 다른 거래 데이터가 존재하므로 블록 체인 서비스는 중단되지 않고 지속될 수 있음
  • 투명성
    • 새롭게 생성된 블록은 전체 참여자에게 동시에 공유되기 때문에 블록의 거래 데이터는 참여자들에게 공개되므로, 이중 이용을 방지할 수 있고 양도 및 거래도 정확하게 관리될 수 있음
    • 블록 체인을 통해 참여자 간의 상호 검증이 가능하고 거래 데이터에 대한 투명성을 보장하면서도 참여자의 정보는 공개되지 않아 익명성도 함께 제공함

블록 체인의 유형과 구조

블록 체인의 유형

  • 블록 체인의 블록은 데이터를 저장하며, 헤더(header)몸체 부분(body)으로 구성 됨
  • 비트 코인은 일정 시간마다 생성되는 거래 데이터의 단위를 블록(블록들의 순서는 해시 값으로 연결)이라 정의함
  • 블록 체인 관련 알고리즘은
    • 암호화 기술(Cryptography)
    • 전자 서명(Digital Signature)
    • 해시 함수(Hash Function) 등이 있음
  • 분산 P2P 네트워크를 기반으로 다양한 응용 서비스를 제공할 수 있는 플랫폼을 제공함
  • 해시 함수
    • 입력 데이터를 일정한 길이의 해시 값으로 생성하는 기술이며, 데이터의 무결성 검증 및 메시지 인증에 사용 됨
  • 전자 서명
    • 작성자가 그 전자 문서를 작성하였다는 사실과 작성 내용이 송, 수신 과정에서 위 변조 되지 않았다는 것을 증명하는 기술
  • 블록 체인은 참여자의 특성과 권한 범위, 참여자들의 네트워크 참여 방식과 활용에 따라 아래처럼 분류 됨
    • 퍼블릭 블록 체인
    • 프라이빗 블록 체인

      image.png

    • 하이브리드 블록 체인
    • 컨소시엄 블록 체인
  • 퍼블릭 블록 체인(Public Blockchain)
    • 관리자나 권위 있는 조직의 승인 없이 조건을 갖춘 참여자는 누구나 참여할 수 있는 공개 된 블록 체인 플랫폼을 의미함
    • 모든 참여자의 자유로운 거래 데이터 열람과 거래가 허용 됨
    • 각 참여자들은 블록 체인에 저장된 데이터를 복사하고 저장할 수 있음
    • 해시 연산을 통해 새로운 블록의 생성에 참여할 수 있음
    • 참여자들은 언제든지 자유롭게 블록 체인 플랫폼에 참여하거나 탈퇴할 수 있음
    • 작업 증명(Proof-of-Work), 지분 증명(Proof-of-Stake) 등 합의 알고리즘을 기반으로 분산 처리 방식의 거래가 이루어짐
    • 다수의 참여자가 참여하기 때문에 고도화 된 암호화 검증이 필요
    • 트랜잭션 처리 속도 및 데이터 처리 속도가 느려질 수 있음
    • 충분한 크기의 블록 체인을 구성하지 못했을 경우 대규모 악성 봇넷을 블록 체인 네트워크에 가입시켜 데이터를 변경하는 51% 공격이 발생할 수 있음
    • 비트코인, 이더리움 등 대표적인 암호 화폐가 퍼블릭 블록 체인의 유형에 속함
  • 프라이빗 블록 체인(Private Blockchain)
    • 승인 된 참여자만 참여할 수 있는 폐쇄형 블록체인 플랫폼임
    • 블록 체인 네트워크에 참여자를 추가하기 위한 규칙과 규정을 만들고, 규칙과 규정에 따라 참여자에 대한 승인이 이루어지므로 참여자의 인원수에 대한 제한도 가능함
    • 퍼블릭 블록 체인에 비해 트랜잭션 처리 속도 및 데이터 처리 속도가 빠름
    • 네트워크 확장이 용이하여 사용자가 원하는 형태로 구축할 수 있음
    • 블록 체인 내에서 접근을 컨트롤러 노드가 담당하기 때문에 신뢰성 문제가 발생할 수 있음
    • 참여자가 블록을 직접 생성하고 관리하는 방식이기 때문에 참여자가 블록체인 시스템을 직접 관리하고자 하는 경우에 적합함
  • 컨소시엄 블록 체인(Consortium Blockchain)
    • 같은 목적을 갖는 참여자가 컨소시엄(블록 체인 네트워크)을 구성하여 블록을 생성할 수 있는 연합형 블록 체인임
    • 승인된 참여자로 구성되므로 프라이빗 블록 체인으로 분류될 수도 있지만, 각 신뢰성을 갖춘 참여자들이 퍼블릭 블록 체인을 구성할 수 있어 하이브리드 블록 체인으로 분류될 수도 있음
    • 분산형 네트워크를 유지하면서 제한 된 참여를 통해 보안을 강화할 수 있음
    • 퍼블릭 블록 체인에서 제기된 느린 데이터 처리 속도네트워크 확장성의 문제도 해소해 줌
    • 네트워크에서 향상 된 사용자 정의 및 자원 제어 기능을 제공함
    • 퍼블릭 블록 체인에 비해 안전하고 높은 확장성을 제공할 수 있음
    • 신뢰 받는 참여자가 감염될 경우, 일부 네트워크 전체에 문제가 발생하여 핵심 노드에 대한 추가적인 보안 정책이 필요함
  • 하이브리드 블록 체인(Hybrid Blockchain)
    • 퍼블릭 블록 체인과 프라이빗 블록 체인의 단점은 보완하고 장점을 활용하려는 혼합된 모델임
    • 투명성, 불변성, 탈 중앙화 등 퍼블릭 블록 체인의 중요 기능을 제공함
    • 프라이빗 블록 체인과 유사하게 블록 체인 네트워크를 구성하려는 목적에 따라 규칙을 변경할 수 있음
    • 네트워크에 참여한 사용자의 정보를 외부에서 확인할 수 없는 익명성을 제공하기 때문에 회사나 기관의 정보가 유출되는 것을 방지할 수 있음
    • 권한을 가진 노드가 퍼블릭 블록 체인에서 트랜잭션을 쉽게 검증할 수 있으나 노드의 투명성을 보장하지 못하고, 내부 노드에 대한 검증이 없어 보안에 취약할 수 있음

블록 체인의 구조

  • 블록 체인의 블록은 각 블록 체인 플랫폼에 따라 구조적으로 다름
  • 블록 체인을 유지하고 서비스를 제공하기 위해 공통적으로 가지고 있는 블록의 구조와 데이터가 있음
  • 새롭게 생성된 블록은 선행 블록에 대한 해시 값을 포함하고 있고 선행 블록은 그 자신의 선행 블록에 대한 해시 값을 포함함
  • 블록 데이터를 통해 블록의 연결성이 만들어지고, 기존 거래 데이터에 대한 블록 체인의 안정성이 확보되며, 블록은 계속적으로 연결된 체인 구조를 가지게 됨
  • 각각의 블록은 선행 블록에 대한 해시 값을 통해 블록 체인의 링크 구조를 유지함
  • 제네시스 블록(genesis block)
    • 블록 체인에서의 첫 번째 블록
  • 블록에는 거래나 부모 블록으로 이어지는 해시 값 등의 정보가 저장됨
  • 블록의 구조는 다음과 같음

    필드필드 크기(바이트)내용
    블록 크기(Block Size)4다음 필드부터 블록 끝까지의 데이터 크기(바이트)
    블록 헤더(Block Header)80블록 헤더 정보
    트랜잭션 카운터(Transaction Counter)1 ~ 9블록에 포함된 트랜잭션의 수
    트랜잭션(Transactions)4가변적 크기의 트랜잭션 목록

    image.png

  • 블록 헤더의 구조는 다음과 같음

    필드필드 크기(바이트)내용
    버전(Version)4소프트웨어 혹은 프로토콜 버전 정보
    부모 블록 해시(Previous Block Hash)32부모 블록의 해시값
    머클 루트(Merkle Root)32머클 트리 루트의 해시값
    생성 시간(Timestamp)4블록을 생성한 시간(Unix time)
    난이도(Difficulty Target)4블록을 생성할 때 작업증명의 난이도
    논스(Nonce)4작업 증명에서 사용하는 카운터

    image.png

  • 블록 체인 플랫폼에서 특정 블록을 찾기 위해서는 식별자가 필요함
  • 블록의 식별자는 블록 해시 값블록 높이 값으로 정의됨
  • 블록 해시 값
    • 블록 헤더를 암호화 알고리즘인 SHA-256 알고리즘을 이용하여 얻어낸 해시 값임
  • 블록 높이
    • 블록 체인에서의 블록의 위치를 의미함
  • 제니시스 블록의 블록 높이 값은 0
  • 후행 블록이 덧붙을 때마다 1씩 증가

    image.png

  • 블록 체인의 블록은 일반적으로 1MB의 크기이며, 길이는 계속적으로 증가하고 있음
  • 과거의 모든 블록을 저장하거나 관리하는 것은 많은 컴퓨팅 자원의 부하를 발생 시킴
  • 만일 과거의 모든 블록을 포함한다면 블록 체인의 크기는 매우 커질 것임
    • 참여자가 스마트폰이나 태블릿 컴퓨터를 사용한다면 저장 용량이 부족하여 모든 블록을 저장할 수 없게 됨
  • 저장 용량을 고려하여 트랜잭션을 직접 저장하는 블록은 저장하지 않고 블록 헤더만 저장하는 노드SPV(Simple Payment Verification node) 노드라고 함
  • 과거의 모든 블록에 저장 된 트랜잭션을 저장하는 전체 블록 체인을 풀블록 체인(Full Blockchain)이라 함
  • 풀 블록 체인을 저장하는 노드를 풀 노드(Full Node)라고 함

블록 체인의 합의 알고리즘

  • 블록 체인의 참여자들은 생성 된 트랜잭션을 검증하여 블록을 생성, 공유, 저장함
  • 트랜잭션의 검증 방법으로 합의 알고리즘(Consensus Algorithm)을 사용함
  • 블록 체인에서 사용하는 일반적인 합의 알고리즘
    • 작업 증명 합의 알고리즘
    • 지분 증명 합의 알고리즘
    • 프랙티컬 비잔틴 장애 허용 합의 알고리즘
  • 작업 증명 합의 알고리즘 Proof-of-Wok
    • 특정 해시 값을 만드는 입력 값을 찾아내기 어렵다는 점을 이용함
    • 블록 체인 참여자들이 특정 범위를 만족하는 해시 값을 만드는 Nonce 값을 무작위 대입하여 찾아냄
    • Nonce 값을 찾아낸 참여자가 Nonce 값과 거래 데이터를 포함하는 블록을 생성함
    • 블록의 거래 데이터가 검증을 받은 후 블록으로 생성되기까지 시간이 오래 걸리기 때문에 1초 당 트랜잭션 처리 수(TPS; Transaction per Second)가 낮음
    • 블록 체인의 작업 증명 합의에 참여하는 전체 컴퓨팅 자원의 51% 이상을 가진 참여자들이 동시에 공격을 받게 되면 위조 된 거래 데이터가 블록으로 생성 될 수 있음
  • 지분 증명 합의 알고리즘 Proof-of-Stake
    • 많은 지분을 가진 참여자가 블록 검증에 더 많은 영향력을 행사할 수 있도록 함
    • 작업 증명 합의 알고리즘에 비해 훨씬 적은 연산 량이 요구되고, 비교적 높은 TPS를 가짐
    • 작업 증명 합의 알고리즘과 비슷하게 블록 체인에 존재하는 지분의 51% 이상을 소유하는 참여자들이 공격을 받게 되면 위조 된 데이터가 블록으로 생성될 수 있음
  • 프랙티컬 비잔틴 장애 허용 합의 알고리즘
    • PBFT; Practical Byzantine Fault Tolerance
    • 블록 체인 참여자가 발생 된 트랜잭션에 대해 각자 검증함
    • 검증 결과에 대해 참여자의 3분의 2 이상이 동의하면 그 트랜잭션을 신뢰할 수 있다고 결정하고 블록을 생성하여 저장함
    • 모든 참여자가 블록을 검증하고 그 결과를 공유하기 때문에 노드가 많아질수록 통신량이 급격히 증가하고 TPS가 감소하게 됨

블록 체인과 핀테크

블록 체인 적용 분야

  • 블록 체인 플랫폼과 이를 기반으로 하는 가상 화폐 및 전자 결제 서비스는 기존 산업의 제품 및 서비스의 생산, 소비, 유통, 관리 측면에서 다양한 변화를 선도하고 있음
  • 적용 분야 측면
    • 금융, 제조, 유통 등과 같은 산업 전반에 걸쳐 파생 효과를 보여주고 있음
    • 업종이나 민간, 공공에 대한 제한이 없이 대부분의 사회 영역에 걸쳐 적용될 것으로 전망되고 있음

블록 체인 금융 부분

  • 금융 부분의 블록 체인 기술 적용은 가장 많은 파생 서비스를 만들어내고 있음
  • 현재 블록 체인 기반의 정보 통신 서비스 중에서 기존의 정보 통신 서비스와 차별화 되는 가장 큰 특징은 여러 기업과 기관들이 컨소시엄 형태의 블록 체인 기술을 이용한 솔루션을 개발하려는 것임
  • 블록 체인 솔루션 개발에 대한 컨소시엄 형태의 접근은
    • 금융 서비스
    • Bass(Blockchain-as-a-Service) 형태의 솔루션
    • 보험 컨소시엄 등이 있음

블록 체인 공공 분야

  • 공공 분야에서는 전자 공문서의 관리, 전자 투표, 개별 사용자 인증 등과 같은 분야에서 적용되고 있음
  • 블록 체인 기술은 분산 장부 기술(DLT; Distributed Ledger Technology)로서 안전성과 효율성을 인정 받으려 그 범위를 넓히고 있으며, 가상 화폐 뿐만 아니라 사물 인터넷, 전자 서명과 인증, 물류 등의 다방면에 걸쳐 적용되고 있음

정리 하기

  • 블록 체인은 일정 시간마다 새로운 거래 내역을 담은 신규 블록이 생성되고, 이에 대한 합의가 이루어지면 기존 블록에 연결(chain)되는 데이터 구조임
  • 핀테크는 ’금융’과 ‘기술’이 결합한 서비스 또는 그런 서비스를 하는 회사를 가리키는 말임



연습 문제


  1. 블록 체인의 특징이 아닌 것은  무엇인가?

    a. 자동성

    • 블록 체인의 특징
      • 분산형 장부 관리
      • 투명성
      • 가용성
  2. 승인된 참여자만 참여할 수 있는 폐쇄형 블록 체인 플랫폼은 무엇인가?

    a. 프라이빗 블록체인

  3. 다음 빈칸에 알맞은 것은 무엇인가?

    1
    
     블록체인 플랫폼에서 특정 블록을 찾기 위해서는 식별자가 필요하며, 블록의 식별자는 (   )과 (   )으로 정의된다.
    

    a. 블록 해시 값, 블록 높이 값



정리 하기


  • 블록 체인
    • 블록 체인은 일정 시간마다 새로운 거래 내역을 담은 신규 블록이 생성되고 이에 대한 합의가 이루어지면 기존 블록에 연결되는 데이터 구조
    • 계속적으로 이루어지는 개인과 개인 사이의 거래 정보를 블록 단위로 저장하고, 구성원들에게 전송된 해당 블록의 유효성이 검증되면 기존 블록 체인에 추가되는 방식으로 관리됨
  • 네트워크 참여자
    • 채굴자(miner)
      • 네트워크 내에서 보상을 얻는 참여자 노드
    • 일반 참여자
      • 블록 체인 일부분의 데이터만 저장하는 라이트 노드
  • 블록 체인 플랫폼의 특징
    • 분산형 장부 관리
    • 불변성
    • 가용성
    • 투명성
  • 블록 체인은 블록 체인의 블록은 데이터를 저장하며, 헤더(header)와 몸체 부분(body)으로 구성 됨
    • 각각의 블록은 선행 블록에 대한 해시 값을 통해 블록 체인의 링크 구조를 유지함
    • 블록의 식별자는 블록 해시 값(블록 헤더를 암호화 알고리즘인 SHA-256 알고리즘을 이용하여 얻어 낸 해시 값)과 블록 높이 값(블록 체인에서 블록의 위치)으로 정의됨
  • 블록 체인은 참여자의 특성과 권한 범위, 참여자들의 네트워크 참여 방식과 활용에 따라 분류됨
    • 퍼블릭 블록 체인
    • 프라이빗 블록 체인
    • 하이브리드 블록 체인
    • 컨소시엄 블록 체인
  • 블록 체인에서 사용하는 일반적인 합의 알고리즘
    • 작업 증명 합의 알고리즘
    • 지분 증명 합의 알고리즘
    • 프랙티컬비잔틴 장애 허용 합의 알고리즘

[유비쿼터스 컴퓨팅 개론] 6강 - 유비쿼터스 네트워크

[파이썬 프로그래밍 기초] 7강 - 반복 구조