Uno de los proyectos sobre Ethereum que está ganando rápido protagonismo en el mundo cripto es Ethereum Name Services (ENS).
El objetivo de este proyecto está en la construcción de un sistema de registro de dominios (DNS) e identidad soberana totalmente descentralizado. Para ello, ENS hace uso de la tecnología de Ethereum y los tokens ERC-721 para lograr crear un directorio único de identidades y datos que puede ser consultado y verificado de forma pública.
Pero ¿Qué hay detrás de todo esto? ¿En qué nos puede ayudar y cómo puede cambiar este proyecto la forma en que interactuamos con blockchain y servicios fuera de la misma?
Inicios del proyecto Ethereum Name Services (ENS)
Antes de adentrarnos en el ENS, es necesario conocer en primer lugar que es un DNS. El sistema DNS es una de las tecnologías fundamentales en el funcionamiento de Internet. Gracias a este sistema podemos encontrar rápidamente la dirección IP de un servicio o página web a la que queremos acceder.
Recordemos que en Internet hay miles de millones de dispositivos conectados y cada uno de estos equipos se comunica con otro por medio de un direccionamiento que es posible usando el protocolo TCP/IP. TCP es un protocolo de transmisión de datos, es decir, le permite a la computadora saber cómo, cuándo y en qué forma enviar datos a otro computador conectado en Internet. Mientras que IP (Internet Protocol Address), es una serie de números que identifican a cada computador de forma única en dicha red.
Estas direcciones IP (al menos en su versión 4 o IPv4, ya que las IPv6 son completamente distintas), se escriben como cuatro conjuntos de números que van desde 0 hasta 255, usando el formato x.x.x.x. Así, por ejemplo, una IP válida para un computador sería la dirección IPv4, 142.250.64.142, la cual pertenece a YouTube.
Pero ¿Cómo es posible que «youtube.com» se transforme en 142.250.64.142? Pues es allí donde los DNS entran en acción, ya que estos actúan como si fuera una guía telefónica o plataforma que se dedica a traducir los nombres de una web en una IP con la que ubicar el servidor web. Con esto se permite a los usuarios acceder de forma rápida y sencilla a los servicios alojados en servidores conectados a Internet. Y, al igual que sucede con los números de una guía telefónica, las IP deben registrarse con el fin de que puedan ubicarse y entregarse a quien las solicite. Es así como los DNS son la «guía de direcciones de Internet», una guía muy práctica, porque en caso de no existir tendríamos que recordar todos esos números para poder acceder a nuestros sitios favoritos.
Ahora bien, esto de los DNS y las direcciones IP que almacenan se parece mucho a las redes blockchain. Piénsalo un momento: cuando envías criptomonedas a una dirección esto se podría traducir en «hacer llegar el dinero que envías a X dirección dada». Y si bien no se trata de enviar datos desde un nodo a otro específico, el concepto se puede extrapolar para que nos resulte útil en otros aspectos. Por ejemplo, un protocolo DeFi está formado por cientos de smart contracts, smart contracts que interactúan con otros, y cada uno de ellos con su propia dirección. Esto convierte en una tarea compleja el mantener todo este sistema, porque después de todo estamos acostumbrados a leer de forma sencilla palabras, pero no direcciones de criptomonedas como lo sería: 0x9d74a588ee218ce229becb41bcca40b38a96d836, y mucho menos cientos de ellas.
En ese caso ¿Por qué no registrar nombres legibles y asociarlos a una dirección específica con el fin de facilitar esta tarea? Eso es precisamente lo que hace ENS. Ethereum Name Service (ENS) nace como un gran sistema descentralizado que funciona sobre Ethereum y su función es la misma de un DNS. Básicamente, nos sirve como una gran libreta o contenedor de cualquier información. Una información que es almacenada en la blockchain Ethereum y que podemos referenciar y buscar de forma libre y sin censura.
Ethereum Name Service es un proyecto que comenzó sus pasos en el año 2016 impulsado por Nick Johnson y Alex Van de Sande. Sin embargo, no fue hasta abril de 2018, cuando se lanza públicamente el servicio. Desde entonces ENS se ha transformado en uno de los mayores servicios de DNS e identidad soberana que existen en el criptomundo.
Objetivo del proyecto Ethereum Name Services (ENS)
El principal objetivo de Ethereum Name Services (ENS) es el de brindar la infraestructura necesaria para la construcción de servicios Web 3.0 mucho más accesibles y fáciles de usar, junto con la construcción de una infraestructura que sirva para controlar identidad soberana, direcciones blockchain personales o empresariales.
Así, al igual que los DNS se transformaron en parte fundamental de Internet, ENS busca convertirse en parte fundamental para la construcción de la Web 3.0 y sus servicios, siendo un hub descentralizado que permite la conexión de diferentes partes de la red para aprovechar todo el potencial de la tecnología Web 3.0, a la vez que mejora su seguridad y facilidad de uso.
¿Por qué necesitamos DNS sobre blockchain?
Sin embargo, este objetivo de ENS nos lleva a hacernos la pregunta ¿Por qué necesitamos de servicios DNS sobre blockchain? Sabemos que una blockchain es una estructura de datos accesible, verificable y mantenida de forma descentralizada. Así, los datos de la red se replican en cada nodo de la red sin necesidad de una autoridad central. Todo el mundo tiene la posibilidad de leer su contenido, añadir datos e incluso unirse a la red.
En el sistema DNS actual esto funciona de una forma más o menos parecida, excepto en que el sistema no es totalmente centralizado, sino federado. Así, cada red (formada por los ISP o Proveedores de Servicio de Internet) es capaz de ejecutar servicios DNS de los que dependen sus usuarios. En pocas palabras, los ISP tienen el control total de los DNS y por tanto de lo que pueden acceder o no sus usuarios desde sus redes.
De allí que en muchos gobiernos o empresas la forma más sencilla de censurar algo «molesto» sea reescribiendo los registros DNS a los que pueden acceder los usuarios para negarles el acceso al sitio o servicio que buscan. Este es un fallo en el sistema DNS de Internet, un fallo conocido y que no tiene solución, salvo cambiar los DNS o ejecutar los propios, aunque esto no una solución completa, ya que:
- En el primer caso, sigues dependiendo de un tercero.
- Ejecutar un DNS server autoritativo completo es complejo y no te salva de que un gobierno o empresa decidida simplemente vetar tu acceso al servicio de replicación DNS que usas.
Es allí donde el DNS sobre blockchain entra en acción. Dado que toda la información del DNS está grabada en la blockchain, basta con ejecutar un nodo completo de la red, para tener acceso a todos los registros DNS que estén guardados en dicha blockchain. Puedes explorar y usar esos registros cuando desees y mantenerlos actualizados depende solo de que mantengas tu nodo conectado. Además, puedes usar un VPN, servicios como Tor o I2P, SSH Socks5, Proxies o cualquier otro medio para mantener esa sincronización activa en todo momento, incluso aunque la empresa o gobierno use medios activos y pasivos para evitarlo.
Después de todo, la tecnología blockchain satisface varias necesidades de DNS, entre las que destacamos:
- Disponibilidad. Una red descentralizada, de igual a igual, no puede ser detenida. Podría sustituir o complementar las infraestructuras Anycast.
- Integridad. El protocolo de consenso de una Blockchain garantiza, por naturaleza, la integridad de los datos. Además, los datos no pueden ser modificados. Estas propiedades eliminarían la necesidad de DNSSEC y su famosa ceremonia de renovación de claves.
- Confidencialidad. Las solicitudes realizadas para leer los datos de Blockchain pueden encapsularse en un canal HTTPS. Esto funciona de la misma manera que el protocolo DNS sobre HTTPS (DoH). Hoy en día hay pocos resolutores de DoH, por lo que el tráfico está centralizado en torno a un número limitado de actores. El uso de una Blockchain ofrecería la posibilidad de consultar cualquier nodo de la red, limitando así la centralización y el SPF (punto único de fallo).
- Los datos incluidos en los archivos de zona DNS, es decir, las configuraciones de los nombres de dominio, podrían por tanto distribuirse en una blockchain. Así, cada actor (registros, registradores) podría interactuar directamente con esta blockchain para gestionar los nombres de dominio. Esta es la idea del DNS en Blockchain.
- Capacidad para crear nuevas zonas y dominios, y trabajar de forma complementaria al sistema DNS actual. Usando esta tecnología, es posible asociar nombres de dominio adicionales a los existentes e incluso es posible que el sistema complemente a los DNS actuales. Nombres de dominio (TLD) como .bit, .zil, .crypto, .eth, son solo una muestra de esta capacidad. Además, también se pueden usar tecnologías equivalentes a DNSSEC o DoH para asegurar la idoneidad de los datos y servicios.
¿Cómo funciona Ethereum Name Services (ENS)?
Ethereum Name Services (ENS) funciona gracias a una serie de smart contracts en la blockchain Ethereum. El sistema es bastante sencillo: los smart contracts de ENS permiten a los usuarios interactuar con el sistema por medio de una potente DApp en la que pueden plasmar todos los datos que desean registrar dentro del sistema.
Así, en pocas palabras, ENS es autónomo desde su propia base de funcionamiento. ENS permite una interacción directa entre los usuarios y el sistema de registro, permitiendo el registro de nombres de dominio, direcciones y demás datos, de forma directa, y traduciendo todos esos datos en lenguaje natural.
La estructura de Ethereum Name Service (ENS)
ENS debe su funcionamiento a tres puntos que son:
- ENS Registry
- Resolvers
- Registrars
El objetivo del ENS Registry, es mantener una lista de los dominios y subdominios registrados en el sistema. Básicamente, se encarga de controlar el almacenamiento de información para evitar que existan dos dominios usando el mismo nombre, pero apuntando a dos direcciones distintas. Básicamente, este sistema es un gestor de dominios y se encarga de mantener la primera línea de seguridad dentro del sistema.
Por otro lado, el Resolver son una serie de smart contracts. Su función es realizar las búsquedas de los recursos asociados a los nombres de dominio. Es decir, un Resolver es el encargado de recibir la petición de búsqueda de un nombre de dominio, realizar dicha búsqueda y otorgar los datos que se han almacenado en el sistema. Así, los Resolvers buscan dirigir el tráfico y llevarnos a los recursos que deseamos. Estos recursos asociados a los nombres de dominio pueden ser desde una dirección de contrato, un hash, o direcciones IP, entre otros.
Finalmente, tenemos a los Registrars, que son los smart contracts que poseen los dominios y emiten subdominios de los dominios a los usuarios siguiendo un conjunto de reglas definidas en dichos contratos.
¿Cómo usar Ethereum Name Services (ENS)?
Usar ENS es bastante sencillo, basta con tener un monedero MetaMask configurado y entrar en la DApp de ENS.
Desde allí, si deseas registrar un dominio o identidad simplemente debes indicar la identidad a registrar (ej: bit2meacademy.eth) y con ello te aparecerá:
En este caso, como puedes ver la dirección a registrar está disponible y el coste de un registro. Por ejemplo, por 1 año, ese coste es de 16,52 $ y deben ser pagados en ETH. Desde aquí puedes registrar el nombre que deseas, solo debes ingresar el nombre y hacer clic en «Request To Register». Con ello comienza el inicio del registro del dominio que deseas registrar.
En este punto solo deberás completar el pago de la comisión y el pago del registro para terminar con el proceso.