¿Qué es IPFS? Web 3.0 y el futuro de Internet

Rubén Castro, 12 marzo 2022

No te pierdas las ofertas de los Días Naranjas de PcComponentes!!! Muy buenas ofertas en informática, móviles, electrodomésticos y mucho más...

Ver ofertas

¿Qué es IPFS?

IPFS son las siglas de Interplanetary File System. En esencia, se trata de un sistema de versionado que puede almacenar archivos y realizar un seguimiento de las versiones a lo largo del tiempo, de forma muy parecida al repositorio Git. Sin embargo, la diferencia más importante es que también define cómo se mueven los archivos a través de una red, lo que lo convierte en un sistema de archivos distribuido, muy parecido a BitTorrent.

Para que dos personas intercambien información, necesitan conjuntos de reglas comunes que definan cómo y cuándo se transmite la información. Estas reglas se conocen como protocolos de comunicación.

Al combinar estas dos propiedades, IPFS permite una nueva red permanente y aporta muchas mejoras respecto a la forma en que utilizamos los protocolos de Internet existentes, como HTTP. IPFS es un sistema distribuido para almacenar y acceder a archivos, sitios web, aplicaciones y datos.

Para que nos hagamos una idea, Internet es un conjunto de protocolos que describen cómo se mueven los datos por una red. Los desarrolladores adoptaron estos protocolos a lo largo del tiempo y construyeron sus aplicaciones sobre esta infraestructura. Uno de los protocolos que sirve de columna vertebral de la web es el HTTP o Protocolo de Transferencia de Hipertexto. Fue inventado por Tim Berners-Lee en 1991.

En la última década, gran parte de los datos que componen Internet se han trasladado al “almacenamiento en la nube”. La mayoría de las aplicaciones que utilizamos a diario almacenan nuestra información personal en centros de datos propiedad de Amazon, Google o Microsoft lo que conlleva muchos potenciales peligros.

Por eso, los desarrolladores están recurriendo a las redes de datos descentralizadas como forma de mejorar la resistencia de los datos y crear nuevos modelos en torno a su propiedad, lo que se conoce como la Web 3.0. Tecnologías emergentes como el Sistema de Archivos Interplanetarios (IPFS) permiten mejorar los protocolos subyacentes de la Web 2.0, haciendo que Internet sea más segura al distribuir los datos a través de una vasta red global de pares.

IPFS hace esto posible no sólo para las páginas web, sino también para cualquier tipo de archivo que un ordenador pueda almacenar, ya sea un documento, un correo electrónico o incluso un registro de base de datos.

La Web 1.0 hace referencia a los inicios de Internet. Webs de texto con hipervínculos. La Web 2.0 hace referencia al siguiente paso de Internet, el nacimiento de los blogs personales y las redes sociales.

Protocolos de comunicación entre ordenadores

Al principio, los ordenadores no podían comunicarse entre sí, de hecho, estuvieron aislados hasta principios de los años 80, cuando se inventaron los primeros protocolos de comunicación para la informática.

En los ordenadores, los protocolos de comunicación suelen existir en paquetes (denominados suite de protocolos) de varias capas. Por ejemplo, el conjunto de protocolos de Internet consta de 4 capas, cada una de las cuales es responsable de funciones específicas. Además de los protocolos de comunicación, una relación importante que hay que entender es la estructura básica de las interconexiones entre los ordenadores. Esto se conoce como la arquitectura del sistema. Existen varias, pero los dos tipos relevantes para nosotros son las redes cliente-servidor y las redes peer-to-peer.

Los datos se almacenan en servidores centralizados y se accede a ellos mediante un direccionamiento basado en la ubicación. Esto facilita la distribución, la gestión y la seguridad de los datos, así como el escalado de la capacidad tanto de los servidores como de los clientes.

Sin embargo, hay muchos puntos débiles en el ámbito de la seguridad, la privacidad y la eficiencia… Al final, el que controla el servidor controla los datos. Esto significa que sus datos pueden ser accedidos, alterados y eliminados por cualquier parte que tenga el control del servidor; esto podría ser una entidad con autoridad legítima sobre el servidor o un hacker malicioso. Un ejemplo muy claro es YouTube o Twitch que pueden penalizar a creadores de contenido y eliminar todos los vídeos que hayan creado en la plataforma.

En cambio, el IPFS permite crear una Web permanente y distribuida, donde se pueden almacenar y compartir todo tipo de datos digitales. Mientras que las comunicaciones HTTP dependen de un servidor (con una ubicación concreta) para proporcionar el contenido, las comunicaciones IPFS se centran en el propio contenido.

Con IPFS, nosotros ya no pediríamos el contenido directamente al servidor de Amazon. En su lugar, preguntaría a la red distribuida “¿quién puede proporcionarme este contenido?” y los pares más cercanos responderían rápidamente.

Dependiendo de la implementación, IPFS puede presentar muchas ventajas en comparación con HTTP, como la resistencia a la censura, la integridad de los datos, menores costes operativos, mejor rendimiento y seguridad.

Algunas de las limitaciones están relacionadas con los escasos incentivos para participar en la red, lo que puede provocar que no muchos ordenadores funcionen como pares. La escasa adopción dificulta la disponibilidad permanente de los archivos. Si ciertos datos sólo están alojados en un puñado de nodos y todos se desconectan, quedarán inaccesibles.

