Blockchains vs bases de datos centralizadas

Cuatro diferencias clave entre blockchains y bases de datos regulares

Si ha estado leyendo mis publicaciones anteriores, ya sabrá que las cadenas de bloques son simplemente un nuevo tipo de base de datos. Es decir, una base de datos que puede ser compartida directamente, en sentido escrito, por un grupo de partes que no confían, sin necesidad de un administrador central. Esto contrasta con las bases de datos tradicionales (SQL o NoSQL) que están controladas por una sola entidad, incluso si se utiliza algún tipo de arquitectura distribuida dentro de sus paredes.

recientemente di una charla sobre las cadenas de bloques desde la perspectiva de la seguridad de la información, en el que concluí que las cadenas de bloques son más seguras que las bases de datos normales en algunos aspectos y menos seguras en otros. Considerando el protagonista que las bases de datos centralizadas juegan en la pila de tecnología de hoy, esto me hizo pensar más ampliamente sobre las ventajas y desventajas entre estas dos tecnologías. De hecho, cada vez que alguien me pregunta si MultiChain se puede usar para un propósito particular, mi primera respuesta siempre es: "¿Podrías hacer eso con una base de datos regular?" En más casos de los que piensas, la respuesta es sí, por la siguiente sencilla razón:

Si la confianza y la solidez no son un problema, no hay nada que una cadena de bloques pueda hacer que una base de datos normal no pueda hacer.

Este es un punto clave en el que hay muchos malentendidos. En términos de los tipos de datos que se pueden almacenar y las transacciones que se pueden realizar con esos datos, las cadenas de bloques no hacen nada nuevo. Y para que quede claro, esta observación se extiende también a los "contratos inteligentes", a pesar de su nombre e imagen sexys. Un contrato inteligente no es más que un fragmento de código informático que se ejecuta en cada nodo de una cadena de bloques, una tecnología con décadas de antigüedad llamada procedimientos almacenados hace lo mismo para las bases de datos centralizadas. (Tampoco puede usar una cadena de bloques si este código necesita iniciar interacciones con el mundo exterior).

La verdad sobre las cadenas de bloques es que, si bien tienen algunas ventajas, también tienen sus desventajas. En otras palabras, como la mayoría de las decisiones tecnológicas, la elección entre una cadena de bloques y una base de datos regular se reduce a una serie de compensaciones. Si está cegado por la exageración y ensordecido por el ruido, es poco probable que tome esa decisión de manera objetiva. Así que espero que la siguiente guía pueda ayudar.

Desintermediación: ventajas de las cadenas de bloques

El valor central de una cadena de bloques es permitir que una base de datos se comparta directamente a través de los límites de la confianza, sin necesidad de un administrador central. Esto es posible porque las transacciones de blockchain contienen su propia prueba de validez y su propia prueba de autorización, en lugar de requerir alguna lógica de aplicación centralizada para hacer cumplir esas restricciones. Por lo tanto, las transacciones pueden ser verificadas y procesadas de forma independiente por múltiples "nodos", y la cadena de bloques actúa como un mecanismo de consenso para garantizar que esos nodos permanezcan sincronizados.

¿Por qué hay valor en esta desintermediación? Porque aunque una base de datos es solo bits y bytes, también es algo tangible. El contenido de una base de datos se almacena en la memoria y el disco de un sistema informático en particular, y cualquier persona con acceso suficiente a ese sistema puede destruir o corromper los datos que contiene. Como resultado, en el momento en que confía sus datos a una base de datos regular, también se vuelve dependiente de la humana organización en la que reside esa base de datos.

Ahora, el mundo está lleno de organizaciones que se han ganado esta confianza: gobiernos y bancos (en su mayoría), universidades, asociaciones comerciales e incluso empresas privadas como Google y Facebook. En la mayoría de los casos, especialmente en el mundo desarrollado, estos funcionan extremadamente bien. Creo que mi voto siempre se ha contado, ningún banco me ha robado nunca el dinero y todavía tengo que encontrar la manera de pagar por mejores calificaciones. ¿Entonces, cuál es el problema? Si una organización controla una base de datos importante, también necesita un grupo de personas y procesos para evitar que esa base de datos sea manipulada. Las personas necesitan contratación, los procesos deben diseñarse y todo esto requiere una gran cantidad de tiempo y dinero.

