El Costo del Blockchain

Publicado en

Autor

Este artículo es una versión traducida y editada de  “Why Blockchain is Hard

Usar blockchain ciertamente tiene sus beneficios. Tener una bitácora inmutable que no pueda ser controlada por alguien en específico puede ser útil en ciertos casos. Sin embargo, usar el blockchain también tiene sus costos e inconveniencias. Revisemos algunos de estos …

El desarrollo es más estricto y lento

Crear y mantener un sistema cuya consistencia se pueda demostrar continuamente, no es una tarea sencilla. Un pequeño bug podría corromper toda la base de datos o provocar diferencias entre nodos. Por supuesto, una base de datos corrupta o fracturada pierde sus garantías de consistencia. Los sistemas basados en blockchain deben ser diseñados para ser consistentes desde un inicio. El “vamos a movernos rápido y romper cosas” no es una opción al usar blockchain; si rompes cosas, pierdes consistencia y tu base de datos pierde toda utilidad.

Puede que te preguntas por qué no podemos simplemente arreglar la base de datos o descartarla y comenzar de nuevo. Eso sería sencillo en un sistema centralizado, pero es muy difícil en uno descentralizado; para cambiar la base de datos se requiere consenso entre todos los participantes en el sistema. Un blockchain no debe estar bajo el control de una sola entidad; si hacemos eso, simplemente estamos creando una base centralizada que nos va a salir cara y va a ser lenta.

Estructuras de incentivos

Otra aspecto importante del que depende mucho del éxito de un blockchain es diseñar una buena estructura de incentivos para los participantes en la red. No solo queremos motivarlos, pero también debemos asegurarnos de que no puedan abusar o corromper la base de datos. No nos sirve de mucho que un blockchain sea consistente si está lleno de información inútil porque el costo de poner datos sobre este es demasiado bajo. De la misma manera, tampoco nos sirve que esté vacío porque el costo de poner datos es muy alto.

¿Cómo puedes asegurar que las recompensas estén alineadas con los objetivos de la red? ¿Por qué a los nodos les interesaría mantener o actualizar los datos y por qué escogerían un dato sobre otro en caso de conflicto? Debemos tener estas preguntas en consideración desde el inicio del proyecto y mantener la coherencia a lo largo de este.

El mantenimiento es costoso

En una base de datos centralizada, para leer o escribir un dato solo se requiere una sola operación. Pero en una red blockchain, dependiendo de su tamaño, puede ser necesario leer o escribir un dato miles de veces. Es así que el costo de mantener un blockchain es mucho mayor y por lo tanto este costo debe ser justificado por su utilidad. La mayoría de las aplicaciones que busca alguna de las propiedades asociadas al blockchain como consistencia y confiabilidad puede obtenerlas por metro de otros mecanismos mucho más económicos tales como respaldos, recibos y revisiones de integridad.

Los usuarios son soberanos

Dada su naturaleza, en una plataforma blockchain las empresas no necesitan retener datos personales de sus usuarios o clientes. Esto puede ser positivo para empresas interesadas en minimizar sus riesgos de compliance. Sin embargo, en el caso de usuarios “mal portados” esto puede ser un problema ya que tal vez no haya forma de identificarlos y sacarlos. Esto refuerza el punto anterior de que debemos diseñar una estructura de incentivos adecuada y de la que no se pueda abusar.

Las actualizaciones son voluntarias

En un sistema basado en blockchain no se tiene la opción de obligar a los usuarios a una actualización del sistema. Los participantes en la red no tienen ninguna obligación de actualizar el software. El objetivo de un blockchain es que no pueda estar bajo el control de una entidad particular, y esto incluye poder forzar actualizaciones. Si necesitas hacer esto, mejor construye un sistema centralizado.

Teniendo esto en cuenta, todas las actualizaciones deben ser retrocompatibles. Esto, por supuesto, no es trivial, especialmente si deseas agregar nuevas capacidades. Probar este tipo de sistemas también se complica ya que cada cambio debe ser probado a través de todas las versiones del sistema. En un sistema centralizado puedes darte el lujo de dejar de soportar una versión, pero en un blockchain no es así.

La escalabilidad es más complicada

