La minería es el aspecto fundamental del funcionamiento de la red Bitcoin, y por tanto, es importantísimo entender qué es y por qué es necesaria. En el siguiente artículo de Coin Center, se aclaran las razones de la necesidad y de la importancia de la minería en Bitcoin y se explica en términos simplificados en qué consiste exactamente el proceso de minería.
¿Por qué tiene Bitcoin “mineros”?
El oro tiene mineros porque la gente quiere oro y da la casualidad de que, lamentablemente, la mayoría del oro está bajo tierra. Bitcoin tiene mineros porque la gente quiere bitcoins, pero algo aquí parece una tontería: ¿cómo un montón de bitcoins, unos tokens de invención humana, terminan atrapados en circunstancias que exigen minería? ¿Cuál es la razón de esto?
La verdad es que “minería” bitcoin es un término equivocado. Cuando se extrae el oro, no se consigue nada más allá del descubrimiento de oro nuevo. Cuando se extraen bitcoins, sin embargo, se proporciona un valioso servicio de seguridad a la red Bitcoin: inscripción de transacción descentralizadas y validación.
Doble gasto en Bitcoin
Bitcoin se basa en los mineros para registrar y validar las transacciones debido a un problema en particular inherente a cualquier sistema de moneda digital: duplicar el gasto. El doble gasto es la encarnación de la falsificación en la alta tecnología. Digamos, por ejemplo, que una usuaria de moneda, Alice, tiene un billete de 5 dólares y se lo da a Bob. ¿Se puede estar seguro de que Bob ha recibido 5 dólares, en lugar de una falsificación? En el mundo físico, probablemente. En el mundo digital, probablemente no.
En el mundo físico, Alice tendría que encontrar el papel, la tinta y las máquinas capaces de hacer un duplicado convincente de su billete de 5 dólares. El costo de esta actividad, junto con los escrúpulos morales y la amenaza de arresto, mantiene en jaque a la falsificación.
En el mundo digital, sin embargo, una versión del archivo informático de un billete de 5 dólares, como un archivo MP3 o un documento de MS Word, se puede copiar a la perfección de forma efectiva sin ningún costo. No hay forma de saber qué archivo es el original, y la facilidad del copiado significa que las monedas falsas podría invadir rápidamente la economía.
Para solucionar este problema, los inventores de Bitcoin diseñaron un sistema de interacciones en la red, un protocolo, que comprueba cada supuesta transferencia Bitcoin en un libro de contabilidad pública llamada la cadena de bloques (blockchain en inglés). Un delincuente puede tratar de volver a enviar los bitcoins ya gastados hasta ponerse morado; si esas transacciones no son comprobadas, sin embargo, los mineros no las grabarán y la comunidad ignora el intento de fraude.
¿Cómo funciona la minería de Bitcoin?
Los mineros Bitcoin se conectan a la red Bitcoin como operadores de telefonía. Los mineros utilizan sus ordenadores para recibir las solicitudes de transacciones de toda la red y recopilan una lista de las transacciones válidas.
Los bitcoins no son enviados y recibidos como archivos adjuntos en un correo electrónico. No hay archivos en absoluto, solo las asignaciones de bitcoins hechas a varias direcciones públicas. Cada dirección pública tiene una clave privada correspondiente y solo el titular de esa clave es capaz de firmar digitalmente una nueva solicitud de transacción. Además, la solicitud debe tener inputs. Los inputs son las transacciones anteriores que el remitente está utilizando para financiar la nueva transacción. Si ha recibido previamente cinco bitcoins de Alice y cuatro de Bob, puede juntar estos inputs para financiar una nueva transacción a Cynthia por valor de hasta nueve bitcoins.
Los mineros comprueban dos cosas cuando reciben una solicitud. Primero comprueban para asegurarse de que la firma digital ratifica que hayas sido anteriormente realmente el destinatario de dichos inputs. En segundo lugar, comprueban para asegurarse de que no hayas gastado ya esos inputs. Para realizar esta segunda comprobación, los mineros pican en una base de datos pública de todas las transacciones válidas ya efectuadas, llamada la cadena de bloques, para ver si esos inputs ya se utilizaron en una transacción o si todavía están disponibles. Las copias de esta cadena de bloques se almacenan en los equipos informáticos de todos los usuarios de Bitcoin que se conectan a la red.
Por lo tanto, los mineros desempeñan el papel de los cajeros de banco: inspeccionan los cheques, asegurándose de que todas las firmas correspondientes y números de cuenta están correctos, comprobando la identidad del cliente, y buscando pruebas de que el cliente tiene suficiente efectivo para realizar la transacción.
Completar un “bloque” en Bitcoin
Si todo sale bien, el minero añadirá la transacción a su lista personal de todas las transacciones válidas en los últimos minutos. Cada pocos minutos, se seleccionará un minero para agregar su lista personal, un bloque, a la cadena de bloques oficial, manteniendo así el registro público actualizado.
Para evitar que un minero de manera fraudulenta corrompa la cadena de bloques, el protocolo Bitcoin fuerza que los mineros tengan que competir. Un minero diferente está facultado para completar cada bloque, aproximadamente cada 10 minutos, y solo los bloques válidos serán validados por el resto de la comunidad minera. He aquí cómo funciona:
Adivinar y Comprobar el “Nonce” de un bloque Bitcoin
Un bloque de un minero se convertirá en una parte de la cadena cada vez que una mayoría de la comunidad de mineros lleguen al consenso de que: (A) las transacciones registradas por el minero son válidas -sin firmas de imitadores y sin doble gasto- y (B) que el minero ha adivinado correctamente un número especial, el Nonce, que resuelve un problema matemático particular. Los mineros realizan esta comprobación examinado la firma digital particular del bloque propuesto. Esta firma es un producto generado por el ordenador con tres entradas, (1) la firma del bloque anterior, (2) una lista de las transacciones válidas desde el anterior bloque, y (3) un número aleatorio particular, llamado Nonce.
Para entender todo esto, necesitamos un poco más de información acerca de las firmas digitales. Las firmas operan mediante el uso de las funciones “hash“. En su forma más simple, las funciones hash son ecuaciones matemáticas que toman cualquier entrada dada y crean una salida aparentemente al azar que siempre va a corresponder a esa entrada en particular.
La función hash utilizada en Bitcoin se denomina SHA256. Usando esta función, el texto de entrada:
“This is a hash!”
Creará siempre como salida esta cadena de caracteres con SHA256:
“dcc67309a9c5c4a6d5434de87dbd4162f745f32b2a6aedf89c89d31d863b022b”
Puedes hacerlo tú mismo entrando en una calculadora de hash online; si escribes “This is a hash!” sin las comillas, obtendrás la misma serie específica de números y letras.
Si una función hash está bien escrita, cualquier cambio en la entradas va a cambiar drásticamente la cadena de salida, y diferentes entradas nunca ofrecerán como salida la misma cadena. Según esa norma, SHA256 está muy bien escrito. Por ejemplo, cambiando nuestra entrada “This is a hash!” ligeramente, el resultado de las salidas es totalmente diferente:
“This is a hash!” =
“dcc67309a9c5c4a6d5434de87dbd4162f745f32b2a6aedf89c89d31d863b022b”
“This is a hash?” =
“d43edbde4b15a97e780c1a9e1392b2c4601750fe03db543b3c4c44624d277641″
“This is a hash brown.” =
“5692e888b50c526f7eb95342a6fd56760b2ff95a766414562daa4083bab8bcfc”
Por lo tanto, si las entradas para la firma de un nuevo bloque son la firma del bloque anterior y una lista de las transacciones recientes, la salida será una cadena única que sólo se podría haber obtenido con los datos exactos. Debido a que es el producto único de esas entradas, la firma puede ser usada para probar que las transacciones descritas en él ocurrieron en un orden determinado: en el bloque actual o algún bloque anterior. Si se trata de cambiar el orden mediante la conformación de últimos bloques falsos, la firma ya no coincidirá. Esto permite que el beneficiario en particular de una transferencia demuestre que fue el primero en recibir las monedas; y cualquier doble gasto posterior de esas monedas es un fraude.
Todos los mineros, sin embargo, son capaces de escribir una firma integrada por la firma del bloque anterior y la nueva lista de transacciones muy rápidamente usando sus potentes equipos informáticos. ¿Cómo elegimos entonces un ganador a intervalos regulares para hacerlos competir? La solución es pedir una cadena que será difícil de generar rápidamente, una especie específica de cadena de salida, que empieza con un cierto número de ceros, como esta:
“0000000000000xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx”
Esa larga fila de ceros al comienzo del hash es estadísticamente improbable, tanto como lanzar una moneda al aire y que salga cara trece veces seguidas. Sin embargo, hay una particular combinación de entradas que se traducirá en una salida de hash que comienza con todos esos ceros. La combinación implicará un número aleatorio particular llamado “Nonce” que los mineros tendrán que adivinar.
Los mineros repetidamente crean hash con sus dos entradas conocidas (la firma del bloque anterior y la lista de las nuevas transacciones), junto con estimaciones al azar de Nonce. Finalmente, uno de los mineros encontrará un Nonce que le dará una firma con el número solicitado de ceros al comienzo.
Los mineros que utilizan los equipos informáticos más potentes pueden hacer estimaciones más rápido, y, como la compra de más billetes de lotería, estos mineros serán más propensos a ganar la carrera por encontrar el hash particular. Es por esto que los mineros puedan competir entre sí mediante la inversión en equipos informáticos más potentes. Más intentos de hash es igual a más bloques completados en la cadena de bloques con el tiempo. Para evitar que los bloques se completen demasiado rápido o demasiado lento cuando haya más o menos potencia de cálculo utilizada por los mineros, el protocolo se ajusta cada dos semanas para exigir una cadena de ceros en el inicio del hash más larga, y por tanto más difícil de adivinar, o más corta, es decir, más fácil de adivinar. El objetivo de estos ajustes es la generación de un nuevo bloque cada diez minutos.
Cada vez que un minero resuelve un bloque escribiendo una firma con los suficientes ceros, lo transmiten a la red y los otros mineros validan la solución y la comprueban para asegurarse de que las operaciones que se relacionan son todas válidas. Si todos lo aprueban, los mineros comenzarán de nuevo a competir para resolver un nuevo bloque con la firma del último bloque como una de las entradas.
Recompensas
Esto nos lleva, por fin, a la pregunta de por qué los mineros minan. Esta respuesta es realmente simple: los mineros minan porque el que completa un nuevo bloque en la cadena de bloques tiene permiso del protocolo para llevarse una recompensa de nuevos bitcoins, llamada transacción coinbase. Esa recompensa comenzó en los 50 bitcoins por bloque. Cada cuatro años, el protocolo se ajusta, reduciendo la recompensa a la mitad (actualmente son 25 bitcoins). Un día, la recompensa será muy pequeña, pero los mineros también pueden ser recompensados a través de la percepción de tasas voluntarias de los usuarios que solicitan las transacciones.
Resumen
Hemos hablado de por qué es necesaria la minería: para detener el doble gasto mediante la creación de un libro de contabilidad de todas las transacciones llamado cadena de bloques o blockchain. También hemos aprendido, en términos simplificados, cómo funciona realmente la minería.