<p>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.</p>

<p>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.</p>

CC BY-SA 3.0
2015-06-26T00:02:05.887Z
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
CC BY-SA 3.0
2015-06-26T08:49:57.227Z
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
CC BY-SA 3.0
2015-06-10T17:29:44.023Z
2015-06-10T17:29:44.023Z
Murch
<p>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.</p>

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

<hr>

<p><strong>EDIT:</strong></p>

<p>Obviously peers get to know about other peers' progress on the blockchain through data messages, in particular through updates via inv messages.
<strong>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?</strong></p>

CC BY-SA 3.0
2015-05-29T18:23:45.413Z
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
CC BY-SA 3.0
2015-05-30T10:05:18.847Z
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?
Aliakbar Ahmadi
CC BY-SA 3.0
2015-05-30T18:59:40.223Z
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
CC BY-SA 3.0
2015-05-30T21:22:34.913Z
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?
Aliakbar Ahmadi
CC BY-SA 3.0
2015-06-10T15:16:56.783Z
@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?
Aliakbar Ahmadi
CC BY-SA 3.0
2015-06-10T15:27:42.397Z
Suppose I mined a one point one megabyte block. Since the current limit is one megabyte, your client won't accept this. If I then mine six blocks further than the best valid chain you know about, then your client will display a warning and disable RPC.
Nick ODell
<blockchain-fork><attack><selfish-mining>
Implicit/Tacit mechanisms in Bitcoin Core disclosing Selfish Mining
Aliakbar Ahmadi
# Implicit/Tacit mechanisms in Bitcoin Core disclosing Selfish Mining

(Asked by: username_0 on 2015-05-29)

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.?

---

**EDIT:**

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?**

**Tags:** blockchain-fork, attack, selfish-mining

> **Comments:**
> **username_1**: 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.  
> **username_0**: 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?  
> **username_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.  
> **username_0**: 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?  
> **username_0**: @username_1: 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?  
> **username_1**: Suppose I mined a one point one megabyte block. Since the current limit is one megabyte, your client won't accept this. If I then mine six blocks further than the best valid chain you know about, then your client will display a warning and disable RPC.  

---

## 1 answers

### Answer by username_2 on 2015-06-10. Score: 1

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.

> **Comments:**
> **username_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.  
> **username_2**: 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.  

---

