Cuando la mayoría de las personas escucha hablar acerca del Sistema de Archivos Interplanetario, o IPFS (Inter Planetary File System), posiblemente piensen en algo que involucre a las agencias espaciales de los gobiernos. Así, la gente creerá que organismos como la NASA, la ESA, o el CNES tienen que ver con esto.
Pero la realidad es otra. Sistema de Archivos Interplanetario IPFS es una tecnología que pretende lograr una de las tareas mas ambiciosas que pueda haberse concebido hasta ahora.
Imaginemos esto por un momento: que las paginas de Internet, las cuales consultamos todos los días con nuestros dispositivos, ya no se encuentran almacenadas en servidores privados. La mayor parte del contenido publicado en la red de redes ha sido desmembrado, categorizado y distribuido entre los millones de usuarios que acceden al mismo.
Ahora, cuando necesitamos mirar una pagina web, nuestro navegador no hará una petición de contenido a servidor alguno, sino a cientos, miles de computadores individuales que tienen almacenadas porciones del sitio web en cuestión.
Pues, ese pequeño ejercicio de la imaginación que acabamos de realizar, es exactamente lo que se persigue llevar a cabo con la tecnología IPFS. Emplear IPFS para descentralizar Internet puede sonar descabellado para algunos, pero es un proyecto que ha estado en marcha desde hace algún tiempo ya.
Misión Imposible VII: IPFS
Este podría ser un buen titulo para cuando el submundo de la tecnología blockchain logre un puesto de reparto en Hollywood. Ya que hablamos de metas como la que se espera lograr con IPFS, es decir, tener una Internet descentralizada y abierta, en cierta forma luce como una de las misiones asignadas al comando de Ethan Hunt, el indespeinable héroe de la saga Misión Imposible.
Sucede que nuestra querida y omnipresente Internet dista todavía de ser perfecta. El primer problema con el que lidiamos es el de la seguridad; ésta WWW, salida de las entrañas del Departamento de Defensa de los Estados Unidos, no fue diseñada con la seguridad en mente.
Usando el protocolo TCP/IP, que tiene ya 36 años de recorrido, y HTML (HyperText Markup Language) con 26 de ellos a cuestas, las mejoras a Internet se han centrado principalmente en su velocidad y en la cantidad de personas que puedan consultar su contenido.
Toda la información, en manos ajenas
De segundo nos enfrentamos con el asunto de la centralización. Todos los sitios de Internet se encuentran alojados en servidores privados, sujetos a la voluntad de quienes los administran. Supongan que necesitan recuperar unos documentos que guardaron en Google Drive, y no pueden acceder porque el servicio está suspendido temporalmente.
¿Qué harían? Pues, la verdad es que tendrían que esperar a que Google Drive volviera a estar disponible, no hay alternativa.
Otro aspecto a tomar en consideración es el relativo a la censura. Si grandes porciones de información se encentran almacenadas de manera centralizada, son más susceptibles de ser sometidas a la censura de intereses particulares.
Internet amordazada
En 2004 Wikipedia fue bloqueada por el gobierno de la República Popular China; en 2017 le tocaría a Turquía. En esa ocasión, el gobierno turco tomó la decisión de cortar el acceso al sitio, luego de que Wikipedia se negara a eliminar información donde se afirmaba que dicho país había ofrecido ayuda al terrorismo internacional.
Otro ejemplo lo tenemos en YouTube. La mayor plataforma de videos del planeta ha sufrido bloqueos en numerosos países y por distintas causas.
Derechos de autor, violación a la privacidad, crítica a líderes políticos y otros han sido los alegatos empleados para censurar ciertos contenidos o el acceso a la plataforma en sí, en naciones como Rusia, Malasia, China, Siria, Alemania, Finlandia, Egipto y Pakistán, entre otros.
¿Importa la descentralización de Internet?
Quizá esta pregunta debieran responderla quienes le ha tocado sufrir un bloqueo de sus páginas web preferidas. El resto de los internautas seguramente sólo parece preocuparse por la rapidez en que los contenidos aparecen en su pantalla, o la calidad de las imágenes en los videos que disfrutan en línea.
Por otro lado, ¿cuántas opciones más tenemos a la mano? Hasta los momentos, la Internet funciona de una misma forma para todos, o eso es lo que suponemos. Ya va siendo hora de llamar a Ethan Hunt.
Una tarea gigantesca
Como asomamos antes, IPFS, el Sistema de Archivos Interplanetario, es la tecnología con la que se espera atomizar los contenidos de Internet para que no sigan en manos de unos pocos proveedores (anfitriones) privados. Y decimos anfitriones, para dejar a los ISP (Internet Service Providers) fuera de este asunto.
El creador de IPFS, o el Ethan Hunt a cargo de la descentralización de Internet, es un graduado de la Universidad de Stanford, donde obtuvo una titulación en Ciencias de la Computación. Y al igual que otros genios, se topó con su descubrimiento por “casualidad”.
Pues sí. Juan Benet, que es el nombre de nuestro héroe, estaba interesado en descubrir cómo trasladar por Internet grandes conjuntos de datos científicos tan eficientemente como fuera posible. Estamos hablando de volúmenes de datos que arrancarían en los 10 Gb y podrían sobrepasar los 100 gigabytes.
Para ello, Benet pensó en un sistema que permitiera a la vez el movimiento de una gran cantidad de datos y el control de las versiones de los archivos. Para ilustrarlo de un modo sencillo, es como si la creación de Benet fuera un híbrido entre BitTorrent y el repositorio de código de software GitHub, o, por lo menos, la idea partió de allí.
Fue luego de que Benet tuviera el prototipo funcional de IPFS, cuando tomó en cuenta su potencial real. Pensó que no sólo serviría para su propósito inicial, sino que también se podría utilizar para agilizar los protocolos que mueven los datos por Internet actualmente, añadiendo eficiencia y seguridad al proceso.
IPFS: en homenaje a Internet
Primero repasemos un poco de dónde ha salido el nombre “Internet”. En 1962, JCR Licklider, uno de los pioneros de la informática moderna, fue contratado por la DARPA para que interconectara las computadoras del Pentágono, con las del complejo NORAD en las montañas Cheyenne y las del Comando Aéreo Estratégico (SAC).
Licklider formó un equipo de colegas dentro de la DARPA, donde figuraban personajes notables de la Universidad de California, del MIT, Stanford y algunas compañías privadas. En los memos que enviaba a los integrantes del grupo, se dirigía a ellos como los “Miembros y Afiliados de la Red Intergaláctica de Computadoras”.
Entonces, dice la leyenda que de “Intergalactic Computer Network” surgiría entonces el nombre de Internet.
Al usar una nomenclatura similar, el equipo de Juan Benet pretendió homenajear con IPFS los orígenes de Internet. Por esto es que se llama InterPlanetary File System, o Sistema de Archivos Interplanetario. Y siendo el Protocolo de Internet (IP) uno de los más prevalentes en la red, tiene sentido construir un sistema de archivos hecho a su medida.
Buscando contenido en línea
Hoy en día, cualquier búsqueda que realicemos en Internet funciona gracias a algo llamado “direccionamiento basado en ubicación”. Es decir, todos los elementos de un sitio web llevan asociados una dirección. En ella participan el nombre del dominio, el del servidor y los nombres de los directorios que conducen al recurso.
Así pues, algo como “https://fotografías.com/naturaleza/invierno/esquiando.jpg” nos da una idea acerca de lo que queremos ilustrar. A esto se le llama URL, o Localizador Uniforme de Recursos.
Entonces, para que nuestro navegador encuentre la imagen “esquiando.jpg”, debe hallar primero al servidor “fotografías” en el dominio “.com”, y luego pasar por los directorios “naturaleza” e “invierno” hasta recuperar y mostrar la imagen en pantalla.
Por supuesto, la primera condición que debe cumplirse para poder visualizar el archivo “esquiando.jpg” es que el servidor “fotografías” se encuentre en línea.
“Su misión, si decide aceptarla, …”
Si el servidor no estuviera disponible, ¿cómo haríamos para ver la imagen? Bueno, cada vez que accedemos a una pagina web, nuestros computadores almacenan temporalmente una copia. Esto se ideó para agilizar la visualización de contenidos consultados con frecuencia.
El problema es que esta copia (llamada “caché”) está sólo disponible para nosotros. El IPFS implementa algo parecido a las copias de caché, pero las hace disponible para cualquier usuario que las necesite.
En vez de utilizar el direccionamiento por ubicación, IPFS propone el empleo del “direccionamiento basado en contenido”.
De esta forma, para acceder a cierta información no es necesario conocer donde se encuentra, o cuál servidor la almacena. Lo que necesitamos es que dicha información tenga algún tipo de identificador con el cual referirnos a ella.
Y esto es una de las cosas que hace IPFS. El Sistema de Archivos Interplanetario asigna a cada recurso almacenado un hash que le es propio, y que constituye su identificador. Cuando alguien desee recuperar dicho recurso, consultará a los demás nodos de la red IPFS por una copia del mismo, asociada a su respectivo hash.
Lo que viene después es un efecto en cadena. Quien recibe el contenido solicitado hará a su vez una copia local, que estará disponible para la próxima solicitud de un tercero. Todos los nodos reciben, todos los nodos sirven. Mientras más nodos dispongan de copias, sube la disponibilidad del contenido.
Pensando en la seguridad
¿Qué sucede si la copia que recibimos ha sido adulterada de alguna forma? Aquí es donde interviene el uso del hash de cada contenido. El hash es un número único, obtenido al aplicar una función matemática al contenido en sí.
El más mínimo de los cambios en el archivo se verá reflejado en un hash completamente distinto. De esta forma nos aseguramos de que el contenido recibido es legítimo.
Archivos gemelos no permitidos
Al igual que sucede en nuestras computadoras personales, en Internet pueden existir archivos duplicados, siempre que residan en ubicaciones (URL), o directorios, distintos. Para lograr una mayor eficiencia en este sentido, IPFS no admite la duplicación de archivos. El sistema crea una sola instancia del contenido y un solo hash en todos los nodos activos.
IPFS por dentro
Con lo visto hasta ahora, tenemos una idea general de cómo opera el Sistema de Archivos Interplanetario. Para quienes gustan de detalles más técnicos podemos agregar lo siguiente.
Para que un sistema de archivos funcione como tal, debe poseer varios mecanismos que colaboren entre sí, básicamente uno que almacene los datos y otro que los recupere. Tal como si fuera un disco IDE o SATA, donde existen sectores de cierto tamaño, en IPFS los archivos se convierten en “objetos IPFS” de un tamaño fijo.
Cada uno de estos objetos puede contener hasta 256 kb de datos. Por supuesto, existen archivos mucho más grandes que 256 kb, de modo que cada objeto IPFS tiene la capacidad de estar vinculado a otro, para formar entidades de datos mayores.
Cuando un archivo excede los 256 kb, necesita más de un objeto IPFS para definirse. Para hacerlo, IPFS crea un puntero, una instancia del archivo, que se enlaza con todos los demás objetos IPFS que lo componen.
IPFS crea también una estructura parecida a la de carpetas dentro de carpetas, vinculadas entre sí, y enlazadas finalmente a cada instancia o puntero de archivo. Recordemos, sin embargo, que en el IPFS no es la ubicación del contenido lo que importa, sino su identificación o hash.
Al estilo de GitHub
Quizá todo este asunto del hash no haga pensar que los datos almacenados mediante IPFS deberán permanecer estáticos, pero eso no es cierto. Pero en vez de modificar un archivo o documento, lo que hace IPFS es registrar una nueva versión del mismo, llevando a la vez un control.
Entonces, el contenido actualizado se publica como la versión mas reciente de ese documento. IPFS enlaza el puntero original (la primera versión) con el puntero del documento actualizado, de forma que se conserva la cadena de compromisos o modificaciones hechas al contenido.
Al consultar el documento reciente, el nodo IPFS que lo accede replica en sí mismo toda la cadena de punteros que pertenecen al objeto en cuestión. Tal como se dijo antes, este proceso se repite cada vez que un nodo resuelve con éxito la solicitud de un archivo específico.
Cada problema viene con su solución
Como es de suponerse, IPFS tampoco es un sistema sin puntos débiles. Si bien, un contenido con mucha demanda tiende a estar replicado en un mayor numero de nodos, con los pocos solicitados no ocurre igual.
Es aquí donde se presenta el talón de Aquiles para el Sistema de Archivos Interplanetario. Al no haber garantías para que cierto numero de nodos permanezca en línea, un contenido con pocas copias puede no estar disponible en cierto momento.
Existen dos enfoques que pueden ayudar a remediar esto. El primero, y más obvio, es recompensar a los operadores de nodos por el espacio de almacenamiento que agregan a la red y el tiempo que permanecen conectados a la misma.
Solicitud adelantada
La otra forma, es que el sistema replique las copias de forma proactiva. Bajo este esquema, no sería necesario que los usuarios solicitaran de antemano un archivo para que exista una copia funcional en determinado nodo de la red IPFS.
Ambas propuestas ayudarían lo suficiente, haciendo que una mayor cantidad de contenidos permanezca disponible, de manera descentralizada, para todos los participantes.
El equipo de IPFS también ha pensado en esto, y como respuesta pusieron en marcha el proyecto Filecoin.
Filecoin: renta tu espacio libre de disco
Una cosa lleva a la otra, y del Sistema de Archivos Interplanetario llegamos a Filecoin. Hace algún tiempo, la gente de Microsoft implementó en sus servidores (a partir de Windows Server 2012) algo que llamaron DFS, o el Sistema de Archivos Distribuidos.
Lo que quiso Microsoft mediante el DFS fue aprovechar el espacio libre en los servidores y consolidarlo bajo un sistema de directorios compartidos. Quizá los autores de Filecoin se inspiraron un poco en DFS, porque la idea de utilizar el espacio ocioso de almacenamiento es muy similar.
El añadido de Filecoin consiste en ofrecer un incentivo económico a cambio del espacio ofrecido y del tiempo en línea que permanezca el nodo que lo administra. Filecoin realiza también la replicación proactiva de los archivos al mayor numero de nodos posible, de forma que las probabilidades de acceso a la información sean muy altas.
Reducir la dependencia de los servidores de Internet es el horizonte a largo plazo de Filecoin. Apoyado en el Sistema de Archivos Interplanetario, el proyecto viene a ser una de las primeras implementaciones de dicho protocolo. A continuacion veremos algunos casos más.
Proyectos relacionados con IPFS
El uso de IPFS, como tecnología auxiliar o complementaria a las cadenas de bloques, ha sido implementado por no pocas startups del ecosistema, por ejemplo:
Civic
Civic es una plataforma blockchain de verificación de identidad. Mediante la app de Civic, el usuario registra su identidad digital con ellos. A partir de allí, terceras partes pueden verificar a través de Civic la legitimidad de los documentos del usuario, sin tener que consultarlo directamente.
El token nativo del proyecto se denomina CVC, y su capitalización de mercado ronda los 12 millones de dólares. Entre las startups de verificación de identidad que emplean IPFS también encontramos a Handshake y Zinc.
Augur
Para no hacerlo tan complicado, porque tiene sus detalles, podemos decir que en Augur los usuarios apuestan a los resultados sobre eventos futuros. Por ejemplo, ¿cuál será el día más frío de la segunda semana de enero 2020?
Los apostadores emplean como moneda el token de Augur, denominado REP, que en estos momentos se cotiza a USD 9.41, con una capitalización de mercado que supera los 103 millones de dólares.
Como otras iniciativas del mismo estilo que se apoya en IPFS podemos mencionar a Play2Win, Cryptobets y VirtuePoker.
Decentraland
Si existe un paraíso blockchain para los entusiastas de los bienes raíces digitales, ése es seguramente Decentraland. Los inversores pueden comprar y desarrollar parcelas de 10 mts x 10 mts, y hacer en ellas prácticamente lo que quieran.
Las parcelas se denominan LAND, y el token de la plataforma es el MANA. La capitalización de mercado de Decentraland está en los 36 millones de dólares, y el token MANA se cotiza a USD 0.034.
Aragon
Este proyecto se autodenomina como “la primera jurisdicción digital para individuos y organizaciones soberanas”. Su fase numero 1 ha sido recién estrenada el 27 de noviembre pasado. De igual forma Aragon ha puesto en funcionamiento el token ANJ, que será empleado en la resolución de disputas.
Otros proyectos de gobernanza relacionados con IPFS son GovBlocks, Democracy Earth y Kelsen.
Everipedia
La “enciclopedia de todos” (Everyone’s Encyclopedia) como ellos mismo se catalogan, es, digamos, la versión comercial de Wikipedia. Al parecer, Everipedia posee mayor contenido que su prima hermana Wikipedia, gracias a ser una plataforma de publicación con menos restricciones que la segunda.
Everipedia se ejecuta sobre la blockchain de EOS y posee el token IQ, con el cual son recompensados los colaboradores de la plataforma. IQ también se emplea como fuerza de voto sobre algunos de los asuntos concernientes al sistema.
Testigos del futuro
A la fecha presente, algo está muy claro: a pesar de los largos años que tiene HTTP reinando en Internet, no existe sucesor a la vista. Hasta el propio creador de IPFS reconoce su gran utilidad actual. Pero el Sistema de Archivos Interplanetario sigue en la mira de muchos nuevos proyectos, lo que dará todavía más impulso a esta nueva tecnología.
¿Llegaremos a vivir con una Internet donde coexistan tanto HTTP como IPFS? Todo lo que nos queda por hacer es esperar y ver.