¡Que viene el Coco!

martes, 29 de agosto de 2017

Microsoft ha presentado recientemente Coco Framework para el desarrollo de aplicaciones empresariales sobre tecnología blockchain.

En la cultura popular de muchos países hispanohablantes el Coco es una criatura ficticia que se utiliza para asustar a los niños que no quieren dormir, en cambio, en otros países como Argentina, Chile, Ecuador, Perú o República dominicana se le conoce como Cuco y en Brasil como Cuca

Además, el Coco es un personaje que aparece muy frecuentemente en las canciones de cuna infantiles y que se representa como un fantasma con una calabaza vacía, a modo de cabeza, con tres agujeros imitando los ojos y la boca. Se cree que tiene sus orígenes en el culto celta de las cabezas cortadas y es probablemente también el origen de la famosa tradición americana de Halloween. Todavía hoy se llama de forma coloquial «coco» a la cabeza, en expresiones como «comer el coco», «tener mucho coco» o «estar mal del coco».
Ilustración 1: Que viene el Coco de Goya (1797)

Pero hoy, no vamos a hablar de cultura popular, ni de canciones de cuna infantiles, sino de una interesante iniciativa open source, presentada recientemente por Microsoft, relacionada con el desarrollo de aplicaciones empresariales sobre la tecnología blockchain y denominada Coco Framework.

La tecnología blockchain es una innovación disruptiva que está llamada a transformar los procesos actuales de los negocios, facilitar las transacciones entre empresas e impulsar nuevos modelos de negocio, especialmente en aquellos casos en los que los procesos involucran a dos o más organizaciones.
Por esta razón, la tecnología blockchain ha despertado el interés de muchas empresas de diferentes industrias, pero al experimentar con la tecnología las organizaciones se han dado cuenta que esta no cumple sus requisitos en lo referente a complejidad de desarrollo, rendimiento/escalabilidad, confidencialidad de la información y capacidad de administración (gobernanza). 

La tecnología blockchain fue diseñada para ser ejecutada en entornos donde no hay confianza entre las partes, formando una red de nodos anónimos que deben ejecutar transacciones acordando el resultado mediante consenso. Para evitar acciones malintencionadas, toda la información se gestiona de forma pública y abierta, cada nodo en la red ejecuta todas las transacciones y se emplean algoritmos tolerantes a fallos.

Con respecto al rendimiento, a menudo se plantean proyectos que se ejecutarán sobre tecnología blockchain que una vez puestos en producción requerirán ejecutar cientos o miles de transacciones por segundo, pero lamentablemente las redes públicas actuales basadas en tecnología blockchain son capaces de proporcionar apenas unas pocas decenas de transacciones por segundo.

En las pruebas realizadas por Microsoft, se ha llegado a alcanzar altas tasas de rendimiento.  Se han obtenido algo más de 1.600 transacciones por segundo y tiempos de latencia media de 125ms que contrastan con las 20 transacciones por segundo y latencia media de 56.520ms obtenidos sobre una red Ethereum consortium network. Todas las pruebas se realizaron sobre el mismo hardware con y sin el uso de Coco Framework ejecutando una prueba compuesta por unas 2.000 transacciones como se puede ver en la figura.

Ilustración 2: Comparación de rendimiento (Tx/sec) con y sin el uso de Coco Framework

Aunque la transparencia y el consenso son atributos clave en las redes blockchain públicas (unpermissioned blockchain networks) en determinados escenarios de negocio de cooperación entre socios comerciales puede ser más conveniente el uso de la tecnología blockchain que incorpora una capa de control de acceso a los nodos (permissioned blockchain networks) con el objetivo de disponer de la capacidad de restringir que nodos pueden participar en el mecanismo de consenso y en la validación de los bloques de transacciones.

De igual manera, en los entornos mencionados, puede no ser conveniente ni deseable que toda la información sea pública, sino que por el contrario pueda restringirse la visibilidad de los datos por ejemplo entre diferentes proveedores que compiten entre sí.

Con este nuevo framework, Microsoft espera que se reduzca la complejidad actual existente para el desarrollo de aplicaciones que se integran con las diferentes redes blockchain. Coco Framework fue presentado el pasado 10 de agosto de 2017 por el CTO de Microsoft Azure, Mark Russinovich y se ha abierto una página en GitHub donde de momento solo hay un documento técnico. Se espera que el código del framework esté disponible a partir de enero de 2018. 

En el siguiente video puede verse la presentación y una explicación/demostración de su funcionamiento.

Video 1: Introducing the Coco Framework - YouTube

El framework está compuesto por diversos algoritmos y componentes que se ejecutarán en sistemas operativos o hypervisores compatibles con los entornos de ejecución de confianza (Trusted Execution Environments, o TEE en inglés) basados en las tecnologías Intel Software Guard Extensions (SGX) o Windows Virtual Secure Mode (VSM) para mejorar la seguridad de los nodos.

Coco framework ha sido diseñado para que pueda ser instalado tanto en la nube como On Premise y tiene previsto funcionar e integrarse con las diferentes tecnologías blockchain existentes. De momento se ha integrado con Ethereum y están previstas integraciones con Hyperledger, R3 Corda y J.P. Morgan Quorum. La arquitectura de alto nivel de Coco Framework se representa en la siguiente ilustración:

Ilustración 3: Arquitectura de alto nivel del Coco Framework (fuente Microsoft)

Se trata por tanto de un conjunto de componentes que pueden conectar blockchain existentes entre sí, lo cual es una característica muy interesante, y que ha sido diseñado específicamente para consorcios donde los nodos y participantes quieran y puedan ser controlados. Por tanto, no se trata de una solución descentralizada sino más bien de una solución distribuida.

Este framework ha sido diseñado por Microsoft para algunas industrias específicas como son la industria de Servicios Financieros (Financial services), el comercio minorista (Retail) y de cadena de suministro (Supply chain). Todas estas industrias han indicado que para impulsar la adopción de la tecnología blockchain es necesario una mejora sustancial en su rendimiento y confidencialidad de la información al tiempo que se añaden capacidades para la gestión de los nodos de la red.

Esperamos ver en los próximos meses como evoluciona esta interesante iniciativa y el grado de interés que despierta en el ecosistema alrededor de blockchain. En próximos artículos continuaremos profundizando en aspectos técnicos de Coco Framework y en posibles casos de usos de esta iniciativa.

Muchas gracias por leernos. Nos gustaría conocer tu opinión y si consideras de utilidad esta iniciativa. Por favor, déjanos un comentario con tus impresiones. 

Head of Strategic Alliances and Partnerships


No hay comentarios:

Publicar un comentario