Casos de uso de Blockchain Empresarial

Casos de uso de Blockchain Empresarial

En artículos anteriores, realizamos una “Introducción a Blockchain Empresarial” y resumimos “Aspectos técnicos sobre Blockchain“. En esta última entrega de la serie, nos enfocaremos en los patrones de uso más difundidos y analizaremos el caso emblema, fuera de lo que es Finanzas Descentralizadas (DeFi), de la Cadena de Suministros.

Casos de uso

Bancos y Finanzas
Las DeFi incluyen activos digitales, protocolos, contratos inteligentes y Aplicaciones Distribuidas (dApps). Es el caso de uso original e implica todo lo relacionado a criptomonedas y al mundo financiero en general. Podemos mencionar la red global de pagos electrónicos Ripple, con el apoyo de instituciones como Santander, Itaú, American Express y muchas otras. Otro ejemplo es Santander One Pay FX, una red Blockchain para agilizar las transferencias internacionales.

Cadenas de suministro
Después de DeFi, es el caso de uso más difundido. Blockchain permite la trazabilidad completa de cualquier bien, desde el productor hasta el consumidor final, ya sean materias primas, alimentos o medicamentos, en el caso de la Farmacovigilancia. Es común además la utilización de dispositivos IoT (Internet of Things) para el registro automatizado en las distintas etapas del flujo. Ya existen numerosos casos de éxito en diversas industrias, tales como la alimenticia (donde Walmart y posteriormente IBM Food Trust son el caso más emblemático que analizaremos), la farmacéutica (Novartis), la automotriz (Ford, BMW, Tesla), entre otras.

Auditoría
Aprovechando la inmutabilidad, una de las características distintivas de Blockchain, se almacenan transacciones que no puedan ser modificadas posteriormente, lo que permite una auditoría completa de información crítica. Esto se utiliza en la Prevención de Fraudes, Gestión de Reclamos, Seguros (BBVA), Salud (EHR, manejo de Historias Clínicas, con proyectos como MedicalChain & MedRec) y Farmacovigilancia (por ejemplo, el proyecto Pharmaledger).

Administración Pública
Actualmente hay muchos gobiernos en el mundo que investigan cómo aprovechar los beneficios de Blockchain en sistemas de Identidad Ciudadana, votaciones, presupuestos y licitaciones públicas para aumentar la eficacia y transparencia del Estado. Latinoamérica se esfuerza por no quedarse atrás, y ya existen muchos desarrollos en marcha.
En Argentina existen varios proyectos sobre la red Blockchain Federal Argentina (BFA), como las sesiones de Diputados del Congreso, Registro de Quejas del Banco Central, Carpeta Ciudadana de la Ciudad de Buenos Aires, entre otros. También Brasil, Perú y Uruguay están realizando avances. A nivel global, Emiratos Árabes, en particular Dubai, planea convertirse para el 2021 en una ciudad gobernada completamente con Blockchain, sin papeles, a través de su proyecto Smart Dubai.

Información Certificada
Muchas instituciones utilizan Blockchain para la certificación y validación de todo tipo de registros educativos (Carpeta Ciudadana en Buenos Aires), laborales y personales.

Compartición de datos
En un nuevo modelo centrado en el ser humano, las personas toman control de su información, la centralizan y son ellas las que deciden a quienes darles acceso. Por ejemplo, los pacientes son dueños de su Historia Clínica completa y pueden dar acceso al profesional que lo necesite (EHR » MedicalChain & MedRec), los ciudadanos pueden compartir sus credenciales (proyectos Identidad Digital Soberana en Argentina, Data Sharing Toolkit en UAE, etc.).

Tokenización de activos
Se utiliza Blockchain para la gestión de activos digitales, en el intercambio de todo tipo de bienes entre individuos o entidades, tales como entradas a espectáculos (UEFA & Ticketmaster), puntos de programas de fidelidad (American Express), inmuebles (UK Land Registry en Inglaterra), etc.

Propiedad intelectual
Esta tecnología es usada para crear registros con fecha, hora y autoría, para optimizar el manejo de la Propiedad Intelectual. Usada por Kodak con Tracking de fotos y Spotify Mediachain para atribuir de forma precisa cada canción a sus creadores.

Caso de uso: Cadena de suministro de alimentos
Entre los numerosos casos de uso de Blockchain, su aplicación en una cadena de suministro es una de las más emblemáticas, con desarrollos en todas las industrias.

En una cadena de suministro de alimentos, existen múltiples actores involucrados: agricultores, ganaderos, proveedores, cooperativas, empacadoras, transportistas, exportadores, importadores, mayoristas, minoristas y, por último, el consumidor final. La seguridad sanitaria es una de las mayores preocupaciones en la industria alimentaria. Al igual que la industria farmacéutica, el sector alimentario se enfrenta a una mayor presión regulatoria de organismos gubernamentales.

Walmart es un pionero en este campo, ya que había intentado varias veces la creación de un sistema que permita la transparencia y completa trazabilidad en el sistema alimentario, pero no fue sino hasta 2016 que lo logró. Blockchain, con su libro mayor descentralizado y compartido, parecía hecho a medida de sus necesidades. Comenzó a trabajar con su socio tecnológico IBM en un sistema de trazabilidad alimentaria basado en Hyperledger Fabric. Para carne de cerdo en China, permitió cargar certificados de autenticidad, lo que brinda más confianza a un sistema donde solía ser un problema grave, mientras que para mangos en los Estados Unidos, el tiempo necesario para rastrear su procedencia pasó de 7 días… a 2 segundos!

El sistema desarrollado permite saber el origen exacto de cada ítem (para controlar brotes de enfermedades) en segundos, descartando únicamente los productos de las granjas afectadas. Por ejemplo, permite que un cliente tome un frasco de comida para bebés y vea dónde se fabricó, rastreando todos los ingredientes hasta las granjas.

Como resultado, se lanzó IBM Food Trust, involucrando a múltiples empresas como Nestlé y Unilever. Esta plataforma permite conocer en tiempo real:

  • Inventario en cada lugar.
  • Frescura de cada producto.
  • Tiempo promedio de permanencia.


Blockchain permite rastrear un producto a través de las distintas operaciones industriales, logísticas y administrativas, partiendo desde el inicio del proceso y llegando hasta el final, y viceversa.
De esta forma, se puede consolidar un registro seguro y distribuido con el historial de todos los actores de la cadena, sus intercambios durante la producción y distribución de cualquier producto, gestionando la información de manera confiable e inviolable. Las transacciones automáticas, al no tener intermediarios (por ejemplo, un banco), permiten liquidaciones más rápidas, con las condiciones pautadas en los smart contracts.

IoT y Blockchain combinados ofrecen grandes beneficios. Los sensores pueden capturar una variedad de datos en las instalaciones de fabricación o en los medios de transporte, y transmitir toda la información a un repositorio centralizado en tiempo real. Los gerentes a su vez, pueden obtener una multitud de nuevos conocimientos sobre el uso de materiales, las condiciones de transporte, etc., y aplicarlos en la planificación/optimización. Los productores pueden registrar vía IoT todo el proceso de crecimiento del producto (alimentación, pesticidas, humedad, almacenamiento, ubicación). Los transportistas pueden garantizar automáticamente que los productos se movilizan en las condiciones adecuadas de temperatura, humedad, etc., logrando una mejor visibilidad de la logística general.

Conclusiones
A lo largo de esta serie de 3 artículos, conocimos la tecnología Blockchain y su aplicación en el ámbito empresarial. Pudimos entender su funcionamiento básico, las plataformas más importantes y cómo está siendo utilizada actualmente en muchas industrias.

¿Cómo puede Huenei ayudar a su negocio con Blockchain?

  • Consultoría: Lo ayudamos a elegir la tecnología que mejor se adapte a sus necesidades.
  • Arquitectura: Definición, despliegue y puesta en marcha.
  • Desarrollo: De Contratos Inteligentes y sistemas completos basados en Blockchain.

Lo acompañamos desde el planeamiento y definición de requerimientos, hasta la puesta en marcha del proyecto final.

Cómo realizar un Discovery de Productos

Cómo realizar un Discovery de Productos

Los dos principales problemas a los que se enfrentan los proyectos de desarrollo de software usualmente son demoras en las fechas de entrega y el excederse en el presupuesto planteado, resultado de no calcular idóneamente los recursos a usar. Esto trae como consecuencia no solo un fracaso en lo comercial, sino una caída en el índice de satisfacción de las empresas.

Por ende, es vital que las compañías conozcan cómo realizar efectivamente un Discovery de producto digital antes de avanzar en establecer las bases de un proyecto. Convirtiéndose en un elemento crucial para mitigar los riesgos mencionados, independientemente de si el proyecto forma parte de un sistema empresarial a gran escala o si se trata de un desarrollo llave en mano.
Es imprescindible que tanto las compañías de outsourcing como los clientes le den la importancia necesaria a esta etapa, ya que permitirá mejorar la calidad del proyecto y del resultado final esperado.

Qué es el proceso de Discovery
Es un proceso de recopilación y análisis de información sobre un proyecto, su mercado objetivo, audiencia, entre otros. Buscando garantizar que se tenga una comprensión completa y profunda de los objetivos, el alcance y las limitaciones, ayudando a comprender a los usuarios finales, sus necesidades y requisitos.

Adicionalmente, define un tiempo establecido para recabar todos estos elementos mencionados, permitiendo que todos los miembros del equipo de desarrollo, así como del cliente, puedan reunirse y crear una comprensión compartida de los objetivos del proyecto. Sin embargo, esto va más allá que una mera reunión de kick-off. Esta visión colaborativa se trata de que todos los equipos puedan plantear desde su punto de vista, más valores y características que puedan garantizar la ejecución de este, a su vez que proporcionar valor comercial.

Quiénes están involucrados en el Discovery en desarrollo de Software
La idea es que la mayor cantidad de miembros del equipo esté involucrada, desde los programadores y testers hasta los analistas funcionales, desde un punto de vista más técnico y especializado.
Por otro lado, también debe formar parte miembros del cliente, ya que estos tienen un mayor conocimiento tanto de la industria como de sus propios consumidores, ofreciendo información valiosa que puede aumentar el índice de satisfacción de los usuarios. La lista de los equipos y representantes involucrados en el Discovery de productos quedaría así:

  • Propietario del producto (PO).
  • Gerente de proyecto.
  • Analista de negocios.
  • Arquitecto de soluciones.
  • Diseñador UX.
  • Programadores.
  • Probadores de control de calidad.
  • Usuarios finales representativos.

En teoría, estos deberían ser todos los miembros que participen en esta fase.
Adicional a esto, los especialistas en UX (experiencia de usuario) pueden ser sumamente útiles en el proceso de descubrimiento, ya que muchas limitaciones funcionales pueden ser informadas por los requisitos de la interfaz de usuario (UI).

Una mejor integración de este departamento de diseño con los procesos de Discovery en desarrollo de Software es a través de un taller de pensamiento de diseño, donde las partes interesadas se reúnen para discutir de manera integral las motivaciones, los requisitos y la visión del proyecto.

Proceso para crear un Discovery de productos
Para diseñar un proceso de Discovery de productos se deben conocer las necesidades iniciales, como mínimo, debe celebrarse una reunión inicial con el equipo de desarrollo para que el proyecto se pueda presentar a todos y las preguntas específicas sobre el cliente y el proyecto se puedan plantear en un entorno colaborativo.

Tengamos en cuenta que este proceso puede durar entre un par de días a semanas, por lo que no existe una lista de pasos para establecer el mejor proceso, es aquí donde cada aplicación, idea y equipo son únicos y el proceso debe poder adaptarse a sus necesidades en ese momento.
No obstante, en Huenei IT Services nos enfocamos en desarrollar los mejores productos para tu compañía, por ello, compartimos los siguientes pasos que podrían ayudarte a crear tu proceso de Discovery de software:

1. Descubre el propósito del desarrollo de software
Esta primera actividad se centra en el “por qué”.
Al comenzar la fase de desarrollo de producto digital, nos preguntamos cuál es el objetivo final del proyecto. No podemos construir un gran producto si no sabemos por qué lo estamos construyendo en primer lugar. Al comprender las expectativas de todos, descubrimos las motivaciones y el contexto necesarios para tomar decisiones enfocadas durante la ejecución del proyecto.

2. Ten una visión general del negocio
El siguiente paso consiste en analizar el modelo comercial de la aplicación y comprender la empresa que la respalda.
Consideramos que este es un momento fundamental para comprender cómo surgió esta idea de aplicación, cómo es la empresa y cómo este producto ayudará a que la empresa crezca.

3. Define las métricas
La pregunta principal de este tercer paso es cómo medir el éxito del producto una vez desarrollado.
Al establecer una línea de tiempo, la idea es identificar hitos y criterios para evaluar el éxito del producto.
Las metodologías de establecimiento de objetivos son excelentes opciones para profundizar la discusión.

4. Establece las restricciones
En esta etapa, la conversación se vuelve más realista. Ahora todos sabemos que no existen los recursos ilimitados y eso muestra un panorama donde cada proyecto tiene sus limitaciones, como una inversión restringida o una fecha de lanzamiento cercana.
Por eso creemos que es importante saber qué restricciones son las más importantes y con cuáles podemos ser más flexibles.

