Verifiable credentials scheme for education
Terminology
vc — Verifiable Credential, according to vc data model https://www.w3.org/TR/vc-data-model/
credential — A set of one or more claims made by an issuer. A verifiable credential is a tamper-evident credential that has authorship that can be cryptographically verified. Verifiable credentials can be used to build verifiable presentations, which can also be cryptographically verified. The claims in a credential can be about different subjects.
All credentials have the next fields according to a scheme
claim — all data + metadata (An assertion made about a subject.))
proof — signature by gov't
issuer — id of the issuer organization (URI, DID, JWK or object with ID)
W3C Task Force: https://github.com/w3c-ccg/vc-ed/
did 101: https://w3c-ccg.github.io/did-method-v1/
Verifiable credentials lifecycle
Interoperability: https://www.youtube.com/watch?v=mXLy2Rof_iA
There are 3 main roles in VC lifecycle: Issuer, Holder and Verifier.
Issuer receiving the credentials request from holder's wallet application, and answers with a signed Verifiable Credential.
Holder then can generate a verifiable presentation to share required data of VC with the verifier.
Verifier
Diagram: https://www.w3.org/TR/vc-use-cases/#user-tasks
https://www.w3.org/TR/vc-use-cases/#terminology
HTTP API: https://w3c-ccg.github.io/vc-api/#architecture-overview
Verifiable Credentials status
For invalidating credentials the VC status list concept can be used
https://w3c-ccg.github.io/vc-status-list-2021/
The support for issuing credentials compliant with VC Status List 2021 was added to sign and verify services in https://github.com/digitalcredentials/sign-and-verify-core/pull/18
DID methods
The most popular:
did:web https://w3c-ccg.github.io/did-method-web/#did-method-operations
Bitcoin, Ethereum, etc.
To register DID, we need a pair of private/public jwk keys.
DID registration specification: https://identity.foundation/did-registration/#abstract
Testing Tool for DID and VC: https://github.com/transmute-industries/api.did.actor
Standards based on VC
OpenBadges3.0 specific: https://imsglobal.github.io/openbadges-specification/ob_v3p0.html
There is a custom data model that maps to VC data model. For example, instead of the claim
credentialSubject
is presented.
"credentialSubject": { "id": "did:example:ebfeb1f712ebc6f1c276e12ec21", "type": ["AchievementSubject"], "achievement": {} }, "credentialSchema": [{ "id": "https://imsum2.herokuapp.com/jsonschema?classId=org.1edtech.ob.v3p0.achievementcredential.class", "type": "JsonSchemaValidator2019" }]
EBSI
EBSI extends VC and adds Verifiable Attestation scheme to VC claim
https://ec.europa.eu/digital-building-blocks/wikis/display/EBSIDOC/Data+Models+and+Schemas
The list of conformant wallets: https://ec.europa.eu/digital-building-blocks/wikis/display/EBSI/Conformant+wallets
All implements use case Diploma https://ec.europa.eu/digital-building-blocks/wikis/display/EBSIDOC/Diploma+Functional+Scope