Evitar el proyecto de blockchain sin sentido

Cómo determinar si ha encontrado un caso de uso real de blockchain

Las cadenas de bloques están sobrevaloradas. Ahí lo dije. De Sibos a moneyxnumx / 20 para cubrir historias de The Economist y Euromoney, todo el mundo parece estar subiendo a bordo del vagón blockchain. Y sin duda, al igual que otros en el espacio, estamos viendo un número cada vez mayor de empresas que crean pruebas de concepto en nuestra plataforma y / o pidiendo nuestra ayuda.

Como una startup joven, pensarías que estaríamos en la luna. Seguramente ahora es el momento de recaudar un montón de dinero y construir esa plataforma blockchain de próxima generación de alto rendimiento que ya hemos diseñado. ¿Qué diablos estamos esperando?

Te diré que. Estamos esperando obtener una comprensión más clara de dónde están las cadenas de bloques verdaderamente agregar valor en la TI empresarial. Verá, una gran proporción de estos proyectos entrantes nada que ver con blockchains en absoluto. Así es como se desarrolla. Las grandes empresas escuchan que las cadenas de bloques son la próxima gran novedad. Las grandes empresas encuentran internamente a algunas personas interesadas en el tema. La gran empresa les da un presupuesto y les dice que hagan algo en cadena. Muy pronto vienen a llamar a nuestra puerta, agitando billetes de un dólar, preguntando us para ayudar ellos Piense en un caso de uso. ¿Que dices ahora?

En cuanto a los que sí tienen un proyecto en mente, ¿cuál es el problema? En muchos casos, el proyecto se puede implementar perfectamente bien. usando una base de datos relacional regular. Ya sabes, grandes gigantes de hierro como Oracle y SQL Server, o para los más abiertos, MySQL y Postgres. Así que déjame empezar por aclarar las cosas:

Si las bases de datos relacionales actuales cumplen sus requisitos, sería una locura usar una cadena de bloques.

¿Por qué? Porque productos como Oracle y MySQL tienen décadas de desarrollo detrás de ellos. Se han implementado en millones de servidores que ejecutan billones de consultas. Contienen algunos de los códigos más exhaustivamente probados, depurados y optimizados del planeta, procesando miles de transacciones por segundo sin sudar.

¿Y las blockchains? Bien, nuestro producto fue uno de los primeros en comercializar y ha estado disponible exactamente durante 5 meses, con unos pocos miles de descargas. De hecho, es extremadamente estable, porque lo construimos Bitcoin Core, el software que impulsa bitcoin. Pero aun así, toda esta categoría de productos todavía está en sus pañales.

Entonces, ¿estoy diciendo que las cadenas de bloques son inútiles? Absolutamente no. Pero antes de embarcarse en ese brillante proyecto de blockchain, debe tener una idea muy clara de por qué estás usando una cadena de bloques. Hay un montón de condiciones que deben cumplirse. Y si no es así, debería volver a la mesa de dibujo. Quizás puedas definir mejor el proyecto. O tal vez puedas ahorrarles a todos un montón de tiempo y dinero, porque no necesitas una cadena de bloques en absoluto.

1. La base de datos

Esta es la primera regla. Las cadenas de bloques son una tecnología para bases de datos compartidas. Por lo tanto, debe comenzar por saber por qué está utilizando una base de datos, con lo que me refiero a un depósito estructurado de información. Esto puede ser un tradicional base de datos relacional, que contiene una o más tablas similares a hojas de cálculo. O puede ser el más moderno NoSQL variedad, que funciona más como un sistema de archivos o diccionario. (En un nivel teórico, las bases de datos NoSQL son solo un subconjunto de las bases de datos relacionales de todos modos).

Un libro mayor de activos financieros se puede expresar naturalmente como una tabla de base de datos en la que cada fila representa un tipo de activo propiedad de una entidad en particular. Cada fila tiene tres columnas que contienen: (a) el identificador del propietario, como un número de cuenta, (b) un identificador para el tipo de activo, como "USD" o "AAPL", y (c) la cantidad de ese activo en poder de ese propietario.

Las bases de datos se modifican a través de "transacciones" que representan un conjunto de cambios en la base de datos que deben ser aceptados o rechazados en su conjunto. Por ejemplo, en el caso de un libro mayor de activos, un pago de un usuario a otro se representa mediante una transacción que deduce la cantidad adecuada de una fila y la agrega a otra.

