Tiempo estimado: 5 minutos de lectura
¿Qué es la arquitectura híbrida y por qué se utiliza?
La arquitectura híbrida en una aplicación descentralizada es una estructura compuesta en el lado del backend, de modo que parte de la funcionalidad está descentralizada en la blockchain y parte se gestiona en una infraestructura de servidor tradicional centralizado. Se trata de un diseño en los desarrollos web3 que busca el equilibrio de ambos ecosistemas para aprovechar las ventajas que aporta cada uno.
El modelo propuesto se corresponde con el siguiente esquema:
¿En qué consiste la aplicación web3?
Estoy desarrollando de forma paralela un proyecto personal web3 sobre el que poder experimentar según se vaya desarrollando la tecnología.
Es un sistema descentralizado para registrar de forma segura en la blockchain la huella digital y un sello de tiempo de un documento almacenado en un repositorio externo y asignar un token digital al propietario del mismo.
El objetivo de la aplicación es posiblitar la firma de documentos y su certificación en la blockchain de manera segura y fiable.
Está dirigida a organizaciones e individuos que gestionen la emisión de documentos y deseen certificarlos digitalmente en la blockchain.
¿Qué ventajas aporta la descentralización en la blockchain?
- Garantiza la transparencia y la seguridad: en un sistema de certificación es fundamental asegurar la autenticidad y la confiabilidad.
- Eliminación de intermediarios: la confianza entre las partes se logra desarrollando protocolos confiables basados en smart contracts. De este modo se puede prescindir de terceros de confianza.
- Resilencia: la arquitectura inherente a los sistema descentralizados los hace muy resistentes ante errores y malfuncionamiento de los nodos individuales. Esto garantiza la perdurabilidad de los activos digitales en el tiempo.
- Inmutabilidad: la naturaleza inmutable de los datos tanto en la blockchain como en los sistemas de almacenamiento descentralizado al estilo de IPFS fomentan la confianza entre los usuarios del sistema al evitar la manipulación fraudulenta o los cambios no advertidos en la programación de los smart contracts que rigen el funcionamiento del sistema.
- Confiabilidad: cualquiera puede verificar el historial de transacciones y los datos registrados en la blockchain, otorgando al sistema total transparencia y confiabilidad. El funcionamiento de los smart contracts que gobiernan la gestión de los activos digitales es igualmente público y auditable.
- Automatización: el mecanismo de autoejecución propio de los smart contracts previene la manipulación malintencionada del sistema. Cuando se cumplen las condiciones programadas en el smart contract se ejecutan las acciones previstas sin que ningún tercero pueda cambiar el comportamiento.
- Identidad soberana: los datos de identidad pertenecen al usuario, no tiene que facilitarlos a ninguna entidad centralizada.
¿Qué ventajas aporta la centralización en cloud?
- Escalabilidad: las redes blockchain presentan desventajas en cuanto a la escalabilidad y flujo de transacciones. Integrar un servidor centralizado ayuda a mejorar la velocidad y la eficiencia del sistema al procesar ciertas operaciones fuera de la cadena de bloques en un entorno seguro.
- Experiencia de usuario: las aplicaciones web3 completamente descentralizadas adolecen de la inmediatez propia de las aplicaciones web tradicionales al tener que hacer frente a la asincronía en la ejecución de las transacciones con la blockchain. La integración con un servidor centralizado posibilita una experiencia de uso más familiar para los usuarios, con tiempos de respuesta más rápidos y una interfaz más intuitiva.
- Reducción de costes: almacenar muchos datos «on-chain» supone un alto sobrecoste en las transacciones de los usuarios. Extrayendo parte del almacenamiento y de la lógica a un sistema centralizado se logra reducir los costes puesto que disminuyen tanto las transacciones con la blockchain como la cantidad de datos almacenados.
- Cumplimiento normativo: determinadas regulaciones como las relacionadas con la protección de datos no pueden ser completamente satisfechas en la blockchain. La inclusión de componentes centralizados ayuda a cumplir con esos requisitos y a garantizar que la aplicación sea legal y segura.
- Actualizaciones y mantenimiento: dado el carácter inherentemente inmutable de las redes blockchain, mantener una aplicación totalmente descentralizada es complicado. Al combinar con una infraestructura centralizada es más sencillo corregir errores y añadir mejoras a aquellos subsistemas en que no se requieran las ventajas de los sistemas descentralizados.
¿Cómo se reparten las funcionalidades?
Una vez justificada la elección del modelo de aplicación web3 híbrida, se detallan las funcionalidades de cada uno de los subsistemas en el proyecto:
Subsistema blockchain
- Pruebas de propiedad: los tokens digitales aseguran la pertenencia a cada usuario de un determinado documento.
- Almacenamiento permanente e inmutable: los certificados se guardan en la blockchain de forma perpetua. Cualquier cambio quedará registrado en el histórico de transacciones.
- Smart contracts: la ejecución de las reglas del protocolo está garantizada de forma programática mediante los smart contracts de la aplicación.
- Identidad: el acceso a la aplicación se efectúa mediante la dirección ethereum del «wallet» del usuario.
Subsistema cloud
- Almacenamiento centralizado: los datos auxiliares que no requieren las ventajas de la descentralización blockchain se guardan en una base de datos convencional, disminuyendo costes.
- «Endpoint» de servicios: la interacción entre el front-end y los datos auxiliares se efectúa mediante peticiones de servicio REST convencionales, mejorando la experiencia de usuario.
- Datos personales: los documentos en sí serán generalmente almacenados en un repositorio centralizado conforme a las leyes de protección de datos personales.
Conclusión: buscando el equilibrio
A partir de los requerimientos funcionales de la DApp se llega a la conclusión de que una arquitectura híbrida en una aplicación descentralizada es una solución óptima para alcanzar los objetivos equilibrando los beneficios de la tecnología descentralizada que aporta la blockchain con las bondades bien probadas de los sistemas centralizados en cloud.
De esta forma se plasman los cambios en el paradigma de las aplicaciones web3 (buscando mayor transparencia, confiabilidad, inmutabilidad, identidad soberana, no intermediación…), manteniendo al tiempo unos niveles de experiencia de usuario, costes de uso y mantenibilidad acordes a las prácticas actuales.
Por otra parte resaltar que aunque la arquitectura híbrida tiene muchas ventajas, también presenta algunos desafíos como una mayor complejidad frente a sistemas puros: puede ser difícil de diseñar y mantener al conjugar varias plataformas independientes intercomunicadas.
En los próximos artículos iré desgranando los diferentes retos encontrados para llevar a cabo la arquitectura híbrida propuesta de aplicación descentralizada.
¿Te ha gustado el artículo? ¿Te parece un diseño de arquitectura adecuado para una aplicación descentralizada? Te invito a compartirlo y a dejar tus comentarios al respecto.
¿Quieres desarrollar tu propia aplicación descentralizada? Contáctame y hablamos sobre la arquitectura más adecuada. ¡Muchas gracias!