<p>The solution to this problem is: anyone can become a miner, in theory.</p>
<p>Proof of work replaces a central party that can censor with a consensus protocol, where miners jointly decide what transactions get processed, and in what order.</p>
<p>But that's just part of the picture - if we fully trusted miners (or a majority of them) to never behave maliciously, we could just e.g. ask each for N public keys, where N equals their current percentage hashpower, and then require that every block be signed with 51 distinct keys, forever. This would let us do away with proof-of-work.</p>
<p>The reason to use proof-of-work is that it lets <em>anyone</em> become a miner, even anonymously.</p>

CC BY-SA 4.0
2021-07-08T10:14:26.103Z
Do we have any contingency plan in sight for when majority of hash power is regulated and censors transactions? Including not building on top of the "non compliant" blocks, thus forcing unregulated minority to censor as well?
CypherpunkDev
CC BY-SA 4.0
2021-07-08T11:15:31.247Z
@CypherpunkDev no, a 51% attack cannot be migitated by proof-of-work blockchains
Hobbamok
CC BY-SA 4.0
2021-07-08T14:16:27.287Z
@Hobbamok you are incorrect. Firstly, other relevant cryptocurrency (which I will not name on this SE) did successfully cope with hashrate majority. The last resort "atomic" option is always on the table. Secondly, we are talking about very specific attack that is only possible because of Bitcoin's plain text blockchain. So another hypothetical mitigation would be on-chain privacy. Facing choice between losing entire value proposition (successful censorship attack) OR introducing on-chain privacy (with all its cons and tradeoffs) - I hope the choice is obvious.
CypherpunkDev
CC BY-SA 4.0
2021-07-09T15:44:23.283Z
1) The fact that a cryptocurrency survived a hashrate majority attack does not mean it always will. The assumption that the majority will not see it economically fit to launch an attack is a fundamental assumption in PoW; if it breaks down, it means you need something else. 2) Privacy techniques are not necessarily a solution (but they generally improve the situation for sure) - miners may demand (or be forced to demand) proof of identity out of band before processing a transaction.
Pieter Wuille
CC BY-SA 4.0
2021-07-09T21:12:38.397Z
Thanks @PieterWuille, this is really insightful! PS The last resort solution is called 'atomic' for a reason :) I am not giving up on Bitcoin even if we get into uncharted whack-a-mole territory. If we face existential threat, there is nothing to lose.
CypherpunkDev
CC BY-SA 4.0
2021-07-09T21:26:51.903Z
@user253751 no, that wouldn't be my first choice. I would lean towards "stealing" PoW algo from another ASIC-established cryptocurrency (which I will not name). That's assuming we still believed ASIC-friendly PoW > ASIC-unfriendly PoW. Should we conclude otherwise then we "steal" the ASIC-unfriendly one.
CypherpunkDev
CC BY-SA 4.0
2021-07-07T18:18:07.730Z
2021-07-07T18:18:07.730Z
Pieter Wuille
<p>Correct. A single miner can slow down a transaction simply by not including it in their blocks. Of course, unless they possess enough hashrate compared to everyone else, the effect will not really be noticeable.</p>
<p>Completely blocking a transaction would become possible with 51% or more of the network hashrate, as any chain including a &quot;forbidden&quot; transcation could be outgrown by the censored chain. You could prevent someone from spending their coins, but only for as long as you could maintain the majority of hashrate.</p>
<p>There isn't any way the protocol could be secured from this, since you're effectively imposing a soft fork, and soft forks have their legitimate use when upgrading the network.</p>

CC BY-SA 4.0
2021-07-07T19:05:14.797Z
I disagree with calling miner censorship a soft fork. It's only a soft fork if it's also widely enforced by network nodes.
Pieter Wuille
CC BY-SA 4.0
2021-07-07T21:38:00.260Z
@PieterWuille You're right, I might have slightly abused the terminology here.
Vojtěch Strnad
CC BY-SA 4.0
2021-07-07T18:50:50.453Z
2021-07-07T18:50:50.453Z
Vojtěch Strnad
<p>The bitcoin protocol allows miners to choose which transactions to include when they create a block. They can't include any inauthentic transactions, but to allow for an open market of transaction fees, they are allowed to choose which subset of authentic transactions they want to include. The assumption seems to be that miners are interested in maximizing their reward, and therefore would just include the subset of transactions that offer them the highest total transaction fees.</p>
<p>However, a miner with ulterior motivations might want to punish certain addresses. For example, a US government operated node might want to restrict transactions coming from an address that got its bitcoin through ransomware payments. As far as my understanding of the bitcoin protocol goes, it would be perfectly valid for them to never process any transactions from that address - no matter the price offered. With cooperation, they could greatly slow the speed of any transactions that had anything to do with that address. Of course, if there was even one node which didn't want to restrict the addresses activity, the transactions would eventually get through, but these neutral nodes might notice that that address has a harder time making transactions, so those neutral nodes might realize that they can demand a higher price for transactions from that address.</p>
<p>So the question is, would any of this be considered malicious activity?</p>
<p>Does the protocol consider a node doing this to be a &quot;dishonest&quot; node, from which blocks should be ignored (i.e. there is an explicit mechanism to prevent this kind of activity)? Or instead, are market forces (or some other implicit mechanism I'm not aware of) supposed to be enough to prevent this? Or as a last option, is this kind of behavior considered to be acceptable?</p>
<p>Edit: <a href="https://bitcoin.stackexchange.com/a/9412/124187">https://bitcoin.stackexchange.com/a/9412/124187</a> helped me understand this as well. The answer appears to be that this sort of censorship/discrimination is considered okay, and the capability to hashocratically discriminate means that the network can protect itself from things like market manipulation.</p>

CC BY-SA 4.0
2021-07-08T10:22:55.530Z
Your concern is valid. Market transaction fees are often believed to address censorship issue ("just pay a bigger fee to incentivize miner to include your tx"). I am not sure about that because the entity being censored can instead join any cooperative protocol to push costs onto other participants.
CypherpunkDev
<transactions><mining-theory><unconfirmed-transactions><censorship-resistance>
What (if anything) in the bitcoin protocol prevents bias against certain accounts?
Darby Haller
# What (if anything) in the bitcoin protocol prevents bias against certain accounts?

(Asked by: username_0 on 2021-07-07)

The bitcoin protocol allows miners to choose which transactions to include when they create a block. They can't include any inauthentic transactions, but to allow for an open market of transaction fees, they are allowed to choose which subset of authentic transactions they want to include. The assumption seems to be that miners are interested in maximizing their reward, and therefore would just include the subset of transactions that offer them the highest total transaction fees.

However, a miner with ulterior motivations might want to punish certain addresses. For example, a US government operated node might want to restrict transactions coming from an address that got its bitcoin through ransomware payments. As far as my understanding of the bitcoin protocol goes, it would be perfectly valid for them to never process any transactions from that address - no matter the price offered. With cooperation, they could greatly slow the speed of any transactions that had anything to do with that address. Of course, if there was even one node which didn't want to restrict the addresses activity, the transactions would eventually get through, but these neutral nodes might notice that that address has a harder time making transactions, so those neutral nodes might realize that they can demand a higher price for transactions from that address.

So the question is, would any of this be considered malicious activity?

Does the protocol consider a node doing this to be a "dishonest" node, from which blocks should be ignored (i.e. there is an explicit mechanism to prevent this kind of activity)? Or instead, are market forces (or some other implicit mechanism I'm not aware of) supposed to be enough to prevent this? Or as a last option, is this kind of behavior considered to be acceptable?

Edit: <https://bitcoin.stackexchange.com/a/9412/124187> helped me understand this as well. The answer appears to be that this sort of censorship/discrimination is considered okay, and the capability to hashocratically discriminate means that the network can protect itself from things like market manipulation.

**Tags:** transactions, mining-theory, unconfirmed-transactions, censorship-resistance

> **Comments:**
> **username_1**: Your concern is valid. Market transaction fees are often believed to address censorship issue ("just pay a bigger fee to incentivize miner to include your tx"). I am not sure about that because the entity being censored can instead join any cooperative protocol to push costs onto other participants.  

---

## 2 answers

### Answer by username_2 on 2021-07-07. Score: 9

The solution to this problem is: anyone can become a miner, in theory.

Proof of work replaces a central party that can censor with a consensus protocol, where miners jointly decide what transactions get processed, and in what order.

But that's just part of the picture - if we fully trusted miners (or a majority of them) to never behave maliciously, we could just e.g. ask each for N public keys, where N equals their current percentage hashpower, and then require that every block be signed with 51 distinct keys, forever. This would let us do away with proof-of-work.

The reason to use proof-of-work is that it lets *anyone* become a miner, even anonymously.

> **Comments:**
> **username_1**: Do we have any contingency plan in sight for when majority of hash power is regulated and censors transactions? Including not building on top of the "non compliant" blocks, thus forcing unregulated minority to censor as well?  
> **username_3**: @username_1 no, a 51% attack cannot be migitated by proof-of-work blockchains  
> **username_1**: @username_3 you are incorrect. Firstly, other relevant cryptocurrency (which I will not name on this SE) did successfully cope with hashrate majority. The last resort "atomic" option is always on the table. Secondly, we are talking about very specific attack that is only possible because of Bitcoin's plain text blockchain. So another hypothetical mitigation would be on-chain privacy. Facing choice between losing entire value proposition (successful censorship attack) OR introducing on-chain privacy (with all its cons and tradeoffs) - I hope the choice is obvious.  
> **username_2**: 1) The fact that a cryptocurrency survived a hashrate majority attack does not mean it always will. The assumption that the majority will not see it economically fit to launch an attack is a fundamental assumption in PoW; if it breaks down, it means you need something else. 2) Privacy techniques are not necessarily a solution (but they generally improve the situation for sure) - miners may demand (or be forced to demand) proof of identity out of band before processing a transaction.  
> **username_1**: Thanks @username_2, this is really insightful! PS The last resort solution is called 'atomic' for a reason :) I am not giving up on Bitcoin even if we get into uncharted whack-a-mole territory. If we face existential threat, there is nothing to lose.  
> **username_1**: @user253751 no, that wouldn't be my first choice. I would lean towards "stealing" PoW algo from another ASIC-established cryptocurrency (which I will not name). That's assuming we still believed ASIC-friendly PoW > ASIC-unfriendly PoW. Should we conclude otherwise then we "steal" the ASIC-unfriendly one.  

---

### Answer by username_4 on 2021-07-07. Score: 4

Correct. A single miner can slow down a transaction simply by not including it in their blocks. Of course, unless they possess enough hashrate compared to everyone else, the effect will not really be noticeable.

Completely blocking a transaction would become possible with 51% or more of the network hashrate, as any chain including a "forbidden" transcation could be outgrown by the censored chain. You could prevent someone from spending their coins, but only for as long as you could maintain the majority of hashrate.

There isn't any way the protocol could be secured from this, since you're effectively imposing a soft fork, and soft forks have their legitimate use when upgrading the network.

> **Comments:**
> **username_2**: I disagree with calling miner censorship a soft fork. It's only a soft fork if it's also widely enforced by network nodes.  
> **username_4**: @username_2 You're right, I might have slightly abused the terminology here.  

---

