블록체인 ‘하이퍼레저’ 파헤치기(2)
– 하이퍼레저 패브릭의 기능과 특징

 

 
현재 우리 정부에서는 국가기관이 발행하는 인증서와 PKI 시스템을 없애려고 노력하고 있지만, 사이버 공간에서 거래를 하고 스마트 계약을 실행하거나 다른 노드(Node)의 거래를 입증하기 위해서는 결국 이 같은 신분증이 필요하다.

 

하이퍼레저에서 신분을 확인하려면

이 신분증의 역할을 하는 것이 하이퍼레저 패브릭(Hyperledger Fabric)의 ‘멤버십 서비스 프로바이더(Membership Service Provider, MSP)’다.

이 모듈은 입증할 수 있는 신분(ID: Identity)인지 여부를 판단하여 블록체인 회원으로 바꾸어주고, 이를 바탕으로 서비스를 실현한다. 참고로 블록체인에서 권한 계정 접속, 거래 시작, 스마트 계약(Smart contract – Chaincode) 실행, 증명(Validation)을 위해서는 PKI서비스를 사용하도록 권장하고 있다.
본인 인증의 수단은 카메라의 얼굴 인식, 지문 등 다양하다. 여러 가지 수단을 통해서 본인 인증이 되면 내부에서는 인증서가 움직이며 블록체인 활동에 참여할 수 있다. 국내 금융 기관18곳에서 공동으로 사용하는 체인 ID를 도입한 것도 블록체인 활동 참여를 위한 것이다.

공공 블록체인(Public Blockchain)과는 달리 패브릭에서는 거래 기록의 기밀성과 개인정보보호를 위해 관련 노드들만 거래 기록을 열람하거나(Retrieve) 접근할 수 있다. 블록체인을 구성하는 노드(Node) 혹은 피어(Peer)는 각 역할(Role)과 접근권한(Access privilege)을 갖고, 이들의 접근 권한은 채널(Channel)관리로 이루어진다.

한정된 도메인에서 거래를 진행할 수 있는 지역 MSP(Local Membership Service Provider)와 이들 지역 MSP의 범위를 넓힌, 높은 수준의 네트워크 회원을 관리하는 Global MSP도 존재한다. 인증서 역시 CA에서 발부하는 인증서와 각 거래마다 발급하는 T-Cert(transaction certificate)가 있다.

 

Fabric의 원장과 거래 서비스

일반적으로 블록체인에 참여하는 고객(Client)은 기본적으로 웹을 통해 노드 혹은 피어에 접속하고, 이들 피어는 역할에 따라 거래제안자(Endorser), 오더러(Orderer), 검증자(Validator)로 거래에 참여할 수 있다. 이들의 역할은 아래 그림1에 잘 나타나 있다.

피어는 원장(Ledger)과 체인코드(스마트 계약)를 호스트하고, 체인코드(스마트계약)에 의해 시작된 거래 내역(Transaction)은 원장에 저장되는데, 이 거래 내역은 바꿀 수 없다. 피어들은 네트워크 공유 정보와 프로세스의 거래를 보증하고, 이 피어들 간의 거래는 오더러의 주선(Coordinate) 및 검증(Validate) 후 원장에 저장 된다.

즉, 사용자(Client)가 웹 응용프로그램을 통해 원하는 거래를 관리하는 한 개, 혹은 다수의 피어에 접속하면, 각 피어의 스마트코드가 거래를 제안하고(Endorse), 순서에 따라 실행(Execute)하고, 검증(Validate) 후 승인이 완료되면 원장에 저장되는 순서를 밟게 된다.

 


[그림 1] 하이퍼레저 패브릭의 각 기능과 역할

 

하이퍼레저 패브릭의 각 기능과 역할을 나타낸 그림1로 좀 더 구체적으로 설명하겠다.

