Blockchain
- Ventaja: un registro antiguo no se puede cambiar
- Ventaja: funciona sin banco y todos los días
- Desventaja: una transferencia errónea no se puede revertir
- Desventaja: todas las transferencias las ve cualquiera
Las copias de una blockchain las guardan a la vez muchos participantes de la red, es decir, las computadoras que llevan juntas sus cuentas. Los registros nuevos se reúnen en bloques, y los bloques se enlazan entre sí por orden, uno tras otro. De ahí viene el nombre: cadena de bloques.
Imagina un cuaderno común del que mucha gente tiene una copia. Cada hoja nueva remite a la anterior, así que nadie puede arrancar una hoja vieja ni reescribirla sin que se note. Los demás conservarían su copia tal como estaba, y el cambio saltaría a la vista enseguida.
¿Para qué te sirve esto? Gracias a blockchain, la criptomoneda funciona sin un banco intermediario. Las cuentas las lleva toda la red a la vez, y no hace falta confiar en una sola empresa.
Cada bloque se parece a una hoja de un libro de registros con un encabezado. En el encabezado figura, entre otras cosas, la huella de la hoja anterior, es decir, una cadena larga de números y letras calculada a partir de su contenido. Donde mejor se ve es en el inicio de la red Bitcoin, en sus dos primeros bloques.
La huella del bloque 0 está copiada tal cual en el encabezado del bloque 1. Así se enlazan las hojas: el bloque 1 «sabe» qué bloque vino antes. Para ver estos bloques existe el explorador de bloques, un sitio donde aparecen todos los bloques y todas las transferencias.
La huella la calcula un programa a partir del contenido de un registro. Su propiedad principal es que cambia por completo ante la menor modificación de los datos de origen. Escribamos una transferencia sencilla, «A -> B: 5», y calculemos su huella. Ahora cambiemos un solo dígito, el 5 por un 6.
Las huellas salieron totalmente distintas, aunque el registro cambió en un solo carácter. A este tipo de huella se le llama hash. Por eso nadie puede retocar un registro viejo sin que se note: su hash delataría el cambio de inmediato.
Juntemos las dos propiedades. Si cambias cualquier cosa en un bloque antiguo, su huella pasa a ser otra, el encabezado del bloque siguiente deja de coincidir con ella, y detrás se desarma toda la cadena. A eso se suma que muchos participantes tienen una copia del libro y la comparan entre sí todo el tiempo. Por eso todos ven el cambio enseguida, y no existe un punto único cuya falla pudiera detenerlo todo.
Esta protección también tiene un punto débil. Si casi todas las computadoras de la red (o casi todas las monedas que los participantes dejan en garantía a cambio del derecho a revisar transferencias) pertenecen a unos pocos dueños, esos dueños pueden imponerle sus condiciones a la red. Aun así, no pueden falsificar la firma de otra persona en una transferencia (la pone la billetera del titular con su clave secreta), ni crear monedas de la nada, ni reescribir registros antiguos. Lo que sí está a su alcance es reescribir unos pocos bloques recientes para anular una transferencia propia y gastar las mismas monedas por segunda vez. En una red grande, reunir tanto poder es casi imposible. En una pequeña sale más barato, y ya ha ocurrido.
No. Ninguna persona ni empresa puede borrar o corregir una transferencia ya registrada en una blockchain abierta. Un error solo se arregla con un registro nuevo: el destinatario, por ejemplo, puede devolver las monedas con otra transferencia, aunque solo si él quiere. No confíes en los «servicios» que prometen anular una transferencia a cambio de un pago; ese engaño lo explica el artículo phishing y estafas.
Las reglas de la red se pueden cambiar para corregir las consecuencias solo si está de acuerdo la mayoría de sus participantes. Así pasó en Ethereum en 2016, después de un robo grande en un proyecto. Se cambiaron las reglas, y quienes no estaban de acuerdo siguieron llevando la versión antigua del libro; el caso se cuenta en detalle en el artículo hard fork.
Quien empieza hace bien en conocer de antemano la otra cara de blockchain.
Conviene comparar blockchain con dos formas conocidas de llevar registros. En un banco, todos los registros los lleva una sola empresa. Una hoja compartida en internet la llevan juntos todos los que tienen el enlace.
| Blockchain | Base del banco | Hoja de cálculo | |
|---|---|---|---|
| ¿Hay copia en manos de muchos? | sí | no | no1 |
| ¿Puede una empresa cambiar un registro antiguo? | no | sí | sí |
| ¿Cualquiera puede ver los registros? | sí2 | no | a veces3 |
| ¿Funciona sin intermediario? | sí | no | no |
| ¿Se puede corregir un error? | no | sí | sí |
| ¿Agregar un registro es rápido y casi gratis? | a veces4 | sí | sí |
Una blockchain pública está abierta a todos. Cualquiera puede leerla, enviar transferencias y participar en el funcionamiento de la red. Una privada la lleva una sola organización o un grupo de empresas, que es quien da acceso a ella. Bitcoin y Ethereum son públicas, y las blockchains privadas las usan las empresas de puertas adentro, por ejemplo para controlar suministros. Casi todo lo que explica nuestro sitio funciona en blockchains públicas.
Los bloques nuevos los crean los mineros o los validadores, es decir, participantes cuyas computadoras revisan las transferencias y las agregan a la blockchain a cambio de una recompensa. De ellos trata el artículo mineros y validadores. El espacio en un bloque es limitado, así que tu transferencia primero espera su turno entre las no confirmadas. En Bitcoin y en muchas otras redes, esa fila se llama mempool. Quien arma el siguiente bloque quiere ganar más, por eso normalmente toma primero las transferencias que ofrecen una comisión de red más alta (el pago para que la red registre tu transferencia). Una transferencia con comisión más alta suele confirmarse antes. Cómo funciona la comisión y por qué su monto da saltos lo explica el artículo qué es el gas.
Cuando una transferencia entra en un bloque, recibe su primera confirmación, y cada bloque siguiente vuelve el registro más seguro. Cuántas confirmaciones lleva ya tu transferencia lo muestra el explorador de bloques.
El trabajo de la red lo pagan sus usuarios con las comisiones de sus transferencias. En la mayoría de las redes, quienes agregan bloques reciben también monedas nuevas como recompensa, y normalmente esa regla está escrita en el código de la red. Hay excepciones. En la red XRP Ledger, por ejemplo, no existe recompensa por bloque, y los validadores trabajan sin ella. Las monedas nuevas aumentan la cantidad total, así que de forma indirecta las pagan todos los tenedores; esto lo cuenta el artículo qué es la emisión. No hay una empresa aparte ni una cuota mensual como en un banco.
La idea de una cadena de registros con marcas de tiempo la describieron los investigadores Stuart Haber y Scott Stornetta ya en 19912, y la primera blockchain de uso masivo fue la red Bitcoin, en 2009. Después aparecieron muchas blockchains, muy distintas entre sí, como explica el artículo qué es una criptomoneda.
Gastar dos veces las mismas monedas se llama doble gasto, y el intento de reescribir los bloques recientes reuniendo la mayor parte de la red se llama ataque del 51%. La red Ethereum Classic, por ejemplo, sufrió varios ataques del 51% en agosto de 20203. Este ataque se analiza a fondo en la página mineros y validadores.
Los programas que funcionan dentro de una blockchain (los contratos inteligentes) a menudo necesitan datos de fuera, como los precios. De dónde sacan datos correctos lo explica el artículo Chainlink.