Blockchain - 하이퍼레저 패브릭(Hyperledger Fabric)

내승현·2024년 1월 16일
0

블록체인

목록 보기
4/7

1. 프라이빗 블록체인

비트코인과 이더리움과 같은 퍼블릭 블록체인(Public Blockchain)은 누구나 네트워크에 참여하여 블록체인을 읽거나 쓸 수 있다. 또한, 탈중앙화 되어 있고 네트워크를 제어하는 독점 참여자가 존재하지 않는다. 퍼블릭 블록체인에 있는 데이터는 노드(참여자 = 컴퓨터 , 폰 등등)들에 의해 검증되고 블록체인에 한번 기록되면 수정하거나 삭제하는 것이 불가능하다.

이러한 퍼블릭 블록체인과 반대되는 개념이 바로 프라이빗 블록체인(Private BlockChain)이다.
프라이빗 블록체인은

  • 네트워크 내에서 초대된 사용자만이 네트워크에 참여하고, 원장에 접근할 수 있는 허가형(Permissioned) 블록체인을 의미한다.

  • 프라이빗 블록체인에서 중앙기관은 채굴 과정과 합의 알고리즘에 대한 권한을 개발하고 유지하며, 네트워크에 참여할 수 있는 사용자를 결정한다.

  • 채굴이나 트랜잭션 수수료가 매우 적거나 아예 존재하지 않기도 한다.

  • 중앙 기관이 네트워크에 대한 관리 권한을 가지므로 특정 노드만 원장을 쓸 수 있도록 지정할 수 있고, 삭제할 수 도 있다.

하이퍼레저 패브릭(HyperLedger Fabirc)이란?

하이퍼레저는 리눅스 재단에서 진행하는 스마트 컨트랙트를 지원하는 프아리빗 블록체인 프로젝트이다.
하이퍼레저의 목표는 산업간 블록체인 기술을 고도화하여 협력사 간 책임성과 투명성, 신뢰가 보장되도록 하는 것이다.

하이퍼레저 패브릭은 분산 원장 솔루션을 제공하는 플랫폼으로 기밀성, 탄력성, 유연성 및 확장성을 제공한다.
하이레저 패브릭의 특징으로는

  • 프라이버시와 기밀성: 하이퍼레저 패브릭은 채널(Channel)이라고 불리는 제한된 메시지 경로를 제공하며, 이러한 채널은 네트워크의 특정 하위 노드 집합에게 트랜잭션 프라이버시와 기밀성을 보장해준다. 트랜잭션, 노드 그리고 채널 정보와 같은 채널에 있는 모든 데이터는 채널에 대한 접근 권한이 없으면 열람할 수 없다. 이 특징을 통해 서로 다른 이해관계를 가진 기업들이 동일한 허가형 네트워크에서 공존할 수 있도록 해준다.

  • 효율적인 처리: 네트워크에 동시성과 병렬성을 제공하기 위해 트랜잭션 실행은 트랜잭션 정렬 및 커밋과 분리된다. 네트워크의 노드들은 노드 유형에 따라 액션을 수행하는 역할이 정해져 있다. 이러한 동시적 실행은 각 노드의 처리 효율성을 높이고 트랜잭션 전달을 가속화 한다.

  • 체인코드: 체인코드는 이더리움과 같은 분산 플랫폼에 있는 스마트 컨트랙트에 해당한다. 체인코드는 자산(현실 세계의 객체를 표현)과 자산을 변경하기 위한 트랜잭션 명령을 인코딩하는데 사용한다.

  • 모듈식 설계: 하이퍼레저 패브릭은 모듈식 아키텍처를 구현하여 네트워크 설계자에게 기능적 선택권을 제공한다. 에를 들어, 식별, 정렬(합의), 암호화에 대한 특정 알고리즘을 모든 하이퍼레저 패브릭 네트워크에 연결할 수 있다.

하이퍼레저 패브릭 주요 개념

  • 피어(Peer): 피어는 블록체인 네트워크의 기본 요소이며, 원장과 스마트 컨트랙트를 호스팅하는 노드이다. 네트워크와의 상호작용의 시작점이며, 어플리케이션의 체인코드(스마트 컨트랙트)를 실행하여 쿼리를 하거나 원장을 업데이트 하도록 한다.

네트워크의 각 피어에는 디지털 인증서가 할당되며, 디지털 인증서는 피어가 참여하는 채널에 해당 피어를 식발하도록 해준다. 이 방식으로 인해 피어는 각 채널에서 다양한 권한을 가질 수 있다. 모든 피어는 기본적으로 동일하지만, 네트워크에서 여러 역할을 수행할 수 있다.

  1. 커밋 피어(Committing Peer): 채널의 모든 피어 노드는 커밋 피어이다. 생성된 트랜잭션 블록을 수신하고, 블록이 네트워크에 의해 검증되면 추가 작업을 통해 원장의 사본을 커밋한다.

  2. 보증 피어(Endorsing Peer): 스마트 컨트랙트를 체결한 모든 피어는 보증 피어가 될 수 있다. 보증 피어가 되기 위해서는 디지털 서명된 트랜잭션 응답을 생성하는 어플리케이션에 의해 실행되어야 한다.

  3. 채널(Channel): 하이퍼레저 패브릭 채널은 둘 이상의 특정 네트워크 노드 간의 통신을 위한 프라이빗 서브넷으로, 프라이빗 트랜잭션을 수행하기 위한 목적으로 사용된다. 채널은 멤버(Orgs), 공유원장, 체인코드 어플리케이션 및 정렬 서비스 노드에 의해 정의된다. 네트워크의 모든 트랜잭션은 채널에서 실행되며, 각 당사자는 해당 채널에서 트랜잭션을 수행하기 위해 인증을 거쳐야 한다. 채널에 참여는 각 피어는 MSP(Membership Service Provider)가 제공하는 고유한 식별자를 가지며, 각 피어를 해당 채널과 서비스에 인증한다.

