Hechos clave:
-
Este descubrimiento revela que el límite de 21 millones de BTCP es falso.
-
Añadieron salidas (UTXO) extra de BTC, ocultando 2 millones de BTCP.
El equipo de análisis e investigación de Coinmetrics publicó sus hallazgos sobre irregularidades en el suministro máximo de Bitcoin Private (BTCP), altcoin creada como una combinación del fork de las cadenas de bloque de Bitcoin y ZClassic. Hasta 2 millones de BTCP fueron «preminados» y se mantuvieron ocultos usando elementos técnicos del protocolo.
El hallazgo fue realizado por Antoine Le Calvez, quien es analista de data de Coinmetrics. Coinmetrics publicó un informe pormenorizado de los hechos este 23 de diciembre sobre las disparidades encontradas entre el suministro establecido en el Libro Blanco, la data de CoinMarketCap y la información arrojada al correr ellos mismos un nodo. Aseguran que descartaron otros posibles escenarios, como un posible error en el nodo donde realizaron las pruebas; un bug en el propio código; un cambio en la recompensa de minado respecto a la presente en el Libro Blanco; un ataque en la prueba criptográfica Zk-snarks.
No obstante, las pruebas demostraron que el preminado oculto era la causa de la disparidad. El preminado implica una cantidad de monedas generadas fuera de los límites establecidos en el Libro Blanco y en el propio protocolo, alterando la política monetaria de la criptomoneda.
Recordemos que BTCP resultó de la combinación de bifurcaciones de Bitcoin y ZClassic (que a su vez es una bifurcación de Zcash) con el fin de agregar un nuevo nivel de privacidad a las transacciones de Bitcoin mediante la adición de Zk-snarks. Su suministro total al momento de la bifurcación había sido establecido en 20,4 millones, con un plan de recompensas de minería que conduciría a un suministro máximo de 21 millones, como Bitcoin. No obstante, fueron creados 2,04 millones de BTCP extra, enviados al pool protegido de BTCP, elevando el suministro inicial hasta los 22,6 millones de manera secreta.
Pero, ¿cómo? De acuerdo con el reporte, estas monedas se crearon añadiendo salidas no utilizadas (UTXO) de Bitcoin a los bloques de la nueva cadena, en un proceso que se vio favorecido por el uso de checkpoints para comprobar el estado de la red, y la transmisión de las UTXO para actualizar el estado de su nueva cadena.
2,04 millones de unidades adicionales se acuñaron de forma encubierta durante la importación de los UTXO de Bitcoin y se enviaron al grupo protegido de BTCP, lo que llevó el suministro inicial a 22,6 millones, contradiciendo el documento técnico y todos los materiales publicados por el equipo.
Coinmetrics
Para poder completar el número de BTCP, así como registrar el estado más actual de ambas redes, se realizó un proceso de importación de la información de la cadena de bloques, añadiendo unas 10.000 UTXO por bloque. «Los bloques 272.992 a 278.457 se usaron para importar el conjunto de UTXO de BTC (con una fotografía a la altura del bloque 511.346). Las UTXO para importar estaba compuestas por 59.188.317 salidas no gastadas cuyo valor combinado fue 16.891.665 BTC», señala el informe.
Cada bloque en este rango de importación contenía 10.000 salida, cada uno. Sin embargo, la manipulación del suministro ocurrió en este lapso, cuando «también aparecieron algunos bloques especiales que contenían 10.400 salidas». Las salidas extra, añadidas en 102 de esos bloques, ayudaron a introducir esta nueva cantidad de BTCP.
Entonces, en el período de importación tenemos 102 bloques extra grandes, cada uno con 400 salidas inesperadas además de las 10.000 salidas esperadas. Cada una de esas salidas adicionales contenía 50 BTC. Esto nos da 102 * 400 * 50 = 2.040.000 BTCP.
Coinmetrics
Peter Todd, reconocido especialista e investigador de la tecnología de Bitcoin, señaló a Coinmetrics que podría tratarse del uso de checkpoints o puntos de validación en cada bloque. Sin embargo, los investigadores se dieron cuenta que esto se realizó de manera diferente, haciendo que el proceso de importación de las UTXO de BTC tuviese una estructura sumamente particular – y manipulable–, y con bajos controles.
Además, el proceso de verificación de la creación de monedas por bloque, copiado del que funciona en el protocolo de Bitcoin (12.5 BTC), no funciona para BTCP y lo que se afectó no fue la minería, sino la importación de las salidas para la creación de la cadena principal de Bitcoin Private.
Aprovechando las características de ZCL, especialmente las direcciones protegidas derivadas del protocolo privado de Zcash, las monedas se enviaron a direcciones blindadas en abril de 2018, formando parte de uno de los mayores pools de la cadena.
Según Coinmetrics, la investigación debe ser un «recordatorio» sobre la necesidad de que se realicen auditorías al suministro de las criptomonedas ejecutando nodos de validación completos, pero también auditando los datos producidos por esos nodos.
Actualmente cada BTCP tiene un precio de 2,04 dólares, con una retracción de más de 14% en las últimas 24 horas. La criptomoneda tiene un volumen de intercambio de 316.809 dólares en el mismo rango de tiempo, y un total circulante de 20.524.490, aunque en esta cantidad de BTCP no se cuentan estos dos millones preminados.
Imagen destacada por Michail Petrov / stock.adobe.com