검수요청.png검수요청.png

"하이퍼레저 패브릭"의 두 판 사이의 차이

위키원
이동: 둘러보기, 검색
잔글
(거래 처리 순서)
35번째 줄: 35번째 줄:
  
 
=== 거래 처리 순서 ===
 
=== 거래 처리 순서 ===
1. 실행 결과를 수신한 클라이언트는 순서화 서비스 채널을 통해 거래 결과를 전송
+
1. 실행 결과를 수신한 클라이언트는 순서화 서비스 채널을 통해 거래 결과를 전송.
  
 
2. 순서화 서비스를 수행하는 노드들은 적용하는 합의 알고리즘에 따라 그 동안 발생한 거래들을 순서화
 
2. 순서화 서비스를 수행하는 노드들은 적용하는 합의 알고리즘에 따라 그 동안 발생한 거래들을 순서화

2019년 7월 7일 (일) 18:24 판

하이퍼레저 패브릭(Hyperledger Fabric) 로고
하이퍼레저 패브릭(Hyperledger Fabric) 로고와 글자

하이퍼레저 패브릭(Hyperledger Fabric)은 모듈형 아키텍처로서, 블록체인 솔루션과 응용 프로그램을 개발하기 위한 플랫폼이다. 리눅스재단이 주도하여 설립한 하이퍼레저(Hyperledger)의 프로젝트 중 하나로서, 다양한 기술 운영위원회와 여러 조직의 유지 관리자에 의해 관리된다.[1] 하이퍼레저 패브릭은 합의 및 회원 서비스와 같은 구성 요소를 플러그 앤 플레이(Plug & Play) 방식으로 지원한다.[2] 2018년 3월에 나온 하이퍼레저 패브릭은 허가받은 사용자만 참여할 수 있는 허가형 블록체인(permissioned blockchain)으로서, 프라이빗 블록체인의 일종이다.

개요

하이퍼레저 패브릭은 블록체인 프레임워크로서 리눅스 환경에서 호스팅하는 프로젝트이다. 오픈소스를 활용하여 비즈니스 환경의 기밀 유지와 확장성을 지원한다. 컨테이너 기술을 활용하여 시스템의 응용 프로그램 로직을 구성하는 체인코드(Chain Code)라는 스마트 계약을 호스팅한다. 하이퍼레저 패브릭은 자바(Java), (Go), 노드제이에스(node.js)와 같은 범용 프로그래밍 언어로 작성된 스마트 계약을 지원하는 최초의 분산원장 플랫폼이다. 또한 암호화폐 없이 합의 프로토콜을 활용할 수 있다.[2] 하이퍼레저 패브릭 1.1 버전은 분산원장(distributed ledger), 스마트 계약(smart contract), 합의(consensus), 기밀성(confidentiality), 탄력성(resiliency), 확장성(scalability) 등에 초점이 맞추어져 있다.

등장 배경

대중에게 많이 알려진 이더리움비트코인퍼블릭 블록체인이다. 제한 없이 누구라도 블록체인에 참여하고 블록을 생산할 수 있으며 또한 노드가 될 수 있고, 트랜잭션을 생성할 수 있다. 하지만 금융권과 같은 기업, 단체는 기밀유지를 위해 허가 인증된 기관만 접근 가능할 필요가 있다.[3] 그러한 필요에 의해 자연스럽게 생성된 것이 프라이빗 블록체인이다. 이를 발전시키기 위한 기업들의 연합이 하이퍼레저이다. 특정인들에게만 프라이빗하게 네트워크 접근을 허용, 보상수단으로 코인이 지급되지 않는 대신, 일반적인 퍼블릭 블록체인보다 더 빠른 네트워크를 구성할 수 있다. 기업에서 하이퍼레저 플랫폼을 적용하더라도 퍼블릭 블록체인과 결합이 가능하기 때문에 호환하여 사용 가능하다. [3]

특징

하이퍼레저 패브릭 기능

하이퍼레저 패브릭은 모듈형 블록체인 아키텍처에서 엔터프라이즈 급 네트워크 보안, 확장성, 기밀성 및 성능을 제공하는 분산 원장 기술(DLT)이 구현된다. 하이퍼레저 패브릭은 다음과 같은 블록체인 네트워크 기능을 제공한다.[4]

신원 관리

권한이 부여 된 네트워크를 활성화하기 위해 하이퍼레저 패브릭은 사용자 ID를 관리하고 네트워크의 모든 참가자를 인증하는 멤버 자격 서비스를 제공한다. 액세스 제어 목록은 특정 네트워크 작업의 승인을 통해 추가 권한 계층을 제공하는 데 사용된다. 하이퍼레저 패브릭 네트워크에 대한 한 가지 사실은 회원이 서로를 알고 있지만, 그들의 행위는 알 수 없다.[5]

개인 정보 보호 및 기밀 유지

하이퍼레저 패브릭은 사적이고 비밀스러운 트랜잭션이 필요한 사용자에게 동일한 허가 된 네트워크를 제공한다. 비공개 채널은 제한된 메시징 경로로서 네트워크 구성원의 특정 하위 집합에 대해 개인 정보 및 기밀성을 제공하는 데 사용할 수 있다. 채널 정보를 비롯한 모든 데이터는 해당 채널에 대한 액세스 권한이 명시적으로 부여되지 않은 회원에게는 보이지 않으며 액세스할 수 없다.[4]

효율적인 처리

하이퍼레저 패브릭은 노드 유형별로 네트워크 역할을 할당한다. 네트워크에 동시성과 병렬성을 제공하기 위해 트랜잭션 실행은 트랜잭션 순서와 커밋이 구분된다. 트랜잭션을 순서화하기 전에 실행되면 각 피어 노드가 동시에 여러 트랜잭션을 처리 할 수 있다. 이러한 동시 실행은 각 피어의 처리 효율성을 높이고 오더링 서비스에 대한 트랜잭션 전달을 가속한다. 병렬 처리를 가능하게 하는 것 외에도, 업무 분장은 트랜잭션 실행 및 원장 유지 보수 요구에서 노드 오더링을 부담하지 않기 때문에 피어 노드는 컨센서스 작업 부하에서 자유로워진다. 하나의 프로세스는 다른 노드의 검증과 독립적으로 실행된다.[5]

체인코드 기능

체인코드(Chain code) 응용 프로그램은 채널에서 특정 유형의 트랜잭션의 의해 호출되는 코드이다. 전체 채널에 대한 작동 매개 변수를 정의하는 체인코드(Chain code)로 구별된다. 라이프 사이클 및 구성 시스템 체인코드는 채널에 대한 규칙을 정의한다.[4]

모듈식 디자인

하이퍼레저 패브릭은 네트워크 설계자에게 기능 선택을 제공하는 모듈식 아키텍처를 구현한다. 예를 들어 ID, 오더링 및 암호화를 위한 특정 알고리즘을 모든 하이퍼레저 패브릭 네트워크에 연결할 수 있다. 그 결과 모든 산업 또는 공개 도메인이 채택 할 수 있는 범용 블록체인 아키텍처가 시장, 규제 및 지리적 경계를 넘어서서 상호운용이 가능하다.[4]

하이퍼레저 패브릭의 구성

공유 원장

하이퍼레저 패브릭의 공유 원장(Shared Ledger)은 두 가지로 구성되어 있다. 특정 시점에서 원장 상태를 저장하는 원장 데이터베이스인 월드 스테이트(World state)와 현재 값이 된 모든 트랜잭션을 기록하여 월드 스테이트로 기록을 업데이트 시키는 트랜잭션 로그(transaction log)로 이루어져 있다. 따라서 원장은 월드 스테이트와 트랙잭션 로그 기록의 조합이다. 원장에는 월드 스테이트에 대한 대체 가능한 데이터 저장소가 있어 트랙잭션 로그가 플러그 할 필요가 없이 블록체인 네트워크에서 사용 중인 원장 데이터베이스의 전후 값을 기록한다.[4]

스마트 계약

하이퍼레저 패브릭의 스마트 계약(Smart contracts)은 체인코드로 작성되며 해당 응용 프로그램이 원장과 상호 작용해야 할 때 블록체인 외부의 응용 프로그램에 의해 호출된다. 대부분의 경우 체인코드는 원장의 데이터베이스 구성 요소, 트랜잭션 로그가 아닌 월드 스테이트에서만 상호 작용한다. 체인코드는 여러 프로그래밍 언어로 구현된다. 현재 지원되는 체인코드 언어는 자바(Java)이며 향후 더 다양한 언어가 지원될 예정이다.[4]

개인 정보

네트워크의 필요에 따라 B2B(Business-to-Business) 네트워크 참가자는 공유하는 정보의 양에 대해 매우 민감하다. 다른 네트워크의 경우 개인 정보 보호가 최고의 관심사는 아닐수 있다. 하이퍼레저 패브릭은 개인 정보가 주요 운영 요구 사항일 뿐만 아니라 비교적 개방 된 네트워크를 지원한다.[5]

컨센서스

네트워크 내의 다른 참가자들 사이에 있을지라도 거래는 발생 순서에 따라 원장에 기록되어야 한다. 이를 위해서는 거래 순서를 설정해야 하며 원장에 악의적인 거래를 거부할 수 있는 방법이 있어야 한다. 하이퍼레저 패브릭은 네트워크를 시작한 사람이 참가자들 사이에 존재하는 관계를 가장 잘 나타내는 컨센서스 메커니즘을 선택할 수 있도록 설계되었다. 프라이버시와 마찬가지로 다양한 요구 사항이 있다. 관계에서 고도로 구조화 된 네트워크에서 피어-투-피어(peer-to-peer) 네트워크로 전환한다.[4]

거래 처리 순서

1. 실행 결과를 수신한 클라이언트는 순서화 서비스 채널을 통해 거래 결과를 전송.

2. 순서화 서비스를 수행하는 노드들은 적용하는 합의 알고리즘에 따라 그 동안 발생한 거래들을 순서화

3. 순서화된 거래들은 블록에 담겨 채널에 연결된 모든 피어들에게 안전하게 전달

4. 거래 결과를 수신한 피어들은 거래 결과가 보증 정책에 맞게 만들어졌는지 검증하고, 적합하게 실행된 거래의 결과를 블록체인에 저장함으로써 해당 거래를 확정[6]

하이퍼레저 패브릭 모델

포괄적으로 사용자 정의가 가능한 엔터프라이즈 블록체인 솔루션의 약속을 이행하는 하이퍼레저 패브릭에 포함 된 주요 디자인 기능이다.

자산

자산(Assets)은 부동산과 하드웨드와 같은 유형에서 계약 또는 지적 재산과 같은 무형까지 다양하다. 하이퍼레저 패브릭은 체인코드 트랜잭션을 사용하여 자산을 수정할 수 있는 기능을 제공한다. 자산은 하이퍼레저 패블릭에서 키 값(Key-value)쌍의 모음으로 표시되며 상태 변경은 채널원장에서 트랜잭션으로 기록된다. 하이퍼레저 컴포저(Hyperledger Composer)라는 별도로 개발한 툴을 사용하여 하이퍼레저 패브릭 응용 프로그램에서 자산을 쉽게 정의하고 사용할 수 있다.[4]

체인코드

체인코드(Chain code)는 자산 또는 자산을 정의하는 소프트웨어 및 수정하기 위한 거래 지시 사항이다. 체인코드는 키 값 쌍 또는 다른 상태 데이터베이스 정보를 읽거나 변경하기 위한 규칙을 시행한다. 체인코드 기능은 원장의 상태 데이터베이스에 대해 실행되며 거래 제안을 통해 시작된다. 체인코드 실행은 네트워크에 제출되어 모든 피어의 원장에 키 값이 적용된다.[4]

원장 특징

원장은 패브릭의 모든 상태에 대한 변경 방지 기록이다. 생태 전이는 참여 당사자가 제출 한 체인코드 호출의 결과이다. 자산 키-값의 생성으로 각 트랜잭션 결과를 원장에 기여하고 있다. 원장은 불변의 레코드를 블록으로 저장하는 블록체인과 현재 패브릭 상태를 유지하는 스테이트 데이터베이스로 구성된다. 채널당 1개의 원장이 있으며 각 피어는 각 채널에 대해 원장 사본을 보관한다.[4]

개인 정보 보호

하이퍼레저 패브릭은 채널별로 원장을 사용하고 자산의 현재 상태를 수정할 수 있는 체인코드를 사용한다. 모든 참가자가 하나의 공통 채널에서 운영되고 있다고 가정하면 전체 네트워크에서 공유 할 수 있다. 또는 특정 참여자 집합만 포함하도록 사유화 할 수 있다. 후자의 시나리오에서, 이 참여자는 별도의 채널을 작성하여 거래 및 원장을 분리한다. 전체 투명성과 프라이버시 사이의 차이를 좁히고 체인코드는 자산 상태에 액세스하여 읽기 및 쓰기를 수행해야하는 피어에만 설치가능하다. 데이터에 대한 보안성을 높이기 위해 체인코드 내의 값은 장부에 추가하기 전에 AES와 같은 공통 암호화 알고리즘을 사용하여 부분적으로 또는 전체적으로 암호화 한다.[5]

보안 및 회원 서비스

하이퍼레저 패브릭은 모든 참가자가 신원을 알고 있는 트랜잭션 네트워크를 지원한다. 공개 키 인프라는 조직, 네트워크 구성 요소 및 최종 사용자 또는 클라이언트 응용 프로그램에 연결된 암호화 인증서를 생성하는 데 사용된다. 결과적으로 데이터 액세스 제어는 광범위한 네트워크 및 채널 수준에서 조작되고 제어된다. 하이퍼레저 패브릭의 허가의 개념은 채널의 존재 및 기능과 함께 개인 정보 및 기밀성이 중요한 관심사인 시나리오를 해결하는 데 도움이 된다.[4]

컨센서스

공유 원장 기술에서 합의는 단일 기능 내에서 특정 알고리즘과 동의어로 사용된다. 그러나 합의는 단순히 거래 순서에 동의하는 것 이상의 의미를 지니며, 이러한 차별화는 제안 및 보증, 오더링, 검증에 이르기까지 전체 거래 흐름에서 기본적인 역할을 한다. 합의는 블록을 구성하는 일련의 트랜잭션의 정확성에 대한 완전한 단일 검증으로 정의된다. 컨센서스는 블록 트랜잭션의 순서와 결과가 명시적인 기준 검사를 충족하면 달성된다. 이러한 확인 및 잔액은 거래의 주기 동안 발생하며 특정 거래 클래스를 보증해야하는 특정 회원 및 시스템 체인코드를 보증하는 보증정책의 사용을 포함하여 이러한 정책이 시행되고 유지되도록 한다.

트랜잭션이 포함 된 블록이 원장에 추가되기 전에 원장의 현재 상태에 대한 확인이 수행된다. 수많은 승인, 유효성 및 버전 검사가 수행되는 것 외에도 트랜잭션 흐름의 모든 방향에서 신원 확인이 진행된다. 액세스 제어 목록은 네트워크의 계층 구조에서 구현되며 트랜잭션 제안이 다른 아키텍처 구성 요소를 통과 할 때 페이로드는 반복적으로 서명, 확인 및 인증된다. 결론적으로, 합의는 일련의 거래의 합의 된 오더링에만 국한되는 것이 아니라 오히려 거래 제안이 의결에서 수락되기까지 진행되는 검증의 부산물로서 달성되는 중요한 특성이다.[4]

