user124187: 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.

user121614: 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.

user208: 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.

user-1: 
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

124187: <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>
 121614: <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>
 208: <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>
 -1: <blockquote>
<p><strong>Of course, if there was even one node which didn't want to restrict the addresses activity, the transactions would eventually get through</strong>, 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>
</blockquote>
<p>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.</p>
<blockquote>
<p>So the question is, would any of this be considered malicious activity?</p>
</blockquote>
<p>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.</p>
<p>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.</p>
<p>This is an interesting project by 0xB10C in which missing transactions from blocks based on templates are tracked: <a href="https://miningpool.observer/missing" rel="noreferrer">https://miningpool.observer/missing</a></p>
<blockquote>
<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)?</p>
</blockquote>
<p>No</p>
