I have been thinking for a while it is time to revisit the BitDNS issue. Would anyone be interested in an uncensorable DNS/key-value store anchored to Bitcoin?

Here are some thoughts I have been stewing on for a long time now: We could use witness envelopes to publish name to the time chain. This isn’t like inscriptions. Tiny amounts of data.

Each envelope would only contain the data for the name, a merkle root, pubkey and signature.

Why a merkle root? Because each name is not just one name, but a namespace containing potentially infinite names. This is what allows this system to scale forever.

Namespaces can be operated like a first come/first serve top-level domain. Businesses can sell sub-names and aggregate updates to the time chain.

How is it uncensorable then? Because the namespace owner can never revoke your name without invalidating the entire namespace and every subsequent update, thanks to the merkle tree. Also your subdomain is signed by your private key in the tree, so the namespace operator can never reroute your name without your signature.

So, they can revoke or change your name, but can they prevent you from updating it if something changes? Yup! Luckily the protocol will allow you to post a permanent redirect yourself to the timechain, signed by the same private key, to a new name in a different namespace!

Bonus points: we don’t need to bootstrap a new p2p protocol to communicate between nodes. We can use nostr events as transport for the merkle leaves and take advantage of the Nostr network effects.

Reply to this note

Please Login to reply.

Discussion

No replies yet.