KEEP!T column: 허가형(Permissioned) 블록체인, 하이퍼레저(Hyperledger) 패브릭 모델
KEEP!T Column: 허가형(Permissioned) 블록체인, 하이퍼레저(Hyperledger) 패브릭 모델
안녕하세요. 킵잇입니다.
비트코인은 국가 또는 정부, 즉 중앙은행의 승인과 보증을 받지 않고도 여러 사람간의 화폐로써의 효력을 가질 수 있는 '존재'를 만들어 낼 수 있는 시스템으로 놀라움을 주었습니다.
이더리움은 상당히 높은 평가를 받는 프로젝트입니다. 그 이유는 단지 한 천재에 의해 시작되었기 때문만은 아닙니다. 비트코인에서 수행하기 어려운 계약사항을 블록체인 플랫폼 자체적으로 해결하고자 노력하는 것에서 찾을 수가 있을 것입니다.
바로 스마트 계약입니다.
이더리움은 이에 더해 인간이 행하는 일련의 행위들을 블록체인상에 연동시켜 '신뢰관계'를 만들고 유지시킬 수 있도록 하였습니다.
물론 비트코인에서도 스마트 컨트랙트 자체가 불가능한 것은 아닙니다. 비트코인 트랜잭션에 스크립트를 작성하면 일정 정도의 기능은 가능합니다. 그러나 반복작업을 수행할 수도 없으며 남은 금액 정도의 항목만 취급할 수 있을 뿐입니다. 만일 반복작업이 가능하게 만든다면 악의적으로 무한하게 수행되는 작업을 만들어 모든 비트코인 네트워크를 멈추게 될 가능성도 배제할 수 없을 것입니다.
이러한 가운데 이더리움을 통하면 자체적인 언어 솔리디티와 수수료 제한의 개념으로 일정 수준 이상의 트랜잭션을 처리할 수 있게 되었음은 물론 무한하게 반복되는 악의적인 공격에서도 안전할 수 있습니다.
하이퍼레저 패브릭에서는 거래 수수료가 없다는 것 기억하시죠? 그러면 무한한 반복 코드 공격의 위험도 배제할 수 없는 것이죠. 물론 이러한 위험성을 방지하기 위해 일정 시점을 지정하여 수행을 멈출 수 있도록 설계되었습니다.
이처럼 하이퍼레저 패브릭은 누구나 참여하는 공개형 블록체인 비트코인이나 이더리움이 가진 태생적 한계를 파악하고 근본적으로 해소하려는 모습도 감지됩니다.
물론 블록체인에서 가장 중요하다고 평가받는 '탈중앙화'는 적어도 하이퍼레저 패브릭에서는 희미해 보입니다. 이 부분은 여전히 많은 토론과 논쟁의 여지가 있는 부분이기도 합니다.
이에 대한 평가에 앞서 함께 당분간 하이퍼레저에 대해 조금 더 알아보기로 하겠습니다. 오늘은 하이퍼레저 패브릭의 모델의 요소입니다.
하이퍼레저 패브릭 모델
사용자 지정이 가능한, 엔터프라이즈 블록체인 솔루션에 대한 약속을 이행하는 하이퍼레저 패브릭에 통합된 주요 설계 기능에 대해 간단히 알아보겠습니다.
- 자산 : 자산의 정의(definition)를 사용하면 모든 음식, 골동품 자동차, 선물 통화까지 거의 모든 것을 네트워크를 통해 교환할 수 있습니다.
- 체인코드 : 체인 코드 실행은 트랜잭션 순서에서 분리되어 노드 유형에 따라 필요한 신뢰 수준과 검증 수준을 제한하고 네트워크 확장성 및 성능을 최적화합니다.
- 원장 특징 : 불가역적인 공유 원장은 각 채널의 전체 거래 내역을 인코딩하고 효율적인 감사 및 분쟁 해결을 위한 SQL과 유사한 쿼리 기능을 포함합니다.
- 개인 정보 보호 : 채널들 및 사적 데이터 수집은 공통 네트워크에서 자산을 교환하는 경쟁적 비즈니스 및 규제 대상 산업에서 통상적으로 요구되는 높은 프라이버시 및 보안성을 가진 다자간 트랜잭션을 가능하게 합니다.
- 보안 및 멤버십 서비스 : 허가형 멤버십은 신뢰할 수 있는 블록체인 네트워크를 제공합니다. 참가자는 모든 거래가 승인된 규제 기관 및 감사에 의해 탐지되고 추적될 수 있다는 것을 알고 있습니다.
- 합의 : 합의에 이르는 독특한 접근 방식을 통해 기업에 필요한 유연성과 확장성을 실현할 수 있습니다.
자산
- 자산은 형체가 있는 유형(부동산, 하드웨어)에서 무형(계약 및 지적 재산)에 이르기까지 다양합니다.
- 자산은 하이퍼레저 패브릭에서는 키-값 쌍의 집합으로 표시되며 상태 변경은 채널원장에서 트랜잭션으로 기록됩니다. 이진법 또는 JSON형식으로 표현할 수 있습니다.
체인코드
체인코드는 상태, 스테이트 값을 바꾸고 원장에 기록하는 것입니다.
같은 네트워크상에 있더라도 권한에 따라서 사용할 수 있는 체인코드는 다를 수 있습니다.
체인코드는 자산 또는 자산을 정의하는 소프트웨어이며 자산을 수정하기 위한 트랜잭션 지침입니다. 즉 비즈니스 논리입니다.
체인코드는 키-값 쌍 또는 다른 상태의 데이터베이스 정보를 읽거나 변경하는 규칙을 적용합니다.
원장 특징
원장은 순차적으로 되어있으며, 패브릭의 모든 상태 전환에 대한 변조 방지 기록입니다.
상태 전환은 참가 당사자가 제출한 체인코드 호출('트랜잭션')의 결과입니다.
원장은 변하지 않는 순차로 구성된 기록을 블록으로 저장하는 블록체인('체인)'과 현재 패브릭 상태(state)를 유지하는 상태 데이터베이스로 구성됩니다.
채널당 1개의 원장이 있으며 각각의 피어는 자신이 구성원으로 속해 있는 채널의 원장 복사본을 보관합니다.
개인정보
하이퍼레저 패브릭은 채널별로 불변의 원장을 사용하고, 자산의 현재 상태(즉, 키-값 쌍 수정)를 조작, 수정할 수 있는 체인코드를 사용합니다.
모든 참가자가 하나의 공통 채널에서 활동한다면 전체 네트워크에서 공유할 수 있습니다.
특정 참가자만 참가할 수 있도록 제한할 수 있으며 별도의 채널을 생성하여 자산 상태에 접근해야하는 피어에만 체인코드를 설치할 수 있습니다.
보안 및 멤버십 서비스
- 하이퍼레저 패브릭은 모든 참가자가 신원을 알 수 있는 거래 네트워크를 뒷받침합니다.
- 전에도 말씀드렸듯 승인받은 자만 참여할 수 있는 허가형 네트워크입니다. 신원이 확인된 참가자에 대한 관리를 하는 별도의 멤버십 서비스 제공자(MSP)가 존재합니다.
합의
합의는 단순히 거래 순서에 동의하는 것 이상의 의미를 포함하며, 이런 차이는 전체 거래 흐름에서 제안, 보증, 주문, 검증, 약속에 이르기까지 근본적인 역할을 통하여 하이퍼레저 패브릭에서 강조됩니다.
합의는 블록을 구성하는 일련의 트랜잭션 정확성을 전체적으로 검증하는 것으로 정의할 수 있습니다.
합의는 합의된 거래 순서에만 국한되는 것이 아니라 제안에서 약속까지 진행되는 동안 발생하는 검증의 부산물로, 매우 중요한 특성입니다.
각 피어들이 항상 동일한 상태와 원장을 유지할 수 있도록 만드는 것입니다.
HOON
![logo_end.gif](https://steemitimages.com/DQmVVGEH48HG929Q55uQYZBuw9QbPoTNieiiZ7NCLvzG6QZ/logo_end.gif)
이 저작물은 크리에이티브 커먼즈 저작자표시-비영리-변경금지 4.0 국제 라이선스에 따라 이용할 수 있습니다.
좋은 글 감사합니다!