[하이퍼레저 패브릭] 1장. 블록체인

dsunni·2020년 7월 10일
1
post-thumbnail

하이퍼레저 패브릭 실전 프로젝트

「DID 기반 학생증 발급 서비스」 한이음 프로젝트에 앞서 본 교재를 보며 공부한 기록입니다.


1장 블록체인

블록체인이란?

블록체인이란 블록을 연결한 모음으로, 블록 하나하나에 일정 시간 동안 이루어진 거래 내역을 담는 일종의 금융 장부이다.

블록체인 기술은 P2P 네트워크에서 발생하는 모든 거래 정보를 담고 있는 원장노드라고 불리는 모든 컴퓨터가 분산 저장 및 업데이트하고 무결성을 유지하도록 하는 기술이다.



블록체인의 구조와 동작

  • 하나의 블록에는 이전 블록의 거래정보(해시값)과 현재의 거래정보(해시값)이 포함되어 생성된다.
  • 이처럼 블록들이 서로 연결되어있고, 해시 함수의 암호학적인 특성을 이용하기에 무결성을 보장한다. 또한 거래 정보가 공개되어있어 투명하게 관리할 수 있다.
  • 만약 누군가 해시값을 변경해 조작을 시도하더라도 블록체인의 합의 과정에 의해 조작된 블록은 자연스레 제거된다.


블록체인의 특징과 장점

분산형 원장 구조

블록체인은 분산형 원장 구조이며 네트워크의 참가자들은 모두 거래내역을 기록한 원장을 소유한다.

따라서 블록체인 기술을 이용하면 별도의 거래 관리 기관 없이 분산화된 거래장부인 블록체인에 의해 작동된다.


장점

  • 낮은 시스템 유지비용
  • 해킹 원천 차단 가능

특징

구분주요 내용
투명성모든 데이터가 대등한 네트워크에 저장/공개되어 있다
분산성P2P 분산형 네트워크 환경해서 거래해 제 3자의 검증 없이도 거래에 대한 신뢰 확보
확장성네트워크 참여자는 누구나 구축, 연결, 확장이 가능
보안성원장을 모두에게 공유해 데이터 조작 방지
안전성일부 참가 시스템 오류시 전체 네트워크 영향 미미


블록체인 원리

블록체인 네트워크 구성요소

  • 노드 : 트랜잭션 내역 보관, 트랜잭션 승인, 분산 합의
  • 클라이언트 : 트랜잭션 생성, 거래 내역 확인
  • 작업 증명
    • 블록이 생성되는 합의 과정에서 가장 많은 작업을 한 노드가 어떤 기록이 진짜인지 결정할 수 잇는 권한을 더 많이 가짐
    • 새로운 블록 추가시 블록 해시를 계산해야하는데, 이때 블록 헤더 정보 중 하나인 논스(Nonce)값을 구해야한다. 이 논스 값을 구하는 것이 작업 증명이다.

블록의 구성

블록은 일반적으로 블록해시, 블록헤더와 거래정보 두 가지로 구성돼있다.

블록 해시는 블록의 식별자 역할을 하는데, 블록 전체가 아닌 블록 헤더를 해싱한 값이다.

  • 블록 헤더
    • 이전 블록 해시
    • 버전 : 소프트웨어/프로토콜 버전
    • 머클해시(Merklehash) : 개별 거래 정보의 거래 해시를 이진트리 형태로 구성할 때, 트리 루트에 위치한 값
    • 비트 : 난이도 조절용 수치
    • 시간 : 블록 생성 시간
    • 논스 : 최초 0에서 시작해 조건을 만족하는 해시값을 찾을 때까지 1씩 증가하는 계산 횟수
  • 거래 정보 (입출금 정보)
    • 보낸 사람 주소
    • 받는 사람 주소
    • 금액

블록체인 분류

퍼블릭 블록체인

비트코인, 이더리움과 같은 누구나 네트워크에 참여할 수 있는 블록체인

  • 소유자가 모든 권한을 가지는 형태

  • 익명의 다수의 사용자가 참여하므로 고도화된 암호화 검증이 필요하다.

  • 단점

    • 네트워크 확장이 어렵고 속도가 느리다.
    • 중앙 제어가 필요한 엔터프라이즈 영역의 서비스에 부적합

프라이빗 블록체인

하나의 기관에서 독자적으로 사용하는 블록체인

  • 주체 식별이 가능하다.
  • 거래 처리 속도가 빠르고 네트워크 확장이 용이해 커스터마이징 가능하다.
  • 원하는 참여자를 네트워크에 등록, 제외 또는 권한 설정이 가능하다.

컨소시엄 블록체인

허가된 여러 기관들이 컨소시엄을 이뤄 구성하는 블록체인

  • 퍼블릭과 프라이빗의 중간 형태
  • 미리 선정된 노드가 권한을 가짐
  • 분산형 구조 + 제한된 참여
profile
https://dsunni.tistory.com/ 이사갑니답

0개의 댓글