Web - Focus on SSI Stack ◦ Energy Web, along with Elia Group, is an implementer of VC API • Why this presentation? ◦ Get VC API into the sphere of attention of OWF Community ▪ Energy Web is interested in contributing VC API to OWF ◦ Importance of VC API to OWF ▪ A shared interface for "VC lifecycle" management
are helpful when you're doing VC lifecycle management • W3C CCG Work Item • Status: Version 0.3 • Timeline for spec development ◦ History: Started in 2020 ◦ Future: Rough target of standards track by 2024
Modularity ◦ Only implement what is necessary • Simplicity ◦ APIs and optionality are kept to a minimum • Composability ◦ Complex flows using primitives • Extensibility ◦ Extensions to API endpoints are expected and catered to Icons from flaticon.com
◦ Holder ◦ Verifier • Role Split ◦ Coordinator ◦ Service Icons from flaticon.com Issuer Service Issuer Coordinator Verifier Service Verifier Coordinator Holder Service Holder Coordinator
Service Issuer Coordinator Example of client optionality reduction POST /credentials/status Status Service Issuer Coordinator GET /credentials Issuer Service Issuer Coordinator Icons from flaticon.com
Service Holder Coordinator Example is deriving BBS Credential POST /presentations/prove Holder Service Holder Coordinator GET /presentations Holder Service Verifier Coordinator Holder Coordinator Potentially useful for asynchronous flows Icons from flaticon.com
Coordinator Issuer Coordinator, Verifier Coordinator no authz • Extensible via Verifiable Presentation Request format • Composable into multi-step flows ◦ https://w3c-ccg.github.io/vc-api-use-cases/#execute-multi-stage-presentation-workflow Icons from flaticon.com
w3c-ccg/vc-api-verifier-test-suite ◦ Entries are thus far for Data Integrity proofs but JWT is mentioned ◦ Demonstration of CL-Signatures tomorrow • Implementations ◦ Energy Web ◦ Danube Tech, Digital Bazaar, GS1 US, LearnCard, Mavennet, mesur.io, SecureKey • Interoperability tested at JFF FlugFest 2 ◦ 17 different issuers using VC-API and CHAPI
VC to get Alumni VC • Issuer: University • Holder: Graduate with Degree VC • Pre-exchange steps: 1. University issues VC 2. University creates exchange • Exchange Steps: 1. Graduate initiates exchange 2. University returns VPR 3. Graduate continues exchange a. Composes presentation b. Continues exchange 4. University returns Alumni VC Icons from flaticon.com
VC a. POST /credentials/issue b. POST /presentations/prove 2. University "creates" Exchange a. Custom endpoint to Energy Web implementation Icons from flaticon.com { "credential":{ "@context":[ "https://www.w3.org/2018/credentials/v1" ], "id":"http://example.edu/credentials/1", "type":[ "VerifiableCredential", "AlumniCredential" ], "credentialSubject":{ "id":"did:key:z6MkioNDYdwWDzjaro7kf8mYxG2ZG4m6YQxU6XtXgo7wHTBL" }, "issuer":"did:key:z6MksoRPRqnMWiivV4weRGGS9SiHXuqfJEYu95EiYtbvBxW6", "issuanceDate":"2023-04-24T12:19:52Z", "expirationDate":"2029-12-03T12:19:52Z" }, "options":{ } }
/presentations/prove b. Using challenge from VPR 2. Graduate continues exchange a. POST /exchanges/{exchangeId}/{transactionId} b. Using serviceEndpoint from VPR Icons from flaticon.com { "presentation":{ "@context":[ "https://www.w3.org/2018/credentials/v1", "https://www.w3.org/2018/credentials/examples/v1" ], "type":[ "VerifiablePresentation" ], "verifiableCredential":[ { UniversityDegreeCredential } ], "holder":"did:key:z6MkioN…" }, "options":{ "verificationMethod":"did:key:z6MkioN….", "proofPurpose":"authentication", "created":"2023-04-24T14:52:19.514Z", "challenge":"a74c2dee-72a9-4e0e-a64c-1686691d1991" } }