Nota: Este artículo está pensado para ser comprensible para lectores no técnicos; para obtener una comprensión muy técnica, consulta nuestro blockchain bootcamp después de leer este artículo.
Contrario a la creencia popular, las blockchains no son inmutables debido a la criptografía, sino debido a los incentivos económicos. La criptografía es solo una buena herramienta que hace que el incentivo económico sea más fácil de aplicar.
¿Cómo puede un archivo ser inmutable?
Una blockchain es un archivo al fin y al cabo — es un archivo que contiene el historial de transacciones de la red. Y todos sabemos que los archivos se pueden editar. Entonces, ¿qué hace que las blockchains sean inmutables?
Si almacenas el mismo archivo en miles de computadoras independientes, y esas computadoras no se confabulan entre sí, hacer un cambio idéntico en todas las computadoras es inviable.
Si haces un cambio en una computadora (como eliminar una transacción), el archivo en esa computadora no coincidirá con lo que tienen las demás computadoras.
El siguiente paso para la inmutabilidad es hacer que los cambios sean fáciles de detectar. Las blockchains tienen un tamaño de gigabytes, por lo que enviar un archivo completo a través de la red cada vez que necesites comparar notas para ver si el historial fue alterado sería demasiado costoso.
Todos los archivos pueden representarse de manera sucinta con una función hash. Una función hash toma un archivo arbitrario y produce un número entre 0 y
115,792,089,237,316,195,423,570,985,008,687,907,853,269,984,665,640,564,039,457,584,007,913,129,639,935.
Puedes pensar en una función hash como la generación de una huella digital para un archivo grande. Si cambia incluso un solo bit en el archivo, la huella digital será un número totalmente diferente. Por lo tanto, es fácil ver si el archivo cambió con solo mirar el número.
Se genera tomando una ventana deslizante sobre el archivo y utilizando el contenido del archivo para desencadenar una “mezcla” del número grande. Cambia solo una letra, y la mezcla será completamente diferente. A continuación se proporciona una animación

calculando el hash de un archivo
Por ejemplo, es fácil para ti comparar los siguientes dos números y ver:
25699748482000334349659950178510113434625287339471322686429384401650686920510
no es el mismo número que
111615780842736058021275746192495359629127277574153577922775094394736461370563.
Cuando ves dos números muy grandes y diferentes, te das cuenta de que los dos archivos distintos a los que se les sacó la huella digital son diferentes.
A estos números muy grandes se les conoce como “blockhashes”.
Archivo → Función Hash → Número Muy Grande
Si utilizas un explorador de bloques como etherscan.io, verás que este Número Muy Grande se denomina blockhash. Así es como lo llamaremos por el resto del artículo.