Finalmente, lograr sistemas basados en blockchain altamente escalables es varios órdenes de magnitud más complicado que lograrlo en sistemas centralizados. La razón es obvia: los datos necesitan vivir en cientos o miles de lugares, en lugar de en uno solo. El overhead de transmisión de datos, verificación y almacenamiento es enorme ya que se generan para cada copia de la base de datos en lugar de solo una vez en el caso de sistemas centralizados.

Por supuesto, puedes mitigar esto reduciendo la cantidad de nodos. Pero entonces, ¿para qué necesitas un sistema descentralizado? Si los costos de escalabilidad son un problema, tal vez sea mejor hacer un sistema centralizado.

La centralización es más sencilla

Como habrás notado en los puntos anteriores, un sistema centralizado es más rápido, más barato, más sencillo de mantener y controlar que uno basado en blockchain. Entonces, ¿por qué la gente insiste en aventar la palabra “blockchain” como si mágicamente fuera a resolver todos los problemas?

Lo primero que hay que tomar en cuenta es que muchas de las industrias que se están involucrando en el blockchain arrastran serios rezagos en la actualización de su infraestructura de tecnologías de información. Por ejemplo, el sector de servicios de salud usa sistemas notablemente malos. En el caso del sector financiero, muchos de sus sistemas de misión crítica datan de los 70s. El software para gestión de cadenas de suministro es difícil de usar y administrar. La mayoría de las empresas en estas industrias se resisten a actualizar sus sistemas porque esto involucra riesgo. El blockchain es una forma de “vender” estas actualizaciones de infraestructura de TI haciéndolas un poco más apetecibles.

Adicionalmente, el blockchain es una forma de dar la apariencia de que eres una empresa innovadora, usando la tecnología más novedosa. Nos guste o no, la palabra “blockchain” ha tomado vida por sí misma. Muy pocas personas en realidad entienden lo que es, pero buscan parecer modernos así que dicen que saben lo que es y están contemplando usarlo, simplemente para parecer más inteligentes. Así como en términos prácticos, “la nube” en realidad significa la computadora de alguien más, e “inteligencia artificial” significa un algoritmo configurado, “blockchain” en este contexto significa una base de datos lenta y cara.

Otra razón es que a la gente no le gusta que el gobierno controle ciertas industrias, por lo que buscan un mecanismo de adjudicación distinto al actual que tiende a ser lento y costoso. Para estas personas, “blockchain” es en realidad una forma de evitar el torpe aparato de regulación gubernamental. Pero esto es sobreestimar lo que puede hacer el blockchain. El blockchain no puede mágicamente eliminar conflictos humanos.

El resultado es que muchas personas se encuentran entusiasmadas por las promesas sin realmente comprender los costos. Lo que es peor, la mayoría de la información disponible a los ejecutivos abstrae los detalles técnicos y costos. Así que todos tienen miedo de decir que el emperador no tiene ropa y así llegamos hasta aquí.

¿Para qué si sirve el blockchain?

Ya establecimos que el blockchain es caro, complicado y lento y que la única razón por la que tiene sentido utilizarlo es para descentralizar un sistema. Es decir, eliminar que haya un punto único de falla.

Esto implica que el software no debe cambiar las cosas frecuentemente (si acaso las cambia). Debe haber muy pocos beneficios de actualizar el sistema y un gran costo de fallar o cambiar las reglas.

La mayoría de las industrias no son así. La mayoría de las industrias requiere sistemas que frecuentemente agreguen nuevas capacidades y la libertad de cambiarlos y expandirlos conforme sea necesario. Dado que los sistemas basados en blockchain son difíciles de actualizar, cambiar y escalar, la mayoría de las industrias no los necesita realmente.

La excepción es el dinero. A diferencia de la mayoría de los casos industriales, el dinero es mejor si no cambia. La inmutabilidad y dificultad para cambiar las reglas es algo positivo para el dinero. Es por eso que el blockchain es la herramienta adecuada para las criptomonedas.

Conclusión

Muchas empresas que buscan usar blockchain en realidad no quieren blockchain sino actualizar su infraestructura de TI. Eso está muy bien, pero usar el blockchain para llegar ahí solo traerá problemas.

En cierta forma, la mayoría de las concepciones actuales del blockchain están tratando de hacer lo imposible. Quieren la seguridad de un sistema descentralizado pero el control de uno centralizado. Es decir, quieren lo mejor de dos mundos, pero frecuentemente terminan obteniendo lo peor de ambos: el costo y dificultad de un sistema descentralizado con las modalidades de falla de uno centralizado.