IIP-22: IoTeX Domain Name Service

Abstract

This draft IIP describes the details of the IoTeX Name Service (INS), which is similar to the ENS (Ethereum Name Service). The INS aims to be a protocol and ABI definition that provides flexible resolution of short, human-readable names to service and resource identifiers. This enables users to register and manage human-readable domain names for their IoTeX addresses, smart contracts, decentralized websites, and other IoTeX-based resources. INS will simplify the user experience by replacing long and complex IoTeX addresses with easy-to-remember names.

If cryptocurrencies become mainstream, there will be a substantial market for Web3 domains. As “everyone” eventually adopts a Web3 wallet, human-readable digital wallet addresses will be as commonplace as email addresses.

This proposal suggests using .io as the IoTeX L1 network’s TLD.

Motivation

INS can offer many benefits for IoTeX blockchains:

  1. Simplified Address System and enhanced user experience: INS replaces complex and lengthy cryptocurrency addresses with human-readable domain names, making it easier for users to interact with blockchain addresses and decentralized applications.

  2. Interoperability: INS provides a unified namespace across multiple decentralized applications and blockchain platforms. Users can use the same INS domain name for various services, eliminating the need to remember different addresses for different applications.

  3. Branding and Identity: INS supports various top-level domains (TLDs) beyond the traditional “.io” extension. This enables organizations and communities to establish their unique identities on blockchain, promoting branding and fostering a sense of trust and recognition.

  4. Decentralization and Security: INS operates on the IoTeX blockchain, leveraging the decentralized nature of blockchain technology. This ensures that domain ownership and control are in the hands of the users themselves, reducing the risk of censorship or manipulation.

  5. Integration with Existing Systems: INS can be integrated into popular wallets, exchanges, and decentralized applications, allowing seamless use of domain names across various platforms and services.

  6. User Empowerment: INS gives users ownership and control over their domain names and associated cryptocurrency addresses. Users have the flexibility to update or transfer their domains as needed, providing a sense of empowerment and autonomy.

  7. Improved Discoverability: INS facilitates the discovery of decentralized services and applications by providing human-readable domain names. Users can easily search and navigate the blockchain ecosystem, promoting the adoption and usage of decentralized platforms.

  8. Future-Proofing: INS is designed to be compatible with evolving blockchain technologies and standards. It can adapt to changes and upgrades in the IoTeX network, ensuring its longevity and relevance in the ever-changing blockchain landscape.

  9. Community and Innovation: INS fosters a community-driven ecosystem where developers, organizations, and individuals can collaborate, build upon, and innovate using the INS infrastructure. This drives creativity and the development of new decentralized applications and services.

Based on the multiple advantages of INS mentioned above, it is an imminent task to deploy a mature, flexible, and stable domain name system on the IoTeX network.

Specification

Overview

The INS system comprises four main parts:

  • The INS registry

  • Resolvers

  • Registrars

  • Name Wrapper

The registry is a single contract that serves as the core infrastructure of the IoTeX Name Service. It functions as a decentralized database that maintains the mapping between domain names and their corresponding IoTeX addresses or resources. The Registry is implemented as a smart contract on the IoTeX blockchain, ensuring security, immutability, and censorship resistance. It acts as a single source of truth for all registered INS names and is responsible for handling the resolution of these names to their respective resources.

Resolvers are smart contracts associated with individual INS names. They play a crucial role in enabling INS names to resolve to specific resources such as IoTeX addresses, decentralized websites, or content hashes. Resolvers allow users to configure and update the settings associated with their INS names, providing flexibility and adaptability. By interacting with the Resolver contract, users can define various records, such as address records (for IoTeX addresses), content records (for decentralized websites), and text records (for arbitrary metadata). These records allow users to attach additional information to their INS names and enable decentralized applications to utilize INS in a more versatile manner.

Registrars act as intermediaries between users and the INS Registry. They facilitate the process of registering and managing INS names by allowing users to reserve, release, and transfer names securely. Registrars typically implement additional rules, policies, and pricing structures that govern the registration of names within their specific TLD (Top-Level Domain). Each TLD on INS has its own registrar, which defines the requirements for registering names under that TLD. Registrars play a vital role in ensuring the availability and integrity of the INS namespace by enforcing the registration rules and policies in a fair and transparent manner.

Name Wrapper is a smart contract that will allow issuing subdomains (such as sub.domain.io) as separate Non-Fungible Tokens (NFTs). It is already possible to make and use subdomains, but they are not created as separate NFTs and can not be transferred between wallets, rented, or sold. On top of that, it will be possible to customize subdomains by revoking sets of permissions (burning fuses) to change the degree of ownership.

