¿Cómo sabemos que no habrá más de 21 millones de bitcoins?
Educación

¿Cómo sabemos que no habrá más de 21 millones de bitcoins?

Alejandro Echeverria
Alejandro Echeverria

Una de las propiedades únicas de Bitcoin como moneda es que la escasez está incorporada en el protocolo. Nunca habrá más de 21 millones de bitcoins.

Pero, ¿cómo es que efectivamente se genera esa escasez? Para realmente entenderlo, podemos aprovechar otra propiedad importante de Bitcoin: el software que ejecuta las reglas del protocolo Bitcoin es de código abierto.

Esto quiere decir que cualquiera puede ver como funciona cada parte de Bitcoin, y cualquiera (con suficientes conocimientos de programación) puede contribuir a mejorarlo. Bitcoin es infraestructura pública que se construye de manera pública.

¿Dónde podemos ver el código de Bitcoin?  El código de Bitcoin se puede ver y descargar desde este repositorio de Github. Cualquiera puede descargar ese repositorio en su computador y tener una versión completa del código.

Para poder entender cómo se limita la cantidad total de Bitcoin, podemos aprovechar que tenemos acceso al código de y buscar las partes relevantes que definen la escasez de la moneda.

¿Cómo se emiten nuevos bitcoins?

Cada vez que se agrega un nuevo bloque al Blockchain de Bitcoin, se emiten nuevos bitcoins, premiando al minero que hizo el trabajo.

Este premio, que originalmente era de 50 BTC, se va dividiendo en 2 cada  cierto período de tiempo (“halving”) y eso hace que cada vez se generen menos bitcoins y eventualmente se dejen de generar.

A nivel de código, el premio o “subsidio” al minero se calcula en la función GetBlockSubsidy que se puede ver en este archivo del repositorio.

El código de la función que calcula el subsidio se muestra a continuación. Son estas 7 líneas de código las que definen la tasa de emisión y la escasez en Bitcoin.

Para entender en detalle qué es lo que hace esta función podemos revisarla línea por línea:

Línea 1:

La función recibe como parámetros el número de bloques actualmente incluidos en el blockchain (nHeight) y una estructura con los parámetros de la red Bitcoin. De esta estructura, lo único que se usa es el parámetro nSubsidyHalvingInterval que indica el intervalo entre halvings: 210.000 bloques.

Línea 2:

Con los parámetros que recibe la función (número de bloques e intervalo de halving), en esta línea se calcula el número de halvings que han ocurrido desde el origen de Bitcoin.

Líneas 3 y 4:

Esta línea hace un chequeo, si el número de halvings es mayor o igual que 64, se obliga a que el subsidio sea 0 (explicaremos por qué se hace esto más adelante).

Línea 5:

El subsidio inicial, como mencionamos, era 50 BTC. En esta línea se calcula este subsidio base en satoshis multiplicando 50 por el número de satoshis en un bitcoin, almacenado en la variable COIN.

Líneas 6 y 7:

Finalmente, obtenemos el subsidio actual, que nos indicará cuantos satoshi recibirá el minero que agregue un nuevo bloque. Para esto se ocupa el operador “shift right” >>= que equivale a dividir por 2 las veces que se indique. En este caso se divide el subsidio base (nSubsidy) por 2 las veces indicadas por el número de halvings que han ocurrido (halvings) y eso corresponderá al subsidio que recibirá el minero.

El futuro de Bitcoin

Sólo con el código de esta función podemos predecir el futuro de Bitcoin.

Teniendo en cuenta que los halvings ocurren aproximadamente cada 4 años, podemos determinar cuándo será la última vez que se emitirán bitcoins:

Cómo se observa en la imagen, se dejará de emitir Bitcoin probablemente el año 2140, cuando el subsidio llegue a 0.

También, podemos calcular efectivamente cuántos bitcoins se emitirán en total:


Cómo se observa en la imagen, en total existirán 2.099.999.997.690.000 satoshis, es decir 20.999.999,97690000 bitcoins (osea menos que 21 millones)

Finalmente, podemos entender para qué sirve este chequeo:

Sin el chequeo, por la forma en que funciona el operador “shift right” >>= se volverían a comenzar a emitir bitcoins después del halving 64 (en el año 2264 aprox).

En este link pueden ejecutar (y editar) una versión simplificada de esta función, que en solo 7 líneas, define el destino de Bitcoin.