토폴로지

패브릭을 통한 블록체인 네트워크는 하나의 멤버십 서비스와 다수의 검증된 피어(Validating)와 검증되지 않은 피어(non-validating peer)들로 이루어진다. 이 모든 컴포넌트를 통해 하나 또는 다수의 체인을 운영한다.[7]

단일 검증된 피어

기능적으로 검증되지 않은 피어는 검증된 피어의 서브셋이다. 가장 간단한 블록체인의 네트워크는 하나의 검증된 피어로 구성된 블록체인 네트워크이다. 이 토폴로지는 보통 개발을 위한 환경으로 적합하다. 이 토폴로지는 합의 알고리즘 사용이 불가능하다. 그래서 기본으로 설정되어있는 합의 모듈을 적용해서 사용한다.[7]

다중 검증된 피어

운영환경이거나 개발 환경일 경우 다양한 검증된 피어와 검증되지 않은 피어를 이용하여 블록체인 네트워크를 구성해야 한다. 이 구성에서 검증되지 않은 피어는 이벤트 처리 및 REST API 서비스 관리 등의 역할을 하게 되는 노드이다. 검증된 피어들은 블록체인 네트워크상에서 일어나는 모든 이벤트, 트랜잭션 등의 데이터를 공유하게 된다.[7]

다중체인

각각 블록체인 네트워크는 검증된 피어와 검증되지 않은 피어로 이루어져 있다. 다양한 목적에 따라서 이와 같은 조합으로 다양한 블록체인을 구성할 수 있다.[7]

합의 알고리즘

하이퍼레저 패브릭은 카프카(Kafka)를 선택하였다. 카프카는 엄밀히 이야기하면 블록체인 합의 알고리즘이 아니다. 링크드인(Linkedin)에서 개발한 분산 메시징 시스템으로, 실시간 대용량 로그 처리에 특화되어 있다. 그래서 다른 합의 알고리즘들이 BFT인 반면, 카프카는 CFT(Crash Fault Tolerance)이다. 순서만 정확하게 쌓아올린다. 카프카를 선택한 이유는 HLF(historical log file)의 성능 향상을 위한 아키텍처적 고민에서 비롯되었다. Pub-sub 구조 내에서 빠르게 메시지를 풀(Pull) 방식으로 전달하여 수신 피어 측의 부담을 최소화하고 속도를 향상시켜 기존의 문제를 해결한다. BFT적 검증은 할 수 없지만 허락된 블록체인의 성격을 적극 활용해 CA단에 위험을 1차 차단하고, 추가로 배서(endorsement) 정책을 통해 구멍 없이 보완하는 방식으로 문제를 해결하였다. [7]

활용

보험사

IBM, AIG, 스탠다드 차타드 은행은 가장 복잡한 보험증권 중 하나인 다국적 보험증권에 패브릭을 적용했다. 이들은 미국과 싱가포르,케냐의 지역 보험증권이 통합된 마스터 보험증권을 영국에서 만들었는데, 패브릭을 이용해 보험증권 관련 데이터와 문서를 통일된 방식으로 실시간 확인하는 스마트 거래로 구현하는 데 성공했다.[8] IBM에 따르면, 이를 통해 보험 중개인과 규제 당국, 감사인 등 네트워크의 여러 이해당사자가 더 효과적이면서 효율적으로 협력할 수 있게 된다. 이 과정에서 블록체인 기술은 모든 당사자가 보험 정책과 결제 관련된 데이터와 문서를 통일된 방식으로 확인한 후 신뢰할 수 있는 단일 데이터를 갖고 의사 결정을 할 수 있도록 도왔다. [9]

공급망