2. Varios escritores

Este es fácil. Las cadenas de bloques son una tecnología para bases de datos con varios escritores. En otras palabras, debe haber más de una entidad que genere las transacciones que modifican la base de datos. ¿Sabes quiénes son estos escritores?

En la mayoría de los casos, los escritores también ejecutarán "nodos" que contienen una copia de la base de datos y transmiten transacciones a otros nodos en un peer-to-peer Moda. Sin embargo, las transacciones también pueden ser creadas por usuarios que no estén ejecutando un nodo. Considere, por ejemplo, un sistema de pagos que es mantenido colectivamente por un pequeño grupo de bancos pero tiene millones de usuarios finales en dispositivos móviles, comunicándose solo con los sistemas de su propio banco.

3. Ausencia de confianza

Y ahora la tercera regla. Si varias entidades están escribiendo en la base de datos, también debe haber algún grado de desconfianza entre esas entidades. En otras palabras, las cadenas de bloques son una tecnología para bases de datos con varios escritores que no confían.

Podría pensar que la desconfianza solo surge entre organizaciones separadas, como los bancos que operan en un mercado o las empresas involucradas en una cadena de suministro. Pero también puede existir dentro de una sola gran organización, por ejemplo, entre departamentos o las operaciones en diferentes países.

¿A qué me refiero específicamente con desconfianza? Quiero decir que un usuario no está dispuesto a dejar que otro modifique las entradas de la base de datos que "posee". De manera similar, cuando se trata de leer el contenido de la base de datos, un usuario no aceptará como evangelio la “verdad” informada por otro usuario, porque cada uno tiene diferentes incentivos económicos o políticos.

4. Desintermediación

Entonces, el problema, tal como se ha definido hasta ahora, es habilitar una base de datos con varios escritores que no confían. Y ya existe una solución conocida a este problema: el intermediario de confianza. Es decir, alguien en quien todos los escritores confían, incluso si no confían plenamente entre ellos. De hecho, el mundo está lleno de bases de datos de esta naturaleza, como el libro mayor de cuentas de un banco. Tu banco controla la base de datos y garantiza que cada transacción sea válida y esté autorizada por el cliente cuyos fondos mueve. No importa cuán educadamente lo pregunte, su banco nunca le permitirá modificar su base de datos directamente.

Las cadenas de bloques eliminan la necesidad de intermediarios confiables al permitir bases de datos con varios escritores no confiables para ser modificados directamente. No se requiere ningún guardián central para verificar las transacciones y autenticar su fuente. En cambio, la definición de transacción se amplía para incluir una prueba de autorización y una prueba de validez. Por tanto, las transacciones pueden ser verificado y procesado independientemente por cada nodo que mantiene una copia de la base de datos.

Pero la pregunta que debes hacer es: ¿Quieres o necesitas esta desintermediación? Dado su caso de uso, ¿hay algo de malo en tener una parte central que mantenga una base de datos autorizada y actúe como el guardián de las transacciones? Las buenas razones para preferir una base de datos basada en blockchain sobre un intermediario confiable pueden incluir costos más bajos, transacciones más rápidas, automáticas reconciliación, nueva regulación o simple incapacidad para encontrar un intermediario adecuado.

5. Interacción de transacciones

Por lo tanto, las cadenas de bloques tienen sentido para las bases de datos que comparten varios escritores que no confían completamente entre sí y que modifican esa base de datos directamente. Pero eso todavía no es suficiente. Las cadenas de bloques realmente brillan donde hay algo interacción entre las transacciones creado por estos escritores.

¿Qué quiero decir con interacción? En el sentido más amplio, esto significa que las transacciones creadas por diferentes escritores a menudo dependen unas de otras. Por ejemplo, digamos que Alice le envía algunos fondos a Bob y luego Bob le envía algunos a Charlie. En este caso, la transacción de Bob depende de la de Alice, y no hay forma de verificar la transacción de Bob sin verificar primero la de Alice. Debido a esta dependencia, las transacciones naturalmente pertenecen juntas en un base de datos compartida única.

Llevando esto más allá, una buena característica de las cadenas de bloques es que se pueden crear transacciones en colaboración por varios escritores, sin que ninguna de las partes se exponga a riesgos. Esto es lo que permite entrega versus pago La liquidación se realizará de forma segura a través de una cadena de bloques, sin necesidad de un intermediario de confianza.

