Le service Ethereum Name Service (ENS) est un système de nommage distribué, ouvert et extensible basé sur la blockchain Ethereum.
Le rôle d'ENS est d'associer des noms lisibles par l'homme, tels que 'alice.eth', à des identifiants lisibles par la machine tels que les adresses Ethereum, d'autres adresses de cryptomonnaies, des hachages de contenu et des métadonnées. ENS prend également en charge la 'résolution inverse', ce qui permet d'associer des métadonnées telles que les noms canoniques ou les descriptions d'interface aux adresses Ethereum.
ENS partage des objectifs similaires à ceux du DNS, le Domain Name Service d'Internet, mais possède une architecture significativement différente en raison des capacités et contraintes offertes par la blockchain Ethereum. Comme le DNS, ENS fonctionne sur un système de noms hiérarchiques séparés par des points appelés domaines, le propriétaire d'un domaine disposant d'un contrôle total sur les sous-domaines.
Les domaines de niveau supérieur, tels que '.eth' et '.test', sont détenus par des contrats intelligents appelés registrars, qui définissent les règles régissant l'allocation de leurs sous-domaines. N'importe qui peut, en suivant les règles imposées par ces contrats de registrar, obtenir la propriété d'un domaine pour son propre usage. ENS prend également en charge l'importation de noms DNS déjà détenus par l'utilisateur pour les utiliser avec ENS.
En raison de la nature hiérarchique d'ENS, toute personne détenant un domaine à n'importe quel niveau peut configurer des sous-domaines - pour elle-même ou pour d'autres - selon ses souhaits. Par exemple, si Alice possède 'alice.eth', elle peut créer 'pay.alice.eth' et la configurer comme elle le souhaite.
ENS est déployé sur le réseau principal Ethereum et sur plusieurs réseaux de test. Si vous utilisez une bibliothèque telle que la bibliothèque JavaScript ensjs, ou une application pour utilisateur final, elle détectera automatiquement le réseau avec lequel vous interagissez et utilisera le déploiement ENS de ce réseau.