Entonces, las cadenas de bloques ofrecen una forma de reemplazar estas organizaciones con una base de datos distribuida, bloqueada por una criptografía inteligente. Como tantas cosas anteriores, aprovechan la capacidad cada vez mayor de los sistemas informáticos para proporcionar una nueva forma de reemplazar a los humanos con código. Y una vez que se ha escrito y depurado, el código tiende a ser mucho más barato.

Confidencialidad: aproveche las bases de datos centralizadas

Como mencioné, cada nodo en una cadena de bloques verifica y procesa cada transacción de forma independiente. Un nodo puede hacer esto porque tiene visibilidad completa de: (a) el estado actual de la base de datos, (b) la modificación solicitada por una transacción y (c) una firma digital que prueba el origen de la transacción. Sin duda, esta es una nueva forma inteligente de diseñar una base de datos, y realmente funciona. Entonces, ¿dónde está el truco? Para muchas aplicaciones, especialmente las financieras, la total transparencia de la que disfrutan todos los nodos es un absoluto factor decisivo.

¿Cómo evitan este problema los sistemas basados ​​en bases de datos regulares? Al igual que las cadenas de bloques, restringen las transacciones que pueden realizar determinados usuarios, pero estas restricciones se imponen en una ubicación central. Como resultado, el contenido completo de la base de datos solo necesita estar visible en esa ubicación, en lugar de en varios nodos. Las solicitudes de lectura de datos también pasan por esta autoridad central, que puede aceptar o rechazar esas solicitudes según lo crea conveniente. En otras palabras, si una base de datos normal tiene control de lectura y controlado por escritura, una cadena de bloques solo puede controlarse por escritura.

Para ser justos, hay muchas estrategias disponibles para mitigar este problema. Estos van desde ideas simples como realizar transacciones bajo múltiples direcciones de blockchain, hasta técnicas criptográficas avanzadas como transacciones confidenciales y pruebas de cero conocimiento (ahora en desarrollo). No obstante, cuanta más información desee ocultar en una cadena de bloques, mayor será la carga computacional que pagará para generar y verificar transacciones. Y no importa cómo se desarrollen estas técnicas, nunca superarán el método simple y directo de ocultar datos por completo.

Robustez: ventajas blockchains

Un segundo beneficio de las bases de datos impulsadas por blockchain es la extrema tolerancia a fallas, que se deriva de su redundancia incorporada. Cada nodo procesa cada transacción, por lo que ningún nodo individual es crucial para la base de datos en su conjunto. Del mismo modo, los nodos se conectan entre sí de forma densa de igual a igual, por lo que muchos enlaces de comunicación pueden fallar antes de que todo se detenga. La cadena de bloques garantiza que los nodos que fallaron siempre puedan ponerse al día con las transacciones que perdieron.

Si bien es cierto que las bases de datos regulares ofrecen muchas técnicas para replicación, las cadenas de bloques llevan esto a un nivel completamente nuevo. Para empezar, no se requiere configuración: simplemente conecte algunos nodos de la cadena de bloques y se sincronizarán automáticamente. Además, los nodos se pueden agregar o eliminar libremente de una red, sin ninguna preparación ni consecuencias. Por último, los usuarios externos pueden enviar sus transacciones a cualquier nodo, oa varios nodos simultáneamente, y estas transacciones se propagan automáticamente y sin problemas a todos los demás.

Esta solidez transforma la economía de la disponibilidad de la base de datos. Con bases de datos regulares, la alta disponibilidad se logra a través de una combinación de costosa infraestructura y recuperación de desastres. Una base de datos principal se ejecuta en hardware de alta gama que se supervisa de cerca para detectar problemas, con transacciones replicadas en un sistema de respaldo en una ubicación física diferente. Si la base de datos principal falla (por ejemplo, debido a un corte de energía o una falla catastrófica del hardware), la actividad se traslada automáticamente a la copia de seguridad, que se convierte en la nueva base de datos principal. Una vez que se repara el sistema fallido, se alinea para actuar como la nueva copia de seguridad cuando sea necesario. Si bien todo esto es factible, es costoso y notoriamente difícil hacerlo bien.

En cambio, ¿qué pasaría si tuviéramos 10 nodos de blockchain ejecutándose en diferentes partes del mundo, todos en hardware básico? Estos nodos estarían densamente conectados entre sí, compartiendo transacciones entre pares y utilizando una cadena de bloques para garantizar el consenso. Los usuarios finales que generan las transacciones se conectan a (digamos) 5 de estos nodos, por lo que no importa si fallan algunos enlaces de comunicación. Y si uno o dos nodos fallan por completo en un día determinado, nadie siente nada, porque todavía hay copias más que suficientes para todos. Da la casualidad de que esta combinación de sistemas de bajo costo y alta redundancia es exactamente cómo Google construyó su motor de búsqueda tan barato. Las cadenas de bloques pueden hacer lo mismo con las bases de datos.

Rendimiento: aproveche las bases de datos centralizadas

Las cadenas de bloques siempre serán más lentas que las bases de datos centralizadas. no es solo eso de hoy Las cadenas de bloques son lentas porque la tecnología es nueva y no está optimizada, pero es el resultado de la la naturaleza de las propias cadenas de bloques. Verá, al procesar transacciones, una cadena de bloques tiene que hacer las mismas cosas que una base de datos normal, pero conlleva tres cargas adicionales:

  1. Verificación de firma. Cada transacción de blockchain debe estar firmada digitalmente utilizando un esquema criptográfico público-privado como ECDSA. Esto es necesario porque las transacciones se propagan entre nodos de igual a igual, por lo que su origen no se puede probar de otra manera. La generación y verificación de estas firmas es computacionalmente compleja y constituye el principal cuello de botella en productos como el nuestro. Por el contrario, en las bases de datos centralizadas, una vez que se ha establecido una conexión, no hay necesidad de verificar individualmente cada solicitud que llega a través de ella.
  2. Mecanismos de consenso. En una base de datos distribuida como una cadena de bloques, se debe hacer un esfuerzo para garantizar que los nodos de la red lleguen a un consenso. Dependiendo del mecanismo de consenso utilizado, esto podría implicar una comunicación significativa de ida y vuelta y/o el manejo de bifurcaciones y sus consiguientes reversiones. Si bien es cierto que las bases de datos centralizadas también deben lidiar con transacciones anuladas y en conflicto, esto es mucho menos probable cuando las transacciones se ponen en cola y se procesan en una sola ubicación.
  3. Redundancia. No se trata del rendimiento de un nodo individual, sino de la cantidad total de cómputo que requiere una cadena de bloques. Mientras que las bases de datos centralizadas procesan las transacciones una (o dos veces), en una cadena de bloques deben ser procesadas de forma independiente por cada nodo de la red. Por lo tanto, se está trabajando mucho más para obtener el mismo resultado final.

La línea de fondo

Naturalmente, hay otras formas en que se pueden comparar las cadenas de bloques y las bases de datos regulares. Podríamos hablar sobre la madurez de la base de código, el atractivo para los desarrolladores, la amplitud del ecosistema y más. Pero ninguno de estos problemas son inherente a la tecnología misma. Entonces, cuando se trata de una decisión a largo plazo sobre el uso de una cadena de bloques, la pregunta que debe hacerse es: ¿Qué es más importante para mi caso de uso? ¿Desintermediación y robustez? ¿O confidencialidad y rendimiento?

Cuando se examina bajo esta simple luz, muchos de los casos de uso actualmente en discusión sin sentido. El mayor problema tiende a ser la confidencialidad. Los participantes en un mercado ferozmente competitivo preferirán naturalmente la privacidad de una base de datos centralizada, en lugar de revelar sus actividades entre sí. Esto es especialmente cierto si ya existe una parte central de confianza y puede proporcionar el territorio neutral en el que puede residir esa base de datos. Aunque puede haber algún costo asociado con este proveedor central, esto está más que justificado por el valor de la privacidad retenida. La única motivación para un cambio a blockchains sería una nueva regulación agresiva.

No obstante, las cadenas de bloques tienen casos de uso sólidos, donde la desintermediación y la solidez son más importantes que la confidencialidad y el rendimiento. Escribiré más sobre esto en una publicación posterior, pero las áreas más prometedoras que hemos visto hasta ahora son: (a) registros de auditoría entre empresas, (b) seguimiento de procedencia y (c) ligero sistemas financieros. En los tres casos, hemos encontrado personas que se basan en MultiChain con una visión clara de la implementación, en lugar de solo curiosidad y experimentación. Entonces, si está buscando formas en que las cadenas de bloques pueden agregar un valor genuino a su negocio, pueden ser un buen lugar para comenzar.

Por favor publique cualquier comentario en Linkedin.

Sello de tiempo:

Mas de Multicain