También se puede presentar un buen caso para situaciones en las que las transacciones de diferentes escritores se correlacionan entre sí, incluso si siguen siendo independientes. Un ejemplo podría ser una base de datos de identidad compartida en la que múltiples entidades validan diferentes aspectos de las identidades de los consumidores. Aunque cada una de estas certificaciones es independiente, la cadena de bloques proporciona una forma útil de reunir todo de una manera unificada.

6. Establece las reglas

Esto no es realmente una condición, sino una consecuencia inevitable de los puntos anteriores. Si tenemos una base de datos modificada directamente por varios escritores, y esos escritores no confían plenamente entre sí, entonces la base de datos debe contener reglas integradas restringir las transacciones realizadas.

Estas reglas son fundamentalmente diferentes de las restricciones que aparecen en las bases de datos tradicionales, porque se relacionan con la legitimidad de las transformaciones en lugar del estado de la base de datos en un momento determinado. Cada transacción es verificada con estas reglas por cada nodo en la red, y aquellas que fallan son rechazadas y no retransmitidas.

Los libros de contabilidad de activos contienen un ejemplo simple de este tipo de regla, para evitar que las transacciones creen activos de la nada. La regla establece que la cantidad total de cada activo en el libro mayor debe ser la misma antes y después de cada transacción.

7. Elija sus validadores

Hasta ahora hemos descrito una base de datos distribuida en la que las transacciones pueden originarse en muchos lugares, propagarse entre nodos de forma peer-to-peer y son verificadas por cada nodo de forma independiente. Entonces, ¿dónde entra una "cadena de bloques"? Bueno, el trabajo de una cadena de bloques es ser el registro de transacciones final autorizado, en cuyo contenido todos los nodos están de acuerdo.

¿Por qué necesitamos este registro? Primero, permite a los nodos recién agregados calcular el contenido de la base de datos desde cero, sin necesidad de confiar en otro nodo. En segundo lugar, aborda la posibilidad de que algunos nodos pierdan algunas transacciones debido al tiempo de inactividad del sistema o una falla de comunicación. Sin un registro de transacciones, esto haría que la base de datos de un nodo difiera de la de los demás, socavando el objetivo de una base de datos compartida.

En tercer lugar, es posible que dos transacciones estén en conflicto, por lo que solo se puede aceptar una. Un ejemplo clásico es un doble gasto en el que el mismo activo se envía a dos destinatarios diferentes. En una base de datos peer-to-peer sin autoridad central, los nodos pueden tener diferentes opiniones sobre qué transacción aceptar, porque hay sin respuesta objetiva correcta. Al exigir que las transacciones se "confirmen" en una cadena de bloques, nos aseguramos de que todos los nodos converjan en la misma decisión.

Finalmente en Ethereum-estilo blockchains, el preciso pedido de transacciones juega un papel crucial, porque cada transacción puede afectar lo que sucede en todos los siguientes. En este caso, la cadena de bloques actúa para definir la cronología autorizada, sin la cual las transacciones no se pueden procesar en absoluto.

Una cadena de bloques es literalmente una cadena de bloques, en la que cada bloque contiene un conjunto de transacciones que se confirman como grupo. Pero, ¿quién es el responsable de elegir las transacciones que entran en cada bloque? En el tipo de "cadena de bloques privada" que es adecuada para aplicaciones empresariales, la respuesta es un grupo cerrado de validadores ("mineros") que firman digitalmente los bloques que crean. Esta lista blanca se combina con algún tipo de esquema de consenso distribuido para evitar que una minoría de validadores tome el control de la cadena. Por ejemplo, MultiChain usa un esquema llamado diversidad minera, en el que los mineros autorizados trabajan en una round-robin moda, con cierto grado de indulgencia para permitir nodos que no funcionen.

No importa qué esquema de consenso se utilice, los nodos de validación tienen mucho menos poder que el propietario de una base de datos centralizada tradicional. Los validadores no pueden falsificar transacciones o modificar la base de datos en violación de sus reglas. En un libro mayor de activos, eso significa que no pueden gastar el dinero de otras personas ni cambiar la cantidad total de activos representados. No obstante, todavía hay dos formas en las que los validadores pueden influir indebidamente en el contenido de una base de datos:

  • Censura de transacciones. Si suficientes validadores se confabulan maliciosamente, pueden evitar que se confirme una transacción en particular en la cadena de bloques, dejándola permanentemente en el limbo.
  • Resolución de conflictos sesgada. Si dos transacciones entran en conflicto, el validador que crea el siguiente bloque decide qué transacción se confirma en la cadena de bloques, lo que hace que la otra sea rechazada. La elección justa sería la transacción que se vio primero, pero los validadores pueden elegir basándose en otros factores sin revelar esto.

Debido a estos problemas, al implementar una base de datos basada en blockchain, debe tener una idea clara de quiénes son sus validadores y por qué confía en ellos, colectivamente si no solo. Dependiendo del caso de uso, los validadores pueden elegirse como: (a) uno o más nodos controlados por una sola organización, (b) un grupo central de organizaciones que mantienen la cadena, o (c) todos los nodos de la red.

8. Respalde sus activos

Si ha llegado hasta aquí, es posible que haya notado que tiendo a referirme a blockchains como bases de datos compartidas, en lugar de los más comunes "libros de contabilidad compartidos". ¿Por qué? Porque, como tecnología, las cadenas de bloques se pueden aplicar a problemas mucho más allá del seguimiento de la propiedad de los activos. Cualquier base de datos que tenga varios escritores no confiables se puede implementar en una cadena de bloques, sin requerir un intermediario central. Los ejemplos incluyen calendarios compartidos, colaboración estilo wiki y foros de discusión.

Dicho esto, por ahora parece que las cadenas de bloques son de interés principalmente para quienes rastrean el movimiento y el intercambio de activos financieros. Puedo pensar en dos razones para esto: (a) el sector financiero está respondiendo a la (en retrospectiva, minúscula) amenaza de las criptomonedas como bitcoin, y (b) un libro mayor de activos es el ejemplo más simple y natural de una base de datos compartida con transacciones interdependientes creadas por múltiples entidades no confiables.

Si desea utilizar una cadena de bloques como un libro mayor de activos, debe responder una pregunta crucial adicional: ¿Cuál es la naturaleza de los activos que se mueven? Con esto no me refiero solo a efectivo, bonos o conocimientos de embarque, aunque, por supuesto, eso también es importante. La pregunta es más bien: ¿Quién está detrás de los activos representados en la cadena de bloques? Si la base de datos dice que tengo 10 unidades de algo, ¿quién me permitirá reclamar esas 10 unidades? en el mundo real? ¿A quién debo demandar si no puedo convertir lo que está escrito en la cadena de bloques en activos físicos tradicionales? (Mira esto acuerdo de activos para un ejemplo.)

La respuesta, por supuesto, variará según el caso de uso. Para los activos monetarios, uno puede imaginar que los bancos custodios acepten efectivo en forma tradicional y luego acrediten las cuentas de los depositantes en un libro mayor distribuido impulsado por blockchain. En la financiación del comercio, las cartas de crédito y los conocimientos de embarque estarían respaldados por el banco del importador y la compañía naviera, respectivamente. Y más adelante en el futuro, podemos imaginar un momento en que el emisión primaria de los bonos corporativos se lleva a cabo directamente en una cadena de bloques por la empresa que busca recaudar fondos.

Conclusión

Como mencioné en la introducción, si su proyecto no cumple cada una de estas condiciones, no deberías usar una cadena de bloques. En ausencia de cualquiera de los primeros cinco, debe considerar uno de: (a) almacenamiento regular de archivos, (b) una base de datos centralizada, (c) maestro-esclavo replicación de base de datos, o (d) múltiples bases de datos a las que los usuarios pueden Suscríbase.

Y si cumple con los primeros cinco, todavía hay trabajo por hacer. Debe poder expresar las reglas de su aplicación en términos de las transacciones que permite una base de datos. Debe estar seguro de en quién puede confiar como validadores y cómo definirá el consenso distribuido. Y finalmente, si está pensando en crear un libro mayor compartido, necesita saber quién respaldará los activos que representa ese libro mayor.

¿Tienes todas las respuestas? Felicitaciones, tiene un caso de uso real de blockchain. Y nos encantaría saber de ti.

Por favor publique cualquier comentario en Linkedin. Vea también este seguimiento: Cuatro casos de uso genuinos de blockchain.

Sello de tiempo:

Mas de Multicain