Cómo detectar una cadena de bloques a medias PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai.

Cómo detectar una cadena de bloques a medio hornear

Cuando las cadenas y los bloques no sirven para nada

Han pasado unos 18 meses desde que el sector financiero se despertó, en masa, ante las posibilidades de blockchains autorizados, o para usar el término más general, "libros de contabilidad distribuidos". El período transcurrido desde entonces ha visto un tsunami de actividad, que incluye informes de investigación, inversiones estratégicas, proyectos piloto y la formación de muchos consorcios. Nadie puede acusar al mundo bancario de no tomar en serio el potencial de esta tecnología.

Naturalmente, el crecimiento explosivo en los proyectos de blockchain ha impulsado el desarrollo de plataformas de blockchain autorizadas, sobre las cuales se construyen esos proyectos. Por ejemplo, nuestro producto MultiChain se ha triplicado su uso durante el año pasado, ya sea que midamos el tráfico web, las descargas mensuales o las consultas comerciales. Y, por supuesto, hay muchas otras plataformas, como BigChainDB, Transportadores, Cuerda, Créditos, Elements, Eris, Telas, Ethereum (desplegado en una red cerrada), HidraCadena y Cadena abierta. Sin mencionar aún más nuevas empresas que han desarrollado algún tipo de plataforma blockchain pero que no la han puesto a disposición del público.

Para las empresas que desean explorar y comprender una nueva tecnología, una gran variedad de opciones es generalmente una buena cosa. Sin embargo, en el caso de las cadenas de bloques, que aún permanecen poco definidas y mal entendidas, esta cornucopia tiene un inconveniente significativo: muchas de las plataformas de "cadena de bloques" disponibles en realidad no abordan el problema central que deben resolver. ¿Y cuál es ese problema? Permítame citar el sucinto definición de video por Richard Gendal Brown, CTO de R3, en su totalidad:

Un libro mayor distribuido es un sistema que permite a las partes que no confían plenamente entre sí llegar a un consenso sobre la existencia, la naturaleza y la evolución de un conjunto de hechos compartidos sin tener que depender de un tercero centralizado totalmente confiable.

Para tomar un ejemplo extremo, considere un montón de ladrillos de Lego atados con una cuerda. Si usamos el término "cadena de bloques" para describir este artículo de moda, ¿quién puede decir que no lo estamos describiendo con precisión? Y, sin embargo, esa cadena de bloques en particular no ayudará a múltiples partes a compartir de manera segura y directa una base de datos sin un intermediario central. Del mismo modo, muchas plataformas "blockchain" hacen algo relacionado con las cadenas de bloques, pero también carecen de las propiedades necesarias para servir como base para una base de datos punto a punto.

Cómo detectar una cadena de bloques a medias PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai.
Otra cadena de bloques que no ayuda con el intercambio de bases de datos.fuente.

Blockchain mínimo viable

Para comprender los requisitos básicos de un libro mayor distribuido, ayuda a aclarar cómo estos sistemas difieren de las bases de datos normales, que están controladas por una sola entidad. Por ejemplo, consideremos un sistema simple para rastrear quién posee las acciones de una compañía en particular. El libro mayor, tal como se implementa en una base de datos, tiene una fila para cada propietario que contiene dos columnas: el identificador del propietario, como su nombre, y la cantidad correspondiente de acciones.

Aquí hay seis formas cruciales en las que este sistema podría fallar a sus usuarios:

  • Falsificación: Transferencia de acciones de una persona a otra sin el permiso del remitente.
  • Censura: Negarse a cumplir la solicitud de alguien para transferir algunas acciones a otro lugar.
  • Inversión: Deshacer una transferencia que tuvo lugar en algún momento en el pasado.
  • Ilegitimidad: Cambiar la cantidad total de acciones en el sistema sin una acción correspondiente por parte del emisor.
  • Inconsecuencia: Dar diferentes respuestas a consultas de diferentes usuarios.
  • El tiempo de inactividad: No responde a las solicitudes de información entrantes en absoluto.

Debido a todas estas posibilidades, los accionistas deben mantener un alto nivel de confianza en quien administra este libro mayor en su nombre. Construir y administrar una organización digna de esa confianza conlleva importantes problemas y costos.

