본문 바로가기
Hyperledger Fabric

[Hyperledger Fabric v2.0] Network, Identity, MSP

by namho46 2020. 7. 20.

* 본 문서는 hyperledger-fabricdocs Documentation Release master 을 공부한 내용을 바탕으로 개인적인 방식으로 작성되었습니다.

 

Hyperledger Fabric Sample Network

키워드 역할 특징
Network (N) Hyperledger Blockchain Network 가 구성될 Private Network  
Network Configuration (NC) 특정 Organization 들을 위한 Network 구성 Network Configuration 에 대한 권한은 초기 구성한 Organization 뿐만 아니라 정책(policy) 변경을 통해 추가 부여 받은 Organization 또한 해당 Network Configuration에 대한 모든 권한을 가짐
MSP(Memebership Services Provider) 신규 멤버에게 네트워크 접근 허가 권한을 부여 X.509 인증 방식 사용
Organization (R) Network Configuration의 관리자 MSP 를 통해 신규 멤버를 Network Configuration 에 추가 할 수 있
다른 Organization 과 Consortium 을 이룰 수 있
Consortium (X) Organization 간의 컨소시움 구성된 Network Configuration 에 대한 모든 권한을 보유
Channel Configuration (CC) Consortium 을 위한 채널 구성 Channel Configuration 정책에 맞는 organization 만 channel 에 참여 가능
Channel (C) Consortium 노드들의 통신 채널 channel 은 Network 로부터 완전한 독립
channel 참가자 들에게만 권한이 있음
Ledger (L) 채널 당 1개의 Ledger Smart Contract에 의해서 조회 및 업데이트 됨

Orderer (O) Transaction을 전달 받고 Block 을 채널에 전파 Orderer는 자신과 연결된 channel 들의 존재만 알 뿐 내부 내용은 알지 못함
Peer (P) Committing peer, Endorsing Peer, Leader Peer, Anchor Peer(option) Commit peer
- 모든 peer 노드는 committing peer
- 트랜잭션들의 블록을 수신
- 트랜잭션들은 이후에 검증됨
- 검증은 각 peer node의 ledger 사본에 커밋하여 기록하기 전에 이루어짐

Endorsing peer
- smart contract가 설치된 모든 peer는 endorsing peer 가 될 수 있음
- 해당 smart contract 는 client application이 트랜잭션 서명 응답을 받을때 사용 되어야만 함
- smart contract 에 대한 endorsement policy 는 organization 에서 어떤 peer가 전자서명을 할 것인지 규정함
- 이는 committing peer 의 ledger 사본에 기록되기 전에 이루어짐

Leader peer
- orderer로부터 다른 committing peer들로 트랜잭션을 전달하는 역할을 함
- static/dynamic 방식의 leader 설정 가능
- organization의 peer들은 orderer와 연결 된 1개 이상의 leader peer 노드를 보유 할 수 있음
- 이를 통해 대량의 트랜잭션이 발생하는 대규 네트워크에서 확장성과 탄력성을 높여줌

Anchor peer
- 다른 organization 과 연결된 노드
- channel configuration 에 정의
- 옵션
Smart Contract (S) Ledger 를 query 및 update 하기 위한 수
transaction logic 을 담고 있음
Peer에 설치되어야 사용 가능
설치 후 Channel 에 배포 되어야 함
Smart Contract 를 설치 한다는 것
- peer에 물리적인 smart contract 호스팅을 한다는 것
Smart Contract가 Channel 에 정의 되었다 것
- 논리적인 호스팅이 채널에 이루어 졌다는 것
Smart Contract 를 설치했다 하더라도 내부 program logic 을 볼 순 없음
Chaincode Smart Contract 를 블록체인 네트워크 deploy 할 때 패키징 되는 형태 chaincode commit 은 channel 당 1 멤버만 가능
배포 위해 과반수의 Organiaztion 들이 Chaincode definition 을 허가 해야 함
그 이후에야 Client Application 이 Smart Contract 호출 가능
Endorsement Policy transaction 에 대한 서명 정책 transaction에 대해 우선적인인 허가를 누가 할 것인지 정해야 함
정책 반영: chaincode 정의를 channel에 committing 하여 channel ledger에 endorsement policy를 올리는 행위

나만의 해석

