본문 바로가기
기술 단어장/Blockchain

[블록체인] 하이퍼레저 인디(Hyperledger indy)플랫폼과 SSI/DID

by MFDO 2021. 7. 6.

개인적으로 공부한 내용이므로 틀린 내용이 존재할 수 있습니다.

오류내용은 댓글을 통해 알려주시길 바랍니다.

 

 

핵심 키워드

  1. 하이퍼레저 인디(Hyperledger Indy):
    분산원장에 대한 독립적인 아이덴티티를 지원하는 하이퍼레저(Hyperledger) 프로젝트이다.
    블록체인 또는 기타 분산 원장을 기반으로 하는 디지털 ID를 제공하기 위한 도구, 라이브러리 및 재사용 가능한 구성 요소를 제공한다.
    인증에 특화된 프로젝트로, 높은 프라이빗과 보안, 강한 아이덴티티를 위한 소프트웨어 생태계를 제공한다.

  2. DID(Decentralized Identifier):
    탈중앙화 신원증명, 분산아이디로, 중앙 시스템에 의해 통제되는 기존 신원확인 방식과 달리,
    개개인이 자신의 정보에 완전한 통제권을 갖도록 하는 기술이다. 

 

 

 

 

하이퍼레저 인디 프로젝트 구성

  1. 분산원장(Distributed Ledger)
    - 인디노드(Indy-node) :
    분산 원장 위에 자기주권신원(SSI) 를 제공하는 노드를 실행하는 모든 기능을 구현하는 Indy 핵심프로젝트. RBFT를 기반으로하는 자체 분산 원장을 가짐.

    - 인디플레넘(Indy-Plenum) : 
    Hyperledger Indy 내부의 분산 원장 기술의 핵심.
    파이썬기반 순서가 지정된 거래 로그를 제공해, 검증가능한 일관성있는 데이터 관리가 가능.
    Indy Node로 작업을 위해선 대부분 Plenum 코드가 필요하며, 동시에 두 개의 프로젝트로 작업해야함. 


  2. 클라이언트 도구(Client Tools)
    - 인디 SDK(Indy-SDK) : 
    자기주권신원(SSI)을 위한 분산원장 기반을 제공하는 Hyperledger Indy용 SDK.
    클라이언트 및 익명 구현 내용이 포함.
    Indy-Node에 기여하는 데 필요하지 않지만 Indy 생태계를 다루는 자체 애플리케이션에는 필요.

    - 인디 에이전트(Indy-agent) : 
    단일 ID와 암호키를 보유하고, *에이전트간 프로토콜을 통해 상호작용을 함.
    현재 Hyperledger Aries Project로 마이그레이션 되며, 업데이트 되지 않음.


  3. 공유 구성 요소(Shared Components)
    - 인디 힙(Indy-Hipe) :
    Hipe는 "Hyperledger Indy Project Enhancements"의 약어로, Indy 표준화에 관한 중요 주제를 나타냄.
    Indy 프로젝트에 대한 *RFC제공

    - 인디 크립토(Indy-crypto) : 
    하이퍼레저 인디 구성요소를 위한 공유 암호화 라이브러리.

    С-callable library interface, Rust сrate, Python wrapper의 *아티팩트(Artifact)를 제공한다.

 

*SDK : 소프트웨어 개발 키트(Software Development Kit) 하드웨어 플랫폼, 운영 체제, 프로그래밍 언어 제작사가 제공하는 일련의 툴
*에이전트 : 개입 없이 주기적으로 정보를 모으거나 또는 일부 다른 서비스를 수행하는 프로그램
*RFC : 인터넷 기술에 적용 가능한 새로운 연구, 혁신, 기법 등을 아우르는 메모

*Artifact : 소프트웨어 기능, 아키텍처 및 디자인 설명에 도움되는 요소 (링크참조)

 

 

 

 

 

DID 과정 (ex. 운전면허증)

  1. indy SDK를 통해 운전면허기관의 Issuer DID그리고 Verkey 쿼리가 Soverin Ledger에 작성된다.
  2. 운전면허기관은 자격증명(Credential Definition)을 ledger에 작성한다.
  3. 운전면허기관은 나(홍길동)를 위한 운전 면허증을 제작한다.
  4. issuer DID에 발급자 서명을 기입한 후 나(홍길동)에게 배급한다.
  5. 나(홍길동)는 Soverin Ledger에 전자 서명을 체크한다. 

 

 

SSI와 Public BlockChain : VC

 - Sovrin : DID에 대한 구현체가 있는 곳

 - Issuer : Prover에게 0지식 정보를 인고딩해서 전달한다. VC 전달
 - Prover :
Verifier에게 0지식 증명을 위한 VP를 전달한다. 

 

 

 

 

블록체인에는 어떤 내용이 들어갈까?

블록체인에는 private data는 쓰여지지 않고 오직 Public data만이 들어간다.

  • 포함 내용(On Chain)
     - Public DIDs : 공개 신원 식별자
     - Issuer's Public Keys : VC발급 기관이 가지는 공개키
     - Credential's Schema : 자격증명 정의 내용
     - Information about revocation : 이 블록체인이 유효한가?

  • 비포함 내용(Off Chain)
     - Pairwise DIDs : DIDs 엔티티를 쌍으로 비교하는 임의의 프로세스
     - Credentials : 자격 증명서
     - Proves : 검증
     - Private keys : 비밀키

 

 

네트워크의 구성

Validator Pool

  • 합의를 위한 노드를 가짐
  • Validator 노드는 RBFT구현인 Plenum 프로토콜에 의해 작동하며, 장부에 기록(Writes)

 

Observer Pool

  • 데이터를 읽고(Reads) 대기(Standbys)하는 곳
  • 노드에 읽기 전용으로 사본 저장
  • Read requests :  Validate Node에 영향을 주지 않고, ID 레코드에 대한 수요 확장성 제공
  • Hot standbys : Validate Node에서 기술적 문제가 발생할 경우 서비스 전환
  • Push subscriptions : 이벤트 알림을 배포 수단 제공 

 

 

Ledger의 타입

  • Audit Ledger :
    원장 간의 동기화, 신규 또는 재시작 된 노드에 의한 풀 상태 복구, 외부 감사 역할 수행
  • Config Ledger
    풀을 구성하는 파라메타 존재, 트랜잭션 유효성 검사에 사용
  • Pool Ledger :
    풀의 모든 노드에 대한 거래 내역 존재, 노드 추가/편집/제거 역할 수행
  • Domain Ledger :
    Identity-specific transactions, Application-specific transactions 지원

 + 플러그인을 통해 새로운 ledger 추가 가능

 

 

 

도움되는 문서

 - 하이퍼레저 인디의 구성 : https://taeyonghwang.github.io/project/hyperledger-indy/

 - 하이퍼레저 인디의 네트워크 : https://hamait.tistory.com/1063

 - 하이퍼레저 인디의 공식문서 : https://hyperledger-indy.readthedocs.io/en/latest/index.html

 - Sovrin은 무엇일까 : https://ingeec.tistory.com/98

댓글