What Are Human-Readable Names?
In computer programming, human-readable refers to making information able to be read naturally by humans and stands in opposition to machine-readable format - i.e binary.
Binary is used by computers because it is a representation that better matches how computers work at their most basic level. Even most things people typically think of as “computer representations,” such as IP addresses, are themselves representations of the underlying information in a way that is easier for humans to understand.
Much of the work in computing is translating binary formats and representations to those comprehensible by humans. For example, when interacting with websites, you enter a domain, such as google.com, rather than an IP address, such as 142.250.76.110. This is accomplished via a system called DNS, whose primary purpose is to make systems more accessible and usable by humans.
When it comes to crypto and web3, human-readable formats are most often discussed in relation to the long, cryptographic hashes on the blockchain as wallet addresses. Currently, these addresses look like this: 0x787192fc5438cc32aa956ddfdedbf26b24e8d78e40109add0eea2c1a012c3dec.
While perfect for interacting on the blockchain and different smart contracts, these long addresses are not easy for humans to identify, type or memorize - one address looks much the same as another at a glance. By replacing these long hashes with simpler names, it is easier to identify and remember blockchain accounts.
How Do Human-Readable Names Work?
For simplicity and efficiency, blockchains and smart contracts typically deal with machine-readable identifiers, such as cryptographic hashes, rather than human-readable representations. The high cost of storage in smart contracts further exacerbates this. As a result, we need a system like ENS, which can translate from easy-to-remember names such as wallet.eth to account addresses.
Names can also be non-fungible tokens (NFTs), and they can be implemented in a fashion that ensures the user has true ownership over the name, with no ability by the issuer to ‘claw back’ the name.
Why Do Human-Readable Names Matter?
Human-readable names are important for a number of reasons.
To begin with, onboarding users to web3 can be difficult because of the confusing wallet addresses that act as their bank account and identity in this space. It’s difficult for people to interact with long blockchain addresses and next to impossible to memorize.
Most people are used to simple sign-in and identity experiences in web2. A link to a webpage with your name, picture and bio or a one-click sign-in with your email is now the standard. Swiftly jumping to a multi-numbered and lettered address is a big readjustment.
This is not only off-putting but also a hazard when transacting. Despite being able to copy and paste, there are often errors when inputting blockchain addresses. By mistyping just one number, you can send funds into a black hole.
The added pressure here is that there is no recourse for reversal. While putting in the wrong bank account might be reversible due to the centralized access banks have, these transactions are final on the chain. This makes having a simpler, human-readable address even more important than in web2.
Examples of Human-Readable Name Capability in Web3
As human-readable names in web3 are NFTs, they are able to incorporate additional functionality.
This includes being able to build sub-domains from the original with ensured hierarchy. So smith.eth could include will.smith.eth, john.smith.eth, and so on. The ownership of these can be delegated, changed and traded as the owner wishes.
These names also allow for better organization of multiple wallets and identities. Currently, crypto-users likely have multiple wallets and thus multiple, long-winded addresses. Rather than having a human-readable name for each, it is possible to connect them all under one name, therefore, solidifying one’s digital identity in web3.
Author: Nick Johnson is the founder and lead developer of Ethereum Name Service (ENS) with over 20 years of software engineering experience. Nick worked at Google for seven years as a software engineer debugging complex code and solving a range of production issues, Taking his Web2 expertise to Web3, Nick was an early adopter as an Ethereum Foundation software engineer from 2016 to 2018. His passion lies in building extensible, long-lasting systems open to all in his community, and ensuring future technology stacks operate as public goods. Nick envisions ENS becoming the naming system for every digital resource globally.