jzhao.xyz

Search IconIcon to open search

 .
  \_.
  /

Verifiable Credential

Last updated June 14, 2022

Verifiable credentials can be issued by anyone, about anything, and can be presented to and verified by everyone

For this to work requires a triangle of trust:

Verifiable Data Registry (VDR): can be used to maintain identifiers and schemas

To make a VC:

  1. Issuer registers a DID and its associated verification key (verkey) to the VDR
  2. Issuer writes a credential definition (a template) to the VDR
  3. (Optional) Issuer offers a credential to the holder
  4. Holder requests a credential from the Issuer
  5. Issuer creates a credential based on the definition for the holder
  6. Issuer signs the credential with their private part of the verification key, and gives it to the holder (offer)
  7. Verifier can then check the credential against the issuer’s verkey

Example VC

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
{
    "@context": [
        "https://www.w3.org/2018/credentials/v1",
        "https://www.w3.org/2018/credentials/examples/v1"
    ],
    "id": "0892f680-6aeb-11eb-9bcf-f10d8993fde7",
    "type": [
        "VerifiableCredential",
        "UniversityDegreeCredential"
    ],
    "issuer": {
         "id": "did:example:76e12ec712ebc6f1c221ebfeb1f",
         "name": "Acme University"
    },
    "issuanceDate": "2021-05-11T23:09:06.803Z",
    "credentialSubject": {
        "id": "did:example:ebfeb1f712ebc6f1c276e12ec21",
        "degree": {
            "type": "BachelorDegree",
            "name": "Bachelor of Science"
        }
    },
    "proof": {
        "type": "Ed25519Signature2018",
        "created": "2021-05-17T15:25:26Z",
        "jws": "eyJhbGciOiJFZERTQYjY0Il19..nlcAA",
        "proofPurpose": "assertionMethod",
        "verificationMethod": "https://pathToIssuerPublicKey"
    }
}

Interactive Graph