Saturday, December 30, 2017

Bitcoin block #501,726 without a valid miner fee broke Blockchain.info

...well, for an hour...

Bitcoin's economics is crackpottery but there are lots of other risks that are completely overlooked by those who mindlessly join the cryptocurrency mania. One subset of the risks are of purely technical character. The mining of new blocks – which is needed to validate all the Bitcoin transfers – may very well break down when some software incompatibility between codes running at various servers explodes.

A hard fork may ignite such a breakdown. Fortunately for the Bitcoin, a "revived SegWit2x hard fork" announced for December 28th turned out to be a prank – or a method by a scammer to collect people's e-mail addresses.




Something funny happened one hour ago, however. A truly minimalistic Bitcoin block #501,726 was mined by a miner whom I will describe as "unknown", pretending that I don't know who he or she or we is. ;-) The hyperlink points to btc.com, a Chinese explorer of BTC and BCH transactions.




Here you have the same block through blockexplorer.com. You may compare it with other blocks. Funnily, I can't give you the same address for blockchain.info which no longer shows new blocks, starting from this problematic one.

Well, it's another block without any transactions. Miners occasionally produce such blocks. It takes almost the same time as to produce regular blocks with those 3,000 transactions or so. Normally, the miners who "discover" a new block get 12.5 newly mined Bitcoins (this number gets halved once in 4 years) plus some roughly 3-10 Bitcoins from the users who made payments – the transaction fees.

The empty blocks only give the miner 12.5 Bitcoins and they're usually around 280 bytes long. The miner sacrifices the fees because no transactions are included. It's questionable what is the motive to mine empty blocks. It may be an effort to drive transaction fees higher – because there are fewer slots for transactions is some blocks are empty. (A particular miner is doing a good service for all other miners – but sacrifices his own money.) But the motivation may be more far-reaching.

The block #501,726 is a beauty, however. It only has 200 bytes – precisely. It reminds me of Craig Venter's efforts to produce the shortest DNA that generates a viable organism. 200 bytes is really short. If you look at the block through btc.com, you will see a single transaction there. You should compare it with the 285-byte block 501,728 (newer by 2, mined by AntPool, which is also empty) and its only transaction.

The supershort, 200-byte block only has the "input *ZG***n*" where "*" stands for some unreadable characters. The output address is therefore "unable to be decoded". That's different from the 285-byte block whose output address is OK, AntPool got their BTC 12.5, and the input contains the readable "mined by AntPool".

The owner of the hardware had to mine the block and he got nothing for it. Whether it's a mistake or something more far-reaching, BTC 12.5 i.e. some $150,000 according to the current rate (near $12.5k per Bitcoin) wasn't paid to the miner. However, this financial sacrifice isn't the only consequence. If you look at Blockchain.info list of blocks, or the main page, you will see that the last block was #501,725. The supershort, 200-byte, fee-less block was the first one that isn't shown at all. According to btc.com and blockexplorer.com, however, six new blocks have already been mined after the supershort one!

So while a majority of the blockchain explorers keep on going, the formatting defect of the supershort block made one of the two main explorers of the transactions, blockchain.info, break down. This server will probably not be able to take newest transactions made after the block #501,726 into account. Has the Bitcoin already broken down? Well, it depends whom you ask now. ;-)

Computers always react in some way. But the computers' behavior isn't necessarily one that humans could call the "correct one morally or legally". That's really the problem. And different computers run different codes in general so they can behave differently and reach different conclusions. Imagine that this problem or any similar problem would lead to disagreements between major servers concerning the users' account balances. Does the overhyped, "super-safe" payment system solve the problems with the human imperfections and the need to support or trust some people and not others – when there is a disagreement? Obviously, it doesn't and it cannot.

In this case, the behavior of blockchain.info is undesirable for all users of the Bitcoin (although the conclusion, a complete breakdown of the Bitcoin, could be considered desirable by most governments, commercial banks, and your humble correspondent, among millions of other people) so they will agree that its breakdown is a "mistake" that needs to be "fixed". But there may exist cases in which none of the several disagreeing pictures will look like an obvious mistake. Whom would you trust? You still need to pick your winner. The conflicting factions would still need lawyers – or hired guns – to deal with each other. The situation is really no different from trusting your commercial banks. The idea that the Bitcoin really makes generic "holders of the assets" safer against the arbitrary decisions of "some powerful ones" is clearly wrong.

I can imagine that the supershort block #501,726 wasn't just a mistake in which a miner lost $150,000. It could have been a deliberate sabotage, an attempt to kill the Bitcoin. It has only killed a major explorer of the transactions so far, however. Try harder, "unknown" miners. ;-)

Update: 10 minutes after this blog post was published for the first time, blockchain.info created a fix. The supershort block is shown there, too (or with
a longer URL
). It describes the miner's reward as "block reward is BTC 12.5, transaction fees are minus 12.5". Cute. ;-) If negative fees were possible in general, that could be exploited nicely.

No comments:

Post a Comment