Linking Identity and Attestation Credentials

Note: These examples were created as part of the EBSI-VECTOR weekly meeting on 6th Nov 2023. This is quick brainstorming, so some details are definitely not correct.

Note: As far as I know, the eIDAS Regulation will NOT mandate a unique, persistent identifier for everyone. See https://epicenter.works/en/content/eu-digital-identity-reform-the-good-bad-ugly-in-the-eidas-regulation

PID:

SD-JWT(-VC) header, signature, etc....
{
  "iss": "...",
  "sub": "...",
  "uniqueIdentifier": "123456",
  "familyName": "Sabadello",
  "firstName": "Markus",
  "dateOfBirth": "...",
  "placeOfBirth": "Vienna",
  "cnf": {
    "jwk": {
      "kty": ..,
      "crv": ..,
      "x": ..
      "y": ..
    }
  }
}

EHIC ATTESTATION (reference to PID unique ID, included in credentialSubject):

{
  "@context": [
    "https://www.w3.org/ns/credentials/v2",
    "https://www.w3.org/ns/credentials/examples/v2"
  ],
  "id": "http://insurance.example/credentials/1872",
  "type": ["VerifiableCredential", "EuropeanHealthInsuranceCard"],
  "issuer": "did:example:12334",
  "validFrom": "2023-01-01T19:23:24Z",
  "credentialSubject": {
    "pid" {
      "uniqueIdentifier": "123456"
    },
    "insuranceStatus": "active"
  }
}

EHIC ATTESTATION (reference to PID unique ID, outside of credentialSubject):

{
  "@context": [
    "https://www.w3.org/ns/credentials/v2",
    "https://www.w3.org/ns/credentials/examples/v2"
  ],
  "id": "http://insurance.example/credentials/1872",
  "type": ["VerifiableCredential", "EuropeanHealthInsuranceCard"],
  "issuer": "did:example:12334",
  "validFrom": "2023-01-01T19:23:24Z",
  "credentialSubject": {
    "insuranceStatus": "active"
  },
  "confirmationMethod": {
    "type": "PidConfirmation",
    "pid" {
      "uniqueIdentifier": "123456"
    }
  }
}

EHIC ATTESTATION (reference to PID public key, included in credentialSubject):

{
  "@context": [
    "https://www.w3.org/ns/credentials/v2",
    "https://www.w3.org/ns/credentials/examples/v2"
  ],
  "id": "http://insurance.example/credentials/1872",
  "type": ["VerifiableCredential", "EuropeanHealthInsuranceCard"],
  "issuer": "did:example:12334",
  "validFrom": "2023-01-01T19:23:24Z",
  "credentialSubject": {
    "pid": {
      "cnf": {
        "jwk" {
          "kty": ..,
          "crv": ..,
          "x": ..,
          "y": ..
        }
      }
    },
    "insuranceStatus": "active"
  }
}

EHIC ATTESTATION (reference to PID public key, outside of credentialSubject):

{
  "@context": [
    "https://www.w3.org/ns/credentials/v2",
    "https://www.w3.org/ns/credentials/examples/v2"
  ],
  "id": "http://insurance.example/credentials/1872",
  "type": ["VerifiableCredential", "EuropeanHealthInsuranceCard"],
  "issuer": "did:example:12334",
  "validFrom": "2023-01-01T19:23:24Z",
  "credentialSubject": {
    "insuranceStatus": "active"
  },
  "confirmationMethod": {
    "type": "PidConfirmation",
    "pid" {
      "cnf": {
        "jwk" : {
          "kty": ..,
          "crv": ..,
          "x": ..,
          "y": ..
        }
      }
    }
  }
}

EHIC ATTESTATION (reference to PID attributes, outside of credentialSubject):

{
  "@context": [
    "https://www.w3.org/ns/credentials/v2",
    "https://www.w3.org/ns/credentials/examples/v2"
  ],
  "id": "http://insurance.example/credentials/1872",
  "type": ["VerifiableCredential", "EuropeanHealthInsuranceCard"],
  "issuer": "did:example:12334",
  "validFrom": "2023-01-01T19:23:24Z",
  "credentialSubject": {
    "familyName": "Sabadello",
    "firstName": "Markus",
    "dateOfBirth": "...",
    "insuranceStatus": "active"
  },
  "confirmationMethod": [{
    "type": ["PidConfirmation"],
    "pid" {
      "uniqueIdentifier": "123456"
    }
  }, {
    "type": ["PidConfirmation", "PidConfirmationAT"],
    "pid" {
      "familyName": "Sabadello",
      "firstName": "Markus G.",
      "dateOfBirth": "...",
      "placeOfBirth": "Vienna"
    }
  }]
}
Select a repo