퍼블릭 블록체인과 프라이빗 블록체인의 차이

[하이퍼레저 페브릭과 체인코드]
하이퍼레저 페브릭의 가장 큰 특징은 다른 하이퍼레저 기술을 플러그 앤 플레이 방식으로 지원하는 유연하고 탄력적인 아키텍처를 제공한다는 점이다.
하이퍼레저 패브릭의 블록체인적 특징
프라이버시와 기밀성
: 채널이라는 제한된 메시지 경로를 제공하여 네트워크의 특정 하위 노드 집합에게 트랜잭션 프라이버시와 기밀성을 보장해준다. 채널에 있는 모든 데이터는 접근 권한이 없으면 열람할 수 없다. 서로 다른 이해관계를 가진 기업들이 동일한 허가형 네트워크에서 공존할 수 있도록 해준다.
효율적인 처리
: 동시성, 병렬성 제공을 위해 트랜잭션 실행은 정렬 및 커밋과 분리된다. 노드들은 노드 유형에 따라 이러한 액션을 수행하는 역할이 정해져 있다. 이런 동시적 실행은 각 노드의 처리 효율성을 높이고 트래잭션 전달을 가속화 한다.
체인코드
: 이더리움과 같은 분산 플랫폼에 있는 스마트 컨트랙트에 해당한다. 현실 세계의 객체를 표현하는 자산과 이 자산을 변경하기 위한 트랜잭션 명령을 인코딩하는데 사용한다.
모듈식 설계
: 모듈식 아키텍처를 구현하여 네트워크 설계자에게 기능적 선택권을 제공한다. 식별, 정렬, 암호화에 대한 특정 알고리즘을 모든 하이퍼레저 패브릭 네트워크에 연결할 수 있다.
주요 개념
피어
원장과 스마트 컨트랙트를 호스팅하는 노드이다. 네트워크와의 상호작용의 시작점이며, 어플리케이션이 체인코드를 실행하여 쿼리를 하거나 원장을 업데이트 하도록 한다.

각 피어는 디지털 인증서가 할당되며, 디지털 인증서는 피어가 참여하는 채널에 해당 피어를 식별하도록 해준다. 이 방식으로 인해 피어는 각 채널에서 다양한 권한을 가질 수 있다.
모든 피어는 동일하지만 네트워크에서 여러 역할을 수행할 수 있다.
채널
둘 이상의 특정 네트워크 노드 간의 통신을 위한 프라이빗 서브넷으로 프라이빗 트랜잭션 수행 목적으로 사용된다.
채널은 멤버, 공유원장, 체인코드 어플리케이션 및 정렬 서비스 노드에 의해 정의된다. 네트워크의 모든 트래잭션은 채널에서 실행되며, 각 노드는 해당 채널에서 트랜잭션을 수행하기 위해 인증을 거쳐야 한다. 채널에 참여하는 각 피어는 MSP가 제공하는 고유한 식별자를 가지며, 각 피어를 해당 채널과 서비스에 인증한다.
스마트 컨트랙트와 체인코드
⇒ 스마트 컨트랙트는 전역 상태에 포함된 비즈니스 객체의 상태를 변경시키는 트랜잭션 로직을 정의하는 반면, 체인코드는 블록체인 네트워크에 배포하기 위해 패키징된 스마트 컨트랙트의 집합이다.
스마트 컨트랙트는 트랜잭션을 관리하며, 페인코드는 스마트 컨트랙트를 배포하기 위해 패키징하여 관리한다.
체인코드를 통해 아키텍트나 개발자가 하나의 블록체인 네트워크 안에 있는 서로 다른 조직 간 공유되어야 하는 데이터와 비즈니스 프로세스를 정의한다.
보증
: 모든 체인코드에 있는 스마트 컨트랙트에 적용되는 보증 정책은 트랜잭션의 유효성을 위해 트랜잭션에 서명해야 하는 블록체인 네트워크 내 조직들을 의미한다.
유효한 트랜잭션
: 스마트 컨트랙트들은 트랜잭션 제안서라 불리는 입력 파라미터의 집합을 취하여 스마트 컨트랙트의 프로그램 로직과 함꼐 사용하여 원장을 읽고 쓴다.
트랜잭션과 이를 읽은 상태가 유효할 경우, 전역 상태는 새로운 상태값으로 변경하여 저장된다. 다만 전역상태는 스마트 컨트랙트가 실행될 때 변하지 않고, 트랜잭션이 최종적으로 유효해지면 업데이트 된다.
⇒ 검증 과정
보증 정책에 따라 지정되 조직에서 서명된 거래인지 확인
전역 상태의 현재 값이 보증 피어 노드에 의해 서명되었을 때 트랜잭션 읽기 집합과 일치하는지 확인
→ 위 과정을 모두 통과하면 유효한 트랜잭션이 된다.