What Is The Blockchain Dns
Blockchain DNS simply resolves names by parsing entries for them and resolving those entries against an API. This API implements standard DNS resolution using whatever API the API provider implements it with. There could be many API providers at once, perhaps offering service through different protocols based on popularity or latency to increase performance… there would be no other criteria enforced except being able to resolve names into addresses.
Imagine a blockchain without Bitcoin. We don’t need to imagine for long, because this platform with BTC isn’t the one we know and love – it’s a one called Namecoin.
Namecoin is a blockchain expressly designed to provide a way for arbitrarily naming things on the aforementioned platform. Instead of containing arbitrary data, a Namecoin record contains an arbitrary name that points to some other data contained in another place on the platform. A Namecoin record also has associated metadata that specifies how that particular name should be resolved, instead of being resolved by the platform’s consensus algorithm like normal records are.
In this article, I’m going to describe how domain names can be implemented. Specifically, the information that will be presented will be records in JSON-LD for domain names and resource records. The blockchain does not follow the RDF data model by default, but it’s possible to encode as RDF
It makes a good decentralized system because there are only a few moving parts: a name registry, a resolver (autonomous agents on the network), and resolution rules. “Domain name resolution” is taken care of by the consensus protocol for entries, and resolvers are trivial to write.
A Namecoin record can contain any data whatsoever.But in this article I’m going to limit myself to describing blockchain-as-DNS only – the cryptographic primitives necessary to build this platform-as-whatever are already well developed in Namecoin, so there’s no need to go beyond what they do here.
Although records are expressed as JSON, the platform itself is not inherently a JSON data structure. It can be represented as JSON (this is how records are currently encoded), but that’s because consensus algorithms happen to work equally well on chains of arbitrary binary data.
resolves names by parsing entries for them and resolving those entries against an API. This API implements standard DNS resolution using whatever API the API provider implements it with. There could be many API providers at once, perhaps offering service through different protocols based on popularity or latency to increase performance… there would be no other criteria enforced except being able to resolve names into addresses.
This API is likely to be developed under the blockchain-as-DNS use case because it’s what blockchain DNS would interoperate with. It wouldn’t exist in a vacuum – these records containing domain names would contain links to this platform’s APIs, and resolvers would be expected to implement standard APIs as resolvers do. If there were multiple popular APIs , their resolution rules would need to specify which API they resolve against.
Although anyone can write a blockchain resolver that uses any API provider they choose since these are just regular, there’d probably be some standards bodies involved. The standards bodies may also charge membership dues – blockchain DNS resolution would likely be an expensive service to provide since these records are stored in blocks and these blocks contain a lot of data.