관리 메뉴

평행우주 : world 1

[프로젝트 분석] 하이퍼레저 패브릭 아키텍처 분석(Hyperledger Fabric) 본문

텃밭 1 : BlockChain/프로젝트 분석

[프로젝트 분석] 하이퍼레저 패브릭 아키텍처 분석(Hyperledger Fabric)

parallelworlds 2022. 3. 4. 04:50

하이퍼레저 패브릭

  • 리눅스 재단이 이끄는 오픈소스 블록체인 프로젝트인 하이퍼레저(Hyperledger) 프로젝트 중 하나
  • 블록체인 프레임워크로 리눅스 환경에서 호스팅
  • 모듈형 아키텍처로 응용 프로그램 또는 솔루션을 개발하기 위한 토대가 됨
  • 합의 및 회원서비스와 같은 구성 요소를 플러그 앤 플레이(Plug & Play) 방식으로 지원
  • 컨테이너 기술을 활용해 시스템의 응용 프로그램 로직을 구성하는 '체인코드(Chain Code)'라는 스마트 계약을 호스팅
  • 기업용 블록체인이므로, 참여 주체가 기관
  • 기관별로 같은 block, transaction, state 공유 > 비트코인, 이더리움 등은 네트워크 전체가 공유하는 데 반해, 하이퍼레저는 같은 기관끼리 공유

하이퍼레저 패브릭은 제한된 도메인 특정 언어(DSL, Domain Specific Language)가 아닌 Java, GO, Node.js와 같은 범용 프로그래밍 언어로 작성된 스마트 계약을 지원하는 최초의 분산 원장 플랫폼이다.

 

즉, 대부분의 기업은 이미 스마트 계약을 개발하는 데 필요한 기술을 갖추고 있으며, 새로운 언어 또는 DSL을 배우기 위한 추가적인 교육이 필요하지 않다. 플랫폼의 차별화 요소 중 가장 중요한 기능은 특정 유스 케이스와 트러스트 모델에 맞게 플랫폼을 보다 효과적으로 사용자 정의할 수 있는 플러그 가능한 합의 프로토콜을 지원한다는 것이다.

 

또한 비용이 많이 드는 광업을 유인하거나 스마트 계약 실행을 지원하기 위해 원시 암호 화폐를 필요로 하지 않는 합의 프로토콜을 활용할 수 있다. 암호화된 화폐를 피하면 몇 가지 중요한 위험, 공격 경로가 줄어들고 암호화 마이닝 작업이 없으면 다른 분산 시스템과 거의 동일한 운영 비용으로 플랫폼을 구축할 수 있다.

 

하이퍼레저 패브릭은 오픈소스와 협업 소프트웨어 개발 접근 방식으로만 블록체인 기술을 주류 상업적 채택으로 가져오는 데 필요한 투명성, 수명, 상호 운용성 및 지원을 보장할 수 있다.

 

하이퍼레저 패브릭은 은행 업무, 금융, 보험, 의료, 인적 자원, 공급망 및 디지털 음악 전달을 포함하여 광범위한 산업 사용 사례에 혁신, 다기능성, 최적화 등을 가능하게 하는 고도로 모듈화되고 구성이 가능한 아키텍처를 갖춘다.

 


 

 

비트, 이더와 차이

1. 비트 이더

  • 블록 생성자 = 스마트 컨트랙트 처리 노드
  • 개인키 기반

 

2. 패브릭

  • 블록생성자 != 스마트 컨트랙트 처리 노드
  • oderer = 블록 생성만 (보관도 하긴 함)
  • peer = 시뮬레이팅 블록체인 보관
  • 인증서 기반 (중간 관리자 존재)
  • 하나의 키 값을 한 블록에서 여러 번 바꿀 수 없다 (일반적인 방식으로)

 

합의 방식

  • 투표
  • BFT
  • 3명 중 2명이 승낙하면 합의

 

네트워크구성요소

  • ledger : 채널 당 한 개씩 존재하는 장부 (퍼블릭의 경우 장부 1개)
  • smart contract :  chaincode 사용
  • peer :  트랜잭션 시뮬레이팅 (nodes)
  • orderer : 트랜잭션을 모아서 블록 생성 후 peer에 블럭 전파
  • app(유저) : 거래를 만들어서 peer에게 허락을 받음 

 

peer 

1.1)endorser peer 

  • 체인코드를 배포하기 때문에 모든 노드가 체인코드를 설치할 필요가 없다
  • 트랜잭션 검증 + 체인코드 실행 & 결과 시뮬레이션
  • 트랜잭션을 받아서 보증해주는 역할
  • 스마트 컨트랙트의 endorsement policy에 정의된 peer

1.2)commit peer 

  • ledger를 단지 유지한다
  • 모든 peer는 장부를 저장하고 있기 때문에 모두 commit peer이다
  • 스마트컨트랙트는 가지고 있지 않아도 된다

2.1)anchor peer

채널 생성 시에 설정되는 peer들

