Getting started with Self Sovereign Identity SSI

The blog is my getting started with Self Sovereign identity. I plan to explore developing solutions using Self Sovereign Identities, the different services and evaluate some of the user cases in the next couple of blogs. Some of the definitions are explained, but mainly it is a list of resources, links for getting started. I’m developing this blog series together with Matteo and will create several repos, blogs together.

What is Self Sovereign Identity SSI?

Self-sovereign identity is an emerging solution built on blockchain technology for solving digital identities which gives the management of identities to the users and not organisations. It makes it possible the solve consent and data privacy of your data and makes it possible to authenticate your identity data across organisations or revoke it. It does not solve the process of authenticating users in applications. You can authenticate into your application using credentials from any trusted issuer, but this is vulnerable to phishing attacks. FIDO2 would be a better solution for this together with an OIDC flow for the application type. Or if you could use your credentials together with a registered FIDO2 key for the application, this would work. The user data is stored in a digital wallet, which is usually stored on your mobile phone. Recovery of this wallet does not seem so clear but a lot of work is going on here which should result in good solutions for this. The credentials DIDs are stored to a blockchain and to verify the credentials you need to search in the same blockchain network.

What are the players?

Digital Identity, Decentralized identifiers (DIDs)

A digital identity can be expressed as a universal identifier which can be owned and can be publicly shared. A digital identity provides a way of showing a subject (user, organisation, thing), a way of exchanging credentials to other identities and a way to verify the identity without storing data on a shared server. This can be all done across organisational boundaries. A digital identity can be found using decentralized identifiers (DID) and this has working group standards in the process of specifying this. The DIDs are saved to a blockchain network which can be resolved.

https://w3c.github.io/did-core/

The DIDs representing identities are published to a blockchain network.

Digital wallet

A digital wallet is a database which stores all your verified credentials which you added to your data. This wallet is usually stored on your mobile phone and needs encryption. You want to prevent all third party access to this wallet. Some type of recovery process is required, if you use a digital wallet. A user can add or revoke credentials in the wallet. When you own a wallet, you would publish a public key to a blockchain network. A DID is returned representing the digital identity for this wallet and a public DID was saved to the network which can be used to authenticate anything interacting with the wallet. Digital wallets seem to be vendor locked at the moment which will be problematic for mainstream adoption. 

Credentials, Verifiable credentials

https://www.w3.org/TR/vc-data-model/

A verifiable credential is an immutable set of claims created by an issuer which can be verified. A verifiable credential has claims, metadata and proof to validate the credential. A credential can be saved to a digital wallet, so no data is persisted anywhere apart from the issuer and the digital wallet.

This credential can then be used anywhere.

The credential is created by the issuer for the holder of the credential. This credential is presented to the verifier by the holder from a digital wallet and the verifier can validate the credential using the issuer DID which can be resolved from the blockchain network.

Networks

The networks are different distributed blockchains with verifiable data registries using DIDs. You need to know how to resolve each DID, issuer DID to verify or use a credential and so you need to know where to find the network on which the DID is persisted. The networks are really just persisted distributed databases. Sovrin or other blockchains can be used as a network. The blockchain holds public key DIDs, DID documents, ie credentials and schemas.

Energy consumption

This is something I would like to evaluate, and if this technology was to become widespread, how much energy would this cost. I have no answers to this at the moment.

Youtube videos, channels

An introduction to decentralized identities | Azure Friday

SSI Meetup

An introduction to Self-Sovereign Identity

Intro to SSI for Developers: Architecting Software Using Verifiable Credentials

SSI Ambassador

Decentralized identity explained

Evernym channel

Books, Blogs, articles, info

Self-Sovereign Identity: The Ultimate Beginners Guide!

Decentralized Identity Foundation

SELF-SOVEREIGN IDENTITY PDF by Marcos Allende Lopez

https://en.wikipedia.org/wiki/Self-sovereign_identity

https://decentralized-id.com/

https://github.com/animo/awesome-self-sovereign-identity

Organisations

Home

https://github.com/decentralized-identity

sovrin

People

Drummond Reed @drummondreed
Rieks Joosten
Oskar van Deventer
Alex Preukschat @AlexPreukschat
Danny Strockis @dStrockis
Tomislav Markovski @tmarkovski
Riley Hughes @rileyphughes
Michael Boyd @michael_boyd_
Marcos Allende Lope @MarcosAllendeL
Adrian Doerk @doerkadrian
Mathieu Glaude @mathieu_glaude
Markus Sabadello @peacekeeper
Ankur Patel @_AnkurPatel
Daniel Ƀrrr @csuwildcat
Matthijs Hoekstra @mahoekst
Kaliya-Identity Woman @IdentityWoman

Products

https://docs.trinsic.id/docs

https://docs.microsoft.com/en-us/azure/active-directory/verifiable-credentials/

Companies

https://tykn.tech/

https://trinsic.id/

Microsoft Azure AD

evernym

northernblock.io

Specs

https://w3c.github.io/did-core/

https://w3c.github.io/vc-data-model/

https://www.w3.org/TR/vc-data-model/

Links

https://github.com/swiss-ssi-group

https://www.hyperledger.org/use/aries

sovrin

https://github.com/evernym

what-is-self-sovereign-identity

https://techcommunity.microsoft.com/t5/identity-standards-blog/ion-we-have-liftoff/ba-p/1441555

8 comments

  1. […] Getting started with Self Sovereign Identity SSI – Damien Bowden […]

  2. […] Getting started with Self Sovereign Identity SSI […]

  3. […] Getting started with Self Sovereign Identity SSI Challenges to Self Sovereign Identity […]

  4. […] Getting started with Self Sovereign Identity SSIChallenges to Self Sovereign Identity […]

  5. […] Getting started with Self Sovereign Identity SSI […]

  6. […] Getting started with Self Sovereign Identity SSICreate an OIDC credential Issuer with MATTR and ASP.NET CorePresent and Verify Verifiable Credentials in ASP.NET Core using Decentralized Identities and MATTRVerify vaccination data using Zero Knowledge Proofs with ASP.NET Core and MATTRChallenges to Self Sovereign IdentityImplement Compound Proof BBS+ verifiable credentials using ASP.NET Core and MATTR […]

Leave a comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.