Porqué Blockchain es difícil (Jimmy Song)


#1

El bombo respecto a blockchain es enorme. Si escucha a la caravana de bombo dirán que blockchain ahora hará:

  1. Resolverá la disparidad de ingresos
  2. Hará todos los datos seguros para siempre
  3. Hará todo más eficiente y sin necesidad de confianza
  4. Salvará a bebés moribundos

¿Qué rayos es una blockchain, en cualquier caso? y ¿realmente puede hacer todas esas cosas? ¿Puede aportar algo asombroso a industrias tan diversas como sanidad, finanzas, gestión de cadena de suministro y derechos musicales?

Y ¿acaso no significa que si apoyas Bitcoin también eres pro-blockchain? ¿Cómo puedes apoyar Bitcoin pero hablar mal de la tecnología que lo respalda?

En este artículo busco responder muchas de esas preguntas al escudriñar respecto a qué es una blockchain y, más importante, qué no es.

¿Qué es una blockchain?

Para examinar alguna de estas afirmaciones debemos definir qué es una blockchain y aquí es donde yace mucha de la confusión. Muchas empresas utilizan la palabra “blockchain” para referirse a una especie de dispositivo mágico por el cual todos sus datos jamás estarán errados. Este dispositivo, por supuesto, no existe; al menos cuando hablamos del mundo real.

Entonces ¿qué es una blockchain? Técnicamente hablando, una blockchain es una lista enlazada de bloques y un bloque es un conjunto de transacciones ordenadas. Si no ha entendido la última oración, puede imaginar a la blockchain como un subconjunto de una base de datos, con algunas propiedades adicionales.

El aspecto principal que distingue a una blockchain de una base de datos convencional es que existen reglas específicas sobre cómo incorporar datos en la base de datos. Es decir, no puede originar conflicto con otros datos existentes (consistencia), solo se puede agregar o añadir (inmutable), y los propios datos están bloqueados para un dueño (apropiable), es replicable y está disponible. Finalmente, todos concuerdan en cual es el estado de las cosas en la base de datos (canónico), sin requerir un rector central (descentralizado).

Es este último punto el que realmente es el santo grial de blockchain. La descentralización es muy atractiva debido a que implica que no existe un punto único de fallo. Es decir, ninguna autoridad única podrá eliminar tu activo o cambiar la “historia” para acomodarla a sus fines. Este registro de auditoria inmutable donde usted no tiene que confiar en nadie es el beneficio que buscan todos quienes están jugando con la tecnología. Este beneficio, sin embargo, viene con un gran costo.

El costo de blockchains

El registro de auditoría inmutable que no está controlado por una única entidad es ciertamente útil, pero existen muchos costos para crear este tipo de sistema. Examinemos algunos de los problemas.

El desarrollo es más estricto y lento

El crear un sistema demostrablemente consistente no es una tarea sencilla. Un pequeño fallo puede corromper toda la base de datos o causar que algunas bases de datos difieran de otras. Por supuesto, una base de datos corrompida o partida no ofrece ninguna garantía futura de consistencia. Aún más, todos los sistemas de este tipo se deben diseñar desde el comienzo para ser consistentes. No existe la idea de “muévete rápido y rompe las cosas” en una blockchain. Si rompes las cosas pierdes consistencia y la blockchain se convierte en corrompida y sin valor.

Podrías estar pensando, ¿porqué no puedes simplemente corregir la base de datos o empezar nuevamente y continuar? Esto sería sencillo de hacer en un sistema centralizado, pero es muy difícil en uno descentralizado. Necesitas consenso, o el acuerdo entre todos los actores en el sistema, para cambiar la base de datos. La blockchain debe ser un recurso público que no está bajo el control de una única entidad (descentralizado ¿lo recuerdas?), o todo el esfuerzo será una muy costosa manera de crear una base de datos lenta y centralizada.

Las estructuras de incentivos son difíciles de diseñar

Incorporar las estructuras de incentivos adecuadas y asegurarse de que todos los actores en el sistema no puedan abusar o corromper la base de datos es de igual manera un gran aspecto a considerar. Una blockchain puede ser consistente, pero eso no es muy útil si almacena mucha data frívola e inútil en ella, debido a que los costos de hacerlo son muy bajos. Tampoco es útil una blockchain consistente si prácticamente no almacena datos, debido a que los costos de hacerlo son muy altos.

¿Qué es lo que da un fin a los datos? ¿Cómo puede asegurar que las recompensas están alineadas con los objetivos de la red? ¿Porqué los nodos mantienen o actualizan los datos y qué hace que estos elijan entre una pieza de datos sobre otra cuando ambas están en conflicto? Estas son preguntas de incentivos que requieren buenas respuestas y estas deben estar alineadas no solamente al inicio si no también en todos los puntos en el futuro a medida de que la tecnología y empresas cambien, de otro modo blockchain no es útil.

Nuevamente, podríais preguntarte porqué no puedes simplemente “reparar” un incentivo con fallos. Una vez más, esto sería sencillo en un sistema centralizado, pero en uno descentralizado, uno no puede simplemente cambiar algo sin consenso. No existe el concepto de “reparar” cualquier cosa a menos que se tenga el consentimiento de todos.

El mantenimiento es muy costoso

Una base de datos tradicional centralizada solo necesita que se escriba en ella una vez. Una blockchain necesita que se escriba en ella miles de veces. Una base de datos tradicional centralizada necesita validar los datos una vez. Una blockchain necesita validar los datos miles de veces. Una base de datos tradicional centralizada necesita transmitir los datos para su almacenamiento una vez. Una blockchain necesita transmitir los datos miles de veces.

Los costos de mantener una blockchain son de órdenes de magnitud más altas y el costo debe justificar su utilidad. Muchas de las aplicaciones que buscan alguna de las propiedades mencionadas previamente, como consistencia y confiabilidad, pueden obtenerlas por muchísimo menos costo utilizando verificaciones de integridad, recibos y respaldos.

Los usuario son soberanos

Esto puede ser realmente muy bueno puesto que a las empresas no les atrae el hecho de ser responsables legalmente por los datos de los usuarios, en primer lugar. Por otro lado, puede ser malo, si el usuario está portándose de mala manera. No existe una forma de expulsar a un usuario que está inundando tu blockchain con data frívola o ha encontrado alguna manera de obtener beneficio de algún tipo, lo que causa muchos problemas para el resto. Esto tiene relación con la observación previa de que las estructuras de incentivos deben diseñarse muy, pero muy bien; en tanto que un usuario que encuentra un fallo probablemente no quiera renunciar a ello, en particular si existe algún beneficio para éste.

Puede pensar que puede simplemente negarse a atender a usuarios maliciosos, lo cual sería muy sencillo de hacer en un sistema centralizado. Sin embargo, a diferencia de éste, negarse a atender es difícil debido a que ninguna entidad tiene la autoridad para expulsar a alguien. La blockchain debe ser imparcial y hacer cumplir las reglas definidas por el software. Si las reglas no son suficientes para prevenir el mal comportamiento, estas en problemas. No existe “espíritu” de la ley allí. Simplemente, debes convivir con actores maliciosos, posiblemente por un largo tiempo.

Todas las actualizaciones son voluntarias

Una actualización forzada no es una opción. Los otros actores en la red no tienen la obligación de cambiarse a tu software. Si lo tuviesen, un sistema como tal sería más sencillo, rápido y barato de construir como un sistema centralizado. El punto de una blockchain es que no está bajo el control de una única entidad y este principio se rompe al forzar una actualización.

En su lugar, todas las actualizaciones deben ser compatibles hacia atrás. Esto es obviamente difícil, especialmente si deseas incorporar nuevas características y aún más difícil cuando se analiza desde la perspectiva de la etapa de pruebas. Cada versión del software añade muchos más elementos a la matriz de pruebas e incrementa el tiempo para la publicación.

Nuevamente, si este fuese un sistema centralizado, sería muy sencillo de corregir al caducar el soporte a sistemas antiguos. No puede hacer esto, sin embargo, en un sistema descentralizado del mismo modo que no puede forzar a nadie a hacer algo.

Escalar es muy difícil

Finalmente, escalar es cuanto menos varias ordenes de magnitud más difícil que en un sistema tradicional centralizado. La razón es obvia. Los mismos datos deben residir en cientos o miles de lugares que en un único lugar. Los gastos generales en transmisión, verificación y almacenamiento son enormes puesto que cada copia de la base de datos debe pagarlos, a diferencia de que estos costes se pagan una sola vez en una base de datos tradicional centralizada.

Por supuesto, puede reducir la carga reduciendo el número de nodos. Pero, en este punto, ¿para qué necesita un sistema descentralizado en primer lugar? ¿Porqué no hace una base de datos centralizada si los costes de escalamiento son la principal preocupación?

La centralización es mucho más sencilla

Si ha notado algo, es que trabajar con sistemas descentralizados es muy difícil, costoso de mantener, difícil de actualizar y un dolor para escalar. Una base de datos centralizada es más rápida, menos costosa, sencilla de mantener y de actualizar que una blockchain. Entonces ¿porqué la gente sigue utilizando la palabra blockchain como si fuese la panacea para todos sus problemas?

Primero, muchas de estas industrias que han comprando la idea de blockchain están realmente atrasadas en actualizarse en infraestructura de TI. Sanidad tiene software notablemente horrible. Las compensaciones financieras todavía se hacen en software de los años 70. El software de gestión de cadena de suministro es tan difícil de utilizar como de instalar. Muchas empresas en estas industrias se resisten a actualizarse debido a los riesgos involucrados. Existen muchas actualizaciones de infraestructura que cuestan cientos de millones y terminan regresando al estado original de cualquier manera. Blockchain es una manera de vender estas actualizaciones de infraestructura y hacerlas ver un poco más apetitosas.

