El defecto de IPFS
Cuando se trata de almacenamiento de datos descentralizado, el sistema de archivos interplanetario, conocido como IPFS, es un proyecto que no se puede pasar por alto.
Como uno de los proyectos de almacenamiento descentralizado más notables, IPFS utiliza la estructura de datos de Merkle DAG (Gráfico acíclico dirigido), una modificación basada en Merkle Tree. Con esta estructura de datos, IPFS implementa el direccionamiento de contenido y la descarga de fragmentos de archivos.
Específicamente, IPFS asigna un valor hash único a cada archivo, similar a una huella digital de archivo. Cada archivo raíz apunta a varios archivos de nodo y, una vez que cambia el contenido de un archivo de nodo, el valor hash cambia en consecuencia, lo que hace que el hash del archivo raíz también cambie.
De esta manera, IPFS almacena y encuentra archivos en una dirección única basada en contenido en lugar de basada en direcciones. Esto significa que si estás buscando un archivo, no necesitas saber dónde está, sólo qué contiene. IPFS genera un hash único para cada archivo, y cuando el usuario necesita recuperar este archivo, solo necesita preguntarle a IPFS quién tiene este hash para completar la recuperación. Debido a que los hashes evitan el almacenamiento duplicado, IPFS no duplica los archivos con el mismo contenido. Este enfoque optimiza el almacenamiento y mejora el rendimiento de la red.

El mecanismo de direccionamiento de contenido es una gran ventaja de IPFS, pero cada moneda tiene dos caras y también trae un inconveniente. En IPFS, una vez que se almacena un archivo, no se puede modificar en el sistema porque la modificación del contenido del archivo cambia el hash del archivo y el usuario no puede encontrar el archivo modificado por el valor hash original. Este es un punto débil ampliamente criticado: IPFS no es bueno para almacenar archivos que deben actualizarse y modificarse de vez en cuando.
Aunque IPFS funciona bien para almacenar archivos estáticos, carece de la capacidad de cálculo y gestión de estado para funciones más avanzadas similares a las de una base de datos, como mutabilidad, control de versiones, control de acceso y lógica programable, que son necesarias para permitir a los desarrolladores crear sistemas descentralizados con todas las funciones. aplicaciones. Por lo tanto, existe una necesidad urgente de una solución eficiente y descentralizada para almacenar datos dinámicos: Ceramic resuelve este problema con una base de datos similar a NoSQL para que los desarrolladores almacenen contenido estructurado y mutable.
Creado para contenido mutable
El diseño de almacenamiento de Ceramic se basa en IPFS y lo amplía con una capa de almacenamiento dinámico descentralizado.
En Ceramic, cada pieza de información se representa como un registro de confirmaciones de solo agregar, llamado "Stream", que se muestra como la combinación de cuadrados grises en la siguiente figura. Stream es similar en concepto a los árboles de Git: el estado inicial (Genesis Commit) y cada cambio posterior (Commit) se almacenan en IPLD (InterPlanetary Linked Data, la capa de IPFS dedicada a las estructuras de datos), y estos registros se combinan para formar un Arroyo. Dado que Streams registra "cambios" en lugar de "instantáneas" del estado resultante, solo es necesario procesar todos los eventos en Stream para obtener el estado más reciente del registro.

Por ejemplo, el patrón de registro de Ceramic es el siguiente: inicialmente, Alice y Bob tienen $10 cada uno; el segundo día, Alice transfiere $5 a Bob; Al tercer día, Bob transfiere $3 a Alice. Esto también es muy parecido a un libro de contabilidad de blockchain, donde el libro de contabilidad no indica el saldo de cada usuario y todos los procesos intermedios deben calcularse para obtener el saldo final del usuario.
Comparativamente, el patrón de registro tradicional de IPFS es: en el archivo a, Alice y Bob tienen cada uno $10; en el archivo b, Alice tiene $5 y Bob tiene $15; y en el archivo c, Alice tiene $8 y Bob tiene $12. Aquí, cada registro es una instantánea del estado resultante y se debe generar una nueva instantánea tan pronto como haya un cambio.
Ceramic garantiza con este diseño que cada registro tenga una ID de transmisión única, con una denominación global uniforme y sin cambios de nombre debido a cambios de contenido. Cada escritura requiere la autorización del usuario y todo el proceso es similar a la contabilidad de blockchain, excepto que lo que se escribe no son datos de transacciones, sino otros contenidos mutables, como información de la cuenta del usuario.
Componibilidad de datos
Ceramic logra la componibilidad de datos entre aplicaciones principalmente mediante el uso de una abstracción novedosa, llamada modelos de datos.
Los modelos de datos suelen representar una característica de aplicación única y lógica, como un perfil de usuario, un gráfico social o un blog. Por ejemplo, puedes imaginar que cada implementación descentralizada de Twitter se ejecutaría en algunos modelos de datos compartidos: uno para los tweets de cada usuario, uno para su gráfico social, uno para sus mensajes directos, etc. Al adoptar los mismos modelos de datos subyacentes, las aplicaciones pueden para interoperar de forma nativa con los mismos datos.
En cierto modo, se puede comparar el uso que hace Ceramic de estándares de modelos de datos con el uso de estándares de tokens para libros de contabilidad de activos. En Ethereum, por ejemplo, la introducción del token fungible ERC20 y los estándares de token no fungible ERC721 han dado lugar a ecosistemas completos de tokens y aplicaciones financieras que interoperan de forma nativa. La cerámica traslada este mismo concepto a los datos.
Ceramic adopta un enfoque impulsado por la comunidad para crear estos modelos de datos, lo que permite a cualquier desarrollador definir, compartir y reutilizar fácilmente sus modelos con otros desarrolladores del ecosistema. A medida que la comunidad cree más modelos de datos, verá una expansión continua en la cantidad y variedad de aplicaciones que se crean con datos componibles.
La componibilidad realizada de esta manera también mejora la experiencia del desarrollador. Crear una aplicación en Ceramic parece navegar por un mercado de modelos de datos, conectarlos a su aplicación y obtener acceso automáticamente a todos los datos de la red almacenados en estos modelos. Al utilizar Ceramic, los desarrolladores no tendrán que preocuparse por iniciar su aplicación con sus propios usuarios y datos aislados. La tasa de innovación compuesta entre los desarrolladores se acelerará dramáticamente.
Escalabilidad
Ceramic logra escalabilidad a través de un entorno de ejecución fragmentado. Todos los flujos en Ceramic mantienen su estado de forma independiente y los nodos de la red ejecutan transacciones de flujo en paralelo. Este enfoque, a diferencia de la mayoría de las cadenas de bloques, permite a Ceramic operar con la escalabilidad requerida para versiones descentralizadas de aplicaciones sociales como Twitter o Facebook.
A diferencia de los sistemas blockchain tradicionales donde la escalabilidad se limita a un único entorno de ejecución virtual global y el estado de un único libro de contabilidad se comparte entre todos los nodos, cada nodo Ceramic actúa como un entorno de ejecución individual para realizar cálculos y validar transacciones en flujos: no existe un entorno de ejecución global. libro mayor. Esta fragmentación de ejecución "integrada" permite que Ceramic Network escale horizontalmente para paralelizar el procesamiento de un número cada vez mayor de transacciones de flujo simultáneo a medida que aumenta el número de nodos en la red. Se necesita un diseño de este tipo para manejar la escala de los datos del mundo, que es mucho mayor que el rendimiento necesario en una cadena de bloques financiera. Otro beneficio de este diseño es que un nodo Ceramic puede realizar transacciones de flujo en un entorno fuera de línea primero y luego sincronizar actualizaciones con el resto de la red cuando vuelve a estar en línea.
Solución HIZO
Ceramic también ofrece una solución de identidad flexible y sólida llamada IDX, la primera solución de identidad descentralizada (DID) completamente funcional.
IDX es un protocolo de identidad entre cadenas para aplicaciones abiertas con identidad descentralizada y datos de usuario interoperables, que permite a los usuarios crear una identidad digital unificada que consta de todos sus datos y, al mismo tiempo, permite a los desarrolladores romper silos y compartir libremente datos de usuario entre aplicaciones. Como se muestra en la figura siguiente, proporciona un índice descentralizado que permite asociar datos estructurados a un identificador descentralizado (DID), y los datos se definen mediante definiciones y se almacenan en registros.

Además, IDX se puede utilizar con cualquier tipo de almacén de datos como Ceramic, Textile, OrbitDB, IPFS, Sia, Arweave, registros blockchain o incluso bases de datos centralizadas y admite autenticación desde cualquier tipo de billetera Web3.
IDX es ideal para asociar perfiles de usuario, gráficos sociales portátiles, puntuaciones de reputación, afirmaciones verificables, contenido generado por el usuario, datos de aplicaciones, configuraciones, nombres de dominio, direcciones de blockchain y cuentas sociales Web2 a un usuario de forma descentralizada.
Conclusión
En resumen, la aparición de Ceramic ha potenciado enormemente la construcción de Web3 y ha desbloqueado nuevas funciones para los desarrolladores de Web3. No importa qué cadena de bloques pública (Ethereum, BSC, Polygon, Avalanche, etc.) estén construyendo los desarrolladores, pueden aprovechar simultáneamente Ceramic para funciones centradas en datos para mejorar sus aplicaciones. Además, a través del sistema de cuentas flexible basado en DID de Ceramic, Ceramic interactúa naturalmente con los sistemas de cuentas y claves de las principales cadenas de bloques actuales, lo que brinda a los usuarios una gran comodidad.
Es una satisfacción comprobar que ya son muchos los proyectos de plataformas sociales DID y Web3 desarrollados sobre Ceramic. Entre ellos, por nombrar algunos proyectos dignos de mención: CyberConnect, una plataforma de middleware de gráficos sociales; Orbis, una plataforma Web3 de Twitter; y The Convo Space, una plataforma de mensajería instantánea, etc. Esperamos con ansias las nuevas posibilidades que la infraestructura de red de datos de Ceramic puede aportar a la capa de aplicación Web3.
Descargo de responsabilidad: esta investigación tiene fines informativos únicamente. No constituye un asesoramiento de inversión ni una recomendación para comprar o vender ninguna inversión y no debe utilizarse en la evaluación de los méritos de tomar ninguna decisión de inversión.
🐦 @chestersigned
📅 8 de mayo de 2022
Enlaces:
https://developers.ceramic.network/learn/welcome/
https://blog.ceramic.network/what-is-ceramic/
https://multicoin.capital/2022/02/16/the-composable-web3-data-network/
https://blog.ipfs.io/2021-07-13-ceramic-mainnet-launch/


