El protocolo central de Internet, acertadamente llamado Protocolo de Internet (IP), define un esquema de direccionamiento que las computadoras usan para comunicarse entre sí. . Este esquema asigna direcciones a dispositivos específicos (computadoras de personas y servidores) y usa esas direcciones para enviar datos entre ellos según sea necesario.
Es un modelo que funciona bien para enviar información única de un punto a otro, por ejemplo, tu extracto bancario o una carta de un ser querido. Este enfoque tenía sentido cuando Internet se usaba principalmente para entregar diferentes contenidos a diferentes personas. Pero este diseño no es muy adecuado para el consumo masivo de contenido estático, como películas o programas de televisión.
La realidad actual es que Internet se usa más a menudo para enviar exactamente lo mismo a muchas personas, y ahora está haciendo una gran cantidad de eso, gran parte de lo cual está en el forma de vídeo. Las demandas crecen aún más a medida que nuestras pantallas obtienen resoluciones cada vez mayores, con video 4K ya en uso generalizado y 8K en el horizonte.
Las redes de entrega de contenido (CDN) utilizadas por los servicios de transmisión como Netflix ayudan a resolver el problema almacenando temporalmente contenido cerca, o incluso dentro, de muchos ISP. Pero esta estrategia se basa en que los ISP y las CDN puedan hacer tratos e implementar la infraestructura requerida. Y aún puede dejar que los bordes de la red tengan que manejar más tráfico del que realmente necesita fluir.
El problema real no es tanto el volumen de contenido que se transmite, sino cómo se entrega, desde una fuente central a muchos usuarios distantes diferentes, incluso cuando esos los usuarios están ubicados uno al lado del otro.
Un esquema utilizado por sistemas peer-to-peer para determinar la ubicación de un archivo es mantener esa información en una base de datos centralizada. Napster, el primer sistema de entrega de contenido entre pares a gran escala, utilizó este enfoque.Carlo De Torres
Un esquema de distribución más eficiente en ese caso sería que los datos se envíen a su dispositivo desde el dispositivo de su vecino de manera directa entre pares. Pero, ¿cómo sabría su dispositivo a quién preguntar? Bienvenido al Sistema de archivos interplanetarios (IPFS).
El Sistema de archivos interplanetarios recibe su nombre porque, en teoría, podría extenderse para compartir datos incluso entre computadoras en diferentes planetas del sistema solar. ¡Por ahora, sin embargo, estamos enfocados en implementarlo solo para la Tierra!
La clave de IPFS es lo que se denomina direccionamiento de contenido. En lugar de preguntarle a un proveedor en particular: “Por favor, envíeme este archivo”, su máquina le pregunta a la red: “¿Quién puede enviarme este archivo?” Comienza consultando a los pares: otras computadoras en la vecindad del usuario, otras en la misma casa u oficina, otras en el mismo vecindario, otras en la misma ciudad, expandiéndose progresivamente hacia ubicaciones distantes globalmente, si es necesario, hasta que el sistema encuentra un copia de lo que buscas.
Estas consultas se realizan mediante IPFS, una alternativa al Protocolo de Transferencia de Hipertexto (HTTP), que impulsa la World Wide Web. Sobre la base de los principios de las redes punto a punto y el direccionamiento basado en contenido, IPFS permite una red descentralizada y distribuida para el almacenamiento y la entrega de datos.
Los beneficios de IPFS incluyen una distribución de contenido más rápida y eficiente. Pero no se detienen ahí. IPFS también puede mejorar la seguridad con la verificación de la integridad del contenido para que los agentes intermediarios no puedan manipular los datos. Y con IPFS, la red puede seguir funcionando incluso si se corta la conexión con el servidor de origen o si el servicio que proporcionó inicialmente el contenido sufre una interrupción, lo que es particularmente importante en lugares con redes que funcionan solo de manera intermitente. IPFS también ofrece resistencia a la censura.
Para comprender más completamente cómo IPFS difiere de la mayoría de lo que sucede en línea hoy en día, echemos un vistazo rápido a la arquitectura de Internet y algunos enfoques anteriores de igual a igual.
Como se ha mencionado más arriba, con la arquitectura de Internet actual, solicita contenido en función de la dirección de un servidor. Esto proviene del protocolo que subyace en Internet y rige cómo fluyen los datos de un punto a otro, un esquema descrito por primera vez por Vint Cerf y Bob Kahn en a Artículo de 1974 en Transacciones IEEE en Comunicaciones y ahora conocido como Protocolo de Internet. La World Wide Web está construida sobre el Protocolo de Internet. Navegar por la Web consiste en solicitar a una máquina específica, identificada por una dirección IP, un dato determinado.
En lugar de preguntar a un proveedor en particular, “Por favor, envíeme este archivo”, su máquina le pregunta a la red, “¿Quién puede enviarme este archivo?”
El proceso comienza cuando un usuario escribe una URL en la barra de direcciones del navegador, que toma la parte del nombre de host y la envía a un Servidor del sistema de nombres de dominio (DNS). Ese servidor DNS devuelve una dirección IP numérica correspondiente. El navegador del usuario luego se conectará a la dirección IP y solicitará la página web ubicada en esa URL.
En otras palabras, incluso si una computadora en el mismo edificio tiene una copia de los datos deseados, no verá la solicitud ni podrá relacionarla con la copy it contiene porque el contenido no tiene un identificador intrínseco, no está dirigido al contenido.
Un modelo de direccionamiento de contenido para Internet daría a los datos, no a los dispositivos, el papel principal. Los solicitantes solicitarían el contenido explícitamente, utilizando un identificador único (similar al número DOI de un artículo de revista o el ISBN de un libro), e Internet se encargaría de reenviar el solicitud a un compañero disponible que tenga una copia.
El mayor desafío al hacerlo es que requeriría cambios en la infraestructura central de Internet, que es propiedad y está operada por miles de ISP en todo el mundo, sin una autoridad central capaz de controlar qué Todos lo hacen. Si bien esta arquitectura distribuida es una de las mayores fortalezas de Internet, hace que sea casi imposible realizar cambios fundamentales en el sistema, lo que luego rompería las cosas para muchas de las personas que lo usan. A menudo es muy difícil incluso implementar mejoras incrementales. Un buen ejemplo de la dificultad encontrada al introducir cambios es IPv6, que amplía el número de posibles direcciones IP. Hoy, casi 25 años después de su introducción, todavía no ha alcanzado el 50 por ciento de adopción.
Una forma de sortear esta inercia es implementar cambios en una capa superior de abstracción, además de los protocolos de Internet existentes, que no requieran modificaciones en las pilas de software de red subyacentes o dispositivos intermedios.
Otros sistemas peer-to-peer además de IPFS, como BitTorrent y Freenet, lo he probado para hacer esto mediante la introducción de sistemas que pueden operar en paralelo con la World Wide Web, aunque a menudo con interfaces web. Por ejemplo, puede hacer clic en un enlace web para el rastreador de BitTorrent asociado con un archivo, pero este proceso generalmente requiere que los datos del rastreador se transfieran a una aplicación separada de su navegador web para manejar las transferencias. Y si no puede encontrar un enlace de seguimiento, no puede encontrar los datos.
Freenet también utiliza un sistema peer-to-peer distribuido para almacenar contenido, que se puede solicitar a través de un identificador e incluso se puede acceder a él mediante el protocolo HTTP de la Web. Pero Freenet e IPFS tienen objetivos diferentes: Freenet tiene un fuerte enfoque en el anonimato y administra la replicación de datos de manera que sirva a ese objetivo pero disminuya el rendimiento y el control del usuario. IPFS proporciona mecanismos de recuperación y uso compartido flexibles y de alto rendimiento, pero mantiene el control de los datos en manos de los usuarios.
Otro enfoque para encontrar un archivo en una red de igual a igual se denomina inundación de consultas. El nodo que busca un archivo transmite una solicitud a todos los nodos a los que está conectado. Si el nodo que recibe la solicitud no tiene el archivo [rojo], reenvía la solicitud a todos los nodos a los que está conectado hasta que finalmente un nodo con el archivo devuelve una copia al solicitante [azul]. La red peer-to-peer Gnutella utilizó este protocolo.Carl De Torres
Diseñamos IPFS como un protocolo para actualizar la Web y no para crear una versión alternativa. Está diseñado para mejorar la Web, para permitir que las personas trabajen sin conexión, para que los enlaces sean permanentes, para que sea más rápido y más seguro, y para que su uso sea lo más fácil posible.
IPFS comenzó en 2013 como un proyecto de código abierto respaldado por Protocol Labs , donde trabajamos, y construido por una comunidad y un ecosistema vibrantes con cientos de organizaciones y miles de desarrolladores. IPFS se basa en una base sólida de trabajo previo en redes punto a punto (P2P) y direccionamiento basado en contenido.
El principio básico de todos los sistemas P2P es que los usuarios participan simultáneamente como clientes (que solicitan y reciben archivos de otros) y como servidores (que almacenan y envían archivos a otros). La combinación de direccionamiento de contenido y P2P proporciona los ingredientes correctos para obtener datos del par más cercano que tiene una copia de lo que se desea, o más correctamente, el más cercano en términos de topología de red, aunque no necesariamente en distancia física.
Para que esto suceda, IPFS produce una huella digital del contenido que tiene (llamada hash) que ningún otro elemento puede tener. Ese hash se puede considerar como una dirección única para ese contenido. Cambiar un solo bit en ese contenido producirá una dirección completamente diferente. Las computadoras que desean obtener este contenido transmiten una solicitud de un archivo con este hash en particular.
Debido a que los identificadores son únicos y nunca cambian, las personas a menudo se refieren a IPFS como la “Web permanente”. Y con identificadores que nunca cambian, la red podrá encontrar un archivo específico siempre que alguna computadora en la red lo almacene.
La persistencia y la inmutabilidad del nombre proporcionan inherentemente otra propiedad importante: la verificabilidad. Teniendo el contenido y su identificador, un usuario puede verificar que lo que recibió es lo que solicitó y no ha sido manipulado, ni en tránsito ni por el proveedor. Esto no solo mejora la seguridad, sino que también ayuda a salvaguardar el registro público y evita que se reescriba la historia.
Quizás se pregunte qué sucedería con el contenido que debe actualizarse para incluir información nueva, como una página web. Esta es una preocupación válida e IPFS tiene un conjunto de mecanismos que señalarían a los usuarios el contenido más actualizado.
Reducir la duplicación de datos que se mueven a través de la red y obtenerlos de fuentes cercanas permitirá a los ISP brindar un servicio más rápido a un costo menor.
El mundo tuvo la oportunidad de observar cómo funcionaba el direccionamiento de contenido en abril de 2017 cuando el gobierno de Turquía bloqueó el acceso a Wikipedia porque un artículo en la plataforma describía a Turquía como un estado que patrocinaba el terrorismo. En una semana, se agregó una copia completa de la versión turca de Wikipedia a IPFS, y permaneció accesible para las personas en el país durante los casi tres años que continuó la prohibición.
Una manifestación similar tuvo lugar medio año después, cuando el gobierno español intentó reprimir un referéndum de independencia en Cataluña, ordenando a los ISP que bloquearan los sitios web relacionados. Una vez más, la información permaneció disponible a través de IPFS .
IPFS es una red abierta y sin permiso: cualquier usuario puede unirse y buscar o proporcionar contenido. A pesar de las numerosas historias de éxito de código abierto, Internet actual se basa en gran medida en plataformas cerradas, muchas de las cuales adoptan tácticas de bloqueo pero también ofrecen a los usuarios una gran comodidad. Si bien IPFS puede brindar mayor eficiencia, privacidad y seguridad, brindar a esta plataforma descentralizada el nivel de facilidad de uso al que las personas están acostumbradas sigue siendo un desafío.
Verá, la naturaleza no estructurada de igual a igual de IPFS es tanto una fortaleza como una debilidad. Si bien las CDN han creado una infraestructura en expansión y técnicas avanzadas para brindar un servicio de alta calidad, los nodos IPFS son operados por usuarios finales. La red allí ore depende de su comportamiento: cuánto tiempo están en línea sus computadoras, qué tan buena es su conectividad y qué datos deciden almacenar en caché. Y a menudo esas cosas no son óptimas.
Una de las preguntas de investigación clave para la gente que trabaja en Protocol Labs es cómo mantener la resiliencia de la red IPFS a pesar de las deficiencias en los nodos que la componen, o incluso cuando esos nodos exhiben Comportamiento egoísta o malicioso. Tendremos que superar estos problemas si queremos mantener el rendimiento de IPFS competitivo con los canales de distribución convencionales.
Es posible que tenga notó que aún no hemos proporcionado un ejemplo de una dirección IPFS. Esto se debe a que el direccionamiento basado en hash da como resultado URL que no son fáciles de deletrear o escribir.
Por ejemplo, puede encontrar el logotipo de Wikipedia en IPFS utilizando la siguiente dirección en un navegador adecuado: ipfs://QmRW3V9znzFW9M5FYbitSEvd5dQrPWGvPvgQD6LM22Tv8D/. Esa cadena larga se puede considerar como una huella digital del archivo que contiene ese logotipo.
Para realizar un seguimiento de qué nodos contienen qué archivos, el sistema de archivos interplanetarios utiliza lo que se denomina una tabla hash distribuida. En esta vista simplificada, tres nodos contienen diferentes partes de una tabla que tiene dos columnas: una columna (Claves) contiene hashes de los archivos almacenados; la otra columna (Registros) contiene los propios archivos. Dependiendo de cuál sea su clave hash, un archivo se almacena en el lugar apropiado [izquierda], representado aquí como si el sistema verificara la primera letra de los hash y almacenara diferentes partes del alfabeto en diferentes lugares. El algoritmo real para distribuir archivos es más complejo, pero el concepto es similar. Recuperar un archivo es eficiente porque es posible ubicar el archivo de acuerdo con su hash [derecha].Carl De Torres
Hay otros esquemas de direccionamiento de contenido que usan nombres legibles por humanos, o jerárquicos, URL- nombre de estilo, pero cada uno viene con su propio conjunto de compensaciones. Encontrar formas prácticas de usar nombres legibles por humanos con IPFS contribuiría en gran medida a mejorar la facilidad de uso. Es un objetivo, pero aún no hemos llegado.
Protocol Labs, ha estado abordando estos y otros problemas técnicos, de usabilidad y sociales durante la mayor parte de la última década. Durante este tiempo, hemos visto un rápido aumento en la adopción de IPFS, con el tamaño de su red duplicándose año tras año. Escalar a tales velocidades trae muchos desafíos. Pero eso es parte del curso cuando su intención es cambiar Internet tal como lo conocemos.
La adopción generalizada de direccionamiento de contenido e IPFS debería ayudar a todo el ecosistema de Internet. Al permitir a los usuarios solicitar contenido exacto y verificar que lo recibieron sin cambios, IPFS mejorará la confianza y la seguridad. Reducir la duplicación de datos que se mueven a través de la red y obtenerlos de fuentes cercanas permitirá a los ISP brindar un servicio más rápido a un costo menor. Permitir que la red continúe brindando servicio incluso cuando se divide hará que nuestra infraestructura sea más resistente a los desastres naturales y otras interrupciones a gran escala.
Pero, ¿hay un lado oscuro en la descentralización? A menudo escuchamos preocupaciones sobre cómo los malos actores pueden utilizar las redes peer-to-peer para apoyar actividades ilegales. Estas preocupaciones son importantes pero a veces exageradas.
Un área en la que IPFS mejora en HTTP es en permitir una auditoría completa de los datos almacenados. Por ejemplo, gracias a su funcionalidad de direccionamiento de contenido y, en particular, al uso de identificadores de contenido únicos y permanentes, IPFS facilita determinar si cierto contenido está presente en la red y qué nodos lo almacenan. Además, IPFS hace que sea trivial para los usuarios decidir qué contenido distribuir y qué contenido dejar de distribuir (simplemente eliminándolo de sus máquinas).
Al mismo tiempo, IPFS no proporciona mecanismos para permitir la censura, dado que opera como un sistema de archivos P2P distribuido sin autoridad central. Por lo tanto, no hay ningún actor con los medios técnicos para prohibir el almacenamiento y la propagación de un archivo o para eliminar un archivo del almacenamiento de otros pares. En consecuencia, la censura de contenido no deseado no se puede imponer técnicamente, lo que representa una salvaguardia para los usuarios cuya libertad de expresión está amenazada. Las solicitudes legales para eliminar contenido aún son posibles, pero deben dirigirse a los usuarios que realmente lo almacenan, evitando abusos comunes (como ilegítimos Solicitudes de eliminación de DMCA
) contra las cuales las grandes plataformas tienen dificultades para defenderse.
En última instancia, IPFS es una red abierta, regida por las reglas de la comunidad y abierta a todos. ¡Y usted puede ser parte de esto hoy! El navegador Brave se envía con Compatibilidad IPFS incorporada , al igual que Opera para Android . Hay extensiones de navegador disponibles para Chrome y Firefox, y IPFS Desktop facilita la ejecución de un nodo local. Varias organizaciones brindan servicios de alojamiento basados en IPFS, mientras que otras operan puertas de enlace públicas que le permiten obtener datos de IPFS a través del navegador sin ningún software especial.
Estas puertas de enlace actúan como entradas a la red P2P y son importantes para la adopción inicial. A través de una simple magia de DNS, se puede configurar un dominio para que la solicitud de acceso de un usuario resulte en que el contenido correspondiente sea recuperado y servido por una puerta de enlace, de una manera que sea completamente transparente para el usuario.
Hasta ahora, IPFS se ha utilizado para crear diversas aplicaciones, incluidos sistemas para comercio electrónico , distribución segura de conjuntos de datos científicos , duplicando Wikipedia , creando nuevas redes sociales , compartir datos sobre el cáncer, creación de cadena de bloques , almacenamiento e intercambio seguro y encriptado de archivos personales, desarrolladorherramientas, y análisis de datos.
Es posible que ya haya utilizado esta red: Si alguna vez ha visitado el sitio de Protocol Labs ( Protocol.ai), ha recuperado páginas de un sitio web de IPFS sin siquiera darse cuenta!
Este artículo aparece en la edición impresa de noviembre de 2022 como “Al sistema de archivos interplanetarios, ¡y más allá!”