§ Verifiable Credentials (VC) Marketplace Interfaces

Specification Status: Pre-Draft

Latest Draft: identity.foundation/vc-marketplace

Editors:
Martin Riedel (Consensys Mesh)
Stepan Gershuni (Affinidi)

Contributors:

Participate:
GitHub repo
File a bug
Commit history

§ Abstract


Work in copy of Hack.md

§ Marketplace Use Cases

§ Traditional KYC/AML Verification Provider

§ Personas

§ Persona Motivations

§ Description

§ Sequence Diagram

TODO

Add Sequence Diagram for UC.

§ Buying a Piece of Art in Switzerland

§ Personas

VC Marketplace:
See Abstract.
Gallery:
Art Gallery with expensive artwork for sale, seller. Required to ask for AML report by law when large sells are made.
Buyer:
A person willing to buy an expensive piece of art.
AML provider:
An agency providing digital AML reports.

§ Description

The use cases provides an example of a workflow where Issuer and Verifier are not aware of each other and in the same time they are willing to get into commercial relationships. This use case describes how VC Marketplace can solve a problem of finding an AML provider and presenting an AML report when making a large purchase. Holder gets the benefit of convinience of making a large purchase; Verifier is able to provide better experience for thier customers and Issuer is able to get a new distribution channel.

§ Sequence Diagram

sequenceDiagram participant G as Gallery participant B as Buyer participant M as VC Marketplace participant A as AML Provider note over G: Art Gallery with expensive artwork for sale, seller note over B: A person willing to buy an expensive piece of art note over A: An agency providing digital AML reports opt Initialization A->>A: Self-Publish Manifest, containin description, pricing and schemas of the possible AML reports G->>G: Self-Publish Presentation Definition and requirements for AML documents B->>G: Chooses an artwork, negotiates deal G->>B: Request for AML report note over B, G: Can be in a form of QR code or link that returns accpeted issuers from VC Marketplace end opt Discovery B->>M: Looks for AML report providers (issuers) that satisfy requirements M->>B: Responds with the list of AML providers (issuers) note over M, B: Can be sorted by price, reputation, etc. note over M, B: Also includes data required for the issuer to issue VC end opt Transaction B->>A: Provide necessary data to get VC A->>A: Compiles report A->>B: Issues report in a form of VC A->>M: Records proof of issuance B->>G: Presents report. Completes transaction B->>M: (optionally) Confirms transaction M->>G: Charges for the report + referral fee M->>A: Payment for successfully issued and used VC end opt Re-use B->>B: Reuses the AML VC with other verifier note right of B: E.g. Opening a bank account, making another large purchase B->>M: Reports re-use M->>A: Subsequent payment for the re-use (if Verifier B is also registered with the marketplace) end

§ Using Employment Credentials to Get a Loan, Rent a House

§ Personas

VC Marketplace:
See Abstract.
Bank:
A verifier looking for proof of employment to open a bank account
Employer:
Issuer of the employment credential
Worker:
Holder looking to get different services (banking, housing) via the marketplace
Landlord:
A verifier looking for proof of employment of the future tenant.

§ Description

This use cases describes the potential use case of reusing the same employment VC to discover service providers and get different services from independent verifiers.

§ Sequence Diagram

sequenceDiagram participant E as Employer participant B as Bank participant M as VC Marketplace participant L as Landlord participant W as Worker opt Initialization B->>M: Publishes requirement for a loan application L->>M: Publishes requirement for renting an apartment E->>M: Publishes issuer metadata regarding type and structure of the VC that can be issued note over E, M: Employer can reuse existing VC schema and type to reduce amount of work needed to prepare employment confirmation end opt Discovery W->>M: Looks for banks that accept employment letters from the current employer M->>W: Returns the list of banks that accept certain VC type for the application W->>B: Chooses one bank, stats account opening process note over W, B: Worker initializes communication with the service provider W->>E: Request Employment Letter E->>W: Issues proof of employment end opt Transaction B->>W: Sends Presentation Definition W->>B: Generates and sends Verifiable Presentation B->>W: Opens a bank account B->>M: Record of service rendered B->>M: Payment of the referral fee M->>E: Payment of royalty fee end opt Re-use W->>M: Query for the landlords that accept Employment VC that Worker already has M->>W: Responds with a list of landlords W->>L: Chooses the landlord and starts renting application L->>W: Sends Presentation Definition W->>L: Generates and sends Verifiable Presentation L->>W: Rents out the apartment note over L, M: In this case no payment is associated with the issuance or sharing of the VC end

§ Requesting an age-gated product at a vending machine

§ Personas

§ Persona Motivations

§ Description

§ Sequence Diagram

§ Requesting a university transcript

§ Personas

§ Persona Motivations

§ Description

§ Sequence Diagram

§ Discover credential manifest by (web-)crawling

§ Personas

University:
The University is a federally acknowledged institution that is able to issue educational degrees to its students.
Student:
The (former) Student attends or has attended a University and is able to receive a Transcript Credential from the University. Students are also the main Holders of their own educational credentials. As part of this Use Case the Student is also the Subject of a “National ID Card”
VC Marketplace:
See Abstract.
Government:
A national government capable of issuing “National ID Card” credentials to its citizens and permanent residents.

§ Persona Motivations

§ Description

This Use-Cases mirrors the Behavior of “Requesting a university transcript” but with initial “Manifest Discovery” via web-crawling and not by active registration.s

§ Sequence Diagram

sequenceDiagram participant U as University participant S as Student participant M as VC Marketplace participant G as Government note over U: A university capable of issuing "transcript" credentials note over G: A national government capable of issuing "National ID Card" credentials note over S: A former student of the university requesting a formal transcript credential opt Before G->>G: Self-Publish IdDocument {Country = Germany} Manifest U->>U: Self-Publish Transcript {University = XYZ} M->>G: Discover Manifest by (web-)crawling M->>U: Discover Manifest by (web-)crawling end S->>M: Lookup note over S,M: Credential = Transcript note over S,M: Constraint = University = XYZ M->>S: :[University DID] S->>U: Request Transcript opt U->>S: Request country S->>U: :country = Germany end U->>S: Request IdDocument credential {country = Germany} S->>M: Lookup note over S,M: Credential = IdDocument note over S,M: Constraint = Country = Germany M->>S: :[Government DID] S->>G: Request IdDocument G->>G: ...Validate identity G->>S: :IdDocument Credential S->>U: :IdDocument Credential U->>S: :Transcript Credential

§ Payment-motivated Use Case

TODO

Add UC

  • Payment during issuance
  • Payment during presentation

§ Personas

§ Persona Motivations

§ Description

§ Sequence Diagram

§ Beibehaltungsgenehmigung and Citizenship

TODO

TODO @Martin: Add example for Beibehaltungsgenehmigung.

§ Personas

§ Persona Motivations

§ Description

§ Sequence Diagram

§ VC Marketplace Scope (e.g. specifically what is Out of Scope)

§ VC Marketplace Interface

§ INTERFACE NAME

§ INTERFACE DESCRIPTION

§ INTERFACE DATA (REQUEST)

§ INTERFACE DATA (RESPONSE)

§ INTERFACE CONSIDERATIONS

§ Issuer: VC / Issuer Validation Process Capability Registration (TODO: What about one to many?)

§ Further Notes Issuer Registration

§ Call 03.09 — Discovery stage (of VC Issuers & Verifiers?)

Discovery is the responsibility of Marketplace operator / system, rather than every individual issuer / verifier.

What are the options to collect credential data?

How the data is stored?

What goes into metadata?

How do we support updates of metadata?

How do we collect vc metadata from the issuers & verifier?

How Holders discover right issuers / VCs?

How does the VC Issuer Data stay up to date?

§ Why Display and Styling should not be part of a VC Registration Process

§ Subject-initiated Issuer-Discovery

Subject trying to discover a VC/Issuer (with certain matched constraints) that can be issued from an issuer?

§ TODO.

§ Reputation

§ Notes:

§ Reporting Credential Issuance (& Payment Coordination)

§ Reporting Credential Presentation (& Payment Coordination)

§ Reporting Credential Revocation (& Payment Coordination)

§ Cross-sectional concerns

§ Marketplace Bootstrapping

§ Governance

With the growth of adoption and therefore number of issuers and verifiers represented in the marketplace the need for standard governance practices and frameworks will increase. This specification does not aim to define a single governance framework for multiple types of the marketplaces. However, since VC Marketplace goal is to connect SSI networks and fragmented issuers and verifiers, it is important to provide a protocol to transmit result of the governance.

Specifically, an implementation of VC Marketplace might provide a standardized interface for issuers, verfiers and SSI network operators to provide data regarding the governance framework in use, authority of each marketplace participant and a stream of updates regarding the status of these participants. The format of this information might differ depending on the type of govenance system in use (centralized, decentralized, authoritive, democratic, etc.) Since no universal governance system for SSI applications was developed, at this time it is up to the marketplace developer and operator to collect this data and present it to the end users.

For the benefit of end users all the available information about marketplace participants should be presented in the UI. Namely, for the issuers this might include:

§ Reputation

Reputation system is not strictly defines in this document. However, to build an inclusive, open VC marketplace it is important avoid it being populated with fradulent or irrelevant issuers or service providers (verifiers). Reputation system can be a good solution for this problem. VC marketplace reputation system can be built in a variety of methods ranging from proprietary and fully centralized algorithms to an open decentralized system. In both cases reputation system requires the marketplace to have a feedback loop where users can report back the status of each marketplace transaction.

Reporting of credential issuance, presentation and revocation back to the marketplace was included in this document specifically for this reason. It provides raw data that then can be utilized by the algorithm to compute a reputation score for each participant.

§ Payment (Detail Section)

§ Funding / Incentivation

§ Privacy

§ Discussion & Next Steps

§ Appendix

§ Discussion Points

§ Open Discussion

  1. Registration of Verifiers? Collection of Metadata Collection?

§ Subject-initiated Issuer-Discovery

§ Meetings

§ Meeting Notes 2020/3/30:

§ Meeting Notes 2020/4/7:

§ Topic: Subject-initiated Issuer-Discovery

§ Examples

§ Question

§ Note

§ Meeting Notes 4/13/2021

§ IIW Presentation

§ Refining Query Properties

§ VC Marketplace business models

§ Meeting Notes 4/27/2021

§ Meeting Notes 5/18/2021

Table of Contents