El Servicio de Nombres Ethereum (ENS) es un sistema de nombres distribuido, abierto y extensible basado en la cadena de bloques Ethereum.
La función de ENS es mapear nombres legibles por humanos como 'alice.eth' a identificadores legibles por máquina, tales como direcciones de Ethereum, otras direcciones de criptomonedas, hashes de contenido y metadatos. ENS también soporta 'resolución inversa', lo que permite asociar metadatos como nombres canónicos o descripciones de interfaces con direcciones de Ethereum.
ENS tiene objetivos similares a los de DNS, el Servicio de Nombres de Dominio de Internet, pero su arquitectura es significativamente diferente debido a las capacidades y limitaciones que ofrece la cadena de bloques Ethereum. Al igual que DNS, ENS opera bajo un sistema de nombres jerárquicos separados por puntos llamados dominios, donde el propietario de un dominio tiene control total sobre los subdominios.
Los dominios de alto nivel, como '.eth' y '.test', son propiedad de contratos inteligentes llamados registradores, los cuales especifican las reglas que rigen la asignación de sus subdominios. Cualquiera puede obtener la propiedad de un dominio para su propio uso siguiendo las reglas establecidas por estos contratos registradores. ENS también permite importar nombres de dominio DNS que ya posea el usuario para utilizarlos en ENS.
Debido a la naturaleza jerárquica de ENS, cualquier persona que posea un dominio en cualquier nivel puede configurar subdominios, para sí misma o para otros, según sus deseos. Por ejemplo, si Alice posee 'alice.eth', puede crear 'pay.alice.eth' y configurarlo como desee.
ENS está desplegado en la red principal de Ethereum y en varias redes de prueba. Si utiliza una biblioteca como la biblioteca JavaScript ensjs, o una aplicación para usuarios finales, automáticamente detectará la red con la que esté interactuando y usará la implementación de ENS en dicha red.