I'm referring to the selfish mine attack described by two researchers from Cornell University who describe a "possible" attack with lower than 51% hashing power.

Now it's interesting to know what sorts of mechanisms, changes were implemented into the new versions of Bitcoin Core that detect selfish mining, propagate some alerts, disclose suspicious forks etc.?


Obviously peers get to know about other peers' progress on the blockchain through data messages, in particular through updates via inv messages. Are there other types of "messages" exchanged - without the knowledge of the node itself - that would give away secrets about a longer private blockchain, in this case?

  • 2
    It's not really clear to me how that would work, given that selfish mining would appear as though some hashpower dropped out, followed by a reorganization when the new chain was published.
    – Nick ODell
    May 29 '15 at 18:23
  • So you're implying that a hashpower drop-out as an indication of a potential selfish mining attack doesn't trigger an alert message or something similar? May 30 '15 at 10:05
  • 1
    Yeah. Now, if those nodes started mining on a chain that your client thought was invalid, and that chain became the best chain, then that would trigger an alert, sure.
    – Nick ODell
    May 30 '15 at 18:59
  • Ok. Thats exactly what I'm looking for..where is this alert in the source code? Is it somewhere in main.cpp or also in othr modules? May 30 '15 at 21:22
  • @NickODell: you spoke of "mining on a chain that your client thought was invalid, and that chain became the best chain" - are there any other characteristics of an invalid chain than being shorter? Jun 10 '15 at 15:16

It is impossible to detect a drop in hashrate working on a chain because foreign hashpower is only evident in the discovery speed of blocks, except if it were deducted from a pool publicly sharing its mining stats. Thus the dropped hashrate would only be evident over sufficient long spans of time.

The only indicator of selfish mining would be the actual publishing of a previously unknown longer chain. I believe I've read somewhere that this will be shown in BitcoinCore with a "Reorganization" warning.

  • 1
    In the case of a pool, another indicator is when the pool is asking miners to mine on a block that is not publicly known.
    – Nick ODell
    Jun 26 '15 at 0:02
  • I meant that it might be visible, if a large mining farm deducted its power from a pool. As the mining goals of pools are more or less public information anyway, I figured that it wouldn't be necessary to mention the possibility of a pool operator trying to enlist his pool in such a scheme.
    – Murch
    Jun 26 '15 at 8:49

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.