Colaborador: Los sistemas de almacenamiento descentralizados tienen el potencial de hacer que todos nuestros archivos sean mucho más seguros; analicemos lo que eso realmente significa.
[wps_section size=”full-boxed” height=”auto” background_color=”#1e73be” background_size=”cover” background_repeat=”no-repeat” background_mode=”fixed” align_content_vertical=”center” align=”left” content_width=”100%” content_color=”#fff” padding=”12″ margin=”15″] [wps_lists icon=”arrow-right” icon_color=”#fff”]- Definición
- Introducción al almacenamiento descentralizado
- Características fundamentales del almacenamiento descentralizado
- Características deseables del almacenamiento descentralizado
- Estudio de caso: cómo Filecoin incorpora estas características
- l resultado
Definición
Los sistemas de almacenamiento descentralizados comparten las responsabilidades de almacenamiento entre muchos operadores independientes que forman una única red de almacenamiento.
Introducción al almacenamiento descentralizado
La informática moderna está muy centralizada. Durante la última década, algunas empresas de nube masivas han hecho enormes fortunas dividiendo los sistemas informáticos tradicionales en ofertas compartimentadas y basadas en la nube. La web moderna refleja esa centralización: cuando uno de estos proveedores tiene una interrupción, es un evento importante en Internet. (Si no nos cree, nos gustaría recordarle la interrupción del almacenamiento web de Amazon en 2017, la interrupción prolongada de Github en junio de 2020 o los problemas del servicio en la nube de varias semanas de Microsoft en octubre de 2020).
El contenido que alojamos en estos servicios no es mejor, escondido detrás de enlaces frágiles que se rompen con demasiada frecuencia. Esto tiene profundas implicaciones para los sistemas informáticos que construimos y para las sociedades que dependen cada vez más de ellos.
Las arquitecturas centralizadas han tenido éxito en parte porque son más fáciles de construir.
Para hacer frente a la consolidación, los desarrolladores necesitan nuevos bloques de construcción fundamentales que sean igualmente fáciles de componer. El almacenamiento descentralizado es una de esas piedras angulares, que sirve como condición previa para una web más distribuida.
Características fundamentales del almacenamiento descentralizado
Hay muchas formas diferentes de diseñar un sistema de almacenamiento descentralizado. En general, comparten un énfasis común en la resiliencia y la eficiencia.
Resistencia
La Internet moderna es terriblemente frágil. En la actualidad, el contenido web se encuentra detrás de las URL, cada una de las cuales pertenece a un único servidor definitivo en un momento dado. Si ese proveedor se desconecta de la red por cualquier motivo, el contenido al que apunta se vuelve inaccesible. La centralización aumenta este efecto, creando puntos únicos de falla y brindando oportunidades convenientes para la censura.
Como resultado, en la Internet actual, la descomposición de enlaces (que es exactamente lo que parece, cuando un enlace se rompe o no está disponible permanentemente) es generalizada, la censura a nivel estatal es sencilla y los ataques distribuidos de denegación de servicio pueden interrumpir el acceso a casi cualquier archivo.
En un sistema descentralizado ideal, la pérdida de un operador no debería impedir el acceso al contenido previamente almacenado y servido. Al distribuir las responsabilidades en muchos nodos de una red, los sistemas descentralizados también tienen una resistencia natural a la censura y otros intentos de denegación de servicio porque no existe un objetivo centralizado contra el cual los atacantes puedan acumular recursos.
Un ejemplo de cómo los sistemas de almacenamiento centralizados pueden ser susceptibles a la censura es lo que sucedió cuando Cataluña (una de las 17 comunidades autónomas de España) celebró un referéndum de independencia. El gobierno español, que se opuso a los planes de independencia, bloqueó sitios web con información de votación a nivel de ISP. Al cortar estos vínculos críticos, el gobierno impidió efectivamente que muchas personas tuvieran acceso a esta información.
Sin embargo, muchos de estos sitios web también se duplicaron mediante el Sistema de archivos interplanetario (IPFS), una red de almacenamiento de igual a igual. Cualquiera que ejecute un nodo IPFS podría descargar la información censurada de otros nodos en la red y comenzar a compartirla ellos mismos. La naturaleza descentralizada de IPFS contrarrestó los intentos del gobierno español de bloquear el acceso a estos documentos: tan pronto como se bloqueara un nodo, otro podría ocupar su lugar fácilmente. En general, los sistemas de almacenamiento descentralizados dificultan mucho el bloqueo a nivel de red.
Eficiencia
Todas las arquitecturas de sistemas informáticos tienen algunas fortalezas y algunas debilidades, y ninguna solución única se adapta a todos los casos de uso posibles. Desafortunadamente, el énfasis de la web moderna en la centralización no es diferente.
En la actualidad, algunos centros de datos centralizados en una pequeña cantidad de ciudades de todo el mundo almacenan la mayor parte del contenido. Si dos usuarios de la misma red desean enviarse mensajes entre sí, por ejemplo, esos mensajes generalmente irán primero a uno de esos centros de datos. Si cien usuarios están en una sala viendo el mismo video en sus dispositivos, cada uno de ellos accederá a un servidor central y descargará cien copias en paralelo, en lugar de descargar una sola copia y compartirla a través de la red local.
En términos más simples, el almacenamiento descentralizado hace que sea más fácil compartir archivos sin enviar solicitudes que reboten en Internet a unos pocos centros de datos. En cambio, los nodos establecen conexiones entre sí utilizando la menor cantidad posible de intermediarios. Conectarse a nodos en otros países, por ejemplo, aún requerirá varios saltos, pero los nodos en la misma red pueden compartir archivos directamente. El objetivo final de los sistemas de almacenamiento descentralizados sería tener tantos nodos que todos puedan encontrar pares relativamente locales para la información que buscan.
Las soluciones de almacenamiento descentralizado pueden introducir nuevas eficiencias fundamentales en dichas actividades. Al evitar los centros de datos dispersos, un sistema distribuido puede colocar los nodos mucho más cerca de los consumidores finales que incluso las redes modernas de entrega de contenido, lo que resulta en una recuperación de archivos significativamente más rápida. El intercambio de archivos de igual a igual a través de redes locales también puede ahorrar un valioso ancho de banda, particularmente en áreas con acceso limitado a Internet en general.
Características deseables del almacenamiento descentralizado
Si bien la resiliencia y la eficiencia son características del almacenamiento descentralizado, hay una serie de características adicionales que un sistema de almacenamiento ideal podría ofrecer:
Accesible
Debe ser accesible un sistema distribuido ideal. La participación en la red debería ser fácil, permitiendo que tantos nodos como sea posible almacenen y distribuyan archivos en nombre de la red.
Si estás leyendo esto y te preguntas, ¿puedo ser un nodo? La respuesta es, depende.
Con Filecoin, cualquier individuo relativamente conocedor de la tecnología debería poder ejecutar un nodo cliente para interactuar con la red. En cuanto a la ejecución de nodos de minería de almacenamiento (consulte a continuación para obtener más información), no es algo que todos y su madre puedan hacer: debe tener hardware que cumpla con ciertas especificaciones.
En el caso de IPFS, los nodos tienen requisitos de hardware más bajos, lo que significa que es posible que muchos más usuarios contribuyan a la red ejecutando un nodo (quizás ejecutando un navegador web que viene con uno integrado).
Programable
Los proveedores de servicios en la nube han hecho que trabajar con el almacenamiento barato y confiable sea más fácil que nunca. Un aspecto importante de su éxito es la capacidad de aprovisionar y administrar el almacenamiento a través de código a través de API. Cualquier sistema de la competencia debería poder ofrecer el mismo nivel de conveniencia.
Direccionamiento de contenido
Como se discutió, las URL incorporan algunas compensaciones de diseño inherentes. Describen la ubicación de los datos, en lugar de su contenido.
Para explicar cómo los sistemas centralizados pueden dificultar la búsqueda de datos, imagine que desea descargar una imagen de un gatito esponjoso. Considere estas dos URL:
Cada una de estas URL hace referencia a un archivo llamado cat.jpeg, pero no hay garantía de que estos dos archivos sean iguales. Si example1.com se desconecta, no puede estar seguro de que example2.com tenga lo que está buscando; su cat.jpeg podría ser completamente diferente. De hecho, ¡incluso podría ser una foto de un perro! No existe una relación inherente entre una URL y el contenido al que hace referencia.
Como resultado, no hay forma de que le preguntes a Internet de hoy: “¿Alguien tiene este archivo?” porque no sabe nada sobre el archivo más que su ubicación.
Cuando comparte archivos usando una URL, las cosas pueden salir mal. El servidor podría comenzar a servir un archivo diferente de esa URL, o alguien podría realizar un ataque de intermediario (sorprendentemente no tan raro) y alterar el archivo. Es muy difícil verificar que todos los que acceden a la URL reciben el archivo que querían.
El direccionamiento de contenido, por el contrario, encuentra archivos basados en identificadores de contenido (CID), que sirven como huellas digitales de archivos. Al abordar los archivos de esta manera se resuelven muchos problemas con el direccionamiento de la ubicación. Cuando un cliente quiere un archivo, en lugar de pedirle a un servidor una URL, pide a los nodos de la red un archivo con un CID en particular. Una vez que el cliente descarga el archivo, ellos mismos toman la huella digital.
Para volver a visitar nuestro ejemplo anterior, sería como si todos los sitios web tuvieran una comprensión compartida de qué archivo entregar cuando se les solicite cat.jpeg. Entonces, si bien no es una garantía de que algún nodo tenga ese cat.jpeg en particular, los nodos ejecutarán una verificación de la huella digital de ese archivo para tratar de encontrar una coincidencia.
Si bien un paso como la toma de huellas digitales es algo que requeriría más conocimientos técnicos de lo que la persona promedio querría tratar, los clientes de Filecoin e IPFS pueden automatizar fácilmente este proceso. Esto le permite al cliente garantizar que recibió el archivo que solicitó; en este sistema, es trivial encontrar proveedores alternativos de un dato.
La conclusión principal: los CID significan que puede encontrar contenido que de otro modo faltaría en un sistema centralizado, y los CID también pueden prevenir ataques man-in-the-middle o que un servidor cambie repentinamente un archivo en una URL en particular.
Sin esperanzas
Un sistema sin confianza permite la cooperación entre dos partes sin que tengan que conocerse o buscar a un tercero. Más bien, los incentivos del sistema empujan a los actores hacia el comportamiento necesario para que la red funcione.
Verifiable
Un sistema de almacenamiento ideal debería facilitar la prueba continua de que los nodos están almacenando los datos exactos que han prometido. Este tipo de auditabilidad es clave para lograr la falta de confianza. Si siempre puede establecer que los datos se almacenan correctamente, tendrá menos necesidad de confiar en la parte que proporciona el almacenamiento.
Abierto
Finalmente, un sistema de almacenamiento distribuido ideal es abierto: su código es de código abierto y auditable. Además, el sistema de almacenamiento no debe ser monolítico. En cambio, debería exponer un protocolo abierto que cualquiera pueda implementar y desarrollar, en lugar de fomentar el bloqueo.
Estudio de caso: cómo Filecoin incorpora estas características
El proyecto Filecoin es un sistema de almacenamiento descentralizado diseñado para satisfacer estas propiedades. Descrito por primera vez en 2014, el protocolo Filecoin se desarrolló originalmente como una capa de incentivo para el Sistema de archivos interplanetario (IPFS), una red de almacenamiento de igual a igual. Al igual que IPFS, Filecoin es un protocolo abierto y se basa en las propiedades de su hermano mayor, aprovechando la misma funcionalidad subyacente de direccionamiento de contenido y de igual a igual.
Una red de nodos de Filecoin da lugar a un mercado de almacenamiento descentralizado para la recuperación y el almacenamiento de archivos. La red está respaldada por una novedosa cadena de bloques que registra los compromisos asumidos por los participantes de la red. Los usuarios realizan transacciones en la red utilizando la criptomoneda nativa de blockchain, FIL (⨎).
Mercado de recuperación
En el mercado de la recuperación, los nodos conocidos como mineros de recuperación compiten para entregar archivos a los clientes lo más rápido posible. Los mineros de recuperación obtienen recompensas a través de pequeñas tarifas FIL. Esto brinda a los nodos en ubicaciones clave para la entrega de contenido un incentivo para unirse a la red y promueve la distribución rápida de archivos. También fomenta una red robusta que replica y conserva los archivos que tienen una gran demanda.
Mercado de almacenamiento
En el mercado de almacenamiento de Filecoin, los nodos llamados mineros de almacenamiento están autorizados a competir en varias características, como el precio y la ubicación, por contratos para proporcionar la custodia de los archivos a los clientes durante un período de tiempo específico. Antes de aceptar un contrato, los mineros de almacenamiento deben presentar la garantía FIL; esto se utiliza para reembolsar automáticamente a un cliente en caso de que un minero de almacenamiento no cumpla con sus obligaciones con el cliente.
Cuando un minero de almacenamiento y su cliente llegan a un acuerdo, el cliente transfiere sus datos al minero de almacenamiento. El minero de almacenamiento agrega sus datos a un sector, la unidad fundamental de almacenamiento en Filecoin. Luego, el minero realiza una operación computacionalmente intensiva conocida como sellado para crear una copia única de los datos de ese sector.
Si un cliente desea almacenar múltiples copias únicas de sus datos, el proceso de sellado asegura que cada copia tendrá una huella digital única, y el esfuerzo computacional necesario para derivarla evitará que un nodo haga trampa al regenerarlo a partir de los datos base. Los datos sellados se utilizan en última instancia para publicar una prueba de replicación en la cadena de bloques de Filecoin.
Durante la duración del acuerdo de almacenamiento, el minero de almacenamiento debe enviar periódicamente lo que se llama una prueba de espacio-tiempo a la cadena de bloques. El minero deriva estas pruebas utilizando la aleatoriedad (proporcionada por la propia cadena de bloques), el sector sellado y la prueba de replicación publicada en la cadena de bloques. Las pruebas proporcionan al cliente un fuerte argumento probabilístico de que el minero de almacenamiento poseía una copia completa y única de los datos. Esta es una garantía muy sólida, algo que ni siquiera los proveedores de almacenamiento en la nube modernos ofrecen a sus clientes.
Los clientes recompensan a los mineros de almacenamiento de Filecoin con FIL pagado como tarifas de trato. Los mineros de almacenamiento también son recompensados con la oportunidad de extraer bloques para la cadena de bloques, lo que implica tanto una recompensa FIL como la capacidad de cobrar tarifas de transacción de otros que deseen incluir un mensaje en bloques extraídos.
El sistema de prueba de Filecoin significa que los mineros necesitan algo de hardware adicional, pero los requisitos aún son lo suficientemente bajos como para que se unan personas conocedoras de la tecnología. Los requisitos de hardware para participar en la red como cliente son modestos. Los nodos de Filecoin también exponen una API para la interacción programática con la red, lo que permite que los servicios de terceros se desarrollen sobre la funcionalidad de la red central.
El resultado
El almacenamiento descentralizado ofrece una alternativa atractiva a su contraparte centralizada tradicional. Brinda a los desarrolladores la oportunidad de explorar regiones completamente nuevas del espacio de compensación de diseño, enfatizando la solidez y eficiencia del almacenamiento y la entrega de contenido. Filecoin demuestra que estos sistemas son capaces de proporcionar un producto de almacenamiento competitivo con varias propiedades altamente deseables, brindando a más personas que nunca la oportunidad de servir como custodios de nuestra herencia digital, al tiempo que hacen que la web sea más resistente y accesible para personas de todo el mundo.