Together, the INS Registry, Resolvers, Registrars, and Name Wrapper form a robust infrastructure that powers the IoTeX Name Service ecosystem. INS provides a decentralized and user-friendly approach to interacting with blockchain resources by offering human-readable names instead of long and complex addresses. Whether it’s simplifying transactions, enhancing user experiences, or supporting the growth of decentralized applications, INS plays a vital role in making the IoTeX ecosystem more accessible and intuitive for users worldwide.

Name syntax

INS names must conform to the following syntax:

<domain> ::= <label> | <domain> "." <label>
<label> ::= any valid string label per [UTS46](https://unicode.org/reports/tr46/)

Below are valid names for INS:

namehash algorithm

Before being used in INS, names are hashed using the ‘namehash’ algorithm. This algorithm recursively hashes components of the name, producing a unique, fixed-length string for any valid input domain. The output of namehash is referred to as a ‘node’.

Pseudocode for the namehash algorithm is as follows:

def namehash(name):
  if name == '':
    return '\0' * 32
  else:
    label, _, remainder = name.partition('.')
    return sha3(namehash(remainder) + sha3(label))

Rationale

The basic principle of INS implementation is basically the same as that of ENS. In ENS, zero-width character names are allowed to register domain names, but in INS, such domain names are prohibited from being registered.

Backward Compatibility

There is no backward compatibility concern.

Security Considerations

There is no security concern.

Copyright

Copyright and related rights waived via CC0.


If you are interested in DePIN you can learn more about the latest developments in the sector and compare projects by visiting DePINscan. DePINscan powered by W3bstream and IoTeX is designed to empower intelligent investors in the DePIN sector.

10 Likes

Context & Summary

A Domain Name Service, DNS, is a lookup service that lets us find websites without having to know their IP addresses. As you know, we use human readable names. But imagine if we were required to send snail mail by writing out the latitude and longitude for the recipient on the envelope. Awkward! Good thing they solved that one.

What does DNS (Domain Name Service) look like when it’s implemented in Web 3? There are similarities and common functionality to both Web 2 and Web 3 systems. And neither ENS (Ethereum Name Service) nor INS (IoTEX Name Service) are intended to replace Web 2’s DNS. They will work together and alongside DNS.

But with the Web 3 iteration, there are important, radical differences that will redefine our relation to both navigating and using the Web. Let’s take a brief look at a few of the benefits we can expect to see with INS, the IoTeX Name Service.

Benefits

  1. Simplified Address System: INS converts lengthy cryptocurrency addresses into human-readable domain names like pets.com or enron.com. (poor examples?)

  2. A Better User Experience will be a more welcoming Web 3 environment for the less technically inclined.

  3. Interoperability: INS can be used across multiple decentralized applications and blockchain platforms, so you can use the same INS domain name for various services, such as ioPay, iotexscan, Account Abstraction wallets and various dApps.

  4. Branding and Identity: INS supports various top-level domains (TLDs) beyond the traditional “.io” extension. Now organizations and communities can establish unique, branded identities on blockchain. That also means your site will be found more easily.

  5. Decentralization and Security: being on the IoTeX blockchain takes advantage of the decentralized nature of blockchain technology. Domain ownership and control (e.g. domain updating, selling, and transferring) are in the hands of the users themselves and not a centralized authority such as Go Daddy, Bluehost, NameCheap or other centralized registrars.

  6. Integration with Existing Systems: INS integrates with popular wallets, exchanges, and decentralized applications enabling the use of domain names across various platforms and services.

These are just a few of the advantages that a Web 3 Domain Name Service has over the traditional Web 2 versions. For a more complete picture and an explanation, slide on over to the Community Forum post on IIP-22 IoTeX Doman Name Service.

Glossary

You may find it useful to learn - or refresh! - yourself about these terms. Here are condensed explanations of parts of INS in IIP-22.

  • INS - IoTeX Name Service

    • Similar architecture to ENS, the Ethereum Name Service
  • The INS system is made up of four main parts:

    • The INS registry is a single contract that serves as the core infrastructure of the IoTeX Name Service. It functions as a decentralized database that maintains the mapping between domain names and resolution to their corresponding IoTeX addresses or resources.

    • Resolvers are smart contracts associated with individual INS names. They play a crucial role in enabling INS names to resolve to specific resources such as IoTeX addresses, decentralized websites, or content hashes and allow users to configure and update the settings associated with their INS names,

    • Registrars act as intermediaries between users and the INS Registry. They facilitate the process of registering and managing INS names by allowing users to reserve, release, and transfer names securely. They typically implement additional rules, policies, and pricing structures that govern the registration of names within their specific TLD (Top-Level Domain).

    • Name Wrapper is a smart contract that will allow issuing subdomains (such as sub.domain.io) as separate Non-Fungible Tokens (NFTs). It is already possible to make and use subdomains, but they are not created as separate NFTs and can not be transferred between wallets, rented, or sold.

7 Likes

So if i registered in name service will i get domain ? Along with name??

Yes, that’s the idea. Pretty sweet, right?

Pretty sweet !!!. I didn’t understand some technical stuff but if its secure and strong then definitely i strongly support this proposal…

Not only do I trust the team, but I’m reassured by the fact that the architecture is modeled after Ethereum’s ENS. It’s been out in the world for 6 years. (Released in May of 2017)

1 Like

I can’t really understand all the technical details but I think I get the part that says ‘this is good’. However can we get an example or theoretical situation on how a common, non technical user will utilize this? From getting the domains, subscribing to the plans (if applicable or will it be a one-off payment?) to what they have to do to be able to utilize said domains either as receiving address or any other application

4 Likes

This is interesting. Thanks for the review

nice , support this proposal

1 Like

Some further thoughts.

Here’s a clear benefit of a Web 3 Domain Name Service:

IoTeX Name Service (INS) is a decentralized domain name service that make it easier for people and companies to be discovered on the blockchain. This benefits Web 3 companies in a number of ways, such as making it easier for users to find their websites and services, giving them a more professional and memorable identity, and helping them to stand out from the competition. Both ENS (Ethereum Name Service) and INS can also attract Web 2 companies to have a Web 3 presence by making it easier for them to reach their customers on the blockchain and take advantage of the benefits of decentralization such as better security and integration with DeFi systems.

Overall, INS provides powerful tools that can benefit both Web 3 companies and Web 2 companies. They make it easier for users to find companies on the blockchain, give companies a more professional identity, and help companies to reach their customers. Even this early in their development they are likely to play an important role in the future of Web 3.

2 Likes

Have the authors of IIP-22 conducted any extensive research as to how ENS can be improved upon based on users feedback? Why is this relevant? I’m glad you asked. With such insight, INS can become an aggregate of ENS but with the user friendliness of GoDaddy + other improvements/upgrades. In others words, ENS 2.0 is the desired outcome. What is the competitive advantage that INS has over ENS?

What is theoretical path for obtaining a domain in the INS network? Any costs to consider?

3 Likes

we already have .iotex domains. others are unnecessary

the jig is up. this looks like a late attempt to get into the domain game.

These are great questions and I’ll try to get an answer for them. (P.S. I like your Socratic style, with the question and answer format)

1 Like

OK - I’ve gotten an answer. The main improvement is literally invisible and it has to do with zero-width spaces. With the INS (IoTeX Name Service), unlike ENS, you can’t use zero-width spaces. That’s a clear security improvement. Here’s why.

From the wikipedia entry:
“The zero-width space ( ), abbreviated ZWSP , is a non-printing character used in computerized typesetting to indicate word boundaries to text-processing systems in scripts that do not use explicit spacing…”

Why does this matter? (Glad you asked!) It matters because it can be used in a URL to spoof a legitimate site’s address. With a zero-width space the spoof URL looks exactly like the legit URL.

So while it’s not a flashy feature, not perpetuating environments where bad things happen is worth taking pride in.

It’s almost funny to think - Hey! Today was another day that I didn’t get scammed. But it really is a better day when bad things don’t happen.

2 Likes

That’s an interesting feature. So it sounds like ENS does allow for Zero Width spaces but INS does not?

Don’t laws surrounding ICANN (domains) already prohibit the use of Zero Width spaces? How is ENS allowed to offer their service in violation of those laws?

Will INS offer 2 or 3 or 4 letter domains? Will pricing be volatile or stable for renewals? Managed by code or human? Will there even be renewals, or like Unstoppable Domains- once registered it becomes yours for life with no renewal fees or gas fees?

What about the INS root node, will this be controlled by few individuals or the DAO, will it be decentralized?

There is plenty of competition out there. We need to make sure we are innovative & offer things others do not and fine tune those things which users of those services complain about.

3 Likes

Hi, I like your questions because I am also thinking about it, all the current hype around ENS domains seems to me greatly exaggerated. Right now every blockchain provider is trying to start trading domains, but there are much less consumers than we would like them to be

1 Like

I agree with @KiberDon - great questions. I’ll try to get answers for these.

1 Like

Could you explain your question:

What about the INS root node, will this be controlled by few individuals or the DAO, will it be decentralized?

I don’t understand what you’re asking.

Here are the answers:

Will INS offer 2 or 3 or 4 letter domains?

  • INS can offer 3 and 3 characters above domains, we will forbid 2 character domains.

Will pricing be volatile or stable for renewals?

  • Pricing is stable, $640/year for 3 characters, $160/year for 4 characters, and $5 for 5+ characters.

Will there even be renewals, or like Unstoppable Domains- once registered it becomes yours for life with no renewal fees or gas fees?

  • As same as ENS, the INS needs renewals.

Will it be managed by code or human?

  • Managed by code.

What about the INS root node, will this be controlled by few individuals or the DAO, will it be decentralized?

  • Currently, the root node is controlled by the multisign account and we plan to use DAO to manage INS
5 Likes