Las cadenas de bloques o los libros de contabilidad distribuidos eliminan la necesidad de este tipo de operador de base de datos central, al permitir que los usuarios de una base de datos interactúen directamente entre sí de forma similar. En nuestro ejemplo, los accionistas podrían mantener sus acciones de manera segura en una cadena de bloques que administran colectivamente, y realizar transferencias entre ellos instantáneamente a través de esa cadena. (La desventaja es una pérdida significativa de confidencialidad entre los usuarios de la cadena, que no abordaremos aquí pero anteriormente discutido extensamente.)

Todo esto nos lleva de vuelta a la cuestión de las plataformas blockchain. Para servir como una base viable para compartir bases de datos entre pares, una cadena de bloques debe proteger a sus participantes contra los seis tipos de fallas de la base de datos: falsificación, censura, reversión, transacciones ilegítimas, inconsistencia y tiempo de inactividad. Si bien muchos productos en el mercado cumplen con estos requisitos, muchos de ellos se quedan cortos. Llamo a estas blockchains "a medio cocer" porque pueden abordar algo de estos riesgos, pero no todos. Al menos en algunos aspectos, los usuarios de la base de datos siguen dependiendo del buen comportamiento de un solo participante, que es precisamente el escenario que queremos evitar.

Estas blockchains a medio hornear vienen en una variedad de variedades, pero tres arquetipos se destacan como los más comunes u obvios. No voy a nombrar productos individuales porque, bueno, no quiero ofender. La comunidad de inicio de blockchain es lo suficientemente pequeña como para que la mayoría de nosotros nos conozcamos a través de conferencias y otras reuniones, y las interacciones tienden a ser positivas. Sin embargo, si las cadenas de bloques (en el sentido de bases de datos útiles entre pares) alguna vez van a surgir como una categoría de producto coherente, es importante distinguir entre soluciones a medias y soluciones reales.

El validador blockchain

Un patrón que hemos visto varias veces es una cadena de bloques en la que solo un participante puede generar los bloques en los que se confirman las transacciones. Las transacciones se envían a este nodo en lugar de transmitirse a la red en su conjunto, por lo que su aceptación está sujeta a los caprichos de esta parte en lugar de algún tipo de consenso mayoritario. Aún así, una vez que esta parte central ha construido un bloque, se transmite a los otros nodos de la red, que pueden confirmar de forma independiente la validez de las transacciones internas y registrar el nuevo bloque local y permanentemente.

Para volver a nuestras seis formas de mal funcionamiento de la base de datos, este tipo de blockchain está lejos de ser inútil. Las transacciones deben ser firmadas digitalmente por la entidad cuyos fondos mueven, para que la parte central no pueda falsificarlas. No se pueden revertir porque cada nodo mantiene su propia copia de la cadena. Y las transacciones no pueden realizar operaciones ilegales como crear activos de la nada, porque cada nodo valida independientemente cada transacción para su corrección. Finalmente, cada nodo mantiene su propia copia de la base de datos, por lo que su contenido siempre está disponible para su lectura.

Lamentablemente, cuatro de cada seis no es suficiente. El nodo de validación puede censurar fácilmente las transacciones individuales, al negarse a incluirlas en los bloques que crea. Incluso si los operadores de este nodo son honestos, una falla en el sistema o en las comunicaciones puede hacer que no esté disponible, haciendo que todo el procesamiento de transacciones se detenga. Además, dependiendo de la configuración, el nodo de validación puede transmitir diferentes versiones de la cadena de bloques a diferentes participantes. En términos de censura y coherencia, la base de datos todavía contiene un único punto de falla, en el que se basan todos los demás nodos.

Una plataforma ofrece un giro en este esquema, en el que los bloques son generados centralmente por un solo nodo, pero un quórum de otros nodos designados los firma para indicar consenso. En términos del riesgo de inconsistencia, esto ciertamente ayuda. Los nodos en el quórum solo prestarán sus firmas a una única versión de blockchain, que por lo tanto puede considerarse autorizada. Sin embargo, los nodos de quórum no pueden ayudar si el generador de bloques censura las transacciones o pierde su conexión a Internet. En última instancia, este tipo de blockchain todavía utiliza una arquitectura de concentrador y radio, en lugar de una red de igual a igual.

El blockchain de estado compartido

