# Verifier 개발 가이드

# DID, private/public key 생성

Holder는 verifier를 식별하기 위한 DID를 생성하고, presentation을 요청할 때 이를 사용해야 합니다. 또한 이 DID를 생성하고, presentation request message에 서명을 추가하기 위해 PKI기반의 private key, public key가 필요합니다.
DID 및 private/public key 쌍을 생성하기 위하여 DID Tool 문서를 참고하세요.
생성한 DID와 private key를 분실했을 경우, 복구할 수 없기 때문에 분실하지 않도록 주의해야 합니다.

# Presentation 요청 및 검증

Verifier는 credential을 보유하고 있는 holder인 쯩 앱 (opens new window)과 연동해서 presentation을 제출 받을수 있습니다.
이를 위해 쯩 앱 (opens new window)과 연동하는 모바일 어플리케이션과, presentation을 검증하고 내용을 확인하는 Web Server가 필요합니다.

# Sequence Diagram

아래 diagram은 presentation을 획득하고 검증하는 전형적인 시나리오의 예시입니다.
구체적인 예제를 통해서 이해를 돕고자 하는 것이니, 아래 diagram의 서버 API나 절차를 반드시 지킬 필요는 없습니다.

image alt text

# Implementation

# Presentation Request 생성

Verifier 서버는 presentation 발급 요청을 위한 JWT 메시지를 만들고, verifier 클라이언트는 이를 쯩 앱 (opens new window)에게 전달합니다. 쯩 앱 (opens new window)에서 제출한 presentation message은 Verifier 클라이언트를 통해 verifier 서버에게 전달합니다.

이를 구현하기 위해 아래 가이드 문서를 참고하십시오.

Verifier는 presentation request message를 생성합니다.

이렇게 만들어진 message를 verifier 클라이언트는 쯩 앱 (opens new window)에게 전달합니다.

각 플랫폼 별 Client SDK에서 request 함수를 참고하십시오.

# Presentation 검증

쯩 앱은 verifier 앱에게 presentation message을 전달 합니다. 아래 가이드 내용을 참고 하세요.

  • Android: Android Client 개발가이드 문서에서 아래 내용을 참고하십시오
    Implementation → Zzeung → Interface → ResultCallback
  • iOS: iOS Client 개발가이드 문서에서 아래 내용을 참고 하십시오.
    Implementation → Zzeung → Methods → translate(...)

Verifier 서버는 holder로부터 제출받은 presentation message을 검증하고, presentation에 포함된 credential의 내용을 확인할 수 있습니다.