did:crdt: Coordination-Free Decentralised Identifiers via Signed CRDTs

2026-06-15Cryptography and Security

Cryptography and SecurityDistributed, Parallel, and Cluster Computing
AI summary

The authors present did:crdt, a new way to manage Decentralised Identifiers (DIDs) without needing a central system to order updates, unlike existing methods that rely on blockchains or other sequencers. Their approach uses special data types called CRDTs that automatically merge changes from different sources in a predictable way, ensuring everyone eventually agrees on the document state. Updates only require a basic rule that depends on causal order, which is simpler and faster than global ordering. They also explain security considerations and provide a Rust implementation to demonstrate their method's efficiency and reliability.

Decentralised Identifier (DID)BlockchainConflict-Free Replicated Data Types (CRDTs)CALM TheoremCausal DeliveryByzantine Fault ToleranceCRUD SemanticsRust ProgrammingState MergeConflict Resolution
Authors
Hugo O'Connor, Claire Barnes
Abstract
Existing Decentralised Identifier (DID) methods require coordination, an agreed global order of operations, to update a DID document: blockchain-anchored methods incur fees and latency; lightweight peer methods (did:key, did:peer) offer no update mechanism; and Sidetree methods still require blockchain ordering for finality. We present did:crdt, a DID method that targets W3C DID Core and removes the need for coordination entirely: there is no ledger, no sequencer, and no global total order. Each DID document is composed of signed Conflict-Free Replicated Data Types (CRDTs), one per document field, each chosen so that concurrent edits merge deterministically. By the CALM Theorem, the state-merge path is then confluent: replicas that see the same updates reach the same document in any arrival order. The signed-delta path needs only causal delivery, applying an update after those it builds on, which is far weaker than the total ordering ledgers impose and needs no agreement protocol. We are explicit about scope: every untrusted-peer path is authenticated, so Byzantine fault tolerance (safety even when peers lie or send malformed data) holds for signed deltas and verified-bundle replay, while the unauthenticated state-merge path is a trusted-domain optimisation and key-compromise recovery is bounded by revocation semantics. We give the data and threat model, CRUD semantics, conflict resolution, and a Rust reference implementation with property-based convergence tests and microsecond-scale merge latency.