¿Cómo funciona el halving de Bitcoin a nivel de ingeniería? Lo explicamos con la ayuda de Andreas Antonopoulos.

En un reciente video, Antonopoulos explicó en detalle el código del núcleo de Bitcoin que controla la reducción a la mitad de la recompensa por bloque de Bitcoin (BTC).

El código del halving de Bitcoin

El código del halving de Bitcoin. Fuente: Bitcoin Core Software.

Explicación línea por línea

Cada vez que se evalúa un bloque de Bitcoin o se mina un nuevo bloque, se llama a la función GetBlockSubsidy. Su propósito es calcular el tamaño apropiado de la recompensa por bloque. La línea 1240 evalúa el ciclo de división por la mitad y divide la altura actual del bloque por 210,000; el intervalo entre el halving. En el momento de escribir esto, la altura del bloque es 629369, si lo dividimos por 210,000, obtenemos 2.99. Como la variable que almacena este valor es de tipo entero, los decimales se descartan. Usando esta información, el código "sabe" que hemos tenido dos mitades. Por eso la próxima mitad ocurrirá en el bloque 630000.

Satoshi permanece corregido

Las líneas 1242 y 1243 corrigen un error que Satoshi cometió en el código original. Este error originalmente mantuvo la recompensa por bloque a la mitad más allá de los 64 halvings pasados; el número total de halvings incrustados en el protocolo de Bitcoin.

La línea 1245 multiplica la recompensa del bloque original de 50 por una moneda constante, que es igual a 100,000,000 de Satoshis. Irónicamente, no hay Bitcoins en el código de Bitcoin, sólo Satoshis.

La línea 1247 calcula la recompensa de bloque apropiada para la altura del bloque actual. Utiliza una operación bit a bit que es más eficiente que las operaciones matemáticas regulares. La recompensa de bloque que se calculó en la línea 1245 se ajusta de acuerdo con la recompensa de bloque actual. Actualmente, esto se vería así:

50 * 100,000.000 / 22= 1,250,000,000 Satoshis o 12.5 Bitcoins.

Finalmente, la línea 1248 devuelve la recompensa de bloque apropiada cuando es llamada por otra función o procedimiento en el código de Bitcoin.

Cuando el halving finalmente ocurra en unos 4 días, o 631 bloques, todos podremos dar un suspiro de alivio y apreciar la belleza del código de Bitcoin.

No dejes de leer: