Las blockchains privadas son más que bases de datos compartidas "solo"

Por qué los detractores de blockchain están perdiendo el punto

Y así sigue. De entradas populares a tweets desdeñosos a predicciones sobre el futuro, el mundo y su madre están haciendo cola para lanzar tomates a cadenas de bloques privadas, antes incluso entendiendo lo que son.

Decir que una cadena de bloques privada es solo una base de datos compartida es como decir que HTML y HTTP son "solo" hipertexto distribuido. Está mal de dos formas. Primero, el semántico: las cadenas de bloques privadas son una tecnología que permite Las bases de datos compartidas, como los bolígrafos, permiten la escritura y HTML / HTTP permiten el hipertexto distribuido. La cadena de bloques de bitcoin y su aplicación principal no se pueden separar de manera significativa, porque una no podría existir sin la otra. Pero esta equivalencia no se aplica en absoluto a las cadenas de bloques privadas.

El segundo error es el uso de la palabra "sólo". ¿Solo? Eran HTML y HTTP solo una forma de hacer hipertexto distribuido? El hipertexto era inventado décadas antes, ¿son estas tecnologías una nota al pie de página menor en la historia de la informática? Oh, pero permítanme contar las formas en que se ganaron su lugar: (a) un simple lenguaje de marcado que cualquier laico podría aprender, (b) un esquema de direccionamiento jerárquico que funciona tanto con TCP / IP como con nuestro modelo conceptual de lugar, (c) un protocolo simple para la recuperación de contenido sin estado, y (d) ambos cliente y servidor software que le dio vida a todo. Bien podríamos decir que Newton era solo un científico y Dostoyevsky solo un escritor.

Así que dejemos esto perfectamente claro: Sí, las cadenas de bloques privadas son solo una forma de compartir una base de datos. Pero permiten un nuevo tipo de base de datos compartida, con enormes implicaciones para el mundo financiero y más allá. Y si estás dispuesto a seguir leyendo, te diré exactamente por qué.

¿Que es una base de datos?

Una base de datos es un depósito de información estructurada, organizada en tablas. Puede considerarlo como una colección de una o más hojas de cálculo de Excel, que opcionalmente se pueden vincular entre sí. Cada tabla contiene información sobre un conjunto de entidades de un tipo particular, con una entidad por fila. Cada tabla también tiene una o más columnas, que describen diferentes aspectos de esas entidades. Por ejemplo, la tabla del directorio de personal interno de WidgetCo puede tener columnas para la identificación del empleado, nombre, apellido, departamento, número de teléfono interno y número de habitación.

Una de las formas importantes en que las bases de datos van más allá de las hojas de cálculo es que contienen reglas sobre los datos almacenados en ellas. Estas reglas ayudan a garantizar que la información permanezca sana y coherente en beneficio de toda la organización. En el de hoy bases de datos más populares, las reglas adoptan varias formas comunes:

  • La esquema de base de datos define qué tipo de información se permite en cada columna. Por ejemplo, el número de teléfono debe contener 4 dígitos y no puede dejarse en blanco ("nulo").
  • Llaves únicas que establecen que una columna en particular (por ejemplo, ID de empleado) debe tener un valor diferente en cada fila.
  • Comprobar restricciones que imponen relaciones entre los valores de columna en cada fila. Por ejemplo, si el departamento es "Adquisiciones", entonces el número de habitación debe comenzar con 3 o 4.
  • Llaves extranjeras que refuerzan las relaciones entre tablas. Por ejemplo, si la base de datos contiene otra tabla utilizada para la nómina, puede haber una regla que indique que cada ID de empleado en la tabla de nómina también debe existir en el directorio de personal.

Una transacción es una colección de cambios en una base de datos que se acepta o rechaza en su totalidad. Cada vez que una transacción modifica la base de datos, el software asegura que se sigan las reglas de la base de datos. Si alguna parte de una transacción viola una de estas reglas, la transacción completa será rechazada con el error correspondiente.

Hay otros tipos de reglas más esotéricas que podría enumerar, pero todas tienen una cosa en común. Responden a la pregunta: ¿Está la base de datos en un estado válido? En otras palabras, actúan como una restricción sobre el contenido de la base de datos. cuando se ve en un solo punto en el tiempo. Y esto funciona bien para una base de datos que se encuentra dentro de una sola organización, porque el trabajo principal de las restricciones es evitar errores del programador. Si una de las aplicaciones internas de WidgetCo intentara insertar un número de teléfono de 3 dígitos en el directorio, esto no se debería a malicia, sino a un error en el pensamiento o el código del desarrollador. La capacidad de una base de datos para detectar estos errores es indudablemente útil y ayuda a evitar que la mala información se propague dentro de una organización, pero no soluciona problemas de confianza. (Las restricciones también pueden ayudar a simplificar la lógica de la aplicación, por ejemplo a través de cascada de claves foráneas or cláusulas sobre duplicados, pero estas son solo formas de ayudar a los desarrolladores).

Compartir base de datos

Ahora pensemos en cómo el directorio de personal interno de WidgetCo podría compartirse con el mundo exterior. En muchos casos, no hay problema para proporcionar lectura compartida acceso. El directorio puede exportarse a un archivo de texto y enviarse por correo electrónico a clientes y proveedores. Se puede publicar en Internet, al igual que esta. Incluso se le puede dar una API para permitir la búsqueda por código externo. La lectura compartida es un juego de niños técnico, una cuestión de decidir quién puede ver qué.

Pero las cosas empiezan a ponerse más complicadas cuando pensamos en escritura compartida. ¿Qué pasa si WidgetCo quiere que una entidad externa modificar su base de datos? Quizás los teléfonos estén siendo reemplazados por PhoneCo, quien luego actualizará los números de teléfono en el directorio del personal. En este caso, WidgetCo crearía una nueva "cuenta" para que PhoneCo la utilice. A diferencia de las cuentas para uso interno de WidgetCo, la cuenta de PhoneCo solo puede cambiar la columna del número de teléfono y nunca agregar ni eliminar filas. Todas las transacciones de PhoneCo son procesadas por el sistema de base de datos de WidgetCo, que ahora aplica dos tipos de restricción:

  • Reglas globales que se aplican a todos los usuarios de bases de datos. Por ejemplo, la compañía telefónica no puede cambiar un número para que contenga solo 3 dígitos, y nadie más puede hacerlo.
  • Reglas por cuenta que restringen lo que PhoneCo puede hacer, en este caso solo modifica la columna de número de teléfono de las filas existentes.

Hasta aquí todo bien. Tenemos una base de datos de escritura compartida. Funciona porque WidgetCo está a cargo de la base de datos y la compañía telefónica obtiene acceso en virtud de la buena voluntad de WidgetCo. Si PhoneCo comenzó a configurar números de teléfono al azar, WidgetCo puede cerrar su acceso, rescindir su contrato y restaurar algunos datos antiguos desde una copia de seguridad. Y si WidgetCo comenzara a comportarse mal, digamos al revertir los nuevos números de teléfono ingresados ​​por PhoneCo, bueno, eso sería completamente inútil, ya que solo dañaría a WidgetCo a sí mismos. La compañía telefónica consideraría a WidgetCo como un cliente peculiar, pero no le importaría particularmente, siempre que pagaran su factura a tiempo.

Pero ahora veamos qué sucede si dos o más partes quieren compartir una base de datos que (a) ninguna de las partes controla, (b) cualquier parte puede escribir en ella y (c) todos pueden confiar en ella. Para empeorar las cosas, digamos que estas partes tienen diferentes incentivos, no confían entre sí e incluso pueden ser feroces competidores. En este caso, la solución siempre ha sido la misma: presentar un intermediario de confianza. Este intermediario gestiona una base de datos de forma centralizada, proporciona cuentas a todas las partes y garantiza que todas las operaciones estén permitidas de acuerdo con un conjunto de reglas conocidas. En muchos casos, especialmente financieros, cada parte aún mantiene su propia copia de los datos, por lo que todos pasan mucho tiempo verificando eso. sus bases de datos están de acuerdo.

Todo se vuelve bastante complicado y engorroso. Pero si estamos hablando de un base de datos de escritura compartida en un entorno de confianza limitada, actualmente no hay alternativa. Esa es una de las principales razones por las que las transacciones financieras pasan cámaras de compensación centrales, por qué usas Calendario de Google incluso en un grupo de trabajo pequeño, y por qué la maravilla de la multitud que es Wikipedia pasa millones de dolares en hosting. Incluso como interfaz de usuario de la web se mueve al lado del cliente, los servidores centralizados continúan almacenando los datos de los que dependen esas interfaces.

Escritura compartida real

Digamos que queremos permitir que se comparta una base de datos, en un sentido escrito, sin una autoridad central. Por ejemplo, varias empresas competidoras desean mantener un directorio de personal conjunto en beneficio de sus clientes mutuos. ¿Cómo se vería eso realmente? Bueno, necesitaría varias cosas:

  • Una red robusta de igual a igual que permite que cualquier parte cree transacciones y se propaguen rápidamente a todos los nodos conectados.
  • Una forma de identificar conflictos entre transacciones y resolverlos automáticamente.
  • Una tecnología de sincronización que asegura que todos los pares converjan en una copia idéntica de la base de datos.
  • Un método para etiquetar diferentes piezas de información como pertenecientes a diferentes participantes y hacer cumplir esta forma de propiedad de los datos sin una autoridad central.
  • Un paradigma para expresar restricciones sobre qué operaciones están permitidas, por ejemplo, para evitar que una empresa infle el directorio con entradas ficticias.

Uf. Esa es una lista difícil allí mismo, y simplemente no es compatible con las bases de datos disponibles en la actualidad. Actual tecnología de replicación de igual a igual es torpe y tiene un enfoque complejo para la resolución de conflictos. Aquellas bases de datos que admiten seguridad basada en filas todavía requieren una autoridad central para hacerla cumplir. Y las restricciones estándar a nivel de base de datos, como claves únicas y restricciones de verificación, no pueden proteger una base de datos contra modificaciones maliciosas. La conclusión es la siguiente:

Necesitamos un montón de cosas nuevas para que funcionen las bases de datos de escritura compartidas, y da la casualidad de que las cadenas de bloques las proporcionan.

No entraré en demasiados detalles sobre cómo las cadenas de bloques hacen estas cosas, porque tengo cubrió gran parte de eso antes. Algunos elementos clave incluyen regular peer-to-peer técnicas, agrupación transacciones en bloques, de una sola mano funciones hash criptográficas, una fiesta múltiple algoritmo de consenso, distribuido control de concurrencia multiversion y permisos por fila basados ​​en criptografía de clave pública. Una larga lista de viejas ideas combinadas de una manera nueva. HTML / HTTP, si lo desea.

Además de todo esto, las bases de datos de escritura compartidas requieren un tipo de regla completamente nuevo, para Restringir las transformaciones que puede realizar una transacción.. Esta es una innovación absolutamente clave y marca la diferencia si compartimos una base de datos entre entidades que no confían. Estos tipos de reglas se pueden expresar como restricciones de transacción al estilo bitcoin o impuestas al estilo Ethereum. procedimientos almacenados ("Contratos inteligentes"), cada uno de los cuales tiene ventajas y desventajas. Quizás haya otras formas mejores esperando ser descubiertas. Pero todos comparten la propiedad de vincular el estado de la base de datos antes y después de que se lleve a cabo una transacción. En otras palabras, responden a la pregunta: ¿Fue una transacción válida? Esto es fundamentalmente diferente de preguntar si la base de datos es válida en un solo momento.

Si se pregunta si este tipo de base de datos tiene aplicaciones útiles para el mundo real, esa es una pregunta justa. Pero puede notar el intenso interés en las cadenas de bloques privadas de un sector al menos, por su potencial para simplificar procesos y reducir costos y retrasos. Las instituciones financieras son grandes usuarios de las plataformas de bases de datos actuales y esas plataformas no permiten un escenario de escritura compartida. Esto es lo que buscan los bancos.

Este problema y su solución no tienen absolutamente nada que ver con bitcoin y la idea de dinero libre de censura. De hecho, la única conexión con bitcoin es la técnico similitud entre la cadena de bloques de bitcoin y cómo algunas de estas cadenas de bloques privadas son implementado hoy. Una diferencia clave es que las cadenas de bloques privadas no necesitan prueba de trabajo minería, ya que los bloques son creados por un conjunto cerrado de participantes identificados. Con el tiempo, los dos mundos pueden divergir aún más, porque sus requisitos son completamente diferentes. Tanto si le gusta la regulación financiera como si no, el simple hecho es que las cadenas de bloques privadas son potencialmente útiles en un mundo regulado, mientras que al menos por ahora, las cadenas de bloques públicas no son.

Si puedo terminar con una analogía, la ONU Declaración sobre los principios del derecho internacional no les dice a los países que pueden ocupar el territorio que quieran, siempre que esté rodeado por una valla claramente marcada. Más bien, establece que “No se reconocerá como legal ninguna adquisición territorial resultante de la amenaza o el uso de la fuerza”. En otras palabras, es una regla sobre la legitimidad de cambios, no solo de circunstancias. Y la declaración de la ONU, que ahora nos parece tan obvia, fue una revolución completa en el derecho internacional. Significó un mundo que ya no se basa en el poder y la autoridad unilaterales, sino en un mundo en el que las diferencias pueden resolverse por consenso mutuo.

Cuando se trata de bases de datos compartidas, las cadenas de bloques privadas hacen exactamente lo mismo.

Sello de tiempo:

Mas de Multicain