5. Identifica riesgos
Continuando, nuestro objetivo aquí es identificar los riesgos por los que vale la pena preocuparse, para que podamos enfocarnos en aquellos que no están fuera de nuestras manos.
Tan importante como enumerar las cosas que podrían salir mal en el proyecto es reconocer que podemos manejar algunos riesgos, pero no todos, cuáles son y cuáles podrían ser un punto de fuga de recursos, incluyendo el recurso del tiempo.

6. Comprender las necesidades de los usuarios
Las preguntas de este paso están relacionadas con los usuarios finales de la aplicación: ¿Quiénes son? Al conversar sobre nuestro usuario ideal y cómo es esta persona, podemos enumerar cómo imaginamos que interactuará con el software.
Este proceso es una gran instancia para que el equipo proponga una interfaz de usuario (UI) que sea adecuada para esos usuarios.

7. Establece procesos y acuerdos laborales
Ahora es el momento de definir cómo funcionará el flujo del proceso de desarrollo de software.
En esta etapa, el equipo puede acordar una metodología de trabajo, programar puntos de control y otras reuniones, establecer responsabilidades y acuerdos de trabajo para asegurarse de que todo esté claro y listo para comenzar.

8. Finalmente, construye un story map
La técnica de story mapping presentada por Jeff Patton es una forma clara de ver todo el recorrido del usuario que ofrece la aplicación.
En efecto, conocer sobre el Discovery en desarrollo de Software te permitirá establecer un enfoque necesario para un desarrollo eficiente y oportuno, tener claro esto desde comienzo significa lidiar con la abundante incertidumbre al inicio de cualquier proyecto, es por ello que es tan importante la comunicación, la investigación y el análisis para de esa manera, solidificar el objetivo y definir la dirección del proceso de desarrollo de productos, así como descubrir los obstáculos y riesgos.

Conclusión
Un Discovery correctamente planificado y ejecutado es vital no solo para el cliente, sino en la compañía de desarrollo responsable en llevarlo adelante. Esto no solo porque permite cumplir con los tiempos y recursos establecidos, sino que permite identificar todas aquellas necesidades de los usuarios finales y construir un producto/servicio que mejor se ajuste a sus necesidades.

Si querés conocer más sobre nuestras prácticas de desarrollo, te invitamos a visitar nuestra sección de expertise Software Development.

Aspectos técnicos sobre Blockchain

Aspectos técnicos sobre Blockchain

En el artículo anterior: “Introducción a Blockchain Empresarial”, conocimos esta tecnología, sus principales características y bondades, junto a su clasificación y algunos casos de uso consolidados. En esta ocasión, aprenderemos sobre los aspectos técnicos que la conforman y presentaremos brevemente cinco de las principales plataformas disponibles para la implementación de un Blockchain empresarial.

Cadena de bloques
El nombre Blockchain deriva de la estructura de datos, donde un grupo de transacciones son agrupadas en bloques, encadenados de manera secuencial. Sin entrar en los detalles de una implementación particular, cada bloque suele estar compuesto por un índice (1, 2, 3, n), una marca de tiempo (fecha y hora de creación), los datos (transacciones o pequeños programas denominados contratos inteligentes), un campo denominado nonce (number only used once) obtenido a través de consenso, y dos hashes (representación alfanumérica de ancho fijo, que se obtiene de aplicar una función criptográfica), el del bloque anterior y el propio.

El cálculo de un hash es una operación matemática sencilla, que entrega un resultado irrepetible, a partir del cual es imposible reconstruir la información de origen. Gracias a la inclusión del hash previo en el bloque actual, cualquier modificación o eliminación de un bloque, invalida automáticamente a todos los siguientes, de aquí que solo pueden ser agregados.

Red entre pares y consenso
Las redes blockchain son siempre distribuidas, del tipo peer-to-peer (P2P, o entre pares). En las mismas, en lugar de confiar en un servidor central, los equipos están directamente conectados unos con otros. Cada integrante contribuye al poder de cómputo (consumido para generar consenso) y al almacenamiento. Se consideran más seguras que una red centralizada, dado que no hay un punto de ataque único, y además ofrecen tiempo de actividad del 100% (la red permanece funcionando mientras haya miembros conectados).

Las información que se envía para ser agregada a la cadena, está criptográficamente firmada por una clave privada, y va acompañada de la correspondiente clave pública, para que los integrantes de la red puedan verificar su origen. Para consolidarse como un nuevo bloque, las partes deben acordar empleando un protocolo de consenso, el cual asegura que la cadena es la misma en cada nodo y que no hay actores maliciosos manipulando los datos.

Los protocolos de consenso, son mecanismos empleados para que los miembros de una red blockchain se pongan de acuerdo. En redes públicas y abiertas, como Bitcoin y Ethereum, se usan protocolos computacionalmente complejos, siendo uno de los más conocidos Proof-of-work (PoW). Básicamente, se busca que además de ser extremadamente difícil de modificar (hace falta entender al detalle cómo funciona y contar con el control de al menos el 51% de la red), sea totalmente inviable intentarlo (precisa equipamiento especializado, basado en dispositivos tales como GPUs o FPGAs, más el consumo de energía para nada despreciable, requerido para volver a calcular el hash de los bloques).

Contratos Inteligentes
Los Smart Contract, son programas del estilo if…then, que se guardan y son ejecutados por el blockchain. Derivan su nombre de principios legales, y la idea es que de manera segura, evitando un posible actor malicioso humano, a partir de cumplirse ciertas condiciones se ejecuten transacciones automáticas.

Existen algunos lenguajes específicos, como Solidity y Vyper, y otros más generales, como Golang, Node y Java. El soporte varía de plataforma en plataforma, habiendo algunas, por lo general destinadas a criptomoneda, que no los soportan.

Principales plataformas empresariales
La implementación de una blockchain a nivel programa informático, lleva al extremo consideraciones respecto a seguridad, rendimiento y escalabilidad del sistema. Es muy poco probable, y nada recomendable si no es el objetivo crear una nueva alternativa, realizar una codificación desde cero. En su lugar, disponemos de cientos de plataformas libres, una característica destacable dada la seguridad y transparencia que deben brindar, listas para ser implementadas. Si bien muchas están destinadas a criptomonedas, las hay también para su uso empresarial. A continuación daremos una breve descripción de cinco de las plataformas más conocidas con dicha finalidad.

Ethereum: presentada a finales de 2013, y desplegada para su uso entre 2015 y 2016, es una de las alternativas más maduras. Fue de las primeras en separar el concepto blockchain del caso particular de criptomonedas, y quien introdujo el concepto de Contratos Inteligentes. Posee moneda propia, el ETH, y es ideal para la realización de aplicaciones descentralizadas sobre redes públicas, pero también, pese a su falta de permisos, es ampliamente utilizada en ámbitos empresariales. Es respaldada por la Ethereum Enterprise Alliance (EEA, creada en 2017), una organización sin fines de lucro, que cuenta con más de 200 miembros, entre los que se incluyen empresas de las 500 más grandes del mundo, instituciones académicas, start-ups y proveedores de soluciones basadas en Ethereum.

Hyperledger Fabric: Hyperledger es un proyecto de la Linux Foundation lanzado a fines de 2015, que nuclea desarrollos de blockchain empresarial. Su integrante más conocido es Hyperledger Fabric, inicialmente desarrollado, y luego donado, por IBM. Es fuertemente permisionada y privada, al extremo de permitir comunicaciones entre dos integrantes de la red. Por su enfoque empresarial, utiliza protocolos de consenso más ligeros, permitiendo mayor cantidad de operaciones por segundo. Su primera versión para producción, la 1.0, es de mediados de 2017, habiéndose lanzado la 2.0 a principios de 2020.

Ripple: posee su raíces en un proyecto previo a Bitcoin, con lo cual presenta algunas características técnicas distintivas. Surge como plataforma en 2012, principalmente para usos financieros, teniendo a los principales bancos entre sus usuarios. Se basa en el uso de una criptomoneda, el XRP, y a diferencias de las principales plataformas modernas, no cuenta con soporte para Contratos Inteligentes (están siendo agregados a fines del 2020).

Corda: lanzada en 2016 por el consorcio R3, formado principalmente por instituciones financieras. Es permisionada y no posee moneda asociada. Su primer versión estable es de 2017, donde estaba fuertemente enfocada en la banca, aunque con el tiempo fueron surgiendo otros usos.

Quorum: un desarrollo de J.P. Morgan, anunciado en 2016. Básicamente, es una variante de Ethereum enfocada en el mundo empresarial, donde se reemplazó el mecanismo de consenso por uno más veloz y se agregaron permisos. Promediando el 2020 pasó a manos de ConsenSys, un proveedor de soluciones tecnológicas empresariales basadas en Ethereum.

Conclusiones
La estructura de datos, el tipo de red distribuida, el tratamiento criptográfico y la utilización de consenso, confieren a la tecnología las características de inmutabilidad, trazabilidad y seguridad. En cuanto al desarrollo de Contratos Inteligentes, precisa conocimientos específicos sobre la plataforma donde se ejecutará, saber interactuar con su API y acostumbrarse a un nuevo paradigma de programación.

Más allá de las diversas plataformas disponibles, el mundo empresarial parece principalmente distribuido entre Ethereum e Hyperledger Fabric, con la primera más volcado a B2C (Business to Consumer) y la segunda a B2B (Business to Business). Sus principales diferencias radican en si la red es pública y sin permisos, o privada y permisionada. Para decidir sobre una u otra, debe tenerse en cuenta la posible necesidad de consumo de monedas en el primer caso, y que en el segundo caso, basado en el conocimiento acerca de los miembros que pasan a ser entes registrados e identificados en la red, pueden utilizarse protocolos de consenso más ligeros, lo que incrementa la posible cantidad de operaciones por segundo.

Introducción a Blockchain Empresarial

Introducción a Blockchain Empresarial

Bitcoin, la criptomoneda que empezó a operar a comienzos del 2009, es la primera implementación de lo que se conoce como Blockchain: un libro contable digital, distribuido e incorruptible, donde es posible registrar todo lo que sea valioso. Al independizarse como tecnología entre 2013 y 2015 y, gracias al agregado de la ejecución de pequeños programas denominados Contratos inteligentes, surgieron nuevos casos de uso. Alrededor de 2017, aparecieron las versiones privadas permisionadas, pensadas para el ámbito empresarial. En 2020, las principales implementaciones ya se encuentran al menos en su segunda generación, con casos de uso consolidados, varios propuestos y muchos por descubrir.

Si bien el término está en boca de todos, con promesas de revolución en cualquier ámbito, exagerado en más de un caso, está claro que es una tecnología a tener en cuenta y la cual aprovechar. Entre sus principales bondades, se destacan la inmutabilidad (imposibilidad de cambiar la historia de los registros realizados), trazabilidad y seguridad que brinda, lo que permite eliminar intermediarios, acelerando tiempos y reduciendo costos.

Concepto general

Un blockchain es una estructura de datos secuenciales, replicada en una red entre pares, criptográficamente segura, compuestas por bloques que sólo pueden ser agregados a través de consenso entre los integrantes.

El cambio de estado de la red implica la agrupación de datos en unidades conocidas como bloques. Los mismos solo pueden ser agregados, incluyen una marca de tiempo y se validan matemáticamente contra todos los bloques previos. Cualquier intento de eliminación o modificación de un bloque, invalida todos los subsiguientes. De aquí surgen principalmente las características de inmutabilidad y trazabilidad.

Con el uso de una red entre pares, en lugar de confiar en un servidor central propenso a ataques o momentos de inactividad, los miembros pueden comunicarse unos con otros para, entre todos, consensuar matemáticamente el nuevo estado de la red. Este mecanismo y el empleo intensivo de técnicas criptográficas, proveen un grado de seguridad informática nunca antes visto. Además de ser capaces de romper la criptografía, y de precisar controlar al menos el 51% de los miembros de la red, haría falta un poder de cómputo capaz de reconstruir el nuevo estado de la red, características que combinadas hacen inviable e inconveniente cualquier intento de alteración.

Clasificación

Las redes blockchain pueden ser del tipo públicas o privadas, con o sin permisos, donde las principales categorías que se forman son:

  • Pública, no permisionada: cualquiera puede participar y toda la información está abiertamente disponible. Es la opción preferida para la implementación de criptomonedas y aplicaciones distribuidas (donde se provee transparencia y evitan censuras). Son las que utilizan mayor complejidad computacional, y por lo tanto más lentas. No hay un dueño.
  • Pública, permisionada: se verifica la identidad de cada participante para otorgar acceso, pero la información está abiertamente disponible para los participantes. Suele utilizarse en sistemas de votación, e implementarse por consorcio de actores públicos y privados.
  • Privada, permisionada: se verifica y decide quién participa. Suele ser la opción empresarial. El dueño de la implementación es una empresa o un grupo reducido de ellas. Relajan la complejidad matemática, basándose en la cantidad reducida de participantes y sus permisos, por lo que son mucho más veloces. Algunas llegan a la granularidad de crear canales específicos entre dos participantes, sin afectar a la seguridad matemática que la red provee.

Consideraciones

Una blockchain está en el backend de una aplicación, ocupando el lugar de una base de datos tradicional. Dado que su espacio de almacenamiento solo se incrementa, y además se replica en todos los integrantes de la red, se recomienda guardar en la misma solo lo estrictamente necesario y convivir con una base de datos para todo lo demás.

No se necesita Blockchain per sé, sino una solución que derivaría en su uso.

Dos puntos fundamentales para decidir su implementación, es analizar si habrá distintos actores primero, y de ser afirmativo, si más de uno tendrá permiso de escritura. Si no se cumplen ambas condiciones, hay soluciones más sencillas. Una buena razón para su implementación es querer eliminar intermediarios, permitiendo que dos o más partes interactúen basando su confianza en la blockchain. 

Si la confianza no es un problema, el empleo de blockchain no representan ninguna ventaja sobre el de una base de datos.

Casos de Uso

Es posible detectar algunos patrones de uso comunes, entre los que se destacan:

  • Finanzas Descentralizadas (DeFi), a través de una plataforma segura para la realización de pagos de forma optimizada, la ejecución de seguros, etc.
  • Gestión de activos digitales, para el intercambio de todo tipo de bienes entre individuos o entidades, tales como entradas a espectáculos, puntos de programas de fidelidad, inmuebles, etc.
  • Cadenas de suministro, para la trazabilidad completa de cualquier producto, desde el productor hasta el consumidor final, ya sean materias primas, alimentos o medicamentos, en el caso de la Farmacovigilancia. Es común además la utilización de dispositivos IoT (Internet-of-Things) para el registro automatizado en las distintas etapas del flujo.
  • Gobernanza, con la implementación de sistemas de Identidad Ciudadana, votación, presupuestos y licitaciones públicas para aumentar la eficacia, calidad y transparencia del Estado.
  • Manejo de la Propiedad Intelectual, creando un registro con fecha, hora y autoría como prueba fehaciente que certifique esos datos.
  • Información certificada de todo tipo, asegurando su veracidad, por ejemplo: Títulos Universitarios.
  • Compartición de datos de forma segura, centralizando la información y permitiendo brindar acceso a ella a quienes la necesiten, por ejemplo, historias clínicas o investigaciones.

Conclusiones

Blockchain, como concepto, es relativamente nuevo, con su primera implementación (Bitcoin) en 2009, su apertura a otros usos en 2015, versiones empresariales surgidas en 2017 y múltiples pruebas de concepto en 2020. No obstante, se trata de la unión de múltiples tecnologías que han existido por largo tiempo, combinadas de forma creativa en una plataforma con usos disruptivos.

Hay quienes consideran que escuchar la palabra Blockchain en la actualidad, es como escuchar Internet a mediados de los 90, y nos invitan a pensar como la misma transformó el mundo en que vivimos para los negocios, comercios, comunicaciones y multimedia. De hecho, muchas veces se compara a las redes blockchain públicas con internet, mientras que las redes privadas serían más bien el sinónimo de intranet.  

Sin necesidad de tener certezas sobre el futuro, resulta evidente que se trata de una herramienta a conocer, dominar y utilizar. No solo aporta valor y seguridad en casos de uso conocidos, sino que también abre la puerta a nuevas oportunidades. Además, en el mundo globalizado en el que vivimos, es cuestión de tiempo para que sumarse a una red existente exija su empleo. Desde Huenei, podemos ayudar a su negocio, ofreciendo servicios de Consultoría, Diseño de la arquitectura de la red y Desarrollo de Aplicaciones, acompañando desde el planeamiento y definición de requerimientos, hasta la puesta en marcha del proyecto final.

Buenas prácticas sobre DevOps

Buenas prácticas sobre DevOps

En nuestro artículo anterior, “Puntos clave sobre DevOps” conversamos sobre qué es DevOps y cómo puede ayudarte a optimizar elementos clave en tu empresa, como acortar tiempos de lanzamiento, acelerar la realización de nuevos productos y servicios y reducir costos. En este artículo conoceremos más sobre unas buenas prácticas para empezar a implementar esto a la brevedad posible.

Haciendo un breve repaso, DevOps se refiere a las palabras ‘Desarrollo’ y ‘Operaciones’, se trata de una disciplina que, a pesar de ser relativamente reciente, ha permitido que muchas empresas y organizaciones puedan replantear sus procesos por otros más eficientes y ágiles, logrando aumentar su competitividad y eficiencia.

Buenas prácticas sobre DevOps
A ciencia cierta, existen incontables beneficios sobre la implementación de esta metodología, teniendo en cuenta que esta no implica una mejora en lo que respecta la tecnología o productividad en sí misma, sino que permite agilizar el nivel de comunicación y colaboración entre los departamentos para óptimas ejecuciones de operaciones, tiempo y calidad de entrega.

Adoptar este nuevo proceso no ocurre de la noche a la mañana, y los resultados esperados podrían verse afectados negativamente si la empresa realiza una implementación ineficaz.

En Huenei usamos esta metodología para aumentar la efectividad de nuestros equipos de desarrollo de software, así como en mejorar la calidad de las constantes entregas en Software a Medida, Aplicaciones Móviles, involucrándola en los procesos de Testing & QA y UX/UI. Por lo que recomendamos seguir estas prácticas:

1 – Proceso continuo de integración (PCI)
Este proceso se sustenta fuertemente en las metodologías ágiles, su principio es el de reducir los tiempos de implementación y despliegue (deployment), logrando en dividir en más partes un proyecto, realizando entregas paulatinas.

¿En qué podrían ayudar? Como el equipo de desarrolladores constantemente revisa los cambios en el código del repositorio, pueden detectar más rápidamente cualquier tipo de falla e incluso, mejorar constantemente la ejecución de la operación. Son estos hallazgos tempranos en el ciclo de vida del software los que ayudarán al departamento de desarrollo a resolver problemas casi en el acto (e incluso, prevenirlos).

2 – Entrega continua
Podría decirse que este paso acompaña al anterior, ya que, al comenzar con el desarrollo, la construcción, las pruebas unitarias, el análisis de código estático y las pruebas de seguridad del análisis estático en el PCI, promueve una automatización de pruebas funcionales, de integración, de rendimiento y de seguridad, junto con la administración y la implementación de la configuración.

Como estas últimas son áreas críticas para la automatización y, en un contexto de DevOps, son esenciales, es un tipo de práctica que aumenta la cantidad de pruebas y verificaciones en las distintas etapas en ciclos manuales y automatizados del código.

Además de permitir a un equipo el construir, testear y lanzar la base de código de una forma rápida y con mayor frecuencia, que al dividirlo en ciclos de menor tamaño y duración, acelera los procesos de las organizaciones, permitiendo que puedan realizar más lanzamientos, reducir despliegues manuales y disminuir los riesgos de fallas en producción.

3 – Gestión en la comunicación
Elemento clave en la gestión DevOps, ya que tiene como foco el mantener informada a todas las partes interesadas relacionadas con el desarrollo, la operación y la implementación, teniendo en cuenta de que estamos integrando las tareas de distintos departamentos. Por ende, la comunicación es imprescindible y se vuelve un elemento fundamental para una total adopción, manteniendo a todos en la misma página para involucrarlos en todo el proceso, estar al día con la organización y evitar dudas entre ellas o los productos finales.

Para aplicar la estrategia correctamente, es vital mantener a todos los equipos y miembros al tanto, de esa forma se garantiza que los líderes de la organización (desde los departamentos de ventas, producción y gerencia) se puedan involucrar en los proceso y guíen al equipo de desarrollo a realizar los cambios exitosos, desde sus perspectivas y conocimientos.

4 – Automatización de pruebas
En el desarrollo de software, la realización de pruebas periódicas es imprescindible para crear código de calidad, lo cual es algo vital para implementarlo en una gestión de DevOps, no solo porque se ahorra tiempo al realizar rápidamente tareas tediosas y lentas, sino porque permite identificar rápidamente fallas tempranas en los procesos previos al despliegue.

Este es en sí el núcleo de la agilidad y la innovación, ya que el tiempo adicional que tendrán los miembros del equipo puede ser invertido en tareas de mayor valor agregado o en monitorear los resultados de los nuevos procesos, identificando fallas y oportunidades de mejora.

5 – Monitoreo continuo
Como todo cambio cultural y de procesos de trabajo, este requiere un monitoreo cercano y continuo para prever e identificar que todas las acciones se estén realizando correctamente y que el desempeño es el esperado.

La entrega continua de los comentarios de todos los miembros de la organización en tiempo real es vital para la organización; desde el equipo de producción que ejecutar la aplicación hasta el cliente final en la etapa de lanzamiento oficial. De esta manera, logramos que el desarrollador pueda beneficiarse de todos los comentarios valiosos sobre la experiencia del usuario final en el proceso y a su vez, modificar el código para cumplir con las expectativas del usuario final.

Conclusiones
Con un entorno empresarial en constante evolución y un panorama tecnológico en continua mejora y crecimiento, las organizaciones deben buscar mantenerse a la vanguardia, con DevOps pueden aumentar la velocidad y la calidad de las implementaciones de software al mejorar la comunicación y la colaboración entre las partes interesadas.

En sí, estas buenas prácticas permiten crear una guía clara para orientar a cualquier compañía, de cualquier tamaño e industria, a sumergirse en el cambio cultural necesario, logrando aumentar la productividad y eficiencia a través de entregas de alta calidad, sumando transparencia a sus procesos y colaboración abierta a través de equipos de desarrollo y operaciones.

Si querés conocer más sobre nuestros procesos, te invitamos a visitar nuestra página sobre Software Development.