Decentralized Identity

Decentralized IdentityFree Lesson

Advertisement

Decentralized Identity

Self-sovereign identity, verifiable credentials, DIDs, and identity management.

Overview

DIDs enable user-controlled digital identity.

DID Document

{
  "@context": "https://www.w3.org/ns/did/v1",
  "id": "did:example:123456789abcdefghi",
  "authentication": [{
    "id": "did:example:123456789abcdefghi#key-1",
    "type": "Ed25519VerificationKey2018",
    "controller": "did:example:123456789abcdefghi",
    "publicKeyBase58": "H3C2AVvLMv6gmMNam3uVA..."
  }]
}

DID Methods

MethodDescription
did:ethrEthereum-based
did:webWeb domain
did:keyStatic key
did:ionBitcoin (ION)

Verifiable Credentials

{
  "@context": ["https://www.w3.org/2018/credentials/v1"],
  "type": ["VerifiableCredential", "EducationCredential"],
  "issuer": "did:example:issuer123",
  "issuanceDate": "2024-01-15T00:00:00Z",
  "credentialSubject": {
    "id": "did:example:subject456",
    "degree": "Computer Science"
  },
  "proof": {
    "type": "Ed25519Signature2018",
    "created": "2024-01-15T00:00:00Z",
    "verificationMethod": "did:example:issuer123#key-1"
  }
}

Smart Contract DID Registry

contract DIDRegistry {
    mapping(address => bytes32) public dids;
    mapping(address => mapping(string => bool)) public delegates;
    
    function registerDID(bytes32 did) public {
        dids[msg.sender] = did;
    }
    
    function addDelegate(address delegate) public {
        delegates[msg.sender][delegate] = true;
    }
}

Best Practices

  1. User control — Self-sovereign
  2. Privacy — Minimal disclosure
  3. Interoperability — W3C standards
  4. Security — Key management

Practice

Implement a simple DID registry on Ethereum.

Advertisement

Need Expert Blockchain Help?

Get personalized Web3 training or smart contract consulting.

Advertisement