Construyendo un buen caso de uso de blockchain desde cero

Construyendo un buen caso de uso de blockchain desde cero

Para aquellos que todavía no están familiarizados con los principios básicos de cómo funcionan las blockchains, recomiendo leer el artículo ” Blockchains, Cryptocurrencies & the New Decentralized Economy: Part 1 – A Gentle Introduction ” escrito por Blockchain en Ashley Lannquist de Berkeley el año pasado.

Para aquellos que están familiarizados con el tema, podemos comenzar a bucear en las capacidades básicas de blockchains que se pueden aplicar para crear casos de uso significativos.

Marco de tecnología de Ledger distribuido

Con la tecnología ledger distribuida (como blockchain), los usuarios pueden crear entornos de bases de datos donde múltiples usuarios desconfiados mutuamente pueden intercambiar valores o anexar registros sin un coordinador central.

Al combinar los conceptos de la criptografía y la teoría de juegos, las cadenas de bloques eliminan la necesidad de confianza en un sistema, lo que garantiza que los usuarios puedan interactuar de forma transparente con una menor dependencia de las autoridades de terceros.

Esta “descentralización” inherente de los sistemas blockchain es importante, ya que elimina los efectos negativos de los puntos centrales de falla: brechas en la seguridad, tiempo de inactividad de la red o interrupciones en la red. Además, siempre que las garantías de seguridad y vitalidad estén intactas, las cadenas de bloques eliminarán las redes de censura de transacciones o acciones maliciosas de actores poco confiables.

Estos sistemas contables distribuidos ya se han implementado con éxito en campos como “Finanzas” o “Solución de disputas”, donde históricamente las partes que realizan transacciones han tenido que confiar en una autoridad central para supervisar los datos de las transacciones y garantizar que se cumplan los acuerdos anteriores.

Empresas como Hyperledger han creado blockchains de empresas privadas diseñadas para descentralizar estos ecosistemas de transacciones, respaldando las transacciones comerciales globales de las principales compañías tecnológicas, financieras y de la cadena de suministro. Es importante tener en cuenta que estas implementaciones son usos excepcionales, no ordinarios, de la tecnología blockchain, como lo demuestra el hecho de que el 92% de los proyectos basados ​​en blockchain han fallado hasta la fecha.

A continuación se muestra un diagrama de flujo que actúa como una lista de verificación para aquellos que buscan implementar una solución de cadena de bloques, así como un esquema sobre los pasos que debemos considerar antes de dar el salto hacia la Tecnología de Led Distribuido (DLT).

Una lista de verificación al decidir sobre un caso de uso de blockchain

1. Base de datos

En primer lugar, cuando intentamos establecer un caso de uso de blockchain, debemos preguntarnos si poseemos una base de datos que sea fundamentalmente segura en todos los puntos finales .

Si intentamos implementar una cadena de bloques en un sistema que es susceptible de alteración o alteración del mundo exterior, perdemos la capacidad de tener cosas como desconfianza y descentralización en nuestro sistema, lo que resulta en un caso de uso de cadena de bloques relativamente limitado.

Un ejemplo de este tipo de problema se puede ver en casos de uso como “Blood Diamond Tracking”, donde las empresas utilizan blockchains para rastrear el flujo de diamantes legales a lo largo de una cadena de suministro desde los productores hasta los consumidores. Aunque una cadena de bloques puede ser una buena solución para rastrear las transacciones asociadas con ese diamante, la solución todavía deposita una gran confianza en los empleados o nodos que están ingresando estos diamantes en el sistema blockchain. En este caso, el “punto final de la base de datos” no es seguro, lo que genera problemas de confianza que plagan el caso de uso de blockchain.

2. Transactores

La siguiente pregunta más importante que debe hacerse antes de utilizar un blockchain es si habrá o no habrá varias partes coordinando acciones en nuestra base de datos .

Si nuestra base de datos no requiere coordinación entre un gran número de partes interesadas y puede funcionar con el uso de un “escritor” clave, entonces deberíamos utilizar una base de datos centralizada. Las cadenas de bloques son, por naturaleza, “tecnología de contabilidad distribuida” y, si no es necesario “distribuir” la propiedad de la base de datos, entonces deberíamos utilizar una estructura de datos diferente.

Este punto, tan simple como es, a menudo se olvida en el proceso de construcción de un caso de uso de blockchain de calidad. En realidad, el software centralizado como Oracle Database o MySQL tiene infraestructuras de transacciones mucho más robustas que los sistemas blockchain descentralizados existentes, lo que significa que solo deberíamos usar DLT si la descentralización es absolutamente necesaria para nuestro proyecto.

Un caso de centralización

Un ejemplo clásico de dónde la centralización tiende a tener más sentido es el caso de uso de gigantes tecnológicos existentes como Facebook o Google, que administran Exabytes de datos de usuario.

Aunque sería bueno para Google poder descentralizar sus transacciones de usuarios, un caso de uso de blockchain no tiene sentido. Esto se debe a que es mucho más fácil rastrear la información en un sistema centralizado, donde toda la información pasa por un único punto.

Los sistemas centralizados son fundamentalmente capaces de tener una integración interna mucho más cohesionada que los sistemas descentralizados, y como resultado, es mucho más probable que capitalicen cosas como las economías de escala que los DLT. De hecho, los productos de Google, como Gmail, solo pueden tener características como “filtros inteligentes de correo no deseado” porque Google puede ver fácilmente casi todos los correos electrónicos.

3. Confianza

Después de determinar si la centralización es o no importante para su caso de uso, es crucial preguntar en quién debemos confiar para que este sistema funcione y qué sucedería en el resultado en el que se infringe la confianza.

En cualquier sistema centralizado, la acción maliciosa puede tomar forma en una variedad de formas. Una autoridad central no solo puede tratar de editar las transacciones existentes, sino que también puede retener información, informar transacciones inconsistentes a través de la red o censurar a los usuarios para que no accedan a transacciones específicas. Si hay algún incentivo para que una autoridad central tome estas medidas en nuestro sistema existente, al menos debemos considerar implementar una medida de seguridad como blockchain en nuestro caso de uso.

Si la confianza entre los usuarios no es un problema importante,entonces uno simplemente puede utilizar una base de datos distribuida, en la que cada usuario mantiene una copia de la base de datos y puede editar y actualizar el estado de la base de datos como lo desee. Esto es mucho más fácil de implementar, ya que las características de seguridad de blockchain como “Tolerancia de falla bizantina” (resistencia a la alteración y la inconsistencia) no tendrán que ser consideradas.

Foto de Samson Duborg-Rankin en  Unsplash

También es importante tener en cuenta que hay formas de utilizar los sistemas blockchain que combinan conceptos de bases de datos centralizadas, bases de datos distribuidas y tecnologías ledger distribuidas.

Las ” Blockchains autorizadas ” son un ejemplo de este matrimonio de conceptos, que combina la autorización centralizada de usuarios con un ecosistema de transacción blockchain descentralizado.

Al tener la capacidad de controlar a los usuarios permitidos en la red blockchain, podemos disminuir la probabilidad de acción maliciosa y aumentar el control sobre lo que el sistema está tratando de administrar, creando un sistema que no requiere tanta tolerancia a fallas, seguridad, y mantenimiento como una tradicional cadena de bloques “Pública”.

La desventaja de esta estructura de cadena de bloques es que es mucho menos “insegura” que las cadenas de bloques públicas, ya que los usuarios aún tienen que depositar su confianza en la autoridad que otorga los permisos, así como en el mecanismo de consenso que utiliza el sistema.

El Quorum de JP Morgan es un gran ejemplo de un caso de uso de blockchain permitido, ya que han creado un producto que habilita a la industria financiera con transacciones de alta velocidad (de docenas a cientos por segundo) al aprovechar la menor necesidad de BFT que realiza transacciones entre el conjunto permitido de usuarios lo permite .

4. Desintermediación

Antes de embarcarse en un caso de uso de blockchain, es también importante determinar si la desintermediación es necesaria para nuestro sistema de transacción.

Si nuestra solución pre-blockchain está sujeta a grandes tarifas de intermediarios o demoras en la confirmación, las blockchains son una opción natural para agilizar este proceso, reduciendo los costos para todos los usuarios.

Si la desintermediación no es esencial para nuestro sistema de transacción, es mucho más fácil asignar la tarea de verificar las transacciones a un intermediario o autoridad central, eliminando la necesidad de validadores distribuidos en la red blockchain.

Un gran ejemplo de un caso de uso que utiliza desintermediación en este momento es slock.it , que ha construido un negocio digital en torno al concepto de crear contratos inteligentes para dispositivos IOT individualizados, eliminando la necesidad de intervención o ajuste humano. Con la tecnología de slock.it, cualquier dispositivo IOT puede tener su propia identidad y puede entrar en acuerdos complejos (incluido el acuerdo para recibir pagos), todo sin usar intermediarios.

5. Dependencia de transacciones

La última pregunta que debemos hacernos antes de implementar un caso de uso de blockchain es si nuestras transacciones dependen una de la otra o no.

La dependencia de transacción es una característica que se puede ver en todo tipo de sistemas de bases de datos, particularmente en sistemas multiusuario que involucran a numerosas partes o sistemas que implican el intercambio de activos o bienes (como bienes raíces o comercio minorista, por ejemplo).

Si nuestras transacciones no necesitan interactuar entre sí, es mucho más efectivo utilizar una estructura de base de datos “maestro / esclavo”, en la que un nodo “maestro” actúa como el campeón de la validación y aprobación de un cierto subconjunto de transacciones que ” esclavos “nodos hacen el trabajo de llevar a cabo.

Si nuestras transacciones dependen unas de las otras, resulta bastante difícil determinar cómo distribuir las transacciones correspondientes entre los nodos maestros, lo que da como resultado la necesidad de algo así como una cadena de bloques para alterar el estado colectivo de la base de datos.

Blockchains también ofrece atomicidad (la capacidad de evitar actualizaciones parciales a una base de datos) a sus usuarios, asegurando que las transacciones que son contingentes entre sí se ejecutarán inmediatamente sin la posibilidad de cancelación o alteración en el intercambio. Esto asegura que no se creará ni destruirá riqueza como resultado de ninguna estructura de transacción complicada en el sistema.

Resumen

¡Felicidades, ahora estamos en camino de construir un caso de uso adecuado! A pesar del tono contrario de este artículo, en realidad existen numerosas aplicaciones de las tecnologías de blockchain que pueden afectar mucho los sistemas de transacción existentes para mejor. Sin embargo, antes de convertirse en una de estas aplicaciones, es importante que nos preguntemos qué necesita nuestro caso de uso antes de decidir sobre blockchain como la solución adecuada.

Si somos capaces de progresar nuestro camino por el diagrama de flujo arriba en la foto estamos en el camino correcto para tener un caso blockchain uso de sonido, lo que aumenta nuestra probabilidad de convertirse en uno de los 8%de los proyectos blockchain que será capaz de soportar la prueba de tiempo.