그냥 사는 이야기

Hyperledger Fabric 살펴보기 본문

Development/기타

Hyperledger Fabric 살펴보기

없다캐라 2020. 5. 6. 19:08
반응형

비트코인, 이더리움으로 대표되는 Public블록체인 기술은 암호화폐로 인해 개념이 많이 소개되어있습니다. 하지만 기업용 블록체인이라고도 하는 Private 블록체인은 어떤점이 다른지 잘 몰랐는데 이번에 파악한 내용을 정리해보았습니다.

Hyperledger Fabric

하이퍼레저 프로젝트는 Linux Foundation에서 관리하는 오픈소스입니다. 기업용 블록체인을 목표로 하며 Private 혹은 Enterprise 블록체인이라고도 부릅니다. 하이퍼레저 프로젝트는 1개가 아닙니다. 상당히 많은 프로젝트로 구성되어 있는데 이중 가장 유명한, 사용예가 많은 프로젝트가 Fabric 입니다.

대표적인 하이퍼레저 프로젝트들

중간 Frameworks계층부터 보면 이더리움의 EVM을 지원하는 것이 가능한 Burrow, 인텔이 주도하는 Sawtooth, 일본에서 밀고 있는 Iroha등이 있습니다. Fabric은 IBM에서 주도하여 개발되었고 이를 리눅스재단에 맡겨서 이후로도 주도적으로 개발중이며 가장 많이 알려진 하이퍼레저의 프로젝트입니다. 이것들은 서로가 다른 목표로 나아가고 있는 서로 다른 프로젝트입니다.

밑의 Tools에는 하이퍼레저 블록체인의 유틸리티성 프로젝트인데 성늘 benchmark기능을 도와주는 Caliper, 배포를 돕는 Celllo, 블록내 트랜잭션 내용을 보여주는 Explorer등의 프로젝트들이 있습니다.

Permissioned 블록체인

Fabric을 기업형, Private 형이라고 소개를 했던 것은 블록체인 구성원이 아무나 될 수 없다는 것을 뜻합니다. 따라서 승인된 참가자만을 대상으로 하겠다고 명시하였으며 이를 허가형 블록체인이라고도 부릅니다. 

기업들의 비지니스 환경은 매우 다양합니다. 이런 다양한 환경을 모두 지원하기는 쉽지 않은데 Fabric은 2017.07에 1.0버전을 시작으로 2020.5월 기준으로 2.1버전까지 나와 있습니다. 오래된 프로젝트는 아니지만 IBM주도하에 착실히 기능을 확장해 나가면서 이런 환경을 지원하려고 노력하고 있습니다.

Fabric의 몇가지 특징으로는

  • 일반 프로그래밍 언어로 스마트 컨트랙트 구현 가능
  • 암호화계는 없음
  • 높은 성능
  • 교체 가능한 모듈 구조
  • 멀티 채널지원

등이 있습니다.

비트코인, 이더리움과의 비교

비트코인, 이더리움과 비교

퍼블릭 블록체인은 누구나 참여할 수 있고 그속에서 화폐를 활용하기 위해 암호화폐가 존재하는 것이지만 하이퍼레저 패브릭은 기업내에서만 사용하는 것을 제한하고 있습니다. 따라서 화폐가 필요했던 것은 아닙니다. 물론 화폐가 필요하면 프로그램 형태로 구현하여 사용할 수는 있지만 이것이 목적이 아니었던 것입니다.

참여자를 제어하기 위한 기능이 필요하며 이를 위해서는 인증을 하는 부분이 별도로 존재합니다. 그렇게 인증된 참여자가 적다는 것은 블록을 만들기 위한 합의자가 많을 수가 없기에 PoW, PoS 같은 합의 프로토콜이 사용되지 않습니다. 가벼운 BFT 계열이나 Kafka 같은 메시지큐잉의 시스템을 활용하는 정도로도 충분한 간소한 합의 프로토콜이 사용됩니다.

따라서 성능도 높을 수 밖에 없습니다. 합의하는데 시간이 많이 걸리지 않기 때문입니다. TPS(초당 트랜잭션 처리수)가 비트코인은 7~10 정도, 이더리움은 15~100 수준이면 하이퍼레저는 10000 단위부터 시작합니다. 성능에서 상당한 이점이 있습니다.

그리고 이더리움에서는 Smart contract가 EVM이라는 별도의 가상머신에서 동작하기에 이를 변환할 수 있는 별도의 개발언어가 필요했습니다. Solidity가 대표적입니다. 하지만 하이퍼레저 패브릭에서는 일반적인 개발언어로 작성할 수 있으며 이를 Chain code 라고 부릅니다. 현재는 Goland, Java 부터 지원하였고 Javascript 지원을 위해 이후 node.js 지원도 가능해졌습니다.

하이퍼레저의 겉 모습을 공개형 블록체인과 비교해가며 다른점을 비교해보았는데 내부 동작이 어떻게 다른지는 다른 글에서 계속 다루겠습니다.

Comments