The Ethereum Name Service is a decentralized system that allows for the registration and resolution of human-readable names on the Ethereum blockchain. The service is designed to be extensible, allowing for the addition of new name types in the future.
The Ethereum Name Service is powered by a set of smart contracts that run on the Ethereum blockchain. These contracts implement a Registrar that allows for the registration of names, and a Resolver that allows for the resolution of registered names to addresses.
The Registrar smart contract is responsible for maintaining a mapping of names to addresses. It supports three types of names:
* Top-level domain names (TLDs)
* Subdomain names
* Attribute names
TLDs are the highest level of Names in the Ethereum Name Service. They are registered directly with the Registrar and can be used to create subdomains. For example, the TLD “.eth” can be used to create subdomains like “myname.
eth” or “example.eth”.
Subdomains are created by combining a TLD with another name.eth” could be combined with “myname” to create “myname. Subdomains can be further subdivided by adding additional subdomain names, creating a hierarchy of names. For example, “myname.
eth” could be subdivided into “subname1.myname.eth” and “subname2.
Attribute names are used to associate data with a name. Attributes are stored as key-value pairs, where the key is an attribute name and the value is an attribute value. For example, an attribute name could be “email” and the corresponding value could be “[email protected]”. Attribute names must be unique within a namespace. Namespaces are created by combining a TLD with another name, similar to how subdomains are created.
For example, “.eth”, which would then be used as a namespace for attribute names. Attributes associated with a namespace can be shared by all subdomains within that namespace. .
The Resolver smart contract is responsible for resolving registered names to addresses. When a name is registered with the Registrar, the address that is associated with the name is stored in the Resolver smart contract.
When a user wants to resolve a registered name to an address, they can query the Resolver smart contract, which will return the associated address.
The Ethereum Name Service provides a decentralized way to register and resolve human-readable names on the Ethereum blockchain. The service is powered by two smart contracts: The Registrar, which maintains a mapping of names to addresses; and The Resolver, which resolves registered names to addresses.