[BlockChain/하이퍼레저 패브릭으로 배우는 블록체인] 2장 정리

yujeongkwon·2023년 5월 1일
0

BlockChain

목록 보기
1/10

ㅋㅋ 요즘 떠오르는 블록체인 공부해보자고~(캡디 주제임ㅋㅋ ㅠ) 기본 용어 먼저 정리.

2.1 💖 하이퍼 레저 패브릭 구성요소

2.1.1 Peer

peer에 분산원장과 체인코드를 저장하고 설치된다. 따라서 하이퍼레저 패브릭의 참여자는 분산원장과 체인코드에 peer를 통해서만 접근할 수 있다. peer는 여러 개의 체인코드와 분산원장을 가질 수 있다.

2.1.2 Chaincode

하이퍼레저 패브릭에서 데이터를 분산원장에 기록하거나 읽기 위해서는 체인코드가 필요하다. 주로 비즈니스 모델에 맞는 분산 애프리케이션과 함께 개발되어 사용된다. 하이퍼레저 패브릭은 시스템 레벨에서 수행되는 시스템 체인 코드라는 특수 체인코드가 있다. 여기에는 QSCC(read), CSCC(채널 설정), LSCC(체인코드의 설치부터 인스턴스화까지 모든 일련의 과정)는 사용자의 CLI 명령어로 실행되며, ESCC(보증), VSCC(검증)는 Endorsing peer와 Committing peer에 의해 실행된다.

2.1.3 DApp

보통 비즈니스의 모델에 알맞은 분산 애플리케이션(DApp)과 함께 개발하여 사용된다. 단어 그대로 분산 환경에서 비즈니스 거래를 편하게 제공하기 위해 사용되는 애플리케이션이다. 사용자는 DApp을 통해 peer 네트워크의 체인코드를 실행한다. 이는 크게 읽기와 쓰기로 구분할수 있다.

2.1.4 Endorsement Policy

보증 정책은 트랜잭션을 만드는 클라이언(DApp)와 peer 간에 작용한다. 블록에 트랜잭션이 포함되기 위해 보증 정책에 지정된 peer의 허가를 받아야 한다. 보증 정책은 모든 peer의 허락, 부분 peer의 허락, 하나의 peer의 허락 등 설정할 수 있다. 또는 그룹 구서우언에 가중치를 주는 방법도 있다.

2.1.5 Organization

하이퍼레저 패브릭은 비즈니스 이해관계가 같은 다수의 기관이나 기업 등의 조직이 구축하는 프라이빗 블록체인이므로, 조직이 블록체인의 네트워크를 구축하는 것은 중요하다.

2.1.6 Channel

조직이 비즈니스 네트워크 구축하였고, 조직의 데이터센터에 peer 노드 설치되었을 때, 분산원장은 각 채널당 하나씩 존재하여 채널에 소속된 peer간 공유한다. 즉 다른 채널에 있는 peer 간에는 서로다른 분산원장이므로 정보를 공유할 수 없다. 채널 생성은 CSCC를 호출하여 생성한다.

2.1.7 Ledger

하이퍼레저 패브릭의 분산 원장은 현재 상태를 나타내는 World state와 원장의 생성부터 현재까지 사용 기록을 저장하는 블록체인으로 구분된다.

World state :

  • 블록 체인에 포함되기 전에는 체인코드를 통해 조회/변경/삭제 가능
  • 분산원장의 현재 값
  • 모든 거래 기록 저장
  • 데이터 베이스 형태 : LevelDB(key-value 저장 방식)와 Jason 포맷의 CouchDB 중 선택
  • 블록체인과 분리되어 구축

블록체인 :

  • 블록체인은 절대 수정 불가능
  • append-only 방식
  • 블록 : 정해진 용량 또는 일정 시간 동안 발생한 트랜잭션
    • 각 블록마다 Header, Data, MetaData 필드 존재
  • 블록체인 : 생성된 블록들이 합의 과정 후 암호학적 기법을 통해 만들어진 순서대로 연결되어 저장

2.1.8 Gossip

하이퍼레저 패브릭 네트워크에서 Gossip 프로토콜은 2가지 기능을 한다.

  1. peer은 계속해서 브로드캐스트 메시지를 생성해 동일 채널에 있는 peer 상태 확인
  2. peer은 동일 채널 내 peer들을 임의로 선택하여 분산원장 전송

2.1.9 Identity

노드들이 서로의 신원을 확인할 때 PKI기반의 디지털 인증서로 확인한다. PKI란 디지털 인증서를 제공/생성/관리를 안전하게하는 기술이다. CA라고 불리는 네트워크 노드 아래에서 PKI가 관리된다.

CA는 안전하게 디지털 인증서를 관리하는 기관이다. 이는 필요한 사용자에게 디지털 인증서를 발급/저장/삭제해 주는 역할을 한다.

PKI가 가지고 있는 핵심 구성요소

  • 디지털 인증서
  • 공개키(신원 인증) / 비밀키(데이터 암호화)
  • CA: 인증 노드
  • Certificate Revocation List : 폐기된 인증서에 대한 목록

하이퍼레저 패브릭에서 제공하는 cryptogen과 Febric_CA 등을 활용해 다음의 디지털 인증서를 생성

  • PKI 기반 peer를 위한 디지털 인증서
  • orderder를 위한 디지털 인증서
  • client를 위한 디지털 인증서

2.1.10 MSP

MSP는 Identity 기술을 바탕으로 한 멤버쉽 관리 기술이다. MSP를 이용하여 orderer, peer, Fabric CA, Admin 등의 역할과 권한, 소속 등을 정의한다. local MSP와 channel MSP로 구분된다.

  • local MSP : 노드의 역할을 부여, 모든 네트워크 노드는 하나 이상 local MSP 정의
  • channel MSP : 채널 구성원들에게 멤버십 정의, 권한을 부여할 때 사용

2.1.11 Orderer

  1. 트랜잭션 제출 : DApp이 Endorsing peer에게 트랜잭션 제출부터 체인코드 실행되기까지 단계
  2. 블록 패키징 : orderer가 트랜잭션 수집 후 정렬하여 최신 블록 생성
  3. 검증 : 생성한 최신 블록을 각 조직의 peer들에게 전달 후, peer은 해당 블록 검증

오더링 서비스

Kafka 분산 메시징 시스템을 이용해 구현되어 있음.

Kafka : Pub-Sub 모델, Produser로 부터 Consumer가 단위가 Topic인 구분된 메시지를 받는 분산 메시징 시스템

Producer(orderer)가 topic(분산원장) 메시지를 전달하면 Kafka 클러스터는 받은 topic 메시지를 순차정렬하여 저장한다. topic 메시지는 여러 파티션에 복사되어 저장되어있다. 즉 누가 잃어버려도 찾을 수 있어 안정성이 높다. 이 후, 메모리가 가득 찼거나 일정시간이 지나면 Consumer(peer)에게 전달한다.

profile
인생 살자.

0개의 댓글