아메숑 2019. 3. 31. 09:58

1. Introduction

Hyperledger Fabric은 고도의 기밀성, 탄력성, 유연성 및 확장성을 제공하는 모듈러 아키텍처를 기반으로 하는 분산 원장 플랫폼이다. 다양한 구성 요소의 pluggable 구현방식을 지원하고 경제 생태계 전반에 걸쳐 존재하는 복잡성을 수용하도록 설계되었다.

블록체인이란?

 

[분산 원장]

블록 체인 네트워크의 중심에는 네트워크에서 발생하는 모든 트랜잭션을 기록하는 분산 원장이 있다.

블록 체인 원장 (blockchain ledger)은 여러 네트워크 참가자마다 복제되기 때문에 분산되었다고 하며, 각 참가자는 원장을 공동으로 유지 및 관리한다. 블록체인의 분산화와 협업화는 기업이 실제로 상품과 서비스를 교환하는 방식을 반영한 것이므로 강력한 특성을 지니고 있다.

분산화와 협업 외에도, 블록 체인에 기록된 정보는 트랜잭션이 원장에 추가되면 수정할 수 없도록 하는 암호화 기술을 적용했다. 블록 체인의 "불변성"속성은 정보가 이후에 변경되지 않았다고 확신할 수 있기 때문에 정보의 출처를 간단히 알아낼 수 있다. 이로 인해 블록 체인 (blockchains)은 종종 systems of proof라고도 불린다.

[스마트 컨트랙트]

일관된 정보의 업데이트를 지원하고 모든 호스트 기능 (거래, 쿼리 등)을 가능하게 하기 위해 블록 체인 네트워크는 스마트 컨트랙트(체인코드)를 사용하여 원장에 대한 액세스를 제어한다.

체인코드는 정보를 캡슐화하고 네트워크내에서 단순성을 유지하는 역할 외에도 참가자가 트랜잭션의 특정 기능이 자동으로 실행되도록 작성할 수도 있다.

예를 들어, 상품의 도착시간에 따라 운송 비용이 변경되는 상품 운송 비용을 명시하기 위해 체인코드를 작성할 수 있다. 양 당사자가 동의하고 원장에 기록이 되면 시간에 따른 운송 비용이 자동으로 청구된다.

[합의]

네트워크 안에서 원장 트랜잭션을 동기화하는 프로세스이다. 적합한 참가자가 트랜잭션을 승인 한 경우에만 원장을 업데이트하며, 원장이 업데이트 될 때 동일한 순서로 동일한 트랜잭션을 업데이트하는 것을 합의라고 한다.

블록체인이 유용한 이유

 

[오늘날의 기록 시스템]

오늘날의 트랜잭션 네트워크는 비즈니스 기록이 보관된 이후로 존재했던 네트워크의 약간 상위버전이다. 비즈니스 네트워크의 구성원은 서로 거래하면서 트랜잭션에 대한 별도의 레코드를 보유한다. 그리고 그들이 거래하는 상품을 판매하는 사업체가 자신의 소유권을 지니고 있음을 보증하기 위해 상품이 판매될 때마다 그 출처를 남겨야 한다.

 

현대 기술은 석판과 종이 폴더에서 하드 드라이브 및 클라우드 플랫폼으로 발전했지만 구조는 동일하다. 네트워크 참가자의 신원을 관리하기위한 통합 시스템이 존재하지 않으며, 출처를 남기며 증권 거래를 하는데 수일이 걸린다. (세계 거래량은 수조 달러가 넘음) 수작업으로 계약서에 서명하고 거래를 하며, 시스템의 모든 데이터베이스는 고유 한 정보를 가지고 있으므로 정보가 잘못되어도 한 개의 데이터베이스에서만 정보가 잘못되었다는 것을 확인할 수 있다.

정보 및 프로세스 공유에 대한 오늘날의 분산된 접근법으로는 비즈니스 네트워크에 걸친 기록 시스템을 구축하는 것은 불가능하므로 가시성과 신뢰를 충족시키지 못한다.

[블록체인의 이점]

"현대" 트랜잭션 시스템으로 대표되는 비효율적인 쥐의 소굴을 짓는 대신 비즈니스 네트워크가 네트워크에서 신원을 확인하고, 트랜잭션을 실행하고, 데이터를 저장하는 표준 방법을 갖고 있다면 어떨까? 일단 작성되면 변경이 불가능하고 그러므로 신뢰할 수 있는 거래 목록을 살펴봄으로써 자산의 출처를 결정할 수 있다면 어떨까?

이것은 모든 참가자가 자신의 복제본을 가지고 있는 블록 체인 네트워크이다. 원장 정보를 공유하는 것과 마찬가지로 원장을 업데이트하는 프로세스도 공유된다. 참여자의 개인 프로그램이 개인 원장을 업데이트하는 오늘날의 시스템과 달리 블록 체인 시스템은 공유 원장을 업데이트하는 프로그램도 공유한다.

블록 체인 네트워크는 공유 원장을 통해 비즈니스 네트워크를 통합하므로 개인 정보 및 신뢰와 가시성을 향상시키면서 진행되는 거래와 관련된 시간, 비용 및 위험을 줄인다.

Hyperledger Fabric 이란?

 

Linux Foundation 2015 년에 업계 간 블록 체인 기술을 발전시키기 위해 Hyperledger 프로젝트를 설립했다. 한 개의 블록 체인 표준을 지정하는 대신 공개 개발을 장려하고 시간이 지남에 따라 대중화된 표준을 채택하도록 하며, 지적 재산권과 함께 커뮤니티 프로세스를 통해 블록 체인 기술을 개발하는 공동 접근 방식을 권장한다.

Hyperledger Fabric Hyperledger 내의 블록 체인 프로젝트 중 하나이다. 다른 블록 체인 기술처럼 원장이 있으며 스마트 컨트랙트(체인코드)를 사용하며 참가자가 트랜잭션을 관리하는 시스템이다.

Hyperledger Fabric이 다른 블록 체인 시스템과 다른 점은 privatepermissioned이다. Hyperledger Fabric은 신원을 알 수 없는 참가자가 네트워크에 참가하는 permissionless 시스템 대신 구성원은 신뢰할 수 있는 Membership Service Provider(MSP)를 통해 네트워크에 등록한다. (트랜잭션 유효성을 확인하고 네트워크를 보호하기위한 “proof of work"와 같은 프로토콜이 필요함) .

Hyperledger Fabric은 또한 여러 가지 옵션을 제공한다. 원장 데이터는 여러 형식으로 저장할 수 있으며 합의 메커니즘을 교체(swap in/out)할 수 있고 여러 가지 MSP를 지원한다.

또한 Hyperledger Fabric은 채널을 생성하여 참가자 그룹이 별도의 원장을 생성할 수 있도록 한다. 이것은 일부 참가자가 경쟁자이거나 특정한 거래(예를 들어, 일부 참가자에게만 특별 가격에 제공)를 모든 참가자가 알 수 없도록 하는 네트워크에서 특히 필요하다. 두 명의 참가자가 채널을 구성하면 두 참가자는 채널 원장의 복사본을 보유한다.

[분산 원장]

Hyperledger Fabric에는 world statetransaction log로 구성된 원장 하위 시스템이 있으며, 참가자는 자신이 속한 모든 Hyperledger Fabric 네트워크에 대해 원장 사본을 가지고 있다.

World state는 현재 시점에서 원장 상태를 나타내며 원장의 데이터베이스이다. Transaction logworld state의 현재 값을 가져온 모든 트랜잭션을 기록합니다. 그것은 world state의 업데이트 기록입니다. 따라서 원장은 world state 데이터베이스와 transaction log 기록으로 구성되어 있다.

원장에는 world state를 위한 데이터 변경이 가능한 데이터저장소가 있다. 기본적으로 이것은 LevelDB - 값 데이터베이스이다. Transaction log는 데이터는 변경되면 안되고 블록 체인 네트워크에서 사용중인 원장 데이터베이스의 전후 값을 기록한다.

[스마트 컨트랙트]

Hyperledger Fabric 스마트 컨트랙트는 체인 코드로 작성되며 블록 체인 외부의 응용 프로그램이 원장과 통신해야 할 때 응용 프로그램에 의해 호출된다. 대부분의 경우 체인 코드는 원장 데이터베이스를 구성하는 world state( : 쿼리)와 상호작용하며, Transaction log와는 상호작용하지 않는다.

체인 코드는 여러 프로그래밍 언어로 구현될 수 있다. 현재 Go Node를 지원한다.

[프라이버시]

B2B (Business-to-Business) 네트워크 참가자는 많은 정보를 공유하는 것에 대해 매우 민감하다. 반면에 다른 네트워크에서 프라이버시는 그다지 중요하지 않다.

Hyperledger Fabric은 비교적 개방된 네트워크를 지원하면서 동시에 프라이버시(채널 사용)를 보호하는 네트워크를 지원한다.

[합의]

트랜잭션은 네트워크 내의 서로 다른 참가자들 간에 발생하더라도, 발생하는 순서대로 원장에게 쓰여 져야한다. 그렇게 하기 위해선 트랜잭션 순서를 설정해야 하며, 실수로 (또는 악의적으로) 원장에 삽입된 불량 트랜잭션을 거부하는 체계가 있어야 한다.

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

Hyperledger Fabric은 네트워크를 시작하는 사람이 참가자들의 관계를 가장 잘 나타내는 합의 메커니즘을 선택할 수 있도록 설계되었다. 프라이버시와 마찬가지로 합의는 여러 환경에 적용될 수 있다. 고도로 구조화된 네트워크부터 더 많은 피어 - - 피어 (peer-to-peer) 네트워크까지 적용이 가능하다.

 

출처 - https://hyperledger-fabric.readthedocs.io/en/latest/whatsnew.html

 

What’s new in v1.4 — hyperledger-fabricdocs master documentation

Docs » What’s new in v1.4 Edit on GitHub What’s new in v1.4 Hyperledger Fabric’s First long term support release Hyperledger Fabric has matured since the initial v1.0 release, and so has the community of Fabric operators. The Fabric developers have been wo

hyperledger-fabric.readthedocs.io

공식사이트의 내용을 직접 번역한 것입니다.