Segundo, blockchain es una manera de mostrarte como que estas en la frontera que lidera la tecnología. Te guste o no la palabra “blockchain” ha tomado vida propia. Muy pocas personas realmente entienden lo que es, pero quieren mostrarse más en onda así que utilizan estas palabras para sonar más inteligentes. Del mismo modo que “nube” significa el ordenador de otra persona y “IA” significa un algoritmo retocado, “blockchain”, en este contexto, significa una lenta y costosa base de datos.

Tercero, a la gente realmente no le gusta el control del gobierno en ciertas industrias y quiere un mecanismo de adjudicación distinto que el marco legal, el cual es usualmente lento y costoso. Para ellos, “blockchain” es en realidad una manera de desechar el pesado aparato de regulación estatal. Esto es exagerar lo que una blockchain puede hacer. Blockchain no elimina mágicamente el conflicto humano.

El resultado es: muchas personas que compran el bombo de las promesas sin entender realmente las capacidades o costes. Lo que es peor, los detalles técnicos y costes se abstraen de muchos capitalistas de riesgo y ejecutivos de una forma que busca oscurecer lo que una blockchain puede y no puede hacer. Sus subordinados tienen miedo a afirmar que el emperador está desnudo y es así como tenemos lo que tenemos ahora.

Entonces ¿para qué es buena una blockchain?

Ya hemos afirmado que una blockchain es muy costosa con respecto a bases de datos centralizadas. Por tanto, la única razón por la cual debería utilizar una blockchain es para descentralizar. Es decir, eliminar el punto de fallo o control central.

Esto naturalmente significa que el software o base de datos no debe cambiar con frecuencia, si no es jamás. Debe haber pocos incentivos para actualizar y, contrariamente, muchas desventajas para arruinarlo o cambiar las reglas.

La mayoría de las industrias no tienen esta característica. La mayoría de industrias requieren nuevas características o actualizaciones y la libertad de cambiar y expandirse a voluntad. Debido a que las blockchain son difíciles de actualizar, de modificar y de escalar, no existen muchos usos de blockchain para la mayoría de industrias.

La única excepción que hemos encontrado es el dinero. A diferencia de la mayoría de casos de uso en industrias, el dinero es más valorado si no cambia. La inmutabilidad y la dificultad en el cambio de las reglas es positivo para el dinero y no lo contrario. Esta es la razón del porqué blockchain es la herramienta adecuada para el trabajo cuando se trata de Bitcoin.

Lo que está claro es que muchas de las empresas que están tratando de utilizar blockchain en realidad no quieren una blockchain en cualquier caso, si no actualizaciones de TI para su industria específica. Esto está bien y es bueno, pero utilizar la palabra “blockchain” para conseguirlo es deshonesto e implica exagerar sus capacidades.

Conclusión

Blockchain es un término popular estos días y desafortunadamente, el meme “blockchain, no Bitcoin” no morirá. Si tiene un servicio centralizado, una blockchain no le brindará nada que no pueda hacer miles de veces más barato con una base de datos centralizada. Si tiene un servicio descentralizado, entonces probablemente se este engañando a si mismo y no tiene en cuenta lo puntos únicos de fallo que existen en su sistema. En un sistema realmente descentralizado no existiría “usted” en ningún caso. (N.d.T.: se refiere a que el servicio descentralizado no depende de que exista o no una entidad)

Al inicio de los años 2000, hubo una presión de parte de muchos ejecutivos en la industria de tecnología para utilizar Java y XML. A pesar de que ambos son herramientas y no productos concretos, muchos ejecutivos insistieron en su uso, sin importar cuan adecuado era para lo que sus ingenieros estaban intentando conseguir. Blockchain se parece mucho a eso. Cuando se enfoca en los problemas que está resolviendo las herramientas se harán evidentes fácilmente. En cambio, cuando lo hace en las herramientas que quiere utilizar conseguirá que termine creando máquinas de Rube Goldberg que no hacen nada específicamente bien.

De una manera, las concepciones actuales de blockchain están intentando hacer lo imposible. Quieren la seguridad de un sistema descentralizado con el control de uno centralizado. Desean lo mejor de ambos mundos, pero terminan obteniendo lo peor de ambos mundos. Obtienen los costes y dificultad de un sistema descentralizado con los modos de fallo de uno centralizado.

Blockchain se está utilizando demasiado como una palabra para vender mucho cebo de culebra inútil. Cuanto más rápido desechemos el bombo, cuan mejor estaremos todos en el largo plazo.

Traducción del articulo: Why Blockchain is Hard? por Jimmy Song, desarrollador de Bitcoin.