개인적으로 공부한 내용이므로 틀린 내용이 존재할 수 있습니다.
오류내용은 댓글을 통해 알려주시길 바랍니다.
핵심 키워드
- 하이퍼레저 인디(Hyperledger Indy):
분산원장에 대한 독립적인 아이덴티티를 지원하는 하이퍼레저(Hyperledger) 프로젝트이다.
블록체인 또는 기타 분산 원장을 기반으로 하는 디지털 ID를 제공하기 위한 도구, 라이브러리 및 재사용 가능한 구성 요소를 제공한다.
인증에 특화된 프로젝트로, 높은 프라이빗과 보안, 강한 아이덴티티를 위한 소프트웨어 생태계를 제공한다. - DID(Decentralized Identifier):
탈중앙화 신원증명, 분산아이디로, 중앙 시스템에 의해 통제되는 기존 신원확인 방식과 달리,
개개인이 자신의 정보에 완전한 통제권을 갖도록 하는 기술이다.
하이퍼레저 인디 프로젝트 구성
- 분산원장(Distributed Ledger)
- 인디노드(Indy-node) :
분산 원장 위에 자기주권신원(SSI) 를 제공하는 노드를 실행하는 모든 기능을 구현하는 Indy 핵심프로젝트. RBFT를 기반으로하는 자체 분산 원장을 가짐.
- 인디플레넘(Indy-Plenum) :
Hyperledger Indy 내부의 분산 원장 기술의 핵심.
파이썬기반 순서가 지정된 거래 로그를 제공해, 검증가능한 일관성있는 데이터 관리가 가능.
Indy Node로 작업을 위해선 대부분 Plenum 코드가 필요하며, 동시에 두 개의 프로젝트로 작업해야함. - 클라이언트 도구(Client Tools)
- 인디 SDK(Indy-SDK) :
자기주권신원(SSI)을 위한 분산원장 기반을 제공하는 Hyperledger Indy용 SDK.
클라이언트 및 익명 구현 내용이 포함.
Indy-Node에 기여하는 데 필요하지 않지만 Indy 생태계를 다루는 자체 애플리케이션에는 필요.
- 인디 에이전트(Indy-agent) :
단일 ID와 암호키를 보유하고, *에이전트간 프로토콜을 통해 상호작용을 함.
현재 Hyperledger Aries Project로 마이그레이션 되며, 업데이트 되지 않음. - 공유 구성 요소(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. 운전면허증)
- indy SDK를 통해 운전면허기관의 Issuer DID그리고 Verkey 쿼리가 Soverin Ledger에 작성된다.
- 운전면허기관은 자격증명(Credential Definition)을 ledger에 작성한다.
- 운전면허기관은 나(홍길동)를 위한 운전 면허증을 제작한다.
- issuer DID에 발급자 서명을 기입한 후 나(홍길동)에게 배급한다.
- 나(홍길동)는 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
'기술 단어장 > Blockchain' 카테고리의 다른 글
[블록체인] Ubuntu용 Indy SDK 빌드 과정 분석 (0) | 2021.08.11 |
---|---|
[블록체인] Hyperledger Indy node-pool 분석하기 (0) | 2021.08.10 |
[블록체인] DID document는 무엇이고 어떤 내용이 들어갈까? (0) | 2021.08.03 |
[블록체인] 하이퍼레저 프로젝트(Hyperledger Project)의 배경 및 개요 (0) | 2021.07.05 |
[블록체인] DID란 무엇인가? (0) | 2021.07.03 |
댓글