Las blockchains que utilizan prueba de trabajo a menudo se denominan registros inmutables: todo lo que se escribe en una blockchain de este tipo permanece allí. Es imposible alterar o reemplazar esa información. Pero, ¿es realmente imposible forzar cambios en una blockchain, modificar el historial de transacciones y redistribuir monedas? La respuesta simple es: no es imposible, solo muy, muy difícil.
Las blockchains que utilizan prueba de trabajo a menudo se denominan registros inmutables: todo lo que se escribe en una blockchain de este tipo permanece allí. Es imposible alterar o reemplazar esa información. Pero, ¿es realmente imposible forzar cambios en una blockchain, modificar el historial de transacciones y redistribuir monedas? La respuesta simple es: no es imposible, solo muy, muy difícil.
Las blockchains pueden no ser perfectamente inmutables, pero sería difícil encontrar un sistema digital de tal complejidad que lo sea. De hecho, las blockchains de criptomonedas logran un nivel envidiable de inmutabilidad en comparación con otras formas de dinero digital. Sus desarrolladores han tomado muchas medidas para garantizar que estas criptomonedas funcionen como registros confiables e inalterables sin necesidad de confiar en una autoridad central para mantener los registros en orden.
Este artículo explora los casos límite en los que el contenido de una blockchain puede sufrir cambios y muestra dónde la idea de inmutabilidad podría dejar algo que desear.
Aspectos esenciales de la inmutabilidad de la blockchain
- La blockchain alcanza un nivel sobresaliente de inmutabilidad, pero no es perfectamente inmutable.
- Un ataque del 51% exitoso podría llevar a cambios en el historial de transacciones en una blockchain PoW.
- El fork es una forma de cambiar la blockchain si cuenta con suficiente apoyo de la comunidad.
- Las transacciones necesitan alcanzar el estado de finalidad práctica para que la mayoría de los comerciantes y exchanges las consideren completas.
Ataque del 51% en blockchains públicas
Una de las formas más evidentes en las que es posible modificar el historial de una blockchain es mediante un ataque del 51% (también conocido como ataque de doble gasto, porque permite al perpetrador volver a gastar monedas que ya se han gastado).
En un escenario de ataque del 51%, el atacante toma el control de una blockchain al tener la mayoría del poder de hash (la potencia de cómputo necesaria para generar nuevos bloques). Esto les permite modificar el historial de transacciones a su antojo, financiando cuentas particulares mientras vacían otras.
Sin embargo, llevar a cabo un ataque del 51% en una blockchain popular es más fácil decirlo que hacerlo y requeriría una enorme cantidad de dinero (para equipos de minería de alta gama) y electricidad (para hacer funcionar el equipo) para tener éxito. Tampoco es económicamente viable, ya que lo más probable es que provoque una caída en el precio de la criptomoneda objetivo.
Bifurcaciones de blockchain e inmutabilidad
La bifurcación es otra instancia donde el historial de transacciones puede sufrir un cambio. Las bifurcaciones duras tienen el poder de cambiar casi todo en una blockchain (ver Bitcoin Cash) y también hacen posible redistribuir monedas.
Esto es lo que sucedió con la bifurcación DAO de Ethereum. En 2016, un importante contrato inteligente basado en Ethereum, conocido como la Organización Autónoma Descentralizada, fue explotado y se robaron 3,6 millones de ETH (con un valor aproximado de 50 millones de USD en ese momento). Para aliviar el daño causado, la mayoría de los usuarios de Ethereum decidieron adoptar una bifurcación que devolvió el ETH robado.
Por supuesto, esta bifurcación solo podría haberse implementado con un voto mayoritario, y fue el caso que el voto a favor de la bifurcación ganó por un amplio margen. Es poco probable que los inversores de DAO hubieran actuado de esta manera si no se hubiera tratado de recuperar su ETH robado. Sacrificaron la inmutabilidad, y con ella el valor principal de DAO de "el código es ley", en favor de recuperar los fondos perdidos debido a una vulnerabilidad en el contrato inteligente de DAO.
Finalidad práctica de las transacciones de criptomonedas
Cuando se realiza una transacción en una blockchain, necesita ser finalizada. Solemos pensar en ello en términos de que la transacción sea minada, lo que significa que se incluye en un bloque. Sin embargo, la mayoría de los comerciantes y exchanges que trabajan con criptomonedas no consideran esto suficiente y exigen que se añada un cierto número de bloques a la blockchain después del que contiene tu transacción.
Hacen esto porque la inclusión en el último bloque no es garantía de finalidad. De hecho, ninguna transacción alcanza nunca la finalidad absoluta. Una variedad de factores, desde mineros malintencionados hasta problemas de conectividad de red, podrían significar que el último bloque no sea legítimo y exista una probabilidad (aunque pequeña) de que aún pueda sufrir un cambio: los validadores podrían rechazarlo, continuando la blockchain en un camino alternativo.
Sin embargo, con cada bloque añadido encima del que contiene tu transacción, la posibilidad de que sea final aumenta. En cierto punto, cuando la transacción está incrustada lo suficientemente profundo, alcanza el estado de finalidad práctica, después del cual su inmutabilidad es prácticamente segura. Esto no requiere una profundidad extrema. Normalmente necesitas esperar de 3 a 6 bloques de Bitcoin (alrededor de una hora) y alrededor de 12 bloques de Ethereum (generalmente no más de 4 minutos) para que tu transacción se considere finalizada.
Inmutabilidad práctica más allá de toda duda
Así que, aunque las blockchains no son 100% inmutables y pueden, en casos extremos y raros, ser cambiadas incluso contra los deseos de sus desarrolladores y usuarios, están lo suficientemente cerca de este objetivo como para ser llamadas prácticamente inmutables. Para las blockchains de prueba de trabajo como Bitcoin, cuanto más poder de minería tienen, más inmutables se vuelven. Esto significa que las blockchains más grandes con más apoyo de la comunidad son más difíciles de cambiar que las blockchains más pequeñas.
Cuando se trata de sistemas monetarios, las grandes blockchains públicas proporcionan el mayor grado de transparencia e inmutabilidad que hemos podido lograr hasta ahora. A medida que crecen y reúnen más apoyo, solo se volverán más inmutables.