본문 바로가기

Hyperledger Fabric/Document

[HYPERLEDGER FABRIC v.1.0]2. 주요개념

 주요개념 ( KEY CONCEPTS )

소개 ( Introduction )

Hyperledger Fabric은 고도의 기밀성, 탄력성, 유연성 및 확장 성을 제공하는 모듈러 아키텍처를 기반으로하는 분산 원장 솔루션을위한 플랫폼입니다. 이것은 다양한 구성 요소의 플러그 가능 구현을 지원하고 경제 생태계 전반에 걸쳐 존재하는 복잡성과 복잡성을 수용하도록 설계되었습니다. Hyperledger Fabric은 고유 한 탄성과 확장 성을 지닌 아키텍처를 제공하여이를 대체 블록 체인 솔루션과 구별합니다. 미래의 엔터프라이즈 블록 체인을 계획하려면 완전히 검증 된 오픈 소스 아키텍처를 구축해야합니다. Hyperledger Fabric이 출발점입니다.

최초 사용자는 블록 체인이 작동하는 방식과 Hyperledger Fabric의 특정 기능 및 구성 요소에 익숙해지기 위해 아래 소개의 나머지 부분을 수행하는 것으로 시작하는 것이 좋습니다. 일단 편안하게 - 또는 블록 체인 및 Hyperledger Fabric에 이미 익숙한 경우 - 시작하기 로 이동 하여 데모, 기술 사양, API 등을 살펴보십시오.

블록체인이란? ( What is a Blockchain? )

분산 원장 ( A Distributed Ledger )

블록체인 네트워크의 중심에는 네트워크에서 발생하는 모든 트랜잭션을 기록하는 분산 원장이 있습니다. 블록체인 원장 (blockchain ledger)은 여러 네트워크 참여자간에 복제되기 때문에 종종 분산화된 것으로 설명됩니다 . 각 구성원은 유지 관리에서 공동작업을 수행합니다. 분산화와 협업은 기업이 실제 세계에서 상품과 서비스를 교환하는 방식을 반영하는 강력한 속성이라는 것을 알 수 있습니다.

분권화되고 공동 작업을하는 것 외에도 블록 체인에 기록 된 정보는 트랜잭션이 원장에 추가되면 수정할 수 없도록 보장하는 암호화 기술을 사용하여 추가 전용입니다. 불변 성의 이러한 속성은 참가자가 정보가 사실 이후에 변경되지 않았 음을 확신 할 수 있기 때문에 정보의 출처를 결정하는 것을 간단하게 만듭니다. 블록 체인(blockchains)이 때로는 증명의 시스템으로 묘사되는 이유 입니다.



스마트 계약 ( Smart Contracts )

일관된 정보 업데이트를 지원하고 모든 호스트 기능 (거래, 쿼리 등)을 가능하게하기 위해 블록 체인 네트워크는 'smart contracts' 를 사용하여 원장에 대한 액세스를 제어합니다. 스마트 계약은 정보를 캡슐화하고 네트워크 전체에서 단순하게 유지하는 핵심 메커니즘 일뿐만 아니라 참가자가 트랜잭션의 특정 측면을 자동으로 실행할 수 있도록 작성 될 수도 있습니다. 예를 들어, 스마트 계약서는 도착한 시점에 따라 변경되는 항목을 운송하는 비용을 규정하도록 작성 될 수 있습니다. 양 당사자가 동의하고 대장에 기록 된 조건에 따라 해당 금액은 물품을 수령하면 자동으로 바뀝니다.



컨센서스 ( Consensus )

네트워크를 통해 원장 트랜잭션을 동기화하는 프로세스 - 원장이 적절한 참가자가 트랜잭션을 승인 할 때만 업데이트하고 원장이 업데이트 할 때 동일한 순서로 동일한 트랜잭션으로 업데이트하는 것을 컨센서스 라고 합니다.

원장, 현명한 계약 및 합의에 대해서는 나중에 더 많이 배웁니다. 지금은 블록 체인을 스마트 계약을 통해 업데이트되고 합의라고하는 공동 프로세스를 통해 지속적으로 동기화 된 공유 복제 트랜잭션 시스템으로 생각하는 것으로 충분합니다.



Blockchain이 유용한 이유는 무엇입니까? ( Why is a Blockchain useful? )

오늘날의 기록 시스템 ( Today’s Systems of Record )

오늘날의 트랜잭션 네트워크는 비즈니스 기록을 보관 한 이후로 존재했던 네트워크의 약간 업데이트 된 버전입니다. 비즈니스 네트워크의 구성원은 서로 거래하지만 거래에 대한 별도의 기록을 유지합니다. 그리고 그들이 거래하는 것들 - 그것이 16 세기의 플랑드르 태피스트리이든 오늘날의 유가 증권이든 - 아이템을 판매하는 사업체가 아이템 소유권을 증명할 수있는 일련의 소유권을 보유하도록 판매 될 때마다 자신의 출처를 설정해야합니다.

당신이 남긴 것은 다음과 같은 비즈니스 네트워크입니다.



현대 기술은 석판과 종이 폴더에서 하드 드라이브 및 클라우드 플랫폼으로이 프로세스를 가져 왔지만 기본 구조는 동일합니다. 네트워크 참여자의 신원을 관리하기위한 통합 시스템이 존재하지 않으며, 출처를 확립하는 것이 매우 힘들어서 증권 거래를 정리하는 데 많은 시간이 걸리며 (수조 달러가 넘는 세계 규모의 거래가 수작업으로 체결되고 실행되어야 함) 시스템의 모든 데이터베이스는 고유 한 정보를 포함하므로 단일 실패 지점을 나타냅니다. 가시성과 신뢰의 필요성이 분명하더라도 비즈니스 네트워크에 걸친 기록 시스템을 구축하기 위해 정보 및 프로세스 공유에 대한 오늘날의 분열 된 접근법으로는 불가능합니다.


블록체인 차이 ( The Blockchain Difference )

"현대적인"거래 시스템으로 대표되는 비효율적인 덫 대신에 비즈니스 네트워크가 네트워크에서 신원을 확인하고, 트랜잭션을 실행하고, 데이터를 저장하는 표준 방법을 갖고 있다면 어떨까요? 한 번 작성된 변경 될 수없고 따라서 신뢰할 수있는 트랜잭션 목록을 살펴봄으로써 자산의 출처를 결정할 수 있다면 어떨까요?

그 비즈니스 네트워크는 다음과 같이 보입니다.



이것은 블록 체인 네트워크입니다. 모든 참가자는 자신의 복제본을 가지고 있습니다. 원장 정보를 공유하는 것 외에도 원장을 업데이트하는 프로세스도 공유됩니다. 참여자의 비공개 프로그램이 개인 원장 을 업데이트하는 데 사용되는 오늘날의 시스템과 달리 블록 체인 시스템은 공유 원장 을 업데이트하는 프로그램을 공유 합니다 .

블록 체인 네트워크는 공유 원장을 통해 비즈니스 네트워크를 조정할 수 있으므로 개인 정보 및 처리와 관련된 시간, 비용 및 위험을 줄이면서 신뢰와 가시성을 향상시킬 수 있습니다.

블록 체인이 무엇인지, 왜 유용한 지 알게되었습니다. 중요한 다른 많은 세부 사항들이 있지만, 그것들은 모두 정보와 프로세스의 공유라는 근본적인 아이디어와 관련이 있습니다.

Hyperledger 패브릭이란 무엇입니까? ( What is Hyperledger Fabric? )

Linux Foundation은 업계 간 블록 체인 기술을 발전시키기 위해 2015 년에 Hyperledger를 설립했습니다. 단일 블록 체인 표준을 선언하는 대신 공개 개발을 장려하고 시간이 지남에 따라 주요 표준을 채택하도록하는 지적 재산권을 통해 커뮤니티 프로세스를 통해 블록 체인 기술을 개발하는 공동 접근 방식을 장려합니다.

Hyperledger Fabric은 Hyperledger 내의 블록 체인 프로젝트 중 하나입니다. 다른 블록 체인 기술과 마찬가지로 장부가 있으며 스마트 계약을 사용하며 참가자가 거래를 관리하는 시스템입니다.

Hyperledger Fabric이 다른 블록 체인 시스템에서 분리 된 곳은 개인용 이며 허락을받은 곳 입니다. 일부 블록 체인 네트워크는 신원을 확인하기 위해 (그러한 조건을 충족하는 모든 사람이 네트워크에 가입 할 수 있도록 허용) "작업 증명"대신 Hyperledger 패브릭 네트워크의 구성원이 멤버십 서비스 공급자를 통해 등록합니다 .

Hyperledger Fabric은 또한 여러 가지 플러그 가능 옵션을 제공합니다. 원장 데이터는 여러 형식으로 저장할 수 있으며 합의 메커니즘을 전환 할 수 있으며 다른 MSP가 지원됩니다.

Hyperledger Fabric은 채널 을 생성하는 기능을 제공 하므로 참가자 그룹이 별도의 원장을 생성 할 수 있습니다. 이것은 일부 참가자가 경쟁자 일 수 있고 모든 거래를 원하지 않는 네트워크에서 특히 중요한 옵션입니다. 예를 들어, 모든 참가자가 알 수있는 것처럼 일부 참가자에게는 제공하는 특별 가격입니다. 두 명의 참가자가 채널을 구성하면 해당 참가자는 - 해당 채널의 장부 사본을 보유합니다.

공유 원장 ( Shared Ledger )

  • world state : 특정시점에서 원장 상태, 원장 데이터베이스
  • transaction log: 현재 상태의 현재 값이 된 모든 트랜잭션을 기록

Hyperledger 패브릭에는 두 가지 구성 요소 인 world state와 transaction log 구성된 원장 하위 시스템이 있습니다. 각 참가자는 그들이 속한 모든 Hyperledger Fabric 네트워크에 대해 원장 사본을 가지고 있습니다.

world state 구성 요소는 특정 시점에서 원장 상태를 나타냅니다. 원장 데이터베이스입니다. 

transaction log 구성 요소는 현재 상태의 현재 값이 된 모든 트랜잭션을 기록합니다. world state의 업데이트 기록입니다. 

따라서 원장은 world state 데이터베이스와 transaction log 기록의 조합입니다.

원장에는 world state에 대한 대체 가능한 데이터 저장소가 있습니다. 기본적으로 이것은 LevelDB key - value 저장소 데이터베이스입니다. Transaction log는 플러그 할 필요가 없습니다. 블록 체인 네트워크에서 사용 중인 원장 데이터베이스의 전후 값을 기록합니다.

스마트 계약 ( Smart contracts )

Hyperledger Fabric 스마트 계약서는 체인 코드로 작성되며 해당 응용 프로그램이 원장과 상호 작용해야 할 때 블록 체인 외부의 응용 프로그램에 의해 호출됩니다. 대부분의 경우 체인 코드는 원장의 데이터베이스 구성 요소, 트랜잭션 로그가 아닌 세계 상태 (예 : 쿼리)에서만 상호 작용합니다.

체인 코드는 여러 프로그래밍 언어로 구현 될 수 있습니다. 현재 지원되는 체인 코드 언어는 Java 및 향후 릴리스에서 제공 될 다른 언어에 대한 지원과 함께 진행됩니다.

개인 정보 ( Privacy )

네트워크의 필요에 따라 B2B (Business-to-Business) 네트워크 참가자는 공유하는 정보의 양에 대해 매우 민감합니다. 다른 네트워크의 경우 개인 정보 보호가 최고의 관심사는 아닙니다.

Hyperledger 패브릭은 개인 정보 (채널 사용)가 주요 운영 요구 사항 일뿐만 아니라 비교적 개방 된 네트워크를 지원합니다.

컨센서스 ( Consensus )

네트워크 내의 다른 참가자들 사이에있을지라도 거래는 발생 순서에 따라 원장에게 기록되어야 합니다. 이를 위해서는 거래 순서를 설정해야하며 원장에 실수로 (또는 악의적으로) 삽입 된 불량 거래를 거부하는 방법을 마련해야합니다.