Técnicamente hablando, hay muchas similitudes entre blockchains y bases de datos distribuidas más tradicionales como Cassandra y MongoDB. En ambos casos, las transacciones pueden ser iniciadas por cualquier nodo de la red y deben llegar a todos los demás nodos como parte de un consenso sobre el estado en desarrollo de la base de datos. Tanto las cadenas de bloques como las bases de datos distribuidas tienen que hacer frente a la latencia (retrasos de comunicación que se derivan de la distancia entre nodos) y la posibilidad de que algunos nodos y / o enlaces de comunicación fallen intermitentemente.

Las bases de datos distribuidas han existido por un tiempo, por lo que cualquier desarrollador de la plataforma blockchain haría bien en comprender sus algoritmos de consenso y las estrategias que utilizan para ordenar globalmente las transacciones y resolver conflictos. Sin embargo, es importante no llevar la comparación demasiado lejos, porque las cadenas de bloques deben lidiar con un desafío adicional crucial: la ausencia de confianza entre los nodos de la base de datos. Mientras que las bases de datos distribuidas se centran en proporcionar escalabilidad, robustez y alto rendimiento dentro de los límites de una sola organización, las cadenas de bloques deben rediseñarse para que sean seguras atravesar Esos límites.

Para volver a nuestros seis tipos de riesgo de base de datos, un nodo en una base de datos distribuida solo necesita preocuparse por el tiempo de inactividad, es decir, la posibilidad de que otros nodos no estén disponibles. Los nodos pueden asumir con seguridad que todas las transacciones y mensajes en la red son válidos, y no están relacionados con la falsificación, censura, reversión, ilegitimidad o inconsistencia. Su peor problema es lidiar con dos transacciones simultáneas pero válidas, iniciadas en diferentes nodos, que afectan la misma pieza de datos. Resolver estos conflictos no es en absoluto trivial, pero sigue siendo mucho más fácil que preocuparse por "Fallas bizantinas", En el que algunos nodos actúan deliberadamente para interrumpir el funcionamiento de otros.

Una base de datos solo se puede compartir de forma segura a través de confíe en los límites si los nodos tratan todas las actividades en la red con cierto grado de sospecha. Por ejemplo, cada transacción que modifica la base de datos debe estar firmada digitalmente de forma individual ya que, en una arquitectura punto a punto, no hay otra forma de conocer su verdadero punto de origen. Del mismo modo, cada mensaje entrante, como el anuncio de un nuevo bloque, debe ser evaluado críticamente por su contenido y contexto. A diferencia de las bases de datos distribuidas, los nodos no deben poder modificar inmediata y directamente el estado de otro nodo.

Algunas plataformas "blockchain" se han desarrollado comenzando con una base de datos distribuida y rociando algunas características en la parte superior para hacerlas más blockchainy. Por ejemplo, al agrupar transacciones en bloques y almacenar hashes (huellas digitales) de esos bloques en la base de datos, su objetivo es agregar una forma de inmutabilidad. Pero a menos que cada nodo pueda estar seguro de que su lista de hashes no puede ser modificada por otro nodo, este tipo de inmutabilidad se puede jugar fácilmente. La respuesta estándar a estas críticas es que cada problema de seguridad se puede resolver con suficiente tiempo y codificación. Pero esto es más bien como retener a algunos prisioneros en un campo abierto, y tratar de evitar que escapen con trampas y zanjas. Es mucho más seguro usar una estructura de concreto especialmente diseñada, cuyas puertas estén cerradas y cuyas ventanas estén enrejadas.

La cadena de bloques de una nube

Con mucho, el fenómeno más extraño que he visto son las plataformas blockchain a las que solo se puede acceder a través de la plataforma como servicio basada en la nube de su desarrollador. Para ser claros, no estamos hablando de algunos de los participantes de una cadena de bloques. la elección de para alojar sus nodos en su proveedor de nube de elección, como microsoft Azure or Amazon Web Services. Más bien, esta es una cadena de bloques que puede , solamente se accede a través de las API expuestas por los servidores de una empresa que lo "aloja".

