Hyperledger (작성중)


Hyperledger란?

스마트 컨트랙트(smart contract)을 구현할 수 있는 오픈소스 기반의 프라이빗 블록체인 프로젝트
암호화폐보다는 데이터베이스 관점에서 접근
공유 데이터베이스의 새로운 형태 로써 기업형 비즈니스 환경에서 사용할 수 있도록 블록체인 솔루션을 발전시킨 것

  • 2015년, Linux Foundation
  • IBM, Inter, SAP 등 약 230개의 기업에서 사용
  • 기업 친화적 license (Apache 2.0 license)
  • 모듈화된 디자인, 상호운용성, 보안, API제공

Distributed and Shared Database

공유 데이터베이스에서 고려할 사항

  • 신뢰 : 데이터에 접근할 수 있는 사용자에 대한 신뢰
  • 충돌 해결 : 동일한 데이터를 수정하는 충돌에 대한 해결
  • 권한 및 접근 관리 : 접근할 수 있는 사용자와 권한

Public Blockchain

기업형 블록체인에 적합하지 않은 기존의 Public Blockchain

  • 보안 (Confidentiality and privacy)
    • 공개된 블록체인, 공개된 데이터
  • 확장성(Scalability)
    • 참여하는 모든 노드가 트랜잭션을 처리
  • 지속 불가능한 합의 알고리즘(Unsustainable consensus algorithm)
    • PoW 알고리즘이 불필요하게 연산 리소스를 낭비함
  • 거버넌스 부족(Lack of governance)
    • 완전한 탈중앙화 시스템

Private Blockchain

  • Trust building
    • 서로 다른 기업들 간의 비즈니스에서의 신뢰 구축 가능
  • Transparency, Security, Privacy
    • 투명성, 보안, 프라이버시
  • Programmable business logic
    • 스마트 컨트랙트 실행 가능, 소프트웨어적 자동화
      • ex. 과거에는 생각하지 못했던 기능을 전자적으로 구현
  • Traceability
    • 모든 기록을 무결성을 가지면서 추적 가능
  • Tradability
    • 자산들의 거래를 가능하게 함

Hyperledger 구성

프레임워크와 도구

  • Frameworks : PABRIC, INDY 등…
  • Tools : CALIPER, CELLO 등…

Hyperledger Fabric

  • linux foundation open source project

Peer

블록체인의 노드와 비슷한 개념

  • ledger와 chaincode(smart contract)를 실행하는 참여자
  • 관리자나 응용프로그램이 액세스할 수 있도록 API제공
  • peer의 물리적 위치는 제한이 없음(cloud, data center, local machine)
  • peer는 개념적으로 특정 채널에 속해있음

Orderer peer

  • consensus 담당 peer

채널내에서 여러개의 트랜잭션이 발생할 때 모든 peer들의 ledger가 동일하게 유지되도록 하는 역할
주로 쓰기작업에서 요청들의 순서를 결정한 후 각 peer들에게 전달

Application

  • 응용프로그램은 peer에 API형태로 접근, ledger에 접근하거나 chaincode를 실행
  • 블록체인 외부에 존재 (Peer, ledger 및 chaincode는 블록체인 내부)
  • Ledger query : read 기능
    • peer와 연결
    • Ledger의 정보를 요청하는 chaincode 호출
    • peer는 chaincode를 통해서 응용프로그램이 원하는 결과 반환
  • Ledger update : write 기능
    • orderer peer에게 요청
    • orderer는 consensus작업 수행 후 쓰기 작업 결과 반환

Channel

블록체인 네트워크 하부에 존재하는 일종의 sub 네트워크

각 채널마다 별도의 Ledger운영 가능 -> 기업내의 업무별 블록체인 분리 (ex. 영업용, 개발용)

Ledger

Fact와 State를 기록하는 원장

  • Fact : 블록체인에서 발생한 트랜잭션 정보
  • State : 트랜잭션을 통해서 변경된 블록체인 정보 (key, value로 구성되는 데이터베이스 사용)

블록체인의 트랜잭션 정보가 데이터베이스의 상태를 결정
이론적으로 데이터베이스가 없어도 블록체인으로부터 복원 가능

Operation

  • Query (read)
  • Update (create, update, delete) : Orderer를 거쳐서 수행

Ledger: Blockchain + World State

  • Blockchain (facts) : 트랜잭션들의 대한 로그, 변경 불가능
  • World state (states) : key-value 쌍 데이터베이스, 상태에 따라 변경됨

World State

Key-Value를 저장하는 DB형태

동일한 key에 대해서 동시에 쓰기작업이 발생할 때 쓰기 시점의 version 확인이 필요함 (concurrent update 방지)

version : 각 key-value별 버전 유지, value가 업데이트 될 때마다 증가 (일종의 counter)

MVCC기법 : 다중 트랜잭션의 상호간섭 작용으로부터 Database를 보호

  • LevelDB : simple key-value pairs
  • couchDB : LevelDB보다 기능이 풍부하고 Json데이터 지원

Comments