웹에서 응용프로그램(Application software) A가 네트워크 내부의 피어 P1로 연결하고, 체인코드(스마트 계약)인 S1을 제안(Invoke)하고 나면 원장 L1에 접속해 원장의 내용을 질의(Query) 하거나, 혹은 갱신(Update)하게 된다.

거래 제안이 단순 문의(Query)인 경우, 피어 P1은 원장 L1으로부터 받은 결과를 응용프로그램인 A에 보내고 마감하게 된다.

응용프로그램A가 시작한 거래요청이 갱신(Update)의 경우, 각 연관된 피어들에게 거래 제안을 하고, 그 피어들과 관련된 체인코드를 실행하여 그 결과를 오더러 O1에 보낸다. 오더러 O1은 네트워크에서 만들어지는 모든 거래를 수집하여 블록에 넣고 이를 관련된 피어(검증 피어)들에게 배포한다. 물론 거래를 시작한 P1은 이 배포과정에 포함된다.

그림1에서는 피어와 원장, 체인코드 그리고 오더러가 각 1개씩 구성되어 있지만, 실제로는 1개의 응용프로그램에 여러 개의 피어들이 참여하고 피어 하나에 여러 개의 원장과 체인코드가 달려 있을 수 있다. 유의할 점은 응용프로그램 1개는 여러 개의 피어에 접속하여 질의를 하거나 피어들 간 질의/갱신 결과를 가지고 다른 피어들에 접속할 수 있지만, 피어들이 응용프로그램으로부터 들어오는 질의/요청을 처리하기 위해 다른 피어와 직접적으로 소통할 수는 없다. 각 개별 피어는 자신에게 소속된 원장이라도 스스로 갱신할 수 없고, 다른 관련 피어들의 합의(Consensus)를 거쳐서 원장의 갱신이 가능하다.

원장 갱신 과정을 정리해보자. 피어들이 응용프로그램 A에 원장 갱신을 제안하고, 응용프로그램 A는 이 제안 내용을 원장 갱신과 관련된 모든 피어들에게 해당되는 거래들을 모아서 블록으로 만든 다음, 네트워크에서 검증을 위해 오더러를 이용하여 이 블록을 피어들에게 배포한다. 이렇게 검증된 거래들은 각 피어들이 갖고 있는 원장에 갱신을 진행하고, 오더러에 의해 거래 종료가 되면 응용프로그램은 이를 피어들에게 다시 알려 준다.

만약 블록체인이 도입된 후 책 주문을 한다고 치자. 먼저 사용자가 웹을 접속해 책 주문 응용프로그램으로 검색서비스 피어에 접속하여 책을 검색(Query)하고, 마음에 드는 책을 찾아 주문한다. 그러면 관련 지불(Payment), 배송(Book delivery)등의 피어들이 거래에 관여한다. 지불 피어의 경우 원장(Ledger), 스마트 계약(Chaincode)이 실행되고, 이러한 거래 내용은 오더러에 의해 전달(Broadcasting)되어 검증 과정을 거친 뒤 원장을 갱신하고 종료된다. 이 모든 일련의 과정들은 실시간으로 이루어진다.

이 글에서 패브릭의 구조와 거래 과정을 상세하게 소개하는 것은 암호화 화폐의 생성, 거래로 시작된 블록체인이 더 이상 공상이나 가능성에 머무르지 않고 전자 상거래, 금융 거래, 자산 거래, 증명서 발급, 의료 정보의 공유와 같은 거래와 증명을 수용할 만큼 우리 곁에 가까이 왔기 때문이다.

 
※ 글쓴이 마크애니 최종욱 대표는 IT 신기술 연구·개발에 끊임없는 열정을 쏟아 부은 1세대 벤처기업인이다. University of South Carolina에서 인공지능으로 박사 학위 취득, 상명대학교 컴퓨터 과학과 교수를 역임하였다. 현재는 블록체인과 인공지능 기술 개발에  매진하고 있다.

Related Projects

Start typing and press Enter to search

블록체인 그림