Hyperledger Fabric 이라는 가상의 공간

  • Network: 건물
  • Network Configuration: 건물 사용 정책
    • 건물 사용 정책에 등록된 입주사만 건물에 입주 할 수 있음
    • 초기에는 첫 입주사가 건물 사용 정책을 마련 후 입주
  • Organization: 건물의 입주사
    • 입주사는 건물 관리에 대한 권한을 보유
    • 입주사는 다른 신규 멤버를 MSP 를 통해 초대 할 수 있음
    • 입주사에 의해 초대된 신규 멤버 기존 입주사와 동등한 권한을 보유
    • 입주사는 다른 입주사를 초대하여 모임을 이룰 수 있음
    • 모임은 회의실에서 진행 할 수 있음
  • Organization Units(OU): 입주사에서 특정 목적을 갖고 분할된 팀
    • 팀 별로 목적에 맞게 건물 사용자 정책을 구성 할 수 있어 편리함
    • 반면에 각 팀별로 멤버 자격 검증 서비스를 관리 해야 함
  • Node Organization Units(Node OU): 팀별 서명 검증 서비스 관리 담당자
    • 지정된 담당자를 통해 팀 멤버 서명 검증 서비스를 관리
    • 명확한 목적이 팀에 맞게 서명 검증 서비스를 분할 할 수 있음
  • Policy: 건물 사용 정책
    • 건물, 회의실, 의제 정관리 프로그램에 대한 변동사항을 수락 혹은 거절하는 결정권을 어떤 사용자에게 부여할 것인지에 대한 정책
    • 이는 회의 참여자들에 의해 동의됨
  • MSP(Membership Services Provider): 개인의 서명을 통한 입주사 사이의 멤버 자격 검증 서비스
    • 기존 입주사가 새로운 사람을 초대해주기 위해서는 신규 멤버의 서명으로 입주사로서의 자격을 검증하여 등록
    • 역할
      • 어떤 대표 서명 생성 업체 혹은 중간 서명 생성 업체에서 서명을 발급 받았는지 멤버 허가 리스트 관리
      • 어떤 서명 생성 업체를 통해 입주사 멤버들이 유효한 서명을 발급했는지 확인
  • Local MSP: 회의실 안에서 이루어지는 의견 제시를 위한 멤버 자격 검증 서비스
    • 회의 참여하는 모든 멤버는 등록이 되어있어야만 함
  • Channel MSP: 회의실 사용에 대한 멤버 자격 검증 서비스
    • 회의에 참여하는 모든 입주사들은 회의실 사용 멤버 자격 검증 서비스가 등록 되어야 함
    • 입주사의 건물 관리자 또한 회의실에 대한 자격 검증 서비스에 등록 되어있어야 함, 그래야 회의실에서 나오는 의견을 듣고 결과를 전달 할 수 있음
    • 회의에 참여하는 모든 멤버가 등록이 되어 있을 뿐만 아니라 회의실에서 의제에 대한 의견 합의를 하는 과정에서도 지속적으로 검증이 되어야 함
  • X.509: 서명 방식
  • CA: 개인 서명 생성 업체
    • 입주사에 신규 멤버 등록전에 개인 서명 생성 업체를 통해 서명을 생성해야 함
  • Certification: 개인의 서명으로서 멤버 자격 정보 관리 업체를 통해 발행
    • 의견 제시시 해당 자격 정보를 통해 의견 서명 진행
    • 의겸 검증시 해당 자격 정보를 통해 의견 검증 진행
  • Being a new organization member: 입주사의 새로운 멤버로 참여하여 활동하기 위해서는 다음과 같은 조건이 필요
    • 입주사 멤버 자격 정보 관리 업체로부터 서명 생성
    • 기존 건물 입주사들의 승인. 이는 신규 멤버의 서명과 해당 입주사의 멤버 자격 매칭 서비스를 통해 진행
    • 초대 멤버 모임 혹은 회의실에 해당 신규 멤버가 포함된 자격 매칭 서비스를 업데이트
    • 건물 사용자 정책에 신규 멤버 등록
  • Consortium: 건물 입주사가 회의에 초대한 멤버들과의 모임, 회의 참여자 모임
  • Orderer: 입주사 소속 건물 관리자, 회의실에서 나온 의견을 듣고 결과를 전달해주는 역할
    • 첫 건물 입주사에서 건물 관리 역할을 수행 하는 것이 일반적인 상황
    • 첫 입주사 이후 입주한 다른 입주사는 건물 관리자에 대한 동등한 권리를 가짐(근무는 여전히 기존 입주사에서 맡음)
    • 추후 다른 입주사 또한 본인들의 건물 관리자를 지정할 수 있음(이 또한 다른 건물 입주사들과 동일한 권리를 공유)
    • 어떤 회의실을 가 사용하는지 알 수 있음
  • Channel: 건물의 회의실
    • 회의실 외부 공간과 완벽한 차단
    • 회의실 사용 정책에 등록된 멤버만 참여할 수 있음
    • 회의실에 참석한 모든 멤버는 회의실에 대한 동등한 권한을 보유
  • Consensus: 회의실에서 나오는 의견들에 대한 합의 과정
  • Transaction: 회의실에서 나온 의제에 관련한 의견들
  • Ledger: 의제 정보가 담긴 데이터 베이스
    • 회의실 서버당 한 종류의 의제 정보 데이터베이스 보유
    • 각 멤버는 회의실 서버의 의제 정보 데이터베이스 사본을 보유
    • 변동 사항이 있다면 자신의 사본 데이터베이스에 기록
  • Smart Contract: 의제 정보 관리 프로그램
    • 이 프로그램이 설치되어 있어야만 의제를 관리 조회 및 수정 할 수 있음
    • 해당 프로그램을 사용해서 의견이 제출 됨
  • Chaincode: 의제 정보 관리 프로그램의 배포 버전, 배포는 채널 당 1 멤버만 함
  • Chaincode Commit: 의제 정보 관리 프로그램을 수정하여 회의실에 배포한다는 것은 해당 회의실의 
  • Channel Configuration: 회의실 사용 정책
    • 사전에 등록된 멤버만 회의실 을 사용 할 수 있음
  • Peer Joining Channel: 입주사 멤버가 의제를 회의실에 올리는 행위
    • 한 입주사의 멤버는 의제를 발의하기 위해 의제 정보 데이터 베이스와 의제 관리 프로그램을 해당 회의실 서버에 올려 다른 회의 참여자들과 공유 하려 함
    • 참석하기 위해서는 자신의 입주사의 건물 관리자에게 본인 인증 과정과 함꼐 회의실 참여 요청을 보냄
    • 해당 입주사의 건물 관리자는 요청을 받으면, 회의실 사용 정책에 해당 멤버 권한을 추가
    • 이를 통해 참석된 멤버는 회의실에서 해당 회의의 의제 정보 데이터베이스와 의제 관리 프로그램을 해당 회의실 서버에 올려 다른 회의 참여자들과 공유 할 수 있음
  • Endorsement: 회의 참석한 지정 입주사의 의제에 대한 의견 서명
  • Endorsement Policy: 다른 입주사들이 자신의 의제 정보 사본 데이터 베이스에 기록 하기 전에 대표로 의견 서명을 진행 할 입주사 선택 정책
  • Client Application: 회의실에서 이루어지는 의제에 관련된 외부 일반 사용자, 의견 제시
    • 의제 정보 관리 프로그램이 설치된 멤버를 통해 접속 할 수 있음
    • 외부 일반 사용자는 의제에 관련된 의견을 제시
    • 제시된 의견은 의제 관리 프로그램에 입력 됨
    • 입력된 의견은 의제 정보 관리 프로그램 설치 멤버에 의해 서명된 이후 일반 사용자에게 서명 응답이 전달 됨
  • Peer: 회의 참석자(회의 참석 가능한 세입자 집단 소속)
    • with Smart Contract Installed Peer: 의제 정보 관리 프로그램이 설치 되어있는 경우 의견에 대해 서명 할 수 있음
    • without Smart Contract Installed Peer: 의제 정보 관리 프로그램이 설치 되어있지 않은 경우 의견을 검증 찬성 반대만 할 수 있음
    • Commiting-Peer: 회의실에 참석한 모든 멤버에 해당
      • 회의실에 나온 의견에 대해 검증 할 수 있음
    • Endorsing-Peer: 의제 정보 관리 프로그램이 설치된 멤버(실제 사용되는 보안 버전과 일치 해야 함)
      • 의견에 대한 서명을 진행
      • 의견 서명 담당자 지정 정책에 등록된 멤버만 될 수 있음
    • Leader-Peer: 입주사 대표자, 동일 입주사에서 여러 멤버가 회의에 참석 한 경우 필요
      • 관리자로부터 전달 받은 내용을 회의실 내부 참석 해당 입주사 멤버들에게 전달 공지
      • 동일 입주사에서 회의에 참석한 멤버가 여러명일 경우 선정 가능
      • 해당 입주사 회의 참석자 중 대표자 선정은 고정 혹은 변동으로 가능
    • Anchor-Peer: 외부 연락책
      • 회의에 참석한 입주사가 아닌 입주사와 연락하기 위한 특별 외부 연락책

댓글