Permitamos, por el bien de los argumentos, que un proveedor de blockchain centralizado realmente tenga un grupo de nodos ejecutándose bajo su control. ¿Qué diferencia hace esto para los usuarios del sistema que envían solicitudes de API y reciben respuestas? Los participantes no tienen forma de evaluar si las transacciones de todos han sido procesadas sin omisión o error. Quizás el servicio central está funcionando mal, o quizás está censurando o revocando algunas transacciones deliberadamente. Y si cree que el proveedor de blockchain no tiene ninguna razón para hacer esto, ¿por qué no usarlos para alojar una base de datos centralizada regular? Obtendrá un producto más maduro con un mejor rendimiento y no sufrirá ninguno de los riesgos de trabajar con nuevas tecnologías. En resumen, las cadenas de bloques centralizadas son casi tan útiles como Lego en una cadena.

Resolviendo el misterio

Ahora hemos visto tres tipos de plataforma que se comercializan como "blockchains", y de hecho hacen uso de una cadena de bloques, pero que no resuelven el problema fundamental para el que están diseñados estos sistemas. En resumen, esto es para permitir que una base de datos única se comparta de forma segura y directa a través de los límites de confianza, sin un intermediario central.

Además de señalar este fenómeno peculiar, creo que es instructivo considerar lo que podría subyacer. ¿Por qué tantas startups de blockchain están construyendo productos que no cumplen con la promesa de esta tecnología, a menudo no alcanzan más que las bases de datos centralizadas o distribuidas tradicionales? ¿Por qué tantas personas talentosas pierden tanto tiempo?

Puedo ver dos clases principales de explicación: técnica y comercial. Para comenzar con lo técnico, es bastante complicado crear sistemas de consenso distribuidos que puedan tolerar que uno o más nodos se comporten maliciosamente de manera impredecible. En el caso de MultiChain, de alguna manera hicimos trampa, al usar la implementación de referencia endurecida por la batalla de bitcoin como punto de partida, y luego reemplazamos la prueba de trabajo por un algoritmo de consenso estructuralmente similar llamado "diversidad minera". Los equipos que desarrollan un nodo blockchain desde cero tienen que pensar profundamente sobre los procesos asincrónicos y adversos, una combinación de la que pocos programadores tienen experiencia. Ciertamente puedo entender la tentación de tomar un atajo, como usar un solo nodo para generar bloques, o llevar a cuestas una base de datos distribuida existente, o solo ejecutar nodos en un entorno confiable. Elegir cualquiera de estos sin duda hace la vida más fácil para los desarrolladores, incluso si esto socava todo el punto.

En cuanto a razones comerciales, cada startup parece estar acercándose a la oportunidad de blockchain desde un ángulo diferente. Aquí en Coin Sciences, estamos enfocados en convertirnos en un proveedor de software (base de datos), por lo que estamos distribuyendo MultiChain de forma gratuita mientras desarrollamos un nodo premium con características adicionales. Otras startups quieren vender servicios de suscripción, por lo que, naturalmente, construirán una plataforma que los clientes no pueden alojar. Algunos esperan controlar centralmente una cadena de bloques o ayudar a sus socios a hacerlo (¡una ambición extraña para una tecnología de desintermediación!) Y se sienten atraídos naturalmente por algoritmos de consenso que dependen de un solo nodo. Y finalmente, hay empresas cuyo objetivo principal es vender servicios de consultoría, en cuyo caso su plataforma no necesita funcionar en absoluto, siempre que su sitio web atraiga a algunos grandes clientes.

Quizás otro problema es que algunas empresas de blockchain están siendo administradas por personas que, sin duda, están llenas de talento, pero que carecen de una comprensión profunda de la tecnología en sí. En las nuevas empresas que crean un nuevo campo, probablemente sea vital que las personas que comprendan la naturaleza de ese campo y la forma en que difiera de lo que ocurría antes tomen decisiones estratégicas. No pocas startups de blockchain parecen haberse arrinconado al perseguir una visión del producto que es atractiva para sus clientes, pero que en realidad no se puede construir.

Como usuario de blockchains, ¿cómo puede evitar ser atrapado por estas falacias? Al evaluar una plataforma de blockchain en particular, asegúrese de preguntar si cumple con los seis requisitos de compartir bases de datos seguras entre pares: prevención de tiempos de inactividad e inconsistencia, así como falsificación de transacciones, censura, reversión e ilegitimidad. Y tenga cuidado con las explicaciones que consisten en murmurar demasiado o agitar las manos; probablemente significan que la respuesta es no.

Por favor publique cualquier comentario en Linkedin.

Fuente: https://www.multichain.com/blog/2016/12/spot-half-baked-blockchain/

Sello de tiempo:

Mas de Multicain