Decentralized Immutable Source Of Truth
A document is a finite sequence of bits. A hash is its immutable global name.
The permanent link includes both the algorithm and the value: sha256:abcd....
The same document may have different filenames, URLs, or storage locations. Its content stays the same, and so does its hash for a given hash algorithm. The hash identifier can therefore serve as a permanent link without specifying a storage location or transport protocol.
Documents can reference other documents by hash:
This creates an immutable DAG.
Changing a document creates a new document. A metadocument connects revisions:
// r002...
export default {
document: 'bcd2...',
parents: ['d0c0...'],
}
Nothing is overwritten. Multiple parents represent a merge; multiple children represent forks.
The timestamp covers the signed statement, not only the unsigned document:
A = document
B = signature(hash(A), author DID)
C = trusted timestamp(hash(B))
Merkle trees can batch many signed documents under one trusted timestamp.
export default {
'a.js': 'abcd...',
'subdir/b.js': 'ef01...',
}
Changing one path creates a new directory document. The old directory still exists.
sha256:abcd...
It identifies exactly one document.
/did:example:alice/parser
The name can evolve, but the name history is immutable:
A name is not a mutable pointer. Renames, transfers, forks, and conflicting updates remain visible in history.
base = /did:example:alice/
relative name = ./json
result = /did:example:alice/json
A Web of Trust can provide the context:
~/alice/charlie/parser
~ is the reader's root. Another reader may resolve alice differently.
Relative-name mappings also evolve through immutable revisions.
Names evolve. Hashes do not.
A snapshot locks the resolution. Later name revisions do not change the dependency.
The same immutable history can move between systems, independently of any storage format or hosting provider.
Backup, restore, and synchronization should not require the service that originally stored the data.
The transport can change. The documents, signatures, names, and history remain verifiable.
- Git projection: Git objects, signatures, names, snapshots, and transport examples.
- Sergey Shandar, Digital Space. How it should be Done, Medium, January 31, 2025.