스마트 컨트랙트와 체인코드
스마트 컨트랙트는 원장에 추가되는 새로운 데이터를 생성하는 실행 가능한 로직을 정의한다. 일반적으로 스마트 컨트랙트와 체인 코드라는 용어는 혼용되지만, 스마트 컨트랙트는 전역 상태에 포함된 비즈니스 객체의 상태를 변경시키는 트랜잭션 로직을 정의한다. 반면, 체인코드는 블록체인 네트워크에 배포하기 위해 패키징된 스마트 컨트랙트의 집합이다. 즉, 스마트 컨트랙트는 트랜잭션을 관리하며, 체인코드는 스마트 컨트랙트를 배포하기 위해 패키징하여 관리한다.

체인코드를 통해 아키텍트나 개발자가 하나의 블록체인 네트워크 안에 있는 서로 다른 조직 간 공유되어야 하는 데이터와 비즈니스 프로세스를 정의한다.

  • 보증(Endorsement): 모든 체인코드에는 모든 스마트 컨트랙트에 적용되는 관련 보증 정책이 있다. 이 정책은 트랜잭션의 유효성을 위해 트랜잭션에 서명해야 하는 블록체인 네트워크 내 조직들을 의미한다.

  • 유효한 트랜잭션: 스마트 컨트랙트는 블록체인 네트워크 내 조직이 소유한 피어 노드에서 실행된다. 이 스마트 컨트랙트들은 트랜잭션 제안서라 불리는 입력 파라미터의 집합을 취하여 스마트 컨트랙트의 프로그램 로직과 함께 사용하여 원장을 읽고 쓴다. 트랜잭션과 이를 읽은 상태가 유효할 경우, 전역 상태는 기존 상태에서 새로운 상태값으로 변경되어 저장된다. 다만 전역 상태는 스마트 컨트랙트가 실행될 때 변하지 않고, 트랜잭션이 최종적으로 유효해지면 업데이트된다.

네트워크의 모든 피어 노드에 배포되는 트랜잭션은 두 단계에 거쳐 검증된다. 먼저, 보증 정책에 따라 지정된 조직에서 서명된 거래인지 확인한다. 그리고 전역 상태의 현재 값이 보증 피어 노드에 의해 서명되었을 때 트랜잭션의 읽기 집합과 일치하는지 확인한다. 트랜잭션이 두 과정을 모두 통화하면 유효한 트랜잭션이 된다.

유효한 트랜잭션과 유효하지 않은 트랜잭션은 모두 블록체인 이력에 추가되지만, 유효한 트랜잭션만이 전역 상태를 업데이트 한다.

이더리움과 하이퍼레저 패브릭의 차이점

  • 플랫폼의 목적: 이더리움은 EVM 위에서 스마트 컨트랙트를 실행하는 하나의 목적을 위해 만들어졌고, dApp이라는 분산형 어플리케이션을 배포할 수 있다. 반면, 하이퍼레저는 고성능과 신뢰성이 높은 블록체인 개발을 위한 산업 전반의 협업을 가속화 하기 위해 도입되었다. 하이퍼레저 패브릭은 사람들이 다양한 요구에 맞는 개인화된 블록체인을 개발할 수 있게 해준다.

  • 작동 방식: 이더리움은 퍼블릭 블록체인으로, 누구나 블록체인 네트워크에 접근할 수 있고, 허가 받을 필요가 없지만, 하이퍼레저 패브릭은 허가된 사용자만이 네트워크에 참여할수 있다.

  • 피어 역할: 이더리움은 피어마다 역할이 있는데, 트랜잭션이 완료되면 이를 위해 여러 노드가 참여해야 하므로 확장성, 프라이버시, 효율성 등의 문제가 발생할 수 있다. 하이퍼레저는 네트워크 내의 각 피어에게 트랜잭션을 수행하기 위해 정보를 제공할 필요가 없는 DLT(Distributed Ledger Technology)를 제공한다.

  • 합의 메커니즘: 이더리움은 모든 노드가 합의에 도달해야 하는 PoS 합의 알고리즘을 사용한다. 반면, 하이퍼레저 패브릭은 다른 종류의 합의 알고리즘을 사용한다. 하이퍼레저 패브릭에서는 아예 합의하지 않거나, 다양한 합의 프로토콜 중 하나를 선택할 수 있다.

profile
아토언니의 프론트엔드 개발자로서의 기록

0개의 댓글