Bitcoin Private’s development team is in hot water after researchers for Coinmetrics.io uncovered what they believe to be a serious anomaly in the supply curve of the ZClassic/Bitcoin hybrid cryptocurrency. In careful detail, the researchers recently related how they uncovered that roughly 2 million coins were injected into developer wallets when the currency’s blockchain was being established.
They discovered this when they updated a Bitcoin Private full node and ran a simple request on it, one from the Bitcoin codebase:
In verifying these figures, we ran a BTCP node (version 1.0.12-1), and made a call to the RPC method gettxoutsetinfo […] At the time of writing, our full node reported an outstanding supply of 20.841M BTCP. This contradicted both CMC and the expected figures from the initial supply at fork time combined with the subsequent block rewards.
The researchers investigated several alternative possibilities other than a covert premine. One is that the code they used to get the figures might be broken, but obviously since it has not been altered since it was forked from Bitcoin, Bitcoin would be having similar false results. Another was that zkSNARKs might be broken, a ridiculous notion.
They also verified that they were getting their data from the longest (correct) chain and that their formula was correct – that is, the mining reward hadn’t been altered at some point.
None of these possibilities panned out, leaving only one probably conclusion: Bitcoin Private covertly pre-mined coins when it was establishing its blockchain, which was a complicated process of merging the unspent outputs (coins) on the Bitcoin blockchain into the Zcash codebase they mostly built on top of. Coinmetrics explained this as such:
While BTCP was a “merge fork” conjoining the ZClassic and Bitcoin states, the basis of the BTCP fork was the ZClassic ledger, not Bitcoin. At the agreed-upon snapshot block, Bitcoin’s state (the registry of unspent outputs) was imported into the parent ZClassic chain by mining thousands of blocks with transactions creating the Bitcoin unspent outputs, effectively forking it into BTCP at block 272,992. At the end of this import, an extra 62,500 BTCP were minted in accordance with the “Voluntary Miner Contribution Program”. Once this import was over, Bitcoin Private’s own history began.
Coinmetrics also adds that they uncovered 300,000 units have been sent to exchanges:
Three hundred thousand units of the covert premine were moved out of the shielded pool towards what appear to be exchanges.
Bitcoin Private had a high of over $86 back in March. Over the past 24 hours, however, it lost 23% of its per-token price, bringing it down to $1.87.
Where The 2 Million BTCP Figure Comes From
It’s crucially important to understand, in plain terms, what’s going on here, especially if you are a BTCP investor or had considered the coin as a store of value in the future.
Essentially, what Coinmetrics have gone a long way to prove is that during the process of “importing” Bitcoin into Zclassic, a fork of Zcash, which is the essential nature of BTCP, around 102 early Bitcoin blocks contained false outputs which wound up in the hands of the BTCP developers. The expected blocks that were supposed to be imported would have contained 10,000 transactions each, as a means of getting the coins on the chain faster. However, the 102 in question had 10,400, and every one of the 400 extra transactions was worth 50 BTCP.
So in the import period we have 102 extra-large blocks, each with 400 unexpected outputs in addition to the 10,000 outputs expected. Each of those additional outputs contained 50 BTC. This gives us 102 * 400 * 50 = 2,040,000 BTCP.
In a somewhat clever move, the BTCP team appears to have given themselves plausible deniability by utilizing Zcash shielded addresses for the transfers. Before the BTC import onto Bitcoin Private, there were only 17,000 or so ZCL (ZClassic) in shielded addresses. However, the researchers uncovered a total of 1.8M BTCP in shielded addresses, leading to their conclusion.
Bitcoin Private has yet to officially respond, but they promise that a response is forthcoming: