Hyperledger Fabric 비교 – 1편

Hyperledger Fabric(이하 Fabric)은 IBM이 주도하는 오픈소스 블록체인 플랫폼입니다. 다른 블록체인과 비교하였을 때 몇 가지 뚜렷한 차이가 있습니다. 본 문서에서는 일반적인 블록체인과 Fabric의 차이점에 대해 설명합니다.

분산DB의 동기화를 위한 블록체인 활용

일반적인 블록체인의 특성

일반적인 블록체인은 트랜잭션에 큰 의미를 부여합니다. 일정 시간 주기로 트랜잭션을 모아 블록으로 생성합니다. 이때 각 트랜잭션의 유효성을 검증하고, 한 블록에 담길 트랜잭션을 대표하는 Hash 값을 생성하여 이전 블록의 Hash와 함께 블록 Hash를 생성합니다. 모든 트랜잭션과 블록들이 끈끈하게 연결되어 있기 때문에 한 개의 트랜잭션만 변경되어도 전체 체인의 값이 변경되게 됩니다.

Fabric의 특성

Hyperledger Fabric은 state DB로 사용되는 Level DB 트랜잭션을 동기화시킬 목적으로 블록체인을 활용합니다. 주기적으로 블록을 생성하고, 블록 생성 시에 트랜잭션을 검증하는 일반적인 블록체인과 달리 Fabric은 트랜잭션을 전파하기 전에 체인에 참여한 기관의 Endorser에서 검증을 수행합니다. 프라이빗 한 환경에서 사용한다고 가정하여 복잡한 블록 생성 방법 대신 Kafka의 메세지 순서 보장에 의존하고 있습니다.

 

합의 알고리즘

일반적인 블록체인의 합의 알고리즘

일반적인 블록체인은 위 그림과 같이 매우 단순한 구성을 갖고 있습니다. 클라이언트가 생성한 트랜잭션에 서명을 하고 노드에 전달하면 노드가 트랜잭션을 검증하고, 다른 노드들에 전파합니다. 일정한 주기로 노드가 트랜잭션들을 모아 블록을 생성합니다. 블록을 생성하는 방식은 합의 알고리즘에 따라 다르지만 엔터프라이즈 환경을 위해 작성된 블록체인은 *RAFT와 같은 방식을 사용하여 빠르게 처리하기도 합니다.

*RAFT 합의 방식은 전체 노드 중 리더 노드를 선출하여 1개의 노드만 블록을 생성하는 방식입니다. 폐쇄적인 환경에서 권한을 가진 노드만 블록을 생성할 수 있어 다수 노드의 합의가 필요한 비트코인의 POW 같은 방식보다 좋은 성능을 보입니다.

Fabric의 합의 알고리즘

낮은 버전의 Fabric은 PBFT와 같은 합의 알고리즘을 제공하였습니다. 하지만 현재 버전의 Fabric은 다수의 채널을 구성할 수 있는 반면 일반적인 블록체인과 같은 합의 알고리즘은 제공하지 않습니다. 대신 트랜잭션을 전파하기 전 검증하는 Endorsing 과정과 순서 보장을 위한 Message Queue를 활용하여 검증된 트랜잭션만 전파되는 것을 보장합니다.

결론

Fabric은 IBM 주도로 개발된 Enterprise를 위한 블록체인입니다. 대중들이 알고 있는 일반적인 퍼블릭 블록체인과 다른 독특한 특징들을 갖고 있기 때문에 퍼블릭 블록체인과 동일한 기준으로 도입할 수 없습니다.

Fabric 도입 시 고려해야 할 사항들은 다음 편을 통해서 설명드리겠습니다.

Raft Consensus를 이용한 동기화 이해하기
Hyperledger Fabric 비교 – 2편

댓글 남기기

이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다

필수 입력 사항입니다.
필수 입력 사항입니다.
유효한 이메일 주소를 입력해주세요.
You need to agree with the terms to proceed

메뉴