Hyperledger Fabric Basics

4 minute read

개요

일반적인 용어로 블록체인이란 분산된 피어 노드(peer node)들로 구성된 네트워크 내에서 유지되는 변경불가능한(immutable) 트랜잭션 원장(장부)이다.

이러한 노드들은 각각 원장을 한 카피씩을 가지고 있다. 그리고 원장에는 consensus protocol에 의해 검증된 트랜잭션들이 블록으로 그룹화되어 저장되는데, 각 블록에는 이전 블록과 연결하기 위한 해시도 포함되어 있다.

첫번째이자 가장 많이 알려진 블록체인의 응용이 비트코인 암호화폐이다. 이더리움도 또 다른 암호화폐이지만 비트코인과는 조금 다른 접근법을 택하였다. 이더리움은 비트코인과 비슷한 특징을 가지되, smart contract을 추가하여 분산된 애플리케이션을 위한 플랫폼을 만들었다. 비트코인과 이더리움 둘 다 public하고 permissionless한 블록체인의 부류로 들어간다. 쉽게 말해 이것들은 누구나 익명으로 상호작용할 수 있는 열려있는 공공의(public) 네트워크이다.

비트코인과 이더리움의 인기가 상승하면서 블록체인 기술을 더욱 혁신적인 기업(enterprise) 유즈 케이스에 적용하고자 하는 관심도 커졌다. 그러나 기업 유즈 케이스는 permissionless 블록체인 기술이 현재로써는 제공할 수 없는 성능적 특징을 요구하였다. 또한, 여러 유즈 케이스에서 참여자들의 신원은 무조건적으로 충족되어야 하는 요구조건이다.

기업에 적용하기 위해서는 다음과 같은 요구사항이 고려되어야 한다:

  • 참여자들의 신원은 확인되어야/확인 가능해야 한다.
  • 네트워크는 허가형이어야 (permissioned해야) 한다.
  • 높은 트랜잭션 처리량/성능
  • 낮은 트랜잭션 확인으로 인한 지연 시간
  • 트랜잭션 및 비즈니스 트랜잭션과 관련된 데이터의 프라이버시 및 기밀성

여러 초기 블록체인 플랫폼들이 기업 환경에 적용되고 있지만, Hyperledger Fabric은 처음부터 기업 사용을 위해 설계되었다.

Hyperledger Fabric

Hyperledger Fabric은 오픈소스, 엔터프라이즈급의 허가되고(permissioned), 분산된(distributed) 원장 기술 (DLT)은 기존의 인기 있는 분산 원장이나 블록체인 플랫폼과는 차별화된 몇몇 핵심 역량을 제공해주는 엔터프라이즈 환경을 위해 설계된 플랫폼이다.

핵심 차별점 중 하나는 Hyperledger는 리눅스 재단에서 시작되어, Hyperledger Fabric은 이것의 여러 프로젝트 중 하나로써 초기 커밋때 부터 지금까지 35개가 넘는 조직과 200명 이상의 개발자들에 의해 유지되고 있다는 점이다.

Fabric은 매우 modular하고 configurable한 아키텍처를 가지고 있어, 은행, 금융, 보험, 헬스케어, HR, 공급망 및 디지털 음악 유통을 포함하는 광범위한 산업 유즈 케이스에서 혁신, 다용도성 및 최적화를 가능케 한다.

Fabric은 제약이 다소 많은 도메인 특화 언어(domain-specific language, aka DSL)보다 Java, Go, 혹은 Node.js와 같은 범용 프로그래밍 언어(general-purpose language)로 만들어진 스마트 컨트랙트를 지원하는 최초의 분산된 원장 플랫폼이다. 이는 대부분의 엔터프라이즈가 이미 스마트 컨트랙트를 개발하기 위한 스킬셋을 가지고 있다는 것을 의미한다 - 왜냐하면 새로운 언어나 DSL을 배우기 위한 추가적인 학습이 필요하지 않기 때문이다.

또한, Fabric 플랫폼은 permissioned(허가형)이다. 공공의 비허가형 네트워크와는 달리 참여자들은 서로 알고 있어서 익명이지 않고 따라서 완전히 신뢰성이 없지는 않다. 즉, 참여자들은 완전히 서로 신뢰를 하지는 않을 수도 있지만 (예를 들어 같은 산업의 경쟁자일 수도 있다), 논쟁/분쟁을 다루기 위한 법적 합의나 프레임워크와 같이, 참여자들 간에 존재하는 그 어떠한 신뢰를 기반으로 거버넌스 모델 하에 네트워크를 운용할 수 있다.

이 플랫폼의 차별점 중 가장 중요한 점은 착탈식 합의 프로토콜 (pluggable consensus protocol)을 지원한다는 것이다. 따라서 플랫폼이 특정 유즈 케이스 및 신뢰 모델에 더욱 효과적으로 커스터마이징될 수 있다. 예를 들어 단일 엔터프라이즈에 배포되거나 신뢰할 수 있는 권한을 가진 파티에 의해 운영될 경우에는 완전한 비잔티움 장애 허용 합의는 불필요하거나 성능 및 처리량에 과도한 부담을 줄 수 있다. 이럴 경우, crash fault-tolerant (CFT) 합의 프로토콜이 더 적합할 수 있다. 반대로 멀티 파티의 탈중앙화된 유즈 케이스에서는 전통적인 비잔티움 장애 허용 (BFT) 합의 프로토콜이 더 적합할 것이다.

Fabric 플랫폼은 네이티브 암호화폐를 필요로하지 않는 합의 프로토콜을 최대한 활용하여 값비싼 채굴이나 스마트 컨트랙트 실행을 촉진시킬 수 있는 역량을 가지고 있다. 암호화폐를 피함으로써 중대한 리스크/공격 벡터를 줄일 수 있고, 암호화 방식의 채굴 운용이 없다는 것은 플랫폼이 여느 다른 분산 시스템과 비슷한 운용 비용으로 배포될 수 있다는 것을 의미한다.

이러한 차별점으로 인해 Fabric은 현재 가용한 플랫폼들 중에 트랙잭션 처리와 트랜잭션 확인 지연 시간에 대하여 더 우월한 성능을 가진 플랫폼으로 등극하였다. 또한, Fabric은 트랜잭션의 프라이버시 및 기밀성, 그리고 이를 구현하는 스마트 컨트랙트를 가능케한다.

이러한 차별점들을 조금 더 세밀히 살펴보자.

Modularity

Hyperledger Fabric은 모듈화된(modular) 아키텍처를 갖도록 설계되었다. 착탈식 합의이든 LDAP이나 OpenID Connect과 같은 착탈식 신원 관리 프로토콜이든, 키 관리 프로토콜 혹은 암호화 라이브러리든, 이 플랫폼은 다양한 엔터프라이즈 유즈 케이스 요구사항을 충족하도록 바닥부터 설계되었다.

하이 레벨에서 보면 Fabric은 다음과 같은 모듈화된 요소들로 구성되어 있다:

  • 착탈식 ordering service는 트랜잭션의 순서에 따라 합의를 확립하고 peer들에게 블록들을 브로드캐스팅한다.
  • 착탈식 membershipt service provider는 네트워크에 있는 개체들을 암호화 방식의 신원과 매핑한다.
  • 선택 가능한 peer-to-peer gossip service는 ordering service를 통해 다른 peer들에게 블록 아웃풋을 퍼트린다.
  • 스마트 컨트랙트(chaincode)는 격리성을 위해 컨테이너 환경 (eg. Docker)에서 실행된다. 이는 표준 프로그래밍 언어로 작성될 수 있으나 원장 상태에 대한 직접적인 접근은 할 수 없다.
  • 원장은 다양한 DBMS를 지원할 수 있도록 설정될 수 있다.
  • 각 애플리케이션마다 착탈식 보증(endorsement) 및 검증(validation) 정책 시행 여부가 설정될 수 있다.

블록체인 산업에서는 “모든 상황을 만족하는 블록체인은 없다”라는 의견에 대부분 동의한다. Hyperledger Fabric은 여러 가지 방법으로 설정되어 다양한 솔루션 요구사항 및 유즈 케이스를 충족시킬 수 있다.

Permissioned vs Permissionless Blockchains

비허가형 블록체인에서는 사실상 누구나 참여할 수 있고 각 참여자는 익명성을 가진다. 이러한 환경에서는 블록체인의 상태가 특정 깊이 전까지는 불변하다는 것(immutable) 외에는 신뢰할 수 있는 것이 없다. 이러한 신뢰의 부재를 고치기 위해 비허가형 블록체인은 전형적으로 채굴된(mined) 네이티브 암호화폐나 트랜잭션 비용을 인센티브로 사용하여 proof of work (POW)라는 것의 의거하여 비잔티움 장애 허용 합의에 참여하기 위한 비용을 상쇄시킨다.

허가형 블록체인은 특정 정도의 신뢰를 보장하는 거버넌스 모델 하에 운용되는 알고 있는, 식별된, 그리고 검증된 참여자들로 구성된 블록체인을 운용한다. 허가형 블록체인은 공통된 목표를 가졌지만 서로 완전히 신뢰하지는 못하는 개체들 간의 상호작용을 안전하게 하기 위한 방법을 제공한다. 참여자들의 신원에 의존하여 허가형 블록체인은 비싼 채굴을 필요로하지 않는 좀 더 전통적인 crash fault tolerant(CFT)하거나 비잔티움 장애 허용 (BFT) 합의 프로토콜을 사용할 수 있다.

또한, 이러한 허가형 환경에서는 참여자가 의도적으로 악의적인 코드를 스마트 컨트랙트를 통해 유입하는 위험이 없어진다. 참여자들은 서로 다 누군지 알고 있고 어플리케이션 트랜잭션을 제출하거나, 네트워크 설정을 변경하거나, 스마트 컨트랙트를 배포하는 것과 같은 액션들은 모두 네트워크 및 관련 트랜잭션 타입에 대해 확립된 보증 정책에 따라 블록체인에 기록된다. 완전히 익명인 것에 비해 죄가 있는 파티는 더욱 쉽게 식별될 수 있으며 거버넌스 모델과 관련하여 인시던트를 더 쉽게 핸들링할 수 있다.

출처

https://hyperledger-fabric.readthedocs.io/en/release-2.2/whatis.html

Updated:

Leave a comment