한 채널에 해당되는 peer들을 묶어주는 peer

peer끼리 채널로 묶어주게 된다

anchor peer에 등록하게 되면 다른 peer가 찾아볼 수 있다

 

2.2)orderer peer

  • 중앙 소통 채널
  • 네트워크 요청을 정리해 블록을 생성하고 다른 블록에게 전파
  • 메세지 기반 알고리즘으로 이루어짐
  • solo > 개발용으로 사용
  • kafka > 제품용으로 사용

2.3)CA node

  • 인증 담당 노드
  • 하이퍼레저 패브릭은 허가 받은 시스템만 참가 가능
  • CA 노드가 인증을 담당하고, PKI방식을 인증시에 사용하는 PKI 관리 노드
  • 하나의 root certificate를 각 멤버에게 발행하며
  • 하나의 enrollment certificate를 각 권한을 얻은 유저에게 발행해준다

 

 

ledger

  • world states(peer)
  • peer만 활용 용도로 들고 있음(oderer의 경우 배포 목적)
  • 스마트 컨트랙트(endorser peer)를 통해서 접근

 

작동방식

  • 1) 유저가 endorsing peer와 연결
  • 2) 거래를 만들어서 endorsing peer에게 거래를 던진다
  • 2.1) 2.2) endorsing peer는 거래를 가지고 시뮬레이팅을 한다 
  • 3) endorsing peer가 시뮬레이팅을 마치고 결과를 준다(ok)
  • 4) 유저는 검증된 거래들을 모아서 orderer에게 준다
  • 4.1) orderer는 거래를 확인하고 블록을 만들어서 commit peer에게 전달한다
  • 4.2) peer는 블록을 받아 ledger를 업데이트 한다

 

 

 

 

 

 

 

 

 

하이퍼레저 패브릭 워크플로우

  1.  org의 참가자들은 client application을 통해 트랜젝션을 발생 시킨다
  2. client application은 트랜젝션 호출 요청을 endorser peer로 보낸다
  3. endorser peer는 영수증의 상세사항 등을 보고 트랜잭션을 검증한다. 그리고 체인코드를 실행한다. 이후 client에게 트랜잭션을 approve하너가 reject해준다
  4. client는 이제 승인된 트랜잭션을 orderer peer에게 보내서 제대로 정렬되고 블록에 포함되게 한다
  5. orderer node는 트랜젝션을 블록 안에 넣고 나서 서로 다른 org에 있는 anchor 노드에게 보낸다
  6. anchor 노드는 블록을 다른 peer들에게 전파시키고, 전파를 받은 각각의 peer들은 그들 local의 ledger를 최신 블록으로 유지시킵니다. 따라서 모든 블록들이 동일하게 유지됩니다

 

 

 


 4 가지 컴포넌트

  하이퍼레저 패브릭은 컴포넌트 형태로 구성되어 있다

신원 확인

  • 프라이빗 블록체인은 참여 권한이 있는 참여자만이 참여할 수 있는 폐쇄형 구조다.
  • 그래서 참여자들이 분산원장에 데이터를 기록, 수정, 삭제할 수 있는 인증서를 발급받기 위한 기능이 필요하다.
  • 처음 참여할 때 받는 'Enrollment Certificate'와
  • 호출 시 랜덤으로 생성되는 'Network Certificate'으로 두 가지 형태가 있다.


원장(Ledger)

  • 분산원장은 프라이빗 블롯체인의 기본 구성요소로 블록체인에 저장하기 위한 데이터를 관리하는 분산원장 데이터베이스이며,
  • 이를 관리 및 처리하기 위한 기능으로 구성되어 있다.

 

거래(Transaction)

  • 프라이빗 블록체인에서 서비스나 처리에 생성되는 트랜잭션을 관리하는 기능이다. 
  • 거래에서는 트랜잭션을 처리하는 부분이 기본이다.
  • 대용량 트랜잭션을 처리하기 위해 기본 버전 0.6의 아키텍처 구조를 획기적으로 변경한 새로운 아키텍처를 버전 1.0부터 제공하고 있다.
  • 이외에 보증피어 기능이라는 'Endorsement Validation'과
  • 트랜잭션을 배치 처리하고 블록을 생성해 프라이빗 블록체인망에 참여하고 있는 모든 노드들에 분기하는 역할을 하는 오더링(Odering) 서비스가 있다.

 

 

스마트 컨트랙트(Smart Contract)

  • 블록체인에서 중요한 기능인 스마트 컨트랜트는 기업 및 컨소시엄으로 구성된 서비스에 맞게 블록체인을 활용할 수 있도록 로직을 구현하는 기능이다.
  • 기본적으로 로직을 개발할 수 있도록 하이퍼레저 버전 1.1부터 GO, Node.js, Java를 지원한다.
  • 그리고 개발 언어의 장벽을 없애기 위해 하이퍼레저 패브릭은 하이퍼레저 컴포저(Hyperledger Composer)라는 별도 개발 툴을 제공하고 있다.
 

 

Comments