A menudo se describe a Bitcoin como escasez digital. Pero a diferencia del oro, la tierra o los objetos de colección, la escasez de Bitcoin no es física, sino que se impone mediante software. Por lo tanto, surge una pregunta obvia: ¿Cómo sabemos realmente que solo habrá 21 millones de bitcoins?

¿Es solo una promesa? ¿Un acuerdo social? ¿O algo que podemos verificar de forma independiente? Entender esta cuestión revela una de las propiedades más importantes de Bitcoin, y por qué es importante la autocustodia: Bitcoin no depende de la confianza.

En las finanzas tradicionales, la oferta monetaria depende en última instancia de las instituciones. Los bancos centrales pueden expandir o contraer la oferta monetaria. Los gobiernos pueden cambiar las reglas. Las políticas evolucionan con el tiempo. Bitcoin funciona de manera diferente. Bitcoin es un sistema distribuido en el que cada participante verifica las reglas por sí mismo. Ninguna autoridad decide cuántas monedas existen. En su lugar, todos los nodos hacen cumplir las mismas reglas de consenso.

Una de estas reglas determina cómo se introducen los nuevos bitcoins: el subsidio de bloque. Los nuevos bitcoins se crean exclusivamente cuando los mineros producen bloques válidos; cada nuevo bloque contiene una recompensa fija que sigue un calendario predecible. Dado que cada nodo verifica esta regla de forma independiente, cualquier intento de inflación inválido es rechazado automáticamente por la red. No existe un administrador único capaz de anular este proceso.

Desglosando la expresión matemática de la cantidad total de bitcoin

Predecible por diseño

Cuando Bitcoin se lanzó en 2009, los mineros recibían 50 BTC por bloque. Pero esta recompensa no se mantiene constante. Cada 210.000 bloques, aproximadamente cada cuatro años, la recompensa por bloque se reduce a la mitad. Este evento se conoce como el halving.

La oferta total de casi 21 millones se calcula sumando la emisión a lo largo de los 32 periodos de halving. Para cada periodo, la recompensa se calcula tomando la recompensa inicial por bloque de 50 BTC y dividiéndola por 2i, donde i es el número de halvings que han ocurrido. Dado que cada periodo consta de 210.000 bloques, el total de monedas para cualquier periodo es 210.000×(50/2i). Esto significa que el primer periodo (i=0) añade 210.000×50 BTC, y el segundo periodo i=1 añade 210.000×25 BTC, y así sucesivamente.

La secuencia se ve así:

  • 0 Halvings: 50 BTC por bloque - 10.500.000 BTC emitidos en este periodo
  • 1 Halving: 25 BTC por bloque - 5.250.000 emitidos en este periodo
  • 2 Halvings: 12,5 BTC por bloque - 2.625.000 BTC emitidos en este periodo
  • 3 Halvings: 6,25 BTC por bloque - 1.312.500 BTC emitidos en este periodo
  • 4 Halvings: 3,125 BTC por bloque - 656.250 BTC emitidos en este periodo (por cierto, estamos aquí)
  • …y así sucesivamente

Esta reducción geométrica significa que se crean menos bitcoins nuevos con el tiempo, acercándose a cero de manera asintótica. Las últimas fracciones de bitcoin se minarán alrededor del año 2140, pero la conclusión importante es esta: el límite de 21 millones surge naturalmente de la propia fórmula del halving, aunque nunca se llega a alcanzar del todo, porque las matemáticas garantizan que siempre estaremos "a mitad de camino".

No necesitas confiar en las matemáticas, puedes ejecutarlas y puedes verificar por ti mismo todo el código que las hace cumplir; y no solo eso, también puedes ejecutar un nodo de Bitcoin para calcular la emisión por tu cuenta.

Haciendo cumplir las matemáticas

El verdadero poder de esta fórmula auditable reside en su cumplimiento descentralizado. Cada participante que ejecuta un nodo de Bitcoin actúa como un auditor independiente de la política monetaria. Cuando un minero intenta incluir un bloque que viola las estrictas reglas de emisión, por ejemplo, reclamando más del subsidio de bloque permitido, ese bloque es reconocido instantáneamente como inválido por todos los nodos. Debido a que estos nodos rechazarán el bloque inválido y se negarán a retransmitirlo, el intento de inflación fracasa y el bloque nunca podrá formar parte de la cadena de bloques canónica.

