Flexible Alias or Why ENS is Obsolete

Semantic Analysis

This article is meant to analyze current standards used for identifying resources, through a semantic and intuitive lens.

Root->Leaf

From a semantic standpoint, it is intuitive to traverse a path to a leaf/resource starting from its root origin: root > component > subcomponent > leaf. There are multiple separators used to intuitively render such a path: ., >, /, #, :, \.

Leaf->Root

Characters that symbolize the leaf->root path are: @, <, /. @ means "at" and is widely used in email addresses./ is used to represent mathematical fractions 2/3.

Leaf->Leaf

Characters that symbolize the leaf->leaf relations in natural and programming languages are: -, ,, &, |, =, /, +.

Ambiguities

As seen above, there are symbols with ambiguous meaning, depending on the context. An example is /, which can convey a root->leaf path (e.g. /Users/alice/Documents/Books) or a leaf->root rule (e.g. 2/3 fraction), or a leaf->leaf relation (e.g. in natural language: "he/she").

Existing Standards

We will now take a look at the existing standards used for providing human-readable addressability for resources and how they use the semantic rules mentioned above.

DNS

The current DNS format is leafsubdomain.subdomain.domain.tld. Users can set their own subdomains and domains, buying them from a decentralized network of DNS providers and registrars. They can choose the TLD only from the available options, controlled by ICANN, in associations with world governments.

DNS for Ethereum/Blockchain

Some of the existing solutions for providing DNS-like functionality for blockchain-based systems are ENS, Handshake, Unstoppable Domains.

Libra/Move Comparison

Libra has two ways of addressing resources. In Move, developers use address.modulename.resource to reference a resource - e.g. 0x56.Currency.TCoin or even 0x56.Currency.deposit() for resource methods.

Alias is Based on Intuition

Alias is based on semantic ordering, following the meaning of the separators that are used. It currently allows the following separators:

  • @: identifying actor-related data, such as user profiles, e.g. alice@domain.subdomain (leaf->root)
  • #: identifying concepts, e.g. somain.subdomain.topicY#postX (root->leaf)
  • /: general resource path definition, e.g. resourceRoot/resource (root->leaf)

--

--

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store