¿Necesito usar blockchain?

Bajo la novedad de una nueva tecnología en ocasiones surge el FOMO (Fear of missing out), es decir, nos involucramos y/o adquirimos solo por el temor de quedarnos fuera de la tendencia.

Para identificar si en tu proyecto una solución blockchain sería adecuada debes conocer cuáles son las principales aplicaciones, ventajas y desventajas de esta reciente tecnología, pero sobre todo no intentes adaptar tu proyecto al blockchain, sino buscar los beneficios que tendrías, así como el tipo de implementación que más favorece a tus usuarios.

Regresemos un poco al contexto. Como sabrás en el 2008 nace y se publica el whitepaper de bitcoin. Previo a lo anterior la tecnología blockchain fue introducida por Stuart Haber y W. Scott Stornetta en 1991 como “una cadena de bloques asegurada criptográficamente”. El problema fundamental que atiende es de CONFIANZA, así como transparencia en las transacciones a diferencia del sector financiero actual, la blockchain brinda confianza a un sistema tradicional, específicamente cuando las partes que interactúan no se conocen y no existe un tercero como intermediario.

En su estado más puro una blockchain es un libro contable que registra transacciones y las preserva en forma descentralizada, para evitar la dependencia de un ente único que normalmente valida y posee la única verdad en su base de datos propia. 

 
 Funcionalidades principales de la blockchain:
 

Consenso: Sin intervención una blockchain es capaz de seguir procesando y preservando datos en intervalos de tiempo definidos. Esto es la generación de bloques de datos validados por los nodos.

 

Inmutable: Es muy difícil para cualquiera alterar los registros que hay en un bloque, una vez que han sido validados se requiere controlar más de la mitad de los nodos para generar una copia de la cadena con la nueva información manipulada. A diferencia de una base de datos no se permite el tradicional CRUD, funciona como un append-only.

 

Transferencia de activos: En cada bloque se registran transacciones que corresponden a la suma y resta de activos para los participantes, esto igualmente sin la intervención de un tercero que pueda restringir, cancelar o revertir la transacción.

 

Compartición de datos: Dependiendo del modo de operación y elección del blockchain se puede utilizar una cadena pública o una cadena con accesos restringidos. 

 

Tipos de Blockchain:
 

Con el despegue de Bitcoin, Ethereum y otras criptomonedas, se han desarrollado nuevos tipos de blockchain para nuevas aplicaciones y procurando resolver las carencias para otros casos, la principal clasificación es la siguiente: 

 

No permisionadas (Permissionless): aquellas que no tienen control de acceso y por lo tanto son públicas, permiten que cualquier persona pueda instalarse un nodo completo de ella y descargar toda la cadena de bloques, obteniendo así una copia de todas las transacciones y aportando un nodo más para la preservación de los datos.

 

Permisionadas (Permission): Cada participante debe ser registrado para poder acceder, ya sea por seguridad y/o restricciones operativas. Cabe mencionar que puede haber diferentes niveles de acceso: Nodos administradores, validadores, operativos y de consulta.  

Es importante mencionar que algunas blockchain definidas como no permisionadas, en realidad cuentan con mecanismos de consenso con amplias restricciones, por lo cual son significativamente restringidas a la participación de cualquier usuario como nodos validadores. 

Diagrama de diferencias en tipos de blockchain
Preguntas relevantes

Para cada caso de negocio debemos hacernos las siguientes preguntas:

  1. ¿El caso de negocio involucra varias entidades o actores incluso desconocidos entre ellos?
  2. ¿Existe una falta de confianza entre los participantes de la red de negocio y/o sus fuentes de datos?
  3. ¿Se pueden resolver los problemas actuales, o disminuir riesgos y costos versus la centralización tradicional Ej. base de datos descentralizada?
  4. ¿El proceso de beneficiaría con una compartición de datos sin intermediarios entre los miembros de la red de negocios?
  5. ¿Es aplicable el seguimiento y control, así como la propiedad de activos digitales por miembros de la red? Ej. El registro desde la fabricación, pasando por el centro de distribución hasta el destino final durante todo el ciclo.
  6. ¿El procesamiento de los datos no requiere una velocidad de transacciones alta o inmediata?
  7. ¿Los participantes cuentan con las capacidades para ejecutar una solución blockchain? Ej. Recursos en nube, servidores locales, etc.

