: 리눅스 재단에서 주관하는 블록체인 오픈소스 프로젝트
etc) 그 밖의 R3,Ripple,Etherenum 등 다른 블록체인 플랫폼도 존재함
# 등장 배경
: 대중에게 많이 알려진 이더리움과 비트코인은 퍼블릭 블록체인 임.
제한 없이 누구라도 블록체인에 참여하여 블록을 생산할 수 있으며 또한 노드가 될 수 있고, 트랜잭션을 생성할 수 있음.
하지만 금융군과 같은 기업,단체는 기밀유지를 위해 허가 인증된 기관만 접근 가능할 필요가 있음.
이러한 필요에 의해 자연스럽게 생성된 것이 "프라이빗 블록체인"
이를 발전시키기 위한 기업들의 연합이 하이퍼레저.
특정인들에게만 프라이빗하게 네트워크 접근을 허용, 보상수단으로 코인이 지급되지 않는 대신, 일반적인 퍼블릭 블록체인보다 더 빠른 네트워크를 구성할 수 있음.
기업에서 하이퍼레저 플랫폼을 적용하더라도 퍼블릭 블록체인과 결합이 가능하기 때문에 호환하여 사용 가능
Hyperledger Fabric
: 하이퍼레저 패브릭 모듈러 아키텍쳐를 이용한 어플리케이션/솔루션 개발을 가능케 하는 파운데이션으로써, 컨센서스나 멤버쉽 서비스 등 핵심 기술 요소들이 plug-and-play 방식으로 구현될 수 있도록 한다. 사실상 '하이퍼레저' 라고 명명할 때에는 하이퍼레저 패브릭을 의미하는 경우가 많을 정도로, 하이퍼레저 프로젝트 전체의 핵심이 되는 부분.
허가형 프라이빗 블록체인(Permissioned Private Blockchain)의 형태를 가진다. 누구나 자유롭게 참여가 가능한 기존의 퍼블릭 블록체인과 달리, 하이퍼레저 페브릭에서는 인증 관리 시스템에 의해 허가된 사용자만이 블록체인 네트워크에 참여할 수 있다.
또한 패브릭에서는 모든 노드가 동일한 원장으로 정보를 공유할 수 있고, 비즈니스 목적에 맞게 공유하고자 하는 노드 간에만 별도의 원장을 생성하는 것도 가능함.
Hyperledger Fabric 구성 요소
1. 분산원장(Distributed Ledger) : 공유하고자 하는 데이터의 변화를 모두 기록해둔 것
2. 원장 - 월드 스테이트 (World State) : 현재의 상태를 저장해 놓은 데이터베이스
- 블록체인 (Blockchain) : 상태변화에 대한 모든 로그 기록이 저장 됨
3. 체인코드(Chaincode) : 원장에 새로운 내용을 업데이트 하거나 기존의 내용을 읽어오기 위해 필요한 것.
# Peer : world state
트랜잭션(거래)을 시뮬레이팅하는 역할
원장과 체인코드를 관리하며 패브릭 네트워크를 구성하는 노드
Peer가 수행하는 역할
1. Endorsing peer - 체인코드 시뮬레이션을 통해 트랜잭션이 적절한지 판단하는 역할을 한다. 3단계의 과정중 Excution에 해당함.
2. Committing peer - 모든 peer 가 수행하는 역할로, 최신 블록에 대한 검증을 한다. 위의 3단계 과정 중 validation 에 해당
3. Anchor peer - 다른 조직과의 통신을 위해 다른 조직의 peer와 통신하는 역할을 한다.
4. Leader peer - orderer와 연결되어 최신 블록을 전달받아 조직 내 다른 peer들에게 전송하는 역할을 함.
# Orderer
거래(트랜잭션)를 모아서 블록 생성 / 블록을 찍어내기만 함
# App
일반 유저 (인증서)
youtube/
유저가 만든 거래(트랜잭션) -> endorsing Peer들한테 보냄 -> peerA,B,C 시뮬레이팅 T/F 반환 (간단히 말하면 투표!) -> 허락을 받은 트랜잭션을 Orderer 한테 보낼 수 있음 -> Orderer는 거래를 모은 후 Peer들 한테 허락을 받았는지만 검증 (안에 어떤 내용이 있는지는 검증하지 않음) -> 검증한 자료를 Peer 들한테 보냄 -> Peer들은 world state를 수정
google/
패브릭 네트워크 참여자들은 peer에 설치되어 있는 체인코드 실행 요청을 통해 peer에 저장된 원장에 데이터를 읽거나 쓸 수 있다. 이러한 요청은 보통 사용자의 편의를 위해 체인코드와 함께 개발되는 dapp을통해 이루어진다. 체인코드 실행을 요청하는 트랜잭셕이 발생하면 3단계 (execution - ordering - validation) 의 과정을 거쳐 원장에 기록되고 사용자에게 결과를 반환함.
App -> Peer 과정
: Check endorsement policies
Peer-> App 검증 후 App -> Orderer
: Proposal package 모아서 Orderer에게 전송
#Ledger
1. 블록체인
2. World state (Peer)
3. Peer만 들고있음(확인)
#Fabric
: 블록체인의 기술을 구현한 프로젝트로 불록체인의 엔진을 만드는 프로젝트라고 생각해도 됨.
모듈방식의 아키텍처를 채용하여, 합의 알고리즘이나 사용자 인증 서비스등 필요한 시점에 추가할 수 있도록 되어 있으며, 체인코드 라고도 부르는 스마트 컨트랙 코드를 통해 적용하고자 하는 산업군 또는 요구조건에 맞는 비즈니스 로직을 개발할 수 있도록 하였습니다.
Ledger : 트랜잭션과 현재 세계 상태를 포함하는 일련의 암호 학적으로 링크 된 블록, 이전 거래의 데이터 외에도 원장에는 현재 실행중인 체인 코드 애플리케이션의 데이터가 포함되어 있음
world state : 트래잭션에 의해서 체인코드가 호출될 때 상태 및 데이터 저장을 위한 key-value 데이터베이스
Chaincode : 다양한 트랜잭션의 유형을 구현한 블록체인에 임베드되는 로직. 개발자에 의해 체인코드가 작성되고 블록체인 네트워크를 구성하는 피어 또는 노드와 인터페이스 되어 있는 클라이언트 애플리케이션을 통해서 체인코드를 실행시킵니다. 체인코드는 트랜잭션을 일으키고 유효성이 확인되면 공유 원장에 추가하고 World state 를 수정함.
출처 : https://brunch.co.kr/@curg/25
'infra > BlockChain' 카테고리의 다른 글
블록체인을 통한 FakeNews 탐지(1) (0) | 2019.10.08 |
---|