La descentralización de Internet

La descentralización hace que sea posible la descarga de un archivo desde muchos lugares que no están gestionados por una organización. Esto tiene algunas implicaciones muy importantes:

  • Hace que Internet sea más resistente. Si alguien ataca los servidores web de Wikipedia o un ingeniero de Wikipedia comete un error que hace que sus servidores se apaguen, podría haber una caída masiva de la web y no podamos acceder a ella. Esto ha pasado en el pasado en servidores de AWS que han hecho que muchísimas webs a la vez fueran inaccesibles.
  • Hace más difícil censurar el contenido. Como los archivos en IPFS pueden venir de muchos lugares, es más difícil para cualquiera (ya sean estados, corporaciones o cualquier otra persona) bloquear cosas. Esperamos que IPFS pueda ayudar a proporcionar formas de eludir acciones como éstas cuando se produzcan.
  • Puede acelerar la web en lugares remotos o mal conectados. Si puedes recuperar un archivo de alguien cercano en lugar de cientos o miles de kilómetros de distancia, a menudo puedes conseguirlo más rápido. Esto es especialmente valioso si tu comunidad está conectada en red a nivel local pero no tiene una buena conexión a Internet.

Cómo funciona IPFS

IPFS trata de resolver las deficiencias del modelo cliente-servidor y de la web HTTP mediante un novedoso sistema de intercambio de archivos p2p. Este sistema es una síntesis de varias tecnología nuevas y existentes. IPFS es un proyecto de código abierto creado por Protocol Labs, un laboratorio de I+D sobre protocolos de red y antigua empresa de Y Combinator. Protocol Labs también desarrolla sistemas complementarios como IPLD y Filecoin, que se explican a continuación. Cientos de desarrolladores de todo el mundo han contribuido al desarrollo de IPFS, por lo que su orquestación ha sido una empresa masiva. Estos son los principales componentes:

Tablas hash distribuidas

Una tabla hash es una estructura de datos que almacena información como pares clave/valor. En las tablas hash distribuidas (DHT), los datos se distribuyen en una red de ordenadores y se coordinan eficazmente para permitir un acceso y una búsqueda eficientes entre los nodos.

Las principales ventajas de las DHT son la descentralización, la tolerancia a los fallos y la escalabilidad. Los nodos no requieren una coordinación central, el sistema puede funcionar de forma fiable incluso cuando los nodos fallan o abandonan la red, y los DHT pueden escalar para dar cabida a millones de nodos. En conjunto, estas características dan lugar a un sistema que suele ser más resistente que las estructuras cliente-servidor.

Intercambio de bloques

El popular sistema de intercambio de archivos Bittorrent es capaz de coordinar con éxito la transferencia de datos entre millones de nodos gracias a un innovador protocolo de intercambio de datos, aunque se limita al ecosistema torrent. IPFS implementa una versión generalizada de este protocolo llamada BitSwap, que funciona como un mercado para cualquier tipo de datos. Este mercado es la base de Filecoin: un mercado de almacenamiento p2p construido sobre IPFS.

DAG de Merkle

Un DAG de Merkle es una mezcla de un árbol de Merkle y un gráfico acíclico dirigido (DAG). Los árboles de Merkle garantizan que los bloques de datos que se intercambian en las redes p2p son correctos, no están dañados ni alterados. Esta verificación se realiza organizando los bloques de datos mediante funciones hash criptográficas. Se trata simplemente de una función que toma una entrada y calcula una cadena alfanumérica única (hash) correspondiente a esa entrada. Es fácil comprobar que una entrada dará lugar a un hash determinado, pero es increíblemente difícil adivinar la entrada a partir de un hash.

En lugar de basarse en la ubicación, IPFS dirige un archivo por lo que hay en él, o por su contenido. El identificador de contenido anterior es un hash criptográfico del contenido en esa dirección. El hash es único para el contenido del que procede, aunque pueda parecer corto en comparación con el contenido original. También le permite verificar que ha recibido lo que ha pedido: los malos actores no pueden entregarle un contenido que no coincide. (Si los hashes son nuevos para ti, consulta la guía de conceptos sobre hashes para una introducción).

En lugar de referirse a los datos (fotos, artículos, vídeos) por su ubicación, o por el servidor en el que están almacenados, IPFS se refiere a todo por el hash de esos datos, es decir, por el propio contenido. La idea es que, si quieres acceder a una página concreta desde tu navegador, IPFS preguntará a toda la red: “¿alguien tiene los datos que corresponden a este hash?” Un nodo de IPFS que contenga el hash correspondiente devolverá los datos, permitiéndote acceder a ellos desde cualquier lugar (y potencialmente incluso sin conexión).

IPFS utiliza el direccionamiento de contenidos del mismo modo que HTTP utiliza las URL. Esto significa que en lugar de crear identificadores que dirijan los artefactos por su ubicación, podemos dirigirlos por alguna representación del propio contenido. Este enfoque de direccionamiento del contenido separa el “qué” del “dónde”, de modo que los datos y archivos pueden ser almacenados y servidos desde cualquier lugar por cualquier persona. Funciona tomando un archivo y aplicándole un hash criptográfico para obtener una representación muy pequeña y reproducible del archivo, lo que garantiza que nadie pueda crear otro archivo con el mismo hash y utilizarlo como dirección. En lugar de un servidor, te diriges a un dato concreto.