운송업체부터 소매업체까지 상품의 현재 상태를 추적하는 시스템이 대표적이다. IBM과 세계 최대 컨테이너 운송 물류 회사인 머스크(Maersk)는 패브릭을 이용해 공급망 프로세스를 완전히 디지털화하는 프로젝트를 진행하고 있다. 전 세계를 이동하는 수많은 컨테이너 관련 데이터를 더 효과적으로 관리, 추적하고 궁극적으로 거래 업체간 정보 공유를 더 안전하고 투명하게 만드는 것이 목적이다. IBM과 머스크가 개발한 블록체인 솔루션을 이용하면 공급망을 디지털화하여 전 세계의 수많은 화물 컨테이너를 추적 관리할 수 있다. 양사는 이를 대규모로 도입하면 수십억 달러의 비용 절감 효과를 가져올 것으로 기대한다.[9]

카카오페이

카카오페이가 빠른 인증 서비스 유지를 위해 기존 블록체인 플랫폼으로 쓰이던 비트코인을 하이퍼레저 패브릭으로 전환했다. 글로벌 기업들이 주도하는 오픈소스 블록체인 플랫폼으로 이더리움과 달리 별도의 사용료가 없는 것이 특징이다. 비트코인에서 하이퍼레저로의 전환은 사실상 카카오페이 인증 서비스 내에선 별도의 보상을 주지 않겠다는 것을 의미한다. 다만 업계에선 카카오페이가 하이퍼레저 플랫폼을 적용하더라도 기술적으로 퍼블릭 블록체인과 연계가 가능한 만큼, 추후 카카오의 보상형 퍼블릭 블록체인이 출시될 경우, 두 체인이 접목될 가능성을 크게 보고 있다. [10]

각주

  1. “로메인 사태는 이제 그만” IoT와 블록체인 기술은 공급망을 어떻게 개선하나〉, 《IT월드》, 2017-08-02
  2. 2.0 2.1 SD아카데미, 〈블록체인 기술, 하이퍼레저 패브릭(Hyperledger Fabric)과 싱글 사인 온(SSO)〉, 《네이버 블로그》, 2018-05-28
  3. 3.0 3.1 UK, 〈하이퍼레저 패브릭(프라이빗 블록체인)〉, 《네이버 블로그》, 2018-08-20
  4. 4.00 4.01 4.02 4.03 4.04 4.05 4.06 4.07 4.08 4.09 4.10 4.11 ITLAND, 〈[HYPERLEDGER FABRIC v.1.02. 주요개념]〉, 《티스토리》, 2018-01-19
  5. 5.0 5.1 5.2 5.3 바람체인, 〈하이퍼레저 패브릭〉, 《네이버 블로그》, 2018-05-02
  6. miiingo riiingo, 〈박승철의 블록체인 강의: 2강 Hyperledger Fabric의 구조 블록체인 구조〉, 《티스토리》, 2018-06-19
  7. 7.0 7.1 7.2 7.3 7.4 공무제, 〈먼저 시작해 보는 블록체인 – 02. Hyperledger Fabric〉, 《IBM》, 2017-01-15
  8. neologis, 〈오픈소스 블록체인 '패브릭' 공개··· 보험·공급망 등 활용성 '무궁무진'〉, 《네이버 블로그》, 2017-08-02
  9. 9.0 9.1 땜문, 〈오픈소스 블록체인 '패브릭' 공개··· 보험·공급망 등 활용성 '무궁무진'〉, 《네이버 블로그》, 2018-07-23
  10. 이수호 기자, 〈카카오페이, 블록체인 인증기술 '비트코인→하이퍼레저'로 전환〉, 《뉴스1》, 2018-08-06

참고자료

같이 보기


  검수요청.png검수요청.png 이 하이퍼레저 패브릭 문서는 블록체인 플랫폼에 관한 글로서 검토가 필요합니다. 위키 문서는 누구든지 자유롭게 편집할 수 있습니다. [편집]을 눌러 문서 내용을 검토·수정해 주세요.