Selfish mining at 1636647 - noncesense-research-lab/archival_network GitHub Wiki

This page contains documentation of the events surrounding block 1636647.

Background

To learn more about selfish mining strategies, read Majority is not Enough: Bitcoin Mining is Vulnerable by Ittay Eyal, Emin Gun Sirer and Stubborn Mining: Generalizing Selfish Mining and Combining with an Eclipse Attack by Kartik Nayak, Srijan Kumar, Andrew Miller, and Elaine Shi

Logs

Here are logs from proximate blocks:

2018-08-11 15:35:01.940	[P2P6] [MAIN H=1636646 MRT=1534001673 NRT=1534001701.940]
2018-08-11 15:40:08.279	[P2P8] [MAIN H=1636647 MRT=1534002002 NRT=1534002008.278] ** NOW ALT
2018-08-11 15:40:59.425	[P2P5] [ALT  H=1636648 MRT=1534002008 NRT=1534002059.425] ** NOW MAIN
2018-08-11 15:40:59.971	[P2P8] [ALT  H=1636647 MRT=1534002005 NRT=1534002059.971] ** NOW MAIN
2018-08-11 15:41:50.102	[P2P2] [MAIN H=1636649 MRT=1534002061 NRT=1534002110.102]

Notation

Let [HH,TT] represent a block by the last two digits of its height and last two digits of its (spoofable) miner-reported timestamp. TT can be left blank (e.g. [HH,**] if there is only one known version of a block at that height)

Observations

There are a few things to note:

  1. According to the miner-reported timestamps [47,05] and [48, 08] were discovered 3 seconds apart (... not statistically impossible, but improbable)

  2. The node-receipt timestamps (NRTs) show that neither block was received by our archival nodes until almost a minute later

  3. Block 1636648 was received before block 1636647

Interpretation

The "original" block for H=*47 (i.e. [47,02] the first version shared with the Monero network at large) followed H=[46,**] by a 10-minute wait time. I think in the interim, somebody mined their own version ([47,05]), but didn't share it with the network until they also solved [48,08].

Only then, did the miner share their [47,05] and [48,08] blocks with the network, kicking the original [47,02] off the main chain.

This phenomenon was simultaneously observed on several MAP nodes (on a few continents).

... of course the whole NRT - MRT = 50 seconds issue is a whole different matter. I doubt that they actually waited 50 seconds to release their blocks, so it's possible that the miner-reported timestamps are spoofed to make it look like a "close call" between the two versions of H=*47)