Este proceso garantiza que el límite de suministro se mantenga puramente a través de una verificación técnica y mutua. El cumplimiento de la fórmula monetaria auditable de Bitcoin se logra a través de la descentralización. El límite de suministro se mantiene porque cada nodo de Bitcoin funciona como un auditor independiente de la política monetaria. Si un minero intenta crear un bloque que rompe las estrictas reglas de emisión, como reclamar un subsidio de bloque que excede la cantidad permitida, la red de nodos identifica instantáneamente el bloque como inválido. En consecuencia, todos los nodos rechazan el bloque inválido, se niegan a retransmitirlo y evitan que el bloque inflacionario se agregue jamás a la cadena de bloques oficial. Este mecanismo asegura que el límite de oferta se mantenga puramente a través de un proceso de verificación técnica y mutua en toda la red.

Verificación del código

Ahora que sabemos cómo funcionan las matemáticas y que los nodos de la red hacen cumplir estas reglas, el siguiente paso lógico es verificar el código que las ejecuta. En el repositorio de GitHub de Bitcoin Core (la implementación de referencia de Bitcoin), podemos encontrar todo el código fuente del cliente y también las librerías de consenso. Utilizaremos la última versión estable al momento de escribir esto, la 31.0.

Comencemos con src/validation.cpp, ya que aquí es donde ocurre la mayor parte de la "magia", como se puede observar en el siguiente bloque de código que abarca desde la línea 1835 hasta la 1848.

Este bloque se compone de dos secciones que definen la recompensa; la primera calcula en qué halving nos encontramos actualmente y, posteriormente, fuerza a que la recompensa de bloque sea 0 después de 64 halvings.

int halvings = nHeight / consensusParams.nSubsidyHalvingInterval

Esta línea calcula el halving actual dividiendo la altura del bloque actual por el intervalo constante de halving. Las variables utilizadas en este cálculo son nHeight: El número actual de bloques en la cadena de bloques (la altura del bloque). consensusParams.nSubsidyHalvingInterval: El parámetro estático establecido en 210,000 bloques (definido en /src/kernel/chainparams.cpp), que especifica cuántos bloques deben pasar antes de que ocurra un halving. int halvings: El resultado entero de esta división, redondeado hacia abajo, que representa el periodo de halving actual.

En el momento en que escribo estas palabras, la altura del bloque es 946,227, así que usémosla en nuestro siguiente ejemplo para ayudarte a visualizar esta función:

946,227 / 210,000 = 4.505842857

El resultado se redondea hacia abajo a 4, en lugar de redondearse hacia arriba como se haría convencionalmente. Esto resulta en: int halvings = 4.

Justo después de esto, encontramos if (halvings >= 64) return 0;, lo cual podría sonar extraño ya que se supone que Bitcoin tiene 32 halvings. Esto es simplemente un bugfix para algo llamado Desbordamiento de Memoria (Memory Overflow). Sin esta corrección, los halvings se reiniciarían a 0 después de ocurrir 64 veces, lo que esencialmente causaría que el protocolo emitiera 21 millones de monedas nuevas a lo largo de otros 64 halvings y así indefinidamente hasta el fin de los tiempos.

Luego tenemos CAmount nSubsidy = 50 * COIN, que es la aplicación de la fórmula $50 / 2^i$ mencionada en la sección anterior de este artículo. COIN está definido como 100,000,000 en /src/consensus/amount.h, lo que representa el número de satoshis (la unidad divisible más pequeña de un bitcoin) que hay en un bitcoin. El valor CAmount nSubsidy, que representa la recompensa de bloque inicial de 5,000 millones de satoshis (50×COIN), o 50 BTC, tiene una representación binaria de 33 bits: 100101010000001011111001000000000. Esta longitud de 33 bits es significativa porque el código utiliza esta estructura para realizar un desplazamiento de bits (bitwise shifting) eficiente y así ejecutar la división durante cada evento de halving.

En cada halving, la instrucción nSubsidy >>= halvings; return nSubsidy; toma ese valor binario y lo desplaza un dígito a la derecha, eliminando esencialmente su último dígito. En sistema binario, como el nombre del evento indica, esto equivale a dividir el valor a la mitad.

Si has estado consultando los enlaces proporcionados en esta explicación, habrás notado que dentro de /src/consensus/amount.h existe este fragmento de código:

Podrías estar pensando: "Vale, eso es todo, ahí está el límite de los 21 millones de monedas", y tendrías parte de razón, pero esto no es 100 % exacto. ¿Por qué? Porque esta no es la regla principal para establecer el límite, sino una comprobación de integridad. Lo que hace este bloque de código es impedir que el suministro supere los 2,1 mil billones de satoshis (o mejor dicho, 21 millones de bitcoins), una cifra que sabemos que nunca se alcanzará, en caso de que alguien encuentre un error que genere monedas de la nada. Fue el caso del Value Overflow Bug de 2010, que permitió a un atacante imprimir 184,000 millones de bitcoins, o la vulnerabilidad Duplicate Inputs de 2018, que permitía a un atacante gastar la misma moneda dos veces.

¿Podrían cambiar las reglas alguna vez?

La pregunta obvia que sigue es si el código, al ser software, podría simplemente actualizarse para aumentar el suministro de monedas. Aunque técnicamente cualquiera es libre de modificar el software de código abierto, en la práctica, cambiar la política monetaria de Bitcoin es extraordinariamente difícil. Las reglas de consenso solo cambian si la inmensa mayoría de los usuarios las adoptan voluntariamente. La historia demuestra esta dinámica: incluso los ajustes menores del protocolo exigen años de coordinación. Un cambio inflacionario podría socavar fundamentalmente la propuesta de valor de Bitcoin, lo que significa que el mercado probablemente se negaría a ejecutar la nueva versión. Por lo tanto, el límite de suministro se impone a través del consenso entre los participantes del mercado.

Conclusión

El suministro limitado de Bitcoin no está garantizado por decreto gubernamental, limitaciones físicas o confianza institucional. Su garantía descansa enteramente sobre tres pilares: un calendario de emisión transparente, la verificación independiente por parte de cada nodo y la capacidad de los usuarios para elegir qué reglas aceptan.

A diferencia de los sistemas heredados que dependen de las decisiones de autoridades centrales, la política de Bitcoin está integrada directamente en una red de participantes que se verifican mutuamente. El resultado es un sistema monetario cuyo suministro es auditable por cualquier persona, en cualquier momento; esto asegura que la oferta sea limitada, pero lo más importante, garantiza que los usuarios no necesiten confiar en que esta regla se cumplirá, sino que pueden verificarla por sí mismos.


Preguntas frecuentes (FAQs)

¿Cómo se hace cumplir el límite de 21 millones de bitcoins?

El límite de 21 millones se impone mediante las reglas de consenso de Bitcoin, las cuales cada nodo completo verifica de forma independiente. Los nuevos bitcoins solo pueden crearse a través del subsidio de bloque, y dicho subsidio sigue un calendario de halving fijo. Si un minero intenta crear más bitcoins de lo permitido, su bloque es rechazado por la red por ser inválido.

¿Se puede cambiar el límite de suministro de Bitcoin?

En teoría, cualquier persona puede modificar el código fuente de Bitcoin. En la práctica, cambiar el límite de suministro requeriría una adopción masiva por parte de usuarios, empresas y operadores de nodos en toda la red. Dado que el suministro fijo de Bitcoin es una de sus principales propuestas de valor, un cambio inflacionario probablemente sería rechazado por el mercado.

¿Por qué es importante verificar el límite de suministro para la autocustodia?

Verificar el límite de suministro es importante porque Bitcoin está diseñado para minimizar la confianza. En lugar de depender de instituciones o promesas, los usuarios pueden comprobar de forma independiente las reglas, el código y la propia cadena de bloques. Ejecutar tu propio nodo es la forma más sólida de verificar que la política monetaria de Bitcoin se está cumpliendo según lo previsto.


¿Aún no tienes una BitBox?

Proteger tus criptomonedas no tiene por qué ser complicado. Las billeteras de hardware BitBox almacenan las llaves privadas de tus criptomonedas sin conexión, para que puedas gestionar tus monedas de forma segura.

Tanto la BitBox02 Nova como la BitBox02 también están disponibles en una edición exclusiva para Bitcoin, con un firmware radicalmente enfocado: menos código significa una menor superficie de ataque, lo que mejora aún más tu seguridad si solo guardas bitcoin.

¡Consigue una BitBox02 Nova o una BitBox02 en nuestra tienda!


Shift Crypto es una empresa privada con sede en Zurich, Suiza. Nuestro equipo de colaboradores de Bitcoin, expertos en criptomonedas e ingenieros de seguridad crea productos que permiten a los clientes disfrutar de un viaje sin estrés desde el nivel de principiante hasta el nivel de maestría en la gestión de criptomonedas. La BitBox02, nuestra billetera de hardware de segunda generación, permite a los usuarios almacenar, proteger y realizar transacciones con Bitcoin y otras criptomonedas con facilidad, junto con su software complementario, la BitBoxApp.