Si por lo menos 5 de las respuestas a estas preguntas son positivas, tu proyecto tiene amplias posibilidades de ser beneficiado por una Blockchain. Una solución ideal dependerá de una implantación adecuada también a las restricciones y regulaciones que los involucrados tengan.

Aspectos a considerar

Una vez que has validado el posible match entre tu proyecto/necesidad y la tecnología blockchain, confirma y verifica los siguientes aspectos:

  • Control de la plataforma: Si bien la blockchain es descentralizada por naturaleza, el software bajo el que opera está siempre en control de un grupo de usuarios o entidad. 
  • Mecanismo de consenso:  Elegir o definir la manera en que se evaluará la validez de los bloques a agregar, así como las transacciones. Qué requisitos o privilegios deben tener los validadores, así como las tareas y en su caso remuneraciones recibirán por ellas. Ej. Minado en bitcoin. 
  • Contratos inteligentes: Para automatizar restricciones y comportamientos, así como lógica de negocio es posible incluir código dentro de los bloques que se ejecutan bajo condiciones de las transacciones, esto se conoce como contratos inteligentes. Es importante definir no sólo si se utilizarán sino el cómo se haría.
  • Requerimientos operativos: Conocer los costos por transacción en términos de recursos utilizados o recompensas otorgadas. Ej. Gas de Ethereum. También los tiempos de respuesta requeridos, considerando donde se hospedarán los nodos y el costo de su operación.
  • Requerimientos técnicos:  Considera el grado de escalabilidad y volumen de transacciones, así como si es más favorable una infraestructura pública o privada. Esta decisión impactará en la seguridad, latencia, seguridad e inmutabilidad de la cadena. La definición de utilización de una blockchain opensource o una propietaria también es un aspecto clave a considerar.

 

                 Análisis de ventajas y desventajas de la blockchain

Con todo esto ya tienes una idea general para realizar un análisis de ventajas y desventajas de esta incipiente pero innovadora tecnología. Como mencionaba en un principio la mayor tentación siempre es la de adaptar nuestro proyecto, proceso o necesidad hacia la tecnología, cuando en realidad debe ser en sentido contrario. Hoy en día existen diferentes opciones para facilitar la implantación de una blockchain empresarial, mencionando como principales:

  • Hyperledger. Es una plataforma opensource para el desarrollo de blockchain parte de la fundación Linux. Ofrece capacidades como contratos inteligentes, transacciones y consenso similares a Ethereum. IBM y Oracle basan sus ofertas de blockchain en esta plataforma.
  • Corba R3. Se enfoca en soluciones que buscan privacidad. La plataforma está basada en la máquina virtual de Java, con el objetivo de captar la base de desarrolladores de la industria financiera. Corba utiliza un sistema de libro contable que se replica a una base de datos relacional para una fácil consulta. Sus contratos inteligentes son términos legales en vez de código.
  • Blockchain as a service (Baas). Múltiples vendors proven soluciones fáciles de implementar, que pueden ser personalizadas. Similar a un software como servicio (SAAS) y la oferta de nube. Incluyen elementos como un manejo centralizado de usuarios, así como distribución de nodos. Entre ellos: Amazon Quantum Ledger, Azure, VmWare, Oracle, IBM y SAP.
 

                      CONOCE NUESTROS SERVICIOS DE DESARROLLO DE SOFTWARE

Fuentes:

Masterin Blockchain: Lorne Lantz & Daniel Cawrey

https://bitcoin.org/bitcoin.pdf

https://csrc.nist.gov/CSRC/media/Publications/nistir/8202/draft/documents/nistir8202-draft.pdf

Autor: Eduardo Cortes Bacelis

Director y fundador de Integra IT.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *