Chapter 3 - Ebsi Dids
Chapter 3 - Ebsi Dids
Verifiable Verifiable Decentralised Digital Identity Issuers Trust Open ID Connect Digital Wallets
Credentials Credentials in Identifiers Model for Verifiable
Explained action (DID) Methods Credentials
03. EBSI DID methods explained – Index
What are you going to learn in this Chapter?
What is a DID and why How does the DID How does the DID
two DID methods in method v1 work? method v2 work?
EBSI? (Legal persons) (Natural persons)
4
What is a W3C Decentralised Identifier (DID)?
A DID is just a long string that does not provide any meaningful information about a natural or legal entity. DIDs and DID Documents are
generated by their owners with their wallet or back-office systems.
2 3
{
"@context": [
"https://www.w3.org/2018/credentials/v1",
"https://essif.europa.eu/schemas/vc/2020/v1"
],
"id": "https://essif.europa.eu/tsr/53",
"type": [
"VerifiableCredential",
"VerifiableAttestation",
"VerifiableAccreditation",
Verifiable "DiplomaVerifiableAccreditation" DID of the Issuer
Credentials in a ],
Digital Wallet "issuer": "did:ebsi:zsSgDXeYPhZ3AuKhTFneDf1",
"issuanceDate": "2020-06-22T14:11:44Z",
"credentialSubject": {
DID of the Holder
"id": "did:ebsi:zDnaeSGrMFB9kCxnPYWaeMrRyun2HLVHjDNUf76ccy4ZfHU24",
(….)
EBSI has two DID methods
What are the different DID methods supported by EBSI and why?
7
What are the differences between the DID methods
One method is oriented for legal persons (Issuers) and the other for natural persons (Holders)
By whom it is used? • To be used for Legal Persons (Issuers). • To be used for Natural Persons because no
information is kept in EBSI’s ledger.
How is it generated? • DID and DID document are generated by a back- • DID and DID document are generated and stored on
office application or a wallet-like application. the wallet.
Where is it recorded? • DID document is recorded on EBSI’s • DID document not recorded on EBSI’s ledger as DID
ledger. No coupling between DID and ownership can be cryptographically verifiable because it
Public Key, enabling frequent key rotation contains a JWK thumbprint of the Public Key – hence if
by Issuers. holder proves ownership of the private key, it proves
ownership of the DID.
How does it work? • Verifiers retrieve the DID document from EBSI to • The wallet includes the DID and DID document when
confirm ownership of DIDs and to verify the signature of presenting information to Verifiers or when asked to
Verifiable Credentials using the Issuer’s public key for confirm the DID ownership by Verifiers or by Issuers.
assertion.
8
Overview of EBSI DID methods
Overview of EBSI DID methods
Issuer Verifier
a• DID Documents of Natural Persons are
provided by the wallet Verifiable Presentation
Verifiable Credential (*)
{ DID document
"@ context": "https :/ / w3id.org/ did/ v1",
"id": "did:ebs i:z s SgDXeYPhZ3AuKhTFneDf1",
b•
" verificationMethod": [
method specification v1 }
"x": "n03trG -1s W idluyYQ2gcKrgYE94rMkLIArZCH jv2G pI",
"y": "6__x_vqe0nBG Yf7azbQ1_VvvuCafG 5MhhU PN vYp-Mak"
}
],
" authentication": [
c•
"did:ebs i:z s SgDXeYPhZ3AuKhTFneDf1#keys -1"
}
registry/v2/identifiers/did:ebsi:zsSgDX ],
"authentication": [
"did:ebs i:z s SgDXeYPhZ3AuKhTFneDf1#keys -1"
eYPhZ3AuKhTFneDf1 ],
"as s ertionMethod": [
"did:ebs i:z s SgDXeYPhZ3AuKhTFneDf1#keys -1"
}
] c DID document
Issuer public key
DID document
b
(*) Is suers must also be able to receive DID documents
from us er/holder wallets, a t the time of issuing
Veri fiable Credentials, to confirm DID ownership.
Let’s look back at EBSI’s DIDs
The structure is made of three parts in both methods but the DID method v2 will use a standardised way to compute
hash of a public key
1 2 3
DID method v1
DID method v2
Digital wallet
DID method v2
Set up of Issuer according to Verify Issuer’s authenticity and
EBSI onboarding accreditation status
DID method v1
Register of Issuers
CRL (*)
* List of revoked keys of Issuers 11
How does it work?
Step 0. Issuers are onboarded, wallets are setup and verifiers apps created
12
How does it work?
Step 1. Issuance of a Verifiable Credential which is then stored on an EBSI conformant wallet
13
How does it work?
Step 2. Presentation of a Verifiable Credential for verification
What is checked?
Checks that the holder of the
DID of the Holder VC is the one presenting it
15
EBSI DID method specification v1 for legal persons > ISSUERS
Simplified conceptual flow
• The Issuer creates DIDs according to EBSI’s DID scheme profile (did:ebsi:zsSgDXeYPhZ3AuKhTFneDf1).
• The Issuer also creates the cryptographic keys associated to a given DID.
• The Issuer records this information on EBSI in the form of a DID document.
• The DID document can be retrieved from EBSI by Issuers and Verifiers using a simple URL). 16
DID method v1 enables Issuers to flexibly manage their keys and their
real-time access by Verifiers
Issuer
The use of DIDs and DID documents registered on EBSI, as defined in DID method v1. enables Issuers to rotate their keys, i.e., to update their cryptographic keys regularly
(e.g. every other month) without impacting the Verifiers as they can easily retrieve the right version of the DID document from EBSI. This enables a much smoother and
secure management of keys in large ecosystems. Furthermore, issuers can have multiple active keys bound to their DID.
January February March April May June July August September October November December
{ { { { { {
Version 1
"@context": "https :/ / w3id.org/ did/ v1", Version 2
"@context": "https :/ / w3id.org/ did/ v1", Version 3
"@context": "https :/ / w3id.org/ did/ v1", Version 4
"@ context": "https :/ / w3id.org/ did/ v1", Version 5
"@context": "https :/ / w3id.org/ did/ v1", Version 6
"@context": "https :/ / w3id.org/ did/ v1",
"id": "did:ebs i:z s SgDXeYPhZ3AuKhTFneDf1", "id": "did:ebs i:z s SgDXeYPhZ3AuKhTFneDf1", "id": "did:ebs i:z s SgDXeYPhZ3AuKhTFneDf1", "id": "did:ebs i:z s SgDXeYPhZ3AuKhTFneDf1", "id": "did:ebs i:z s SgDXeYPhZ3AuKhTFneDf1", "id": "did:ebs i:z s SgDXeYPhZ3AuKhTFneDf1",
"verificationMethod": [ " verificationMethod" : [ "verificationMethod": [ "verificationMethod": [ "verificationMethod": [ "verificationMethod": [
{ { { { { {
"id": "did:ebs i:z s SgDXeYPhZ3AuKhTFneDf1#keys -1", "id": "did:ebs i:z s SgDXeYPhZ3AuKhTFneDf1#keys -1", "id": "did:ebs i:z s SgDXeYPhZ3AuKhTFneDf1#keys -1", "id": "did:ebs i:z s SgDXeYPhZ3AuKhTFneDf1#keys -1", "id": "did:ebs i:z s SgDXeYPhZ3AuKhTFneDf1#keys -1", "id": "did:ebs i:z s SgDXeYPhZ3AuKhTFneDf1#keys -1",
"type": "Ecds aSecp256k1VerificationKey2019", "type": "Ecds aSecp256k1VerificationKey2019", "type": "Ecds aSecp256k1VerificationKey2019", "type": "Ecds aSecp256k1VerificationKey2019", "type": "Ecds aSecp256k1VerificationKey2019", "type": "Ecds aSecp256k1VerificationKey2019",
"controller": "did:ebs i:z s SgDXeYPhZ3AuKhTFneDf1", "controller": "did:ebs i:z s SgDXeYPhZ3AuKhTFneDf1", "controller": "did:ebs i:z s SgDXeYPhZ3AuKhTFneDf1", "controller": "did:ebs i:z s SgDXeYPhZ3AuKhTFneDf1", "controller": "did:ebs i:z s SgDXeYPhZ3AuKhTFneDf1", "controller": "did:ebs i:z s SgDXeYPhZ3AuKhTFneDf1",
"publicKeyJwk" : { "publicKeyJwk": { "publicKeyJwk": { "publicKeyJwk": { "publicKeyJwk": { "publicKeyJwk": {
"kty": "EC", " kty": "EC", "kty": "EC", "kty": "EC", "kty": "EC", "kty": "EC",
"crv": "s ecp256k1", " crv": "s ecp256k1", "crv": "s ecp256k1", "crv": "s ecp256k1", "crv": "s ecp256k1", "crv": "s ecp256k1",
"x": "n03trG -1s W idluyYQ2gcKrgYE94rMkLIArZCH jv2G pI" , "x": "n03trG -1s W idluyYQ2gcKrgYE94rMkLIArZCH jv2G pI", "x": "n03trG -1s W idluyYQ2gcKrgYE94rMkLIArZCH jv2G pI", "x": "n03trG -1s W idluyYQ2gcKrgYE94rMkLIArZCH jv2G pI", "x": "n03trG -1s W idluyYQ2gcKrgYE94rMkLIArZCH jv2G pI", "x": "n03trG -1s W idluyYQ2gcKrgYE94rMkLIArZCH jv2G pI",
"y": "6__x_vqe0nBG Yf7azbQ1_VvvuCafG 5MhhU PN vYp- "y": "6__x_vqe0nBG Yf7azbQ1_VvvuCafG 5MhhU PN vYp- "y": "6__x_vqe0nBG Yf7azbQ1_VvvuCafG 5MhhU PN vYp- "y": "6__x_vqe0nBG Yf7azbQ1_VvvuCafG 5MhhU PN vYp- "y": "6__x_vqe0nBG Yf7azbQ1_VvvuCafG 5MhhU PN vYp- "y": "6__x_vqe0nBG Yf7azbQ1_VvvuCafG 5MhhU PN vYp-
Mak" Mak" Mak" Mak" Mak" Mak"
} } } } } }
} } } } } }
], ], ], ], ], ],
"authentication": [ " authentication": [ "authentication": [ "authentication": [ "authentication": [ "authentication": [
"did:ebs i:z s SgDXeYPhZ3AuKhTFneDf1#keys -1" "did:ebs i:z s SgDXeYPhZ3AuKhTFneDf1#keys -1" "did:ebs i:z s SgDXeYPhZ3AuKhTFneDf1#keys -1" " did:ebs i:z s SgDXeYPhZ3AuKhTFneDf1#keys-1" "did:ebs i:z s SgDXeYPhZ3AuKhTFneDf1#keys -1" "did:ebs i:z s SgDXeYPhZ3AuKhTFneDf1#keys -1"
], ], ], ], ], ],
"as s ertionMethod" : [ " as s ertionMethod": [ "as s ertionMethod": [ "as s ertionMethod": [ "as s ertionMethod": [ "as s ertionMethod": [
"did:ebs i:zs SgDXeYPhZ3AuKhTFneDf1#keys -1" "did:ebs i:z s SgDXeYPhZ3AuKhTFneDf1#keys -1" "did:ebs i:z s SgDXeYPhZ3AuKhTFneDf1#keys -1" " did:ebs i:z s SgDXeYPhZ3AuKhTFneDf1#keys-1" "did:ebs i:z s SgDXeYPhZ3AuKhTFneDf1#keys -1" "did:ebs i:z s SgDXeYPhZ3AuKhTFneDf1#keys -1"
] ] ] ] ] ]
} } } } } }
Important Note! Rotation of keys minimises the number of Verifiable Credentials revoked
because of the revocation of the Issuer’s signing keys. 17
Revocation of Issuer’s keys
Assuming that an issuer issues 20 credentials every month, 240 credentials per year, and changes its key pair every other month.
Should a key pair be comprised, the one of March/ April, the issuer would be required to re-issue about 40 credentials when
revoking the key pair instead of the 240 credentials if the Issuer would have used the same keys during the whole year.
CRL (*)
Creation. In the background, Registration of hash of Update of DID Registration of Update DID document Registration
by a back-office application DID document document updated DID to deactivate DID of updated
or a wallet-like application: document DID document
• Creates DID and Wallet registers hash of DID DID document is Updated DID Creation of DID DID Document
document on EBSI. To do so: updated with new document is document without any without public keys is
• Private and public key of public keys back- registered on EBSI keys in it using a back- registered on EBSI
the DID control key • DID document is shared office application following similar office application or a following similar
with EBSI so that EBSI can or a wallet-like controls at creation wallet-like application. controls at creation
• Creates an EBSI ledger check that the issuer has all application. step. step.
address derived from the private keys associated to
public key of DID control the public keys shown in the
key DID document (DID
document is not persisted).
• Creates the additional
keys and the • If all controls are passed,
the DID document is
• DID document (including registered on EBSI.
public key of DID control
key).
19
How does the DID
method v2 work?
20
EBSI DID method specification v2 for natural persons
Simplified conceptual flow
• The wallet creates the cryptographic keys and derives the DID according to EBSI’s DID scheme profile V2 by encoding the Public Key
(did:ebsi:zDnaeSGrMFB9kCxnPYWaeMrRyun2HLVHjDNUf76ccy4ZfHU24) - JWK thumbprint - standardised way to compute hash of a public key.
• In the Verifiable Credential issuance process, the Holder shares the DID document (public key) and proves the possession of the DID by confirming possession of the
corresponding private key to the Verifier
• In the Verifiable Presentation exchange process, the holder shares her DID document (public key) and proves the possession of the DID by confirming possession of
the corresponding private key to the Verifier
21
Want to know more?
Key ressources
23
Key acronyms and terms used in this document
Key acronyms and terms used in this document
• Decentralised identifier (DID): A portable URL-based identifier, also known as a DID, associated with an entity. These identifiers are most
often used in a verifiable credential and are associated with subjects such that a verifiable credential itself can be easily ported from one
repository to another without the need to reissue the credential.
• Decentralised identifier document (DID document): Also referred to as a DID document, this is a document that contains information
related to a specific decentralized identifier, such as the associated repository and public key information.
• Issuer: A role an entity can perform by asserting claims about one or more subjects, creating a verifiable credential from these claims,
and transmitting the verifiable credential to a holder.
• Verifiable Credential (VC): 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.
• Verifiable Presentation (VP): Data derived from one or more verifiable credentials, issued by one or more issuers, that is shared with a
specific verifier. A verifiable presentation is a tamper-evident presentation encoded in such a way that authorship of the data can be
trusted after a process of cryptographic verification.
• Verifiable data registry: A role a system might perform by mediating the creation and verification of identifiers, keys, and other relevant
data, such as verifiable credential schemas, revocation registries, issuer public keys, and so on, which might be required to use verifiable
credentials.
• Verifier: A role an entity performs by receiving one or more verifiable credentials, optionally inside a verifiable presentation for
processing. Other specifications might refer to this concept as a relying party.
Source: W3C 24
Technically speaking, what is a DID document?
Every DID is matched to a single and unique DID document which can be versioned.
25
What is a public / private key?
What is a public / private key and when it is used?
Public / private key cryptography uses a pair of Electronic signatures use public and private keys to
keys: enable trust between Issuers and Verifiers also
between Holders and Verifiers:
• a public key and a private key that are
mathematically related to each other (but • When created, Verifiable Credentials are signed
not associated with the DID). by Issuers (using their private key) and checked
by Verifiers (using the public key in the DID
• the private key must remain secret and document of a given Issuer) to ensure their
cannot be shared (e.g., it must stay in the integrity and authenticity.
wallet of the Holder).
• When sharing information, Verifiable
• the public key(s) used by Issuers and Presentations are signed by Holders (using their
Holders are made public in the DID private key) and checked by Verifiers (using the
document without reducing the security public key in the DID document of the Holder)
of the process. to ensure their integrity and authenticity.
26
What is a DID registrar / verifiable DID registry?
The use of DID requires an underlying registrar system which may be a distributed ledger, decentralised file system, database,
or any other form of trusted data storage. EBSI is the registrar of all EBSI DIDs.
The DID registrar is only used in DID method v1 for DID documents of Issuers.
27
What is a DID control key?
What is a DID control key, by whom it is used and why?
The DID control key is only used in DID method v1 for managing DID documents of Issuers.
DID control key is a key pair Why the DID control key is
that is used by used?
• Issuers to register, update or deactivate
The private keys of DID control keys are used to
their DID Documents (which include the
sign transactions that register, update and
public key of the DID control key).
deactivate DIDs on EBSI’s ledger. The hash of the
public key of DID control keys will always be
stored on EBSI’s ledger as part of EBSI’s ledger’s
• Natural persons do not have one because transaction. It is important to note that:
their DID document is not registered on
EBSI. • One DID control key can only manage only
one single DID.
• A DID can be managed by multiple DID control
keys.
• DID control keys MUST be used ONLY for
managing DIDs.
28
https://ec.europa.eu/ebsi