Towards Web 3.0 with Blockchain Domain Name Systems. As per Wikipedia, the Domain Name System (DNS) is a hierarchical and decentralized naming system for computers, services, or other resources connected to the Internet or a private network. The goal here is to provide a naming method that is usable in different hosts, networks, protocol families, the internet, and administrative organizations.
Instead of going through such a complicated lexicon, just consider the following examples.
What’s simpler to remember? 220.127.116.11 or www.google.com.
Won’t you rather remember www.amazon.com? Or would you instead remember 18.104.22.168 and any other backup IP addresses they may be using?
Not only does DNS make the internet simpler to use, but it’s also critical for the widespread usage and adoption of the net.
The Guarantees of DNS
With the digital landscape growing as exponentially as it is right now, DNS needs to evolve to keep pace continually. DNS must guarantee the following:
- Availability: DNS service should be available at all times.
- Confidentiality: It’s crucial to protect the privacy of the users making DNS requests. If privacy isn’t maintained, anyone can analyze the user’s browsing information.
- Integrity: DNS data should be incorruptible.
The DNS system is based on a centralized model of trust. It is distributed throughout the world and managed by a hierarchy of different actors. The main body in charge of orchestration is the ICANN – the regulatory authority of the internet.
So, what can the blockchain technology do here? Well, quite a lot, actually. In fact, it could bring considerable innovation and evolution to this space.
Blockchain: A Brief Overview
In the simplest of terms, a blockchain is a timestamped series of immutable records of data that is managed by a cluster of computers not owned by any single entity. Each of these blocks of data (i.e. block) are secured and bound to each other using cryptographic principles (i.e. chain).
Every single node in the blockchain’s network downloads and maintains a copy of the blockchain. This way, every single node interacting with the network gets to be up-to-date with the latest entries.
The three core properties of the blockchain are – decentralization, immutability, and transparency.
Why is the blockchain perfect for DNS?
As we have mentioned above, a DNS needs to fulfill three errors – Availability, Integrity, and Confidentiality. Thankfully, the blockchain can organically meet these properties. How? Let’s take a look.
- Availability: A decentralized system with no central point of failure can never be unavailable.
- Integrity: At the core of the blockchain network lies consensus protocols. Long story short, it’s a specialized algorithm that allows a wide area network to make concrete decisions.
- Confidentiality: Requests made to read the Blockchain data can be covered in an HTTPS channel in the same way as the DNS over HTTPS (DoH) protocol.
Why blockchain needs a naming service
There are currently some issues with traditional blockchain that make it very difficult to use and reduce mainstream adoption.
This is what a normal wallet address looks like: 0x483add28edbd9f83fb5db0289c7ed48c83f55982.
This will pretty much scare away any average person, which would inhibit adoption. This is the same IP address issue that the internet had to resolve to explode in popularity. Blockchain companies require a naming service to establish digital identity across their public addresses. Plus, it will be far simpler for users to interact with a named address, instead of a string of random alphabets and numbers.
So, how do we make this transition? For that, we need to look into existing naming service solutions, starting with Ethereum Naming Service.
Ethereum Naming Service (ENS) Blockchain Domain Name Systems
Ethereum Name Service (ENS) offers a names system on Blockchain that integrates with the traditional DNS. It provides a secure and decentralized way to address different resources using human-readable names. So, instead of sending your ETH to 0x483add28edbd9f83fb5db0289c7ed48c83f55982, you will simply be sending it to “blockgeeks.eth.”
ENS – Underneath the hood
Initially conceptualized by Nick Johnson and Alex Van de Sande of the Ethereum Foundation is built using smart contracts. This makes these addresses a lot more secure, private, and censorship-resistant. Another excellent property that ENS possesses is its interoperability with the rest of the Ethereum ecosystem. ENS can interact with all Ethereum-based smart contracts.
How to get your own ENS domain?
The steps for getting an ENS domain is pretty straightforward:
- Use an Ethereum wallet like MetaMask.
- Visit “manager.ens.domains” and search for an available domain name.
- Go through the registration process and confirm your registration with two transactions from your wallet.
- Following that, you must select for how many years you need to register your domain with rent costing $5/year.
What does the ENS look like?
ENS has two principal components – the registry and resolvers.
The ENS registry has a single smart contract that maintains a list of all domains and subdomains. The system has been kept deliberately simple, and it exists only to map from a name to the resolver responsible for it.
It also stores the following three critical information:
- Domain owner.
- Domain resolver.
- The time-to-live for all records under the domain.
The domain owner can either be an external account or a smart contract. The domain owner may:
- Set the resolver and time-to-live for the domain.
- Transfer domain ownership to another address.
- Change subdomain ownership.
Resolvers are responsible for the process of translating names into addresses. Any contract can become a resolver as long as they implement certain standards. Each record type belonging to a domain, such as a cryptocurrency address, IPFS content hash, etc., requires a method that a resolver must implement.
ENS uses the Namehash process to derive the hash from a name while preserving its hierarchical properties. Fro exampl, the namehash of ‘alice.eth’ is 0x787192fc5378cc32aa956ddfdedbf26b24e8d78e40109add0eea2c1a012c3dec.
But…wait a second.
Isn’t the whole point of RNS to make things simpler? Why are we still reverting things to a hash value? Well, it turns out that smart contracts can’t really interact directly with human-readable names due to resource constraints.
This is why we use namehash, a recursive process that generates a unique hash for any valid domain name. All domain names go through a UTS-46 normalization process to ensure that upper and lower-case names are treated differently. Following that, the domain names go through the namehash process.
RIF Name Service (RNS)
Rootstock (RSK) is a smart contract platform that is connected to Bitcoin´s blockchain through sidechain technology. Rootstock allows you to create applications compatible with Ethereum (the web3/EVM/Solidity model) while still enjoying the security provided by the Bitcoin blockchain. At its very core, Rootstock is a combination of:
- A Turing-complete resource-accounted deterministic virtual machine (for smart contracts) is compatible with the Ethereum’s EVM.
- A two-way pegged Bitcoin sidechain (for BTC denominated trade) based on a strong federation
- A SHA256D merge-mining consensus protocol (for consensus security relying on Bitcoin’s miners) with a 30-seconds block interval. (for fast payments).
Rootstock will also be using its tech stack – the Rootstock Infrastructure Framework Open Standard (RIFOS) to help build a healthy economic system on top of Bitcoin. It’ll facilitate the use of blockchain technology by making it as simple for everyone as possible.
One of the services implemented by RIFOS happens to the RNS or RIF Naming Serivce.
What is RNS?
RNS is a hierarchical name space inspired by DNS. The design goals of RNS are:
- Provide a consistent name space that be used for referring to resources.
- All data associated with a name is tagged with a type, and queries can be limited to a single type.
- RNS tags all data with a class and the type to allow parallel use of different formats for type address data.
RNS has two major components – RNS Registry and RNS Resolvers.
The Registry is a specification for a tree-structured name space and data associated with the names. RNS allows query operations that can procure specific types of information from a particular set. A query specifies a domain name of interest to the Registry and also describes the type of resource information required.
Resolvers are contracts that provide information from a name in response to client requests. Resolvers should either answer a query directly or pass over the query by referring to other resolvers.
Users, Registry, and Resolvers Views
So, we now have a fair idea of what RNS Registry and RNS Resolvers do in the ecosystem. Now let’s see how these two,a long with the users, view the domain system.
- User’s view: They can access the domain system through a simple resolution operation. The domain space has a single tree, and the user can request information from any section of the tree.
- Resolver’s view: The domain system has an indefinite number of names. Each name is tied to a resolver who provides information for a set of resolution types directly.
- Registry’s view: The domain system is a hierarchical tree where each leaf has an owner (contract or account) and an associated resolver that providing the required information
Two conditions must be met before RNS can be used to hold naming information for some object:
- A mapping convention that connects object names and domain names. This mapping clearly defines how an object can be accessed.
- Resource record types and data formats that can help define the object.
Steps to follow to find a specific name record:
- Calculate the namehash of the name.
- Get the corresponding resolver’s address.
- Determine if the resolver supports the required resource record via ERC-165 interface detection.
- Receive the desired resource record.
You can use the RIF marketplace to get your hands on RNS domains. Here is a simple article that will guide you through the process.
RNS Multi-Crypto – The First DNS to Manage Domains from Any Blockchain
RIF upgraded RNS to RNS Multi-Crypto last year. It’s a first-of-its-kind service that supports and manages domains originating from any blockchain. Previously, RNS could only support addresses built on RSK. However, users will now experience unprecedented flexibility.
Gabriel Kurman, RIF Strategist, said about the update:
“At RIF our vision is simple: to build the protocols, tools, and libraries needed so the RIF Framework facilitates mass adoption of RSK and Bitcoin technologies. One of the central challenges with cryptoassets is expecting users to interact with multiple addresses that are difficult to manage and remember. RIF Name Service Multi-Crypto enables consumers to move assets flawlessly across various networks, driving mainstream adoption while upholding RIF’s security standards. We are proud to start building the foundation that will help make the cryptocurrency, blockchain, and dApp space more accessible without sacrificing the benefits these technologies deliver.”
Conclusion – Blockchain Domain Name Systems
Naming services are critical for the overall growth of the blockchain ecosystem. Both ENS and RNS are helpful services that are very simple to use and propel blockchain domain name systems. However, RNS now has a major edge over the former due to its multi-blockchain functionality.
Do you agree with us? Sound off in the comment section below.