DIDs 101 with Disco

Introduction

What do you think of when you hear the word “identity”? Do you think of usernames and passwords? Do you think of your name or your nickname? How about how you express yourself? Maybe it has something to do with your culture, or family, or a particular group you belong to. Ask 100 people and you will get 100 different answers to the question of “what is identity”? No matter how you answer this question, an identity requires at least one “identifier”, if not more. You can think of an identifier as an anchor or a shortcut to an identity. This could be a name, a user ID, your face, your voice, or many other things. Additionally, groups, objects, and even concepts have identifiers. Identifiers are how we let others know we are referring to one thing and not another.

Identifiers are so important that you likely have many of them, at least one for every system you interact with. But this is where things get messy. These systems, like social media sites, your bank, your school, your crypto wallet, don’t talk to each other. And on top of this, you don’t own your identifier (except in the case of your crypto wallet, but more on that later). Facebook or Google could easily take your identifier away from you, so could your school. The good news is that there is another way.

Web3 has given rise to a new type of identifier that many of us have come to be familiar with: the blockchain address. Blockchain addresses, like those used by Ethereum, Bitcoin, and others have some important properties. They are decentralized and they are verifiable. These properties go a long way in achieving a better future but they do not go all the way. In addition to decentralization and verifiability, there are 2 other properties that would make our identifiers even more powerful: persistence and resolvability. Decentralized Identifiers, or DIDs, give us all four of these properties.

Why DIDs?

DIDs aim to solve the identifier-crisis on the internet (and beyond!). By allowing you to take custody of multiple different identifiers and link them together, you can more easily prove things about yourself without having a fragmented identity across the web. They are a foundational piece of technology that Disco is built on. While your crypto address allows you to do many interesting things in Web3, DIDs can allow you to do more.

Decentralized Identifiers have 4 main properties:

  • Decentralized: No one can stop you from creating your identifier, no one can take it away from you, and you can create as many as you want without worrying that you have the same identifier as someone else.

  • Verifiable: you can prove that a given identifier is yours without needing to rely on anyone else. This is accomplished by using Public Key Cryptography which you can learn more about here.

  • Persistent: Your identifier is always written about you and cannot be altered to refer to something or someone else. What use is an identifier that might refer to you on Monday and someone else on Friday?

  • Resolvable: Your identifier is the subject of some other trusted information under your control. If I give you an identifier, you need to be able to learn more about who or what that identifier refers to, otherwise it's not much of an identifier.

Most of the identifiers we use online such as domain names or usernames fail right out of the gate. They aren’t decentralized and because they don’t make use of cryptography, they aren’t verifiable. On the other hand, our crypto identifiers, like your Ethereum address are decentralized and verifiable but aren’t really persistent and are not resolvable to any data other than what is on the blockchain. The reason crypto addresses alone aren’t persistent is that you cannot change your private key (you know those 12 words all the crypto wallets make you write down?) without being forced to change your public address as well. This means if you want to use new private keys for security reasons you have to abandon your identifier. DIDs were created because we didn’t have any other identifiers that could give us these 4 properties. Now, lets get into what they are and how they work!

What is a DID?

A DID consists of 4 main components: a unique identifier, a DID method, a Scheme, and a DID document.

  • Unique Identifier: This is commonly just a cryptographic public address like an Ethereum or Bitcoin address but can also be a cryptographic public address unassociated with any blockchain.

  • DID Method: This is an additional string of letters that gets stuck onto the front of your unique identifier that tells other software systems that you are interacting with how to interpret your identifier. There are many, many different DID Methods and we’ll explore those another time.

  • Scheme: This one is simple. It is just the letters “DID” that are attached in front of your unique identifier and your DID Method. This tells systems that you are interacting with that your identifier is in fact a DID and not just a plain old Ethereum address.

  • DID Document: This is where the goods are. The 3 pieces above all come together to form an identifier that allows a system you are interacting with to resolve to a DID Document. A DID Document can contain a bunch of other information about you that you control. You can think of a DID Document as a personal manual and directory that helps others interact with your DID.

Anatomy of a DID and its components
Anatomy of a DID and its components

Conclusion

And there you have it! You now know what a DID is but you might still be wondering how they work under the hood.

We will save that for DIDs 201 coming soon! In the meantime check out Disco at www.disco.xyz and for the technically inclined be sure to dive into our documentation at https://docs.disco.xyz/.

See you in the Metaverse!

Jonny Howle

Co-Founder / Head of Strategy

@jonnyhowle

For any comments or questions, please contact ask@disco.xyz, or sign up to schedule a 1:1 feedback session here.

Subscribe to Disco.xyz
Receive the latest updates directly to your inbox.
Mint this entry as an NFT to add it to your collection.
Verification
This entry has been permanently stored onchain and signed by its creator.