Introduction

소개

Hyperledger Fabric은 높은 수준의 비밀성, 회복력, 유연성과 확장성을 가진 모듈러한 아키텍쳐가 기반이 된 분산 원장 플랫폼입니다.

각기 다른 컴포넌트의 pluggable 구현방식과 경제 생태계 속에 존재하는 복잡함에 적응하기 위해서 디자인 되었습니다.

Hyperledger Fabric은 다른 블록체인 솔루션과 차별화 되는 독특하게 유연하고 확장 가능한 아키텍쳐를 사용자에게 전달합니다.

Enterprise 블록체인의 미래를 위한 계획에서 필요한 것은 완벽하게 확인가능하고 오픈소스 아키텍쳐로 만들어지는 것입니다.

이러한 부분에서 Hyperledger Fabric은 사용자의 시작 지점입니다.

 

Hyperledger Fabric은 처음 사용자에게 남은 introduction 섹션을 훑어보며

블록체인이 어떠한 구성요소이 존재하며 이들이 어떻게 동작하는지에 대해 숙지하는 것을 추천합니다.

 

이미 이해하고 있거나 이해하셨다면 Getting Started로 이동하셔서 데모, 기술적 특징, API와 같은 것을 찾으시길 바랍니다.

 

 

블록체인이란 무엇인가?

분산원장

블록체인 네트워크의 핵심은 네트워크에서 발생하는 모든 트랜잭션을 기록하는 분산원장 시스템입니다.

블록체인 원장은 분권화된 시스템으로 표현되기도 합니다. 이는 많은 네트워크 참여자 사이에서 시스템 안에서 유지보수하며 쌓인 데이터를 복제하기 때문입니다.

아래의 사진은 분권과 공동 작업이 실제 기업환경에서 트랜잭션되는 재화와 서비스를 보여줄 수 있는 강력한 특징임을 보여줍니다.


분권과 공동 작업에 더하여, 블록체인 내의 데이터는 읽기 전용입니다. 한 번 발생한 트랜잭션을 원장에 기입하면 절때 수정될 수 없다는 점을 보장하기 위해서 암호화 기법을 사용합니다.

이러한 불변성은 정보의 출처를 증명하는 것을 쉽게 만듭니다. 이는 유저가 트랜잭션 발생 이후 데이터가 조작 또는 변동되지 않았다는 것을 증명할 수 있기 때문입니다.

이것이 블록체인이 증명의 시스템으로 표현되는 이유입니다.

스마트 컨트랙트

일관된 데이터 업데이트를 지원하는 것과 모든 원장 기능의 호스팅을 가능하게 하기 위해서 블록체인 네트워크는 원장으로의 접근을 조절할 수 있도록 하는 스마트 컨트랙트를 사용합니다.


스마트 컨트랙트는 정보 보호의 핵심 메커니즘과 네트워크에 간단히 보관할 수 있을 뿐만 아니라 사용자가 특정 관점의 트랜잭션을 자동으로 발생 시킬 수 있도록 합니다.

예를 들자면, 스마트 컨트랙트는 도착 시간에 따라서 배송 비용이 달라지는 규정으로 쓰일 수 있습니다.

두 이해관계 집단이 약관에 동의하고 원장에 쓰여진 후부턴 일정 금액이 상품이 도착하는 순간 전송됩니다.

합의

트랜잭션이 블록체인 참여자로부터 승인 되었을 떄만 원장을 업데이트 하는 것과 원장 스스로 업데이트 하는 것을 보장하기 위해서,

네트워크의 원장들이 일치되도록하는 프로세스를 합의라고 합니다.


이후 스마트 컨트랙트와 합의 알고리즘에 대해서 더욱 많이 배울 예정입니다. 지금은 블록체인이 공유되고 복제된 트랜잭션 시스템이라는 것을 아는 것으로 충분합니다.

이 시스템은 스마트 컨트랙트에 의해 업데이트 되고, 합의라는 협력 프로세스를 통해서 일관되게 일치함을 유지합니다.

 

왜 블록체인이 유용한가요?

오늘날의 기록 시스템

오늘날의 트랜잭션 네트워크는 이전 기업환경에서 유지해온 기록 네트워크에서 근소하게 업데이트된 버전입니다.

비즈니즈 네트워크의 구성원은 서로 트랜잭션을 합니다. 하지만 트랜잭션 기록을 각자 나누어 가지고 있습니다.

그리고 트랜잭션이 되는 모든 것들은 팔리는 순간에 출처를 기록해야만 합니다.

이를 위해 상품을 판 비즈니스 측에서 제품의 소유권을 확인할 수 있도록 항목들의 묶음을 보유하고 있어야 합니다.

이러한 비즈니스 네트워크는 아래와 같습니다.


현대 기술은 이러한 종이 기록과 돌 기록을 하드 드라이브와 클라우드 플랫폼으로 가져왔습니다.

네트워크 참여자들의 신원을 관리하기 위한 통합 시스템은 더 이상 존재하지 않습니다.

출처를 만드는 것 자체가 많은 노동력을 요구하고 트랜잭션 신뢰성을 명확히 하는 것에 오래 걸립니다.

트랜잭션을 직접 손으로 사인하고 트랜잭션을 진행하고, 모든 데이터베이스가 다른 정보를 가지고 있는 것이 결국 모든 것이 잘못되는 점으로 귀결됩니다.

가시성과 신뢰가 확실함에도, 비즈니스 네트워크에 걸치는 기록 시스템을 만드는 프로세스와 정보는 오늘날의 균열있는 접근 방식으로는 불가능합니다.

 

 

Hyperledger Fabric이란 무엇입니까?

Linux Foundation이 산업 전용 블록체인 기술로 2015년에 Hyperledger를 만들어 내었습니다.

하나의 블록체인 Standard라기 보다, 오랜 시간동안 오픈 개발과 핵심 기준 적용을 장려하는 지적 재산권을 가진 공동체 프로세스를 향한 블록체인 기술을 개발하는 방향으로 진행되고 있습니다.

Hyperledger Fabric은 Hyperledger 안에 블록체인 프로젝트 중 하나입니다.

다른 블록체인 기술과 마찬가지로 원장을 가지있고, 스마트 컨트랙트를 사용하며,  참여자들에 의해 Tx를 관리하는 시스템 입니다.

 

Hyperledger가 다른 블록체인과 가지고 있는 차별점은 Private하고 허가가 필요하다는 점입니다.

 

다른 공개 비허가형 시스템은 신원미상의 이용자들에게 네트워크 참여- Tx 검증을 위햔 PoW나 네트워크의 보안을 요구-를 허락하는데 비해

Hyperledger Fabric의 사용자는 신뢰된 MSP(Membership Service Provider)를 통해 사용자를 등록합니다.

 

Hyperledger Fabric은 또한 다양한 추가 옵션을 제공합니다.

원장의 데이터가 다양한 형식으로 보관되고, 합의 메커니즘을 교체 (swap in/out)할 수 있습니다.

또한 다른 방식의 MSP도 지원됩니다.

 

Hyperledger Fabric은 Channel생성 기능을 제공합니다. 만들 수 있습니다.

Channel은 트랜잭션별 각기 다른 분산 원장을 만들 수 있도록 합니다.

이는 특히 몇몇 사용자가 경쟁자이거나 모든 사용이 트랜잭션을 모든 사람들이 알기를 원치않는 네트워크를 위한 중요한 옵션입니다.

한 예로 특정 사용자에게만 할인을 제시하는 경우를 들 수 있습니다.

Channel에 두명의 참여로 형성되, 그 Channel을 위한 원장이 두명의 참여자에게만 복제 됩니다.  

 

원장 공유

Hyperledger Fabric은 'World State'와 'Transaction log' component로 구성된 ledger system 입니다.

각 참여자들은 그들이 속한 Hyperledger Fabric 네트워크의 모든 원장의 복사본을 가지고 있습니다.

World State는 특정시점에 ledger의State 입니다. 이는 원장의 데이터 베이스라고도 볼 수 있습니다.

 

Transaction Log는 현재 World State의 값을 만들어낸 모든 transaction을 기록하고 있습니다.

이는 World State를 위한  '업데이트 내역'이라고 볼 수 있습니다.

World State와 Transaction Log 기록, 이 두개의 컴포넌트를 합쳐서 원장 이라고 합니다.

 

원장에는 World State를 위한 대체 가능한 데이터 저장소가 있습니다.

World State는를 위한 데이터 저장소는 key-value 형태로 저장되는 데이터 베이스가 default 입니다.

Transaction Log는 추가될 필요가 없습니다.

단순히 이는 블록체인 내 원장 데이터베이스의 변경 이전과 이후 기록을 가지고 있습니다.

 

 

스마트 컨트랙트

Hyperledger Fabric의 스마트 컨트랙트는 chaincode로 작성되어 있고 

블록체인 외부에서 Ledger와 상호작용할 필요가 있는 application에 의해 원장이 실행된다. 

 

대부분의 경우에 chaincode는  Ledger의 Database, World State와 상호작용 하고, Transaction log와는 상호작용하지 않습니다.

 

Chaincode 작성을 위해 다양한 프로그래밍 언어를 지원합니다. 

현재는 Go언어와 Java를 지원하고 있으며, 추후 확대 지원할 예정입니다.  더욱 많은 언어를 지원할 계획입니다.

 

 

프라이버시

네트워크에 요구에 따라선 B2B 네트워크 내 참여자들은 공유하는 정보의 양에 대해 매우 민감 할 수 있습니다.

또다른 네트워크에서느 Privacy가 최우선 고려 사항이 아닐수 도 있습니다.

Hyperledger Fabric은 Privacy(Channel 사용)가 주요 운영 요구 사항 일뿐만 아니라 비교적 설정이 유연한 네트워크를 지원합니다.

 

 

합의

Transaction은 ledger에 발생한 순서대로 저장되어야 합니다.

네트워크 내의 다른 Set (Org를 이미하는 것으로 보여짐 - 코멘트: 까칠한마녀) 의 참여자들 사이에서 발생한 Transacton일지라도..

(원문: Transactions must be written to the ledger in the order in which they occur,  even though they might be between different sets of participants within the network. )

이것이 가능하도록 하기 위해서, 트랜잭션의 순서가 설정되어야하고 에러로(또는 악의적으로) 원장에 삽입되는 Bad Transaction을 거부하는 방법을 마련해야합니다.

 

이는 컴퓨터 공학에서 전체적으로 연구가 된 분야입니다.

따라서 이를 달성하기 위한 각자 다른 협정을 가진 다양한 방법도 가지고 있습니다.

예를 들자면, PBFT(Practical Byzantium Fault Tolerance)는 파일들이 문제 발생마저도 서로 확인하여 일치하도록 하는 복제 메커니즘을 가지고 있습니다.

비트 코인의 '순서 정렬'은 모든 프로세스 이후에 따라 구축하는 순서를 정의하는 암호화 퍼즐을 해결하기 위해 컴퓨터 경쟁을 경쟁하는 곳 mining이라는 과정을 통해 발생합니다.

 

Hyperledger Fabric은 네트워크 참여자가가 사용자 간에 관계를 가장 대표할 수 있는 합의 메커니즘을 선택할 수 있도록 설계되었습니다.

프라이버시와 함께, 관계 안에서 고도로 설계된 네트워크에서부터 더욱 Peer-to-Peer한 네트워크까지 포함하는 스펙트럼이 있습니다.

우리는 현재 SOLO, Kafka를 포함하는 Hyperledger Fabric 컨센서스 메커니즘에 대해 더 배우게 될 것이며

곧 다른 문서에서 SBFT (Simplified Byzantine Fault Tolerance)로 확장 될 것입니다.

 

어디서 더 배울 수 있을까요?

Getting Started

우리는 블록체인 안에서 가장 핵심적인 요소들을 소개할 다양한 튜토리얼을 제공합니다.

이를 통해서 어떻게 다른 유저와 상호작용 하는지 배우고, 또한 실제 코드를 사용해 구현해보면서 블록체인 네트워크 안에서 간단한 트랜잭션을 구동시켜 볼 것입니다.

또한 Hyperledger Fabric을 이용하여 블록체인 네트워크 구동에 관한 생각을 가지고 있는 사람들에게 해당되는 튜토리얼도 제공합니다.


 

 

출처 : http://hyperledger-fabric.readthedocs.io/en/release-1.1/key_concepts.html

 

[포스팅개정]

2018.06.08 2차 번역 까칠한마녀

+ Recent posts