¿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:

Diagrama de arquitectura de aplicación web3 híbrida

¿En qué consiste la aplicación web3?

El sistema implementa una plataforma de colaboración descentralizada P2P para otorgar recompensas entre personas por la participación en tareas. Las recompensas consisten en criptoactivos como intercambio de valor y NFT como prueba de participación a modo de insignias de reputación.

Para conocer más detalles se puede acceder a la página de la DApp.

¿Qué ventajas aporta la descentralización en la blockchain?

  1. Intercambio de valor: capacidad de transferir activos digitales de un participante a otro de una manera segura y confiable, sin la necesidad de una entidad central, como un banco o un intermediario. Esto es posible gracias a la tecnología subyacente de la blockchain, universalizando así el acceso al sistema.
  2. Garantiza la transparencia y la seguridad: en un sistema de reputación en que se atestigua la consecución de determinados méritos de participación es fundamental asegurar la autenticidad y la confiabilidad. Los NFT se amoldan a la perfección a ese modelo ya que actúan como activos digitales con certificado de origen (quién lo emite) y de propiedad (quién lo tiene).
  3. Certifica la propiedad de los activos digitales: se puede restringir el intercambio de los NFT de modo que queden vinculados de forma permanente al propietario original. Esta vinculación se efectúa sobre el wallet del usuario. Los activos pertenecen al propio usuario y no a una entidad central.
  4. Eliminación de intermediarios: la confianza entre las partes se logra desarrollando protocolos confiables basados en smart contracs. De este modo se puede prescindir de terceros de confianza.
  5. 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.
  6. 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 la comunidad de usuarios del sistema al evitar la manipulación fraudulenta de los NFT (prueba de participación) o los cambios no advertidos en la programación de los smart contracts que rigen el funcionamiento del sistema.
  7. 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.
  8. 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.
  9. 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?

  1. 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.
  2. 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.
  3. 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.
  4. 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.
  5. 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
Subsistema blockchain
  • Asignación de recompensas: el intercambio de valor por las tareas completadas se gestiona con criptoactivos propios de la blockchain.
  • Generación de los NFT: las pruebas de participación asignadas quedan reflejadas como un activo digital en la blockchain.
  • Almacenamiento permanente e inmutable: los NFT se vinculan al wallet del usuario de forma perpetua. 
  • 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
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.
  • Comunicaciones a los participantes: el envío de mensajes informativos a los participantes para notificar eventos y cambios de estado en el sistema se efectúa de forma más eficiente de forma centralizada. 

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. ¡Muchas gracias!