10

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.

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. Jul 8 at 10:22
9

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.

I think you answered the main question in the first part here. Miners even if involved in chain analysis cannot demand fees. Users decide fees for their transactions and miners mostly prioritize them from mempool based on fee rate.

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

Yes some people consider it malicious. Although it is impossible to stop someone from mining and deciding transactions for a block. Privacy and Censorship are closely related so improving privacy will impact these things or if most of the users follow best practices it can become difficult for malicious miners to filter transactions.

There are also many spy full nodes on the network. It is better to assume 10% of your peers are malicious nodes when you are running a full node. Because it doesn't take too much efforts in running Bitcoin Core and collect as much information as possible.

This is an interesting project by 0xB10C in which missing transactions from blocks based on templates are tracked: https://miningpool.observer/missing

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

No

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.

7
  • 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? Jul 8 at 10:14
  • 1
    @CypherpunkDev no, a 51% attack cannot be migitated by proof-of-work blockchains
    – Hobbamok
    Jul 8 at 11:15
  • @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. Jul 8 at 14:16
  • @CypherpunkDev so basically delete bitcoin, fork monero, seed it with the last known good bitcoin block?
    – user253751
    Jul 9 at 10:51
  • 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. Jul 9 at 15:44
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.

2
  • 3
    I disagree with calling miner censorship a soft fork. It's only a soft fork if it's also widely enforced by network nodes. Jul 7 at 19:05
  • @PieterWuille You're right, I might have slightly abused the terminology here. Jul 7 at 21:38

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.