Hyperledger Indy (Indy-SDK)

REi·2024년 4월 11일

Hyperledger Indy

목록 보기
1/2
post-thumbnail

DID 및 DID Document 생성

> create wallet API

  • 지갑 (Wallet) 생성
    DID, VC, 인증키 등 보관

  • 매개변수
    (1) config 변수
    -id : 지갑을 식별할 수 있는 지갑 id
    - storage_type : 지갑 데이터 저장소
    + storage config 관련 정보가 JSON 데이터로 입력된다.

    (2) credential 변수
    -인증키 / 비밀번호 : 지갑에 접근하기 위한 키
    -키 생성 방법
    -키를 저장하는 저장소 etc.. JSON 데이터로 입력된다.

> open wallet API

  • 자신이 소유한 지갑 실행

> create_ and _store_my_did API

  • DID와 DID Document에 들어갈 인증키 생성 및 지갑에 저장
  • 매개변수
    (1) wallet handle : DID를 저장할 지갑의 id
    (2) did_json : DID 생성 방법 등을 명시한 JSON 데이터가 포함된다.

> build_nym_request API

  • NYM 트랜잭션 생성
    블록체인에 DID를 등록하기 위한
  • 매개변수
    (1) 트랜잭션 생성자의 DID
    (2) 블록체인에 등록할 DID 및 공개키
    (3) 등록할 DID가 소속될 그룹 정보 etc.. 매개변수들이 입력된다.

> sign_and_submit_request API

  • 생성한 NYM 트랜잭션을 indy-node(블록체인)로 전송한다.
  • 매개변수
    (1) pool handle : 어떤 블록체이 네트워크에 생성할 지 명시
    (2) wallet id : 트랜잭션 생성자 DID, 트랜잭션에 서명하기 위한 인증키가 저장된 지갑 id
    (3) NYM Transaction : indy-node로 전송할 NYM 트랜잭션

👉🏻 indy-node ) 트랜잭션 등록에 대한 작업 결과 반환

DID Document 업데이트

📌 블록체인에 저장된 DID Document의 인증키 변경
📌 serviceEndPoint 항목 추가

> replace_keys_start API

  • 새로운 비대칭키 쌍 생성
  • 매개변수
    -identity-json : 키 생성방식, seed 등 정의한 후 비대칭 키 쌍 생성

> replace_keys_apply API

  • 기존의 DID의 키 쌍 삭제 및 새로 생성한 키 쌍 등록

> set_andpoint_for_did API

  • serviceEndPoint 항목 추가
  • 매개변수
    (1) address : 서비스 URL을 입력하여 추가할 수 있다.

> build_nym_request API

  • NYM 트랜잭션 생성
    변경된 DID 인증키를 원장에 적용하는

> build_attrib_request API

  • ATTRIB 트랜잭션 생성
    serviceEndPoint 항목을 추가하기 위한

> sign_and_submit_request API

  • indy-node(블록체인)에 전송
    앞서 생성한 NYM, ATTRIB 트랜잭션을

👉🏻 indy-node ) 트랜잭션 등록에 대한 작업 결과 반환

Schema 및 Credential Definition 생성

📌 Schema 생성
📌 Credential Definition 생성

> issuer_create_schema API

  • schema 생성
  • 매개변수
    (1) Schema를 생성한 발행인 DID
    (2) Schema 이름 및 버전
    (3) Schema에 들어갈 데이터 (이름, 나이, 주소 etc... | VC 발급 대상의 Identity를 정의할 수 있는 항목.

> build_schema_request API

> sign_and_submit_request API

> issuer_create_and_store_credential_def API

  • Credential Definition 생성
  • 매개변수
    (1) 발행인의 DID
    (2) Credential Definition과 함께 사용할 Schema
    (3) Credential Definition을 통해 발행한 VC에 사용할 서명 및 폐기 방법 etc...

> build_cred_def_request API

> sign_and_submit_request API

VC Revocation Registry 생성 및 VC 폐기

📌 (VC 폐기 관련) Revocation Registry 생성
📌 (Revocation Registry 이용하여) VC 폐기

> issuer_create_and_store_revoc_reg API

  • revoc_reg_def 생성
  • 매개변수
    (1) Credential Definition의 id
    (2) 폐기 방법
    (3) 폐기 가능한 최대 VC 개수
    (4) Tails 파일 접근 정보 etc...

> build_revoc_def_request API

> sign_and_submit_request API

> issure_revoke_credential API

  • VC 폐기
  • 매개변수
    (1) 폐기할 VC의 id
    (2) 블록체인에 저장된 Revocation Registry의 id
    (3) Tails 파일에 접근하기 위한 핸들러 etc...

> build_revoc_reg_entry_request API

> sign_and_submit_request API

VC 생성 및 발급

> issuer_create_credential_offer API

  • Credential Offer 생성 및 사용자 전달
  • 매개변수
    (1) Schema id (블록체인에 저장된 발행인의 VC 양식을 가져오기 위해 필요한)
    (2) Credential Definition id

> prover_create_master_secret API

  • (VC에 대한 소유권 증명을 위한) Master Secret (=Link Secret) 생성

> build_get_cred_def_request API

  • 발행인의 Credential Definition 요청 트랜잭션 생성

> submit_request API

> prover_create_credential_request API

  • 주어진 Credential Officer에 대한 VC 발급 요청 데이터를 생성하여 발행인에 전송한다.
  • VC 발급 요청 데이터
    (1) VC의 Credential Definition
    (2) VC 소유권을 증명을 위한 MasterKEy etc..

> issuer_create_credential API

  • VC 생성 및 사용자 전달

> prover_store_credential API

  • 지갑에 VC 저장

VP 생성 및 검증

0개의 댓글