CONTRATOS INGELIGENES Y
APLICACIONES DESCENTRALIZAS
Almacenamiento
descentralizado
Limitaciones de los sistemas de
archivos tradicionales
Los sistemas de archivos tradicionales dependen
Escalabilidad de servidores centralizados para almacenar y
distribuir datos.
Los sistemas de archivos tradicionales están
Censura y robustez sujetos a censura y puntos únicos de fallo, lo que
puede resultar en la pérdida de acceso a datos.
Los sistemas de archivos tradicionales son
Seguridad y Privacidad vulnerables a violaciones de seguridad y exposición
de datos debido a su estructura centralizada.
Los sistemas de archivos tradicionales sufren
Eficiencia en la Distribución congestión y tiempos de carga lentos cuando se
distribuyen grandes cantidades de datos.
Sistemas de archivos
descentralizados
■ Sistemas de archivos distribuidos que permiten a
los usuarios compartir archivos directamente entre
sí sin depender de un servidor centralizado.
■ Se construyen sobre una red entre pares (peer-to-
peer, P2P).
– Los nodos contribuyen espacio de
almacenamiento y ancho de banda.
– Cada archivo se almacena, dividido en
bloques, en diversos nodos.
■ Mayor complejidad en la configuración.
Soporte computacional
Algoritmos de dispersión: Algoritmos criptográficos:
disponibilidad e protección frente a
integridad. modificaciones.
Autentificación
Algoritmos de consenso:
descentralizada: control
coherencia entre nodos.
de acceso.
Principios ■ Direccionamiento por contenido
– Los ficheros se localizan por su contenido, no por su
fundamentales –
localización.
Content-addressable storage (CAS).
del – Al igual que las redes P2P, utilizan una tabla hash
almacenamiento distribuida (DHT) para indexar y localizar los archivos
en la red.
descentralizado ■ Descentralización
– Los datos se trocean en fragmentos pequeños que se
almacenan de manera distribuida entre múltiples
nodos de la red P2P .
– Independencia del proveedor de almacenamiento.
■ Tolerancia a fallos
– Algoritmos de dispersión y consenso.
– Consistencia, coherencia e integridad.
Ventajas del almacenamiento
descentralizado
■ Descentralización:
– Datos almacenados entre múltiples nodos en la red.
– Datos menos susceptibles a la censura y a los puntos únicos de fallo.
– Datos accesibles incluso si se desconectan o censuran nodos.
– Mayor escalabilidad.
■ Eficiencia de ancho de banda:
– Duplicación y el almacenamiento en caché de archivos.
■ Integridad de los datos:
– Algoritmos de hashing para asignar identificadores únicos a cada archivo.
■ En consecuencia, menores costes en comparación con sistemas descentralizados.
Interplanetary File System - IPFS
■ Protocolo de red peer-to-peer diseñado para crear
una red de contenido distribuido y descentralizado.
■ Desarrollado por Juan Benet, figura líder en el
campo de la descentralización y las tecnologías de
cadena de bloques.
■ Características Principales:
– Descentralización.
– Almacenamiento distribuido.
– Contenido identificado por su hash (CID:
Content Identifier).
Objetivos de IPFS
■ Crear un sistema de archivos global, mejorando la eficiencia, resistencia a fallos y
privacidad de los sistemas de archivos tradicionales.
■ Almacenar y compartir contenido de cualquier tipo en un entorno descentralizado.
– Romper con la dependencia de servidores centralizados.
– Sustituir a la arquitectura tradicional cliente-servidor de la Web.
– Permitir la creación de aplicaciones web más resistentes y accesibles.
■ Ofrecer una alternativa descentralizada y eficiente a los sistemas centralizados
tradicionales como FTP, HTTP o SMB.
Principios ■ Cada archivo se identifica por un hash único (CID).
■ Almacenamiento distribuido (en fragmentos) en la
básicos de red P2P.
IPFS ■ Número de copias dependiente de la demanda.
■ IPFS no utiliza directamente tecnologías de cifrado
a nivel del sistema de archivos
■ Posibilidad de anclar (pin) contenidos a un nodo.
■ Hashing:
– Proporciona integridad y permite la
distribución eficiente.
– Al direccionarse contenido compartido, se
favorecen los nodos cercanos en la red al
punto de acceso.
Red Peer-to-Peer
Los nodos en la red colaboran para almacenar y recuperar contenido.
También proporcionan puntos de acceso al sistema.
Cuando se agrega un archivo, se divide en bloques y se distribuye a través de la red P2P, lo que incrementa la
redundancia y la disponibilidad de los datos.
Algoritmo de enrutamiento eficiente para buscar y acceder a contenido. Cuando un nodo accede a un archivo,
consulta la red P2P para encontrar los sus bloques y recuperarlos para reconstruir el archivo.
Los nodos colaboran y comparten recursos para almacenar, proporcionar y solicitar bloques, lo que contribuye a la
resiliencia y escalabilidad de la red.
Basada en Libp2p.
Nodos completos (Full nodes)
Almacenan una copia
completa de todo el conjunto Sirven como punto de acceso
de datos de IPFS y los para otros nodos.
metadatos asociados.
Los nodos completos
Tienen la capacidad de
contribuyen significativamente
almacenar, enrutar y distribuir
a la redundancia y la
datos dentro de la red.
resiliencia de la red IPFS.
Nodos ligeros (Light nodes)
Pueden acceder a los datos de
otros nodos, pero no tienen la
Mantienen una versión reducida
capacidad de almacenar y
o una parte de los datos.
distribuir grandes cantidades de
datos por sí mismos.
Útiles en entornos donde se
Dependen de los nodos
necesita un menor consumo de
completos para acceder a los
recursos, como dispositivos
todos los datos.
móviles o navegadores web.
Libp2p
Conjunto de protocolos, especificaciones y herramientas modularizadas y flexibles
para el desarrollo de redes peer-to-peer.
Creado como parte de IPFS, ahora es un proyecto independiente utilizado en el
ecosistema de la Web descentralizada.
Compatible con una amplia variedad de plataformas y entornos, incluidos
dispositivos móviles, navegadores web y sistemas empotrados (IoT).
Cifrado extremo a extremo, autenticación robusta y prevención de ataques de
denegación de servicio (DoS).
Diseñado para admitir desde pequeñas redes punto a punto hasta redes globales a
gran escala.
Árbol (DAG) de Merkle
Estructura de datos basada en un árbol Merkle para representar contenido de manera eficiente.
Cuando se agrega un archivo o directorio a IPFS, se calcula su hash y se agrega como un nuevo nodo al
DAG.
Si el archivo o directorio contiene otros archivos o subdirectorios, se agregan como nodos hijos y se
establecen las referencias correspondientes.
La estructura de árbol del DAG de Merkle permite una verificación eficiente de la integridad de los
datos.
Al calcular el hash de la raíz del DAG, se puede verificar rápidamente si los datos han sido modificados
o corrompidos, ya que cualquier cambio en los datos se reflejará en el hash de la raíz.
IPFS + Blockchain: casos de uso
Contratos inteligentes en IPFS Oráculos e IPFS
Garantizar la integridad y disponibilidad de los Proporcionar datos externos a los contratos
datos almacenados fuera de la cadena. inteligentes de IPFS.
Al almacenar el hash de los datos en IPFS en Los oráculos pueden almacenar los datos
el contrato inteligente, se puede verificar la externos en IPFS, junto con una firma o hash
integridad de los datos utilizando el hash de los mismos para verificar su integridad.
almacenado y comparándolo con el hash Los oráculos pueden proporcionar
actual en IPFS. notificaciones y eventos a los contratos
Registro inmutable y descentralizado para los inteligentes mediante la publicación de
datos de una transacción. mensajes en IPFS.
Redes sociales descentralizadas Almacenamiento y compartición de Interoperabilidad entre cadenas de
activos multimedia y otros documentos: bloques
Construcción de plataformas resistentes a Creación de sistemas de almacenamiento Almacenamiento de datos fuera de la
la censura. eficientes y escalables. cadena para su acceso por múltiples
Verificación descentralizada de la Garantía de trazabilidad de las blockchains.
identidad de usuarios. transacciones.
Verificación de la integridad de la Posibilidad de distribución programada y
información compartida. selectiva de contenido.
Almacenamiento y distribución Mercados de tokens no fungibles (NFT).
descentralizados de contenido. Almacenamiento seguro para dApps.
IPFS + Blockchain: casos de uso
Despliegue de un nodo IPFS
Descargar software de ipfs.io
Instalar el software de acuerdo con las instrucciones.
Verificar la instalación: ipfs –versión
Inicializar el nodo: ipfs init
Ejecutar el nodo: ipfs daemon
Interfaz web: http://localhost:5001/webui
Acceso a IPFS sin nodo
Plataforma de infraestructura blockchain (parecido a Alchemy)
Infura También proporciona acceso a IPFS
Servicio de almacenamiento y gestión de archivos en IPFS
Pinata Anclaje de archivos, gestión de versiones de archivos, estadísticas, etc.
API para integrar IPFS en aplicaciones y servicios existentes
Otros: Temporal, Fleek.
Brave Browser
■ brave.com
■ Navegador web de código abierto
que se centra en la privacidad del
usuario y en la seguridad online.
■ Brave Rewards: ver anuncios y
recibir recompensas en forma de
tokens criptográficos (BAT, Basic
Attention Token).
■ Soporte nativo de IPFS (URIs del
tipo ipfs://<cid> en la
IPFS Companion
■ Extensión para varios navegadores
(Chrome, Firefox, Opera, Edge)
■ Detecta URIs de IPFS para la carga
y descarga de contenido en IPFS.
■ Soporte para iniciar, detener y
configurar nodos IPFS sin salir del
navegador.
■ Capacidad de publicar y compartir
contenido en IPFS, agregar sitios
web a IPFS, y buscar contenido en
la red IPFS.
OTRAS
TECNOLOGÍAS
Filecoin
■ filecoin.io
■ Software de código abierto, amplia comunidad de
desarrolladores.
■ Protocolo basado en IPFS, utiliza la red IPFS para el
almacenamiento y recuperación de archivos.
■ Blockchain y token nativo: FIL
■ Minería de almacenamiento: proveedores de
almacenamiento (mineros) ofrecen su espacio y ganan FIL
al almacenar y recuperar archivos para otros usuarios.
■ Contratos inteligentes: garantía de integridad y
disponibilidad de los datos (verifican que los mineros
están cumpliendo con sus compromisos de
almacenamiento)
Sia
■ sia.tech
■ Plataforma de almacenamiento en la nube descentralizada basada en tecnología
blockchain.
■ Comunidad activa de usuarios, desarrolladores y proveedores de almacenamiento.
■ Almacenamiento seguro, privado y descentralizado para usuarios y desarrolladores.
■ Token nativo "Siacoin" (SC), utilizado para pagar por el almacenamiento y los
servicios en la red.
■ Contratos inteligentes para gestionar el almacenamiento de datos entre los
usuarios y los proveedores de almacenamiento.
Storj
■ storj.io
■ Plataforma de almacenamiento en
la nube descentralizada.
■ No requiere de proveedores de
almacenamiento dedicados,
cualquier usuario puede convertirse
en proveedor de almacenamiento y
recibir recompensas por ello.
■ Los datos se dividen en “shards”
que se distribuyen entre nodos de
la red,
Swarm
■ ethswarm.org
■ Plataforma descentralizada de almacenamiento y distribución de contenido construida
sobre la tecnología Ethereum.
■ Integrado directamente con la blockchain de Ethereum, lo que permite a los usuarios
almacenar y recuperar datos utilizando direcciones de contrato inteligente.
■ Estructura de datos distribuida llamada "swarm chunks" para almacenar y recuperar
datos de manera eficiente y segura.
■ Mecanismo de incentivos para alentar a compartir ancho de banda y espacio de
almacenamiento a cambio de recompensas en criptomoneda.
■ Los datos almacenados en Swarm están encriptados y fragmentados, lo que garantiza la
seguridad y la privacidad de los usuarios.
Comparativa
Almacena Modelo de Parecido
Solución Consenso Protocolos ID Uso
miento datos IPFS
Prueba de Almac.
Filecoin Blockchain Merkle Libp2p CID Alta
replicación Descentrl.
Almac. de
Almac. Bloques + Prueba de
Storj UDP Farmer ID nube Medio
Descentrl. paridad recogida
cifrado
Almac. Prueba de Almac.
Swarm DHT Libp2p Chunk ID Alto
Descentrl. custodia Descentrl.
Almac. de
Prueba de
Sia Blockchain Blockweave UDP Sector ID nube Medio
trabajo
cifrado