Blockhash en Ethereum
En lugar de compartir el archivo completo, las computadoras de la red comparten el blockhash.
Secuencia de transacciones
Cuando una computadora comparte una transacción, necesita compartir tres cosas:
- El blockhash antes de la transacción
- La nueva transacción
- El blockhash después de la nueva transacción
Si el blockhash en el paso 1 no coincide con el blockhash local de una computadora, la computadora lo rechaza. Si el blockhash en el paso 3 no es el resultado después de la transacción en el paso 2, la transacción es rechazada.
La única manera de convencer a miles de computadoras de que tu número es válido es utilizar el mismo blockhash (que representa tu historial) que la mayoría de las computadoras. Es más fácil seguir a la mayoría que intentar convencer a la mayoría de que están equivocados, y esta inmensa dificultad de ir en contra de la mayoría es lo que hace que la blockchain sea inmutable y segura.
Garantizar la no colusión
Incluso si tienes miles de computadoras alrededor del mundo, si esas computadoras están realmente controladas por una sola entidad, entonces hacer un cambio en el historial de la blockchain sería fácil para la entidad controladora.
La clave está en hacer que sea difícil para una sola persona participar en la mayoría de la red. Esto es a lo que nos referimos como “descentralización”
Bitcoin utiliza mucha electricidad por diseño, porque se asume que ninguna entidad individual puede consumir la mayoría de la energía a nivel mundial.
Ethereum utiliza proof of stake (necesitas bloquear Ethereum para participar en Ethereum) porque se asume que nadie puede comprar la mayoría de Ethereum y bloquearlo para controlar a la mayoría de las computadoras en la red.
Cuantos menos participantes haya en la red, más probable se vuelve la colusión, por lo que las blockchains con muchas computadoras en la red publicitan ese número.
Relación con los libros mayores distribuidos
A las blockchains a veces se les denomina “distributed ledgers” (libros mayores distribuidos) o, en otras palabras, historiales de transacciones distribuidos y ampliamente aceptados. Esto es clave porque estar distribuido es una parte importante de ser inmutable.
Como vimos en la primera sección, a menos que varias copias del archivo de la blockchain se almacenen alrededor del mundo por participantes que no se confabulan, entonces el archivo puede ser mutado.
Si un archivo es administrado por solo unas pocas computadoras, entonces no está realmente distribuido y, por lo tanto, no es realmente una blockchain.
Incentivo económico
Una computadora en la red no incluirá una transacción en la red si cree que le perjudicaría. Por ejemplo, administras una computadora en la red y ves una transacción entrante que dice: “Bob de repente tiene un millón de dólares de la nada”. Que alguien obtenga dinero gratis (y perderse la ganancia) no es algo con lo que la mayoría de las computadoras se sentirían bien, por lo que rechazan la transacción y no aceptan blockhashes que correspondan a un historial que contenga esa transacción. Saber que la gente no aceptará que inventes transacciones que te favorecen de forma ilegítima disuade a las personas de intentar incluir transacciones de ese tipo.
Pero, ¿qué pasaría si todas las computadoras se unieran y dijeran: “imprimamos cada uno un millón de monedas”? Ocurre un fenómeno económico muy interesante: el valor de la moneda no cambia.
Imagina que un día el gobierno dice: “todos pueden cambiar sus billetes de un dólar por diez neo-dólares, los billetes de 5 dólares por 50 neo-dólares, y así sucesivamente”. ¿Qué pasaría con el valor de la moneda? ¡Nada! El precio de todo en la economía simplemente tendría un cero adicional al final y las cosas seguirían como de costumbre.
Para que ocurra este tipo de colusión, todos deben estar de acuerdo en exactamente cuánto dinero extra recibirán todos. Si hay un desacuerdo, entonces todos tendrán diferentes blockhashes representando su historial. Si hay un desacuerdo de este tipo, la red se paralizará, porque la Secuencia de transacciones anterior ya no funcionará. Si la red se rompe, entonces todos pierden su dinero en el sistema, por lo que existe un incentivo para no romper la red.
Cuando el incentivo económico no es suficiente
Para demostrar que la inmutabilidad es principalmente económica, no criptográfica, imagina a un grupo de estudiantes universitarios iniciando una nueva blockchain, llamémosla college-coin. Su patrimonio neto colectivo es inferior a $20,000. Luego aparezco como un multimillonario malvado con una oferta que no pueden rechazar: darles a cada uno $20,000 para editar la blockchain exactamente como yo quiero. Esta es una oferta que no pueden rechazar.
Dado que todos realizan ediciones idénticas, todos obtienen blockhashes idénticos y la red continúa con normalidad. Luego, las personas se muestran entre sí este nuevo blockhash cuando realizan transacciones, y todos pueden gastar dinero normalmente, pero con el nuevo elemento que agregué al historial.
Las blockchains pequeñas con incentivos económicos insuficientes son vulnerables a ataques como estos.
Interés propio mutuo
Si alteras tu archivo, tu blockhash no coincidirá con lo que tienen el resto de las computadoras. Y si tu blockhash no coincide con lo que tienen las otras computadoras, no podrás gastar dinero.
Debido a que cada participante tiene un incentivo para no alterar su copia local de la blockchain (y así evitar que se le impida gastar dinero), la blockchain no es alterada. Esto es lo que hace que la blockchain sea inmutable.
Todos los archivos de computadora son mutables. Pero si pones los incentivos económicos adecuados en marcha, la gente no los cambiará.
Publicado originalmente el 10 de febrero de 2023