하이퍼레저 패브릭
IT위키
더 많은 작업
하이퍼레저 패브릭(Hyperledger Fabric)은 리눅스 재단의 하이퍼레저 프로젝트가 관리하는 기업용 허가형(permissioned) 블록체인 프레임워크로, 참여자의 신원을 인증서로 확인하고 모듈을 바꿔 끼울 수 있게 만든 분산 원장 플랫폼이다.
하이퍼레저 패브릭은 2015년 IBM 이 기여한 코드로 시작해 하이퍼레저의 첫 프로젝트가 되었다. 누구나 익명으로 참여하는 퍼블릭 블록체인과 달리, 네트워크에 참여하는 조직과 노드가 모두 신원이 확인된 구성원이다. 그래서 작업 증명 같은 채굴이 필요 없고 암호 화폐도 두지 않는다. 합의는 주문 서비스(ordering service)가 Raft 같은 장애 허용 알고리즘으로 처리한다. 금융 거래 정산, 무역 금융, 공급망 이력 관리처럼 여러 기업이 같은 장부를 함께 써야 하는 업무에 쓰인다.
패브릭은 공개키 기반 구조(PKI)로 참여자의 신원을 관리한다. 각 조직의 인증기관(Fabric CA 등)이 피어, 주문자(orderer), 클라이언트, 관리자에게 X.509 인증서를 발급하고, 멤버십 서비스 제공자(MSP, Membership Service Provider)는 어떤 인증기관이 발급한 인증서를 그 조직의 구성원으로 인정할지를 정한다.
- 피어가 트랜잭션을 보증(endorse)할 때 자신의 개인키로 서명하고, 다른 노드는 그 인증서로 서명자가 어느 조직의 어떤 역할인지 확인한다
- 즉 공개키 인증서가 피어의 신원 정보를 제공한다
- 참여자가 인증되므로 누가 어떤 거래를 했는지 추적할 수 있다. 익명성은 퍼블릭 블록체인보다 낮다
| 구성 요소 | 역할 |
|---|---|
| 피어(peer) | 원장 사본과 체인코드를 가지고 트랜잭션을 실행·보증한다 |
| 주문자(orderer) | 보증된 트랜잭션의 순서를 정해 블록으로 묶어 피어에 배포한다 |
| 체인코드(chaincode) | 패브릭의 스마트 계약. Go, Java, Node.js 로 작성한다 |
| 채널(channel) | 일부 조직끼리만 원장을 공유하는 독립된 하위 네트워크. 거래 내용을 채널 밖에 숨길 수 있다 |
| MSP | 인증서로 구성원의 신원과 역할을 확인한다 |
패브릭은 실행 - 정렬 - 검증(execute-order-validate) 순서로 트랜잭션을 처리한다.
- 클라이언트가 보증 정책에 정해진 피어들에 트랜잭션 제안을 보낸다
- 피어가 체인코드를 시뮬레이션 실행하고 결과에 서명(보증)해 돌려준다
- 클라이언트가 보증을 모아 주문자에게 보내면, 주문자가 순서를 정해 블록을 만든다
- 각 피어가 보증 정책과 읽기·쓰기 충돌을 검증한 뒤 원장에 기록한다
| 구분 | 하이퍼레저 패브릭 | 비트코인 |
|---|---|---|
| 참여 | 허가받은 조직만(허가형) | 누구나(비허가형) |
| 신원 | X.509 인증서로 확인 | 익명(주소만) |
| 합의 | 주문 서비스(Raft 등) | 작업 증명(채굴) |
| 암호 화폐 | 없음 | 있음 |
| 스마트 계약 | 체인코드(Go, Java, Node.js) | 제한된 스크립트 |