이것은 철저하게 연구 된 컴퓨터 과학 분야이며이를 달성하는 방법은 다양합니다. 각기 다른 장단점이 있습니다. 예를 들어, PBFT (Practical Byzantine Fault Tolerance)는 파일 복제본이 서로 통신하여 손상된 경우에도 각 사본의 일관성을 유지할 수있는 메커니즘을 제공합니다. 양자 택일로, Bitcoin에서 순서는 광업이라는 프로세스를 통해 발생합니다. 경쟁하는 컴퓨터가 모든 프로세스가 연속적으로 구축하는 순서를 정의하는 암호 퍼즐을 해결하려고합니다.

Hyperledger Fabric은 네트워크 스타터가 참가자들 사이에 존재하는 관계를 가장 잘 나타내는 컨센서스 메커니즘을 선택할 수 있도록 설계되었습니다. 프라이버시와 마찬가지로 다양한 요구 사항이 있습니다. 관계에서 고도로 구조화 된 네트워크에서 피어 - 투 - 피어 (peer-to-peer) 네트워크로 전환합니다.

우리는 현재 SOLO, Kafka를 포함하는 Hyperledger Fabric 컨센서스 메커니즘에 대해 더 배우게 될 것이며 곧 다른 문서에서 SBFT (Simplified Byzantine Fault Tolerance)로 확장 될 것입니다.

어디에서 더 배울 수 있습니까? ( where can I learn more? )

시작하기 : 블록 체인 네트워크 내의 대부분의 주요 구성 요소에 대해 소개하고 서로 상호 작용하는 방법에 대해 자세히 배우는 자습서를 제공 한 다음 실제로 코드를 가져 와서 실행중인 일부 간단한 트랜잭션을 실행합니다 블록 체인 네트워크. 또한 Hyperledger Fabric을 사용하여 블록 체인 네트워크를 운영 할 생각을하는 자습서를 제공합니다.

하이퍼 레저 패브릭 모델 : 이 소개에서 소개 한 구성 요소 및 개념을 비롯하여 몇 가지 다른 사항을 자세히 살펴보고 샘플 트랜잭션 흐름에서 함께 작동하는 방법을 설명합니다.

Hyperledger Fabric Capabilities ( 하이퍼레저 패브릭 기능 )

Hyperledger Fabric은 모듈 형 블록 체인 아키텍처에서 엔터프라이즈 급 네트워크 보안, 확장성, 기밀성 및 성능을 제공하는 분산 원장 기술 (DLT)의 고유한 구현입니다. Hyperledger Fabric은 다음과 같은 블록 체인 네트워크 기능을 제공합니다.

신원 관리 (Identity management)

권한이 부여 된 네트워크를 활성화하기 위해 Hyperledger Fabric은 사용자 ID를 관리하고 네트워크의 모든 참가자를 인증하는 멤버 자격 서비스를 제공합니다. 액세스 제어 목록은 특정 네트워크 작업의 승인을 통해 추가 권한 계층을 제공하는 데 사용될 수 있습니다. 예를 들어, 특정 사용자 ID가 연쇄 코드 응용 프로그램을 호출하도록 허용되지만 새 연쇄 코드 배포를 차단할 수 있습니다. Hyperledger Fabric 네트워크에 대한 한 가지 사실은 회원이 서로를 (신원) 알고 있지만, 서로 무엇을하고 있는지 (개인 정보 보호 및 기밀 유지) 알지 못한다는 것입니다.

개인 정보 보호 및 기밀 유지 ( Privacy and confidentiality )

Hyperbelger Fabric은 경쟁 비즈니스 관심사와 사적이고 비밀스러운 트랜잭션을 필요로하는 모든 그룹이 동일한 허가 된 네트워크에 공존 할 수있게합니다. 비공개 채널 은 제한된 메시징 경로로서 네트워크 구성원의 특정 하위 집합에 대해 트랜잭션 개인 정보 및 기밀성을 제공하는 데 사용할 수 있습니다. 채널의 거래, 회원 및 채널 정보를 비롯한 모든 데이터는 해당 채널에 대한 액세스 권한이 명시 적으로 부여되지 않은 모든 네트워크 회원에게는 보이지 않으며 액세스 할 수 없습니다.

효율적인 처리 ( Efficient processing )

Hyperledger Fabric은 노드 유형별로 네트워크 역할을 할당합니다. 네트워크에 동시성과 병렬성을 제공하기 위해 트랜잭션 실행은 트랜잭션 순서 및 커밋과 구분됩니다. 트랜잭션을 순서화하기 전에 실행하면 각 피어 노드가 동시에 여러 트랜잭션을 처리 할 수 ​​있습니다. 이러한 동시 실행은 각 피어의 처리 효율성을 높이고 주문 서비스에 대한 트랜잭션 전달을 가속화합니다.

병렬 처리를 가능하게하는 것 외에도, 업무 분장은 트랜잭션 실행 및 원장 유지 보수 요구에서 노드 주문을 부담하지 않으며 피어 노드는 주문 (컨센서스) 작업 부하에서 자유 로워집니다. 이러한 역할의 분기는 또한 권한 부여 및 인증에 필요한 처리를 제한합니다. 모든 피어 노드는 모든 순서 노드를 신뢰 할 필요가 없으며, 그 반대의 경우도 마찬가지입니다. 따라서 하나의 프로세스는 다른 노드의 검증과 독립적으로 실행할 수 있습니다.

체인 코드 기능 ( Chaincode functionality )

연쇄 코드 응용 프로그램은 채널에서 특정 유형의 트랜잭션에 의해 호출되는 논리를 인 코드합니다. 예를 들어, 자산 소유권 변경을위한 매개 변수를 정의하는 체인 코드는 소유권을 이전하는 모든 트랜잭션이 동일한 규칙 및 요구 사항을 준수하도록 보장합니다. 시스템 체인 코드 는 전체 채널에 대한 작동 매개 변수를 정의하는 체인 코드 로 구별됩니다. 라이프 사이클 및 구성 시스템 체인 코드는 채널에 대한 규칙을 정의합니다. 보증 및 유효성 검사 시스템 체인 코드는 보증 및 유효성 검사를위한 요구 사항을 정의합니다.

모듈식 디자인 ( Modular design )

Hyperledger Fabric은 네트워크 설계자에게 기능 선택을 제공하는 모듈 식 아키텍처를 구현합니다. 예를 들어 ID, 주문 (합의) 및 암호화를위한 특정 알고리즘을 모든 Hyperledger 패브릭 네트워크에 연결할 수 있습니다. 그 결과 모든 산업 또는 공개 도메인이 채택 할 수있는 범용 블록 체인 아키텍처가 시장, 규제 및 지리적 경계를 넘어서서 상호 운용 될 수 있다는 확신을 얻게됩니다. 대조적으로, Hyperledger Fabric에 대한 현재 대안은 대체로 당파적이고 제한적이며 산업별입니다.

Hyperledger Fabric Model ( 하이퍼레저 패브릭 모델 )

이 섹션에서는 포괄적이지만 사용자 정의가 가능한 엔터프라이즈 블록 체인 솔루션의 약속을 이행하는 Hyperledger Fabric에 포함 된 주요 디자인 기능에 대해 간략히 설명합니다.

  • 자산 - 자산 정의는 전체 식품에서 골동품 자동차, 통화 선물에 이르기까지 네트워크를 통해 거의 모든 가치를 교환 할 수 있습니다.
  • 체인 코드 - 체인 코드 실행은 트랜잭션 순서 지정에서 노드 유형에 따라 필요한 신뢰 수준 및 검증 수준을 제한하고 네트워크 확장성과 성능을 최적화합니다.
  • 원장 특징 - 변경 불가능한 공유 원장은 각 채널의 전체 거래 내역을 인코딩하며 효율적인 감사 및 분쟁 해결을 위해 SQL과 유사한 쿼리 기능을 포함합니다.
  • 채널을 통한 프라이버시 - 채널은 공통 네트워크에서 자산을 교환하는 경쟁 비즈니스 및 규제 대상 산업에서 요구되는 높은 프라이버시 및 기밀성을 지닌 다차원 트랜잭션을 가능하게합니다.
  • 보안 및 회원 서비스 - 허가 된 회원은 신뢰할 수있는 블록 체인 네트워크를 제공합니다. 참가자 네트워크에서는 권한있는 규제 기관 및 감사인이 모든 거래를 탐지하고 추적 할 수 있습니다.
  • 컨센서스 - 컨센서스에 대한 독창적 인 접근 방식은 기업에 필요한 유연성과 확장 성을 제공합니다.

자산( Assets )

자산은 유형 (부동산 및 하드웨어)에서 무형 (계약 및 지적 재산)까지 다양합니다. Hyperledger Fabric은 체인 코드 트랜잭션을 사용하여 자산을 수정할 수있는 기능을 제공합니다. 자산은 하이퍼레저 패브릭에서 key-value 쌍의 모음으로 표시되며 상태 변경은 채널원장 에서 트랜잭션으로 기록됩니다. Asset은 바이너리 및/또는 JSON 형식으로 표현될 수 있습니다. Hyperledger Composer 도구를 사용하여 Hyperledger Fabric 응용 프로그램에서 자산을 쉽게 정의하고 사용할 수 있습니다.

체인코드( Chaincode )

체인 코드는 자산 또는 자산을 정의하는 소프트웨어 및 자산을 수정하기위한 거래 지시 사항입니다. 즉, 비즈니스 논리입니다. 체인 코드는 키 값 쌍 또는 다른 상태 데이터베이스 정보를 읽거나 변경하기위한 규칙을 시행합니다. 체인 코드 기능은 원장 현재 상태 데이터베이스에 대해 실행되며 거래 제안을 통해 시작됩니다. 체인 코드 실행은 네트워크에 제출되어 모든 피어의 원장에 적용될 수있는 일련의 키 값 쓰기 (쓰기 세트)를 초래합니다.

원장 특징( Ledger Features )

원장은 패브릭의 모든 상태 전이에 대한 순차적인 변경 방지 기록입니다. 상태 전이는 참여 당사자가 제출 한 체인 코드 호출 ('트랜잭션')의 결과입니다. 자산 키 - 값의 생성으로 쌍, 업데이트 또는 삭제 세트의 각 트랜잭션 결과를 원장에 기여하고 있습니다. 원장은 불변의 시퀀스 된 레코드를 블록으로 저장하는 블록 체인 ( '체인')과 현재 패브릭 상태를 유지하는 상태 데이터베이스로 구성됩니다. 채널당 1 개의 원장이 있습니다. 각 피어는 회원 인 각 채널에 대해 원장 사본을 보관합니다.

  • 키 기반 조회, 범위 쿼리 및 복합 키 쿼리를 사용하여 쿼리 및 업데이트 원장
  • 풍부한 쿼리 언어를 사용하는 읽기 전용 쿼리 (CouchDB를 상태 데이터베이스로 사용하는 경우)
  • 읽기 전용 히스토리 쿼리 - 키에 대한 원장 이력 조회, 데이터 출처 시나리오 활성화
  • 트랜잭션은 chaincode (읽기 세트)에서 읽은 키/값의 버전과 chaincode (쓰기 세트)로 작성된 키/값의 버전으로 구성됩니다.
  • 거래는 모든 보증하는 피어의 서명을 포함하며 주문 서비스에 제출됩니다.
  • 트랜잭션은 블록으로 정렬되어 주문 서비스에서 채널의 피어에게 "전달"됩니다.
  • 동료는 보증 정책에 대한 거래를 확인하고 정책을 집행합니다.
  • 블록을 추가하기 전에 체인 코드 실행 시간 이후에 읽은 자산의 상태가 변경되지 않았는지 확인하기 위해 버전 검사가 수행됩니다.
  • 거래가 확인되고 커밋되면 불변 성이 있습니다.
  • 채널의 원장에는 정책, 액세스 제어 목록 및 기타 관련 정보를 정의하는 구성 블록이 있습니다.
  • 채널에는 멤버쉽 서비스 공급자 인스턴스 가 포함되어 있어 다른 인증 기관에서 암호 자료를 파생시킬 수 있습니다.

데이터베이스, 저장소 구조 및 "쿼리 기능"에 대한 자세한 내용은 Ledger 항목을 참조하십시오.

채널을 통한 개인 정보 보호 ( Privacy through Channels )

Hyperledger Fabric은 채널 별로 불변 원장을 사용하고 자산의 현재 상태 (즉, 키 값 쌍 업데이트)를 조작하고 수정할 수있는 체인 코드를 사용합니다. 원장은 채널 범위에 존재합니다. 모든 참가자가 하나의 공통 채널에서 운영되고 있다고 가정하면 전체 네트워크에서 공유 할 수 있습니다. 또는 특정 참여자 집합 만 포함하도록 사유화 할 수 있습니다.

후자의 시나리오에서,이 참여자는 별도의 채널을 작성하여 거래 및 원장을 분리 / 분리합니다. 전체 투명성과 프라이버시 사이의 차이를 좁히고 자하는 시나리오를 해결하기 위해 체인 코드는 자산 상태에 액세스하여 읽기 및 쓰기를 수행해야하는 피어에만 설치할 수 있습니다 (즉, 체인 코드가 피어에 설치되어 있지 않은 경우 , 원장과 적절하게 인터페이스 할 수 없습니다). 데이터를 더 잘 모호하게하기 위해 체인 코드 내의 값은 장부에 추가하기 전에 AES와 같은 공통 암호화 알고리즘을 사용하여 부분적으로 또는 전체적으로 암호화 할 수 있습니다.

보안 및 회원 서비스 ( Security & Membership Services )

Hyperledger Fabric은 모든 참가자가 신원을 알고있는 트랜잭션 네트워크를 지원합니다. 공개 키 인프라는 조직, 네트워크 구성 요소 및 최종 사용자 또는 클라이언트 응용 프로그램에 연결된 암호화 인증서를 생성하는 데 사용됩니다. 결과적으로 데이터 액세스 제어는 광범위한 네트워크 및 채널 수준에서 조작되고 제어 될 수 있습니다. Hyperledger Fabric의 "허가 된"개념은 채널의 존재 및 기능과 함께 개인 정보 및 기밀성이 중요한 관심사 인 시나리오를 해결하는 데 도움이됩니다.

암호화 구현 및 Hyperledger Fabric에서 사용되는 서명, 확인, 인증 방법을 더 잘 이해 하려면 Membership Service Provider (MSP) 항목을 참조하십시오.

컨센서스 ( Consensus )

분배 원장 기술에서 합의는 최근에 단일 기능 내에서 특정 알고리즘과 동의어가되었습니다. 그러나 합의는 단순히 거래 순서에 동의하는 것 이상의 의미를 지니 며, 이러한 차별화는 제안 및 보증, 주문, 검증 및 약속에 이르기까지 전체 거래 흐름에서 기본적인 역할을 통해 Hyperledger Fabric에서 강조됩니다. 요컨대, 합의는 블록을 구성하는 일련의 트랜잭션의 정확성에 대한 완전한 원 검증으로 정의됩니다.

컨센서스는 블록 트랜잭션의 순서와 결과가 명시적인 정책 기준 검사를 충족하면 궁극적으로 달성됩니다. 이러한 확인 및 잔액은 거래의 수명주기 동안 발생하며 특정 거래 클래스를 보증해야하는 특정 회원 및 시스템 체인 코드를 보증하는 보증 정책의 사용을 포함하여 이러한 정책이 시행되고 유지되도록합니다. 공약을하기 전에 동료들은 이러한 시스템 체인 코드를 사용하여 충분한 보증이 존재하고 해당 단체에서 파생되었음을 확인합니다. 또한 트랜잭션이 포함 된 블록이 원장에 추가되기 전에 원장의 현재 상태가 동의되거나 동의되는 버전 확인이 수행됩니다.

수많은 승인, 유효성 및 버전 검사가 수행되는 것 외에도 트랜잭션 흐름의 모든 방향에서 진행중인 신원 확인이 진행 중입니다. 액세스 제어 목록은 네트워크의 계층 구조 (채널에 대한 서비스 주문)에서 구현되며 트랜잭션 제안이 다른 아키텍처 구성 요소를 통과 할 때 페이로드는 반복적으로 서명, 확인 및 인증됩니다. 결론적으로, 합의는 일련의 거래의 합의 된 주문에만 국한되는 것이 아니라 오히려 거래 제안이 의결에서 약속까지 진행되는 동안 진행되는 검증의 부산물로서 달성되는 중요한 특성입니다.

컨센서스를 시각적으로 나타내는 트랜잭션 흐름도를 확인하십시오 .