Can Miners Pick Which Transactions to Process?

11 replies 226 views
SwiftForkFull Member
Posts: 57 · Reputation: 471
#1Oct 31, 2020, 01:49 AM
Do miners really have the option to pick which transactions they want to work on? I mean, they might go for the ones with higher fees instead of the cheaper ones, which could lead to some delays. Or is it just a case of first come, first served? Thanks.
4 Reply Quote Share
sam_walletFull Member
Posts: 104 · Reputation: 365
#2Oct 31, 2020, 04:00 AM
Yes, miners can choose what transaction to confirm based on the fees and also the transaction size. They have limited space in a block and have to minimize it by including the most optimum transactions. No, a transaction with a low fee would compared to the current ferrate would take a long time to be confirmed regardless of when it was broadcasted, and in some cases, it might never get picked up by miners.
5 Reply Quote Share
ben_yieldFull Member
Posts: 117 · Reputation: 720
#3Oct 31, 2020, 05:41 AM
I know what you're saying, but just to be clear: a miner has full controll over which transaction he/she includes in a block (as long as it's a valid transaction, otherwise his block would be rejected by the other nodes). A miner can add a 0 sat/byte tx into the block he's trying to mine, even if his mempool has 1 Gb of transactions with a fee over 100 sat/vbyte. Even a small, home miner using a default setup node has a very simple command to increase the priority of low fee transactions in his mempool. Offcourse, financial incentives do push him/her to add the transactions with the highest fee (in sat/vbyte).
5 Reply Quote Share
planktonSenior Member
Posts: 473 · Reputation: 1384
#4Oct 31, 2020, 09:47 AM
It should be noted that the above responses referencing a “miner” are assuming the miner is solo mining and not part of a mining pool. If you are mining on a pool you have no say what transactions are included in the blocks. The pool decides this, you as a miner on the pool only provide the hash needed to add a block to the chain.
1 Reply Quote Share
stack51Hero Member
Posts: 541 · Reputation: 3218
#5Oct 31, 2020, 10:20 AM
Yes, they can even chose to NOT include any transactions at all. This is exactly how things work if you send a transaction with x fees, and just so happen that there are enough transactions that pay x+ a fraction to keep the blocks full for say 10 days, then your transaction will be stuck for 10 days. There is an expectation which is the miner's rewards for pool miners, most pools will include their daily reward transactions in the first block they mine regardless of the fees, the other exception is some entities such as Marathon which mines "OFAC Compliant Bitcoin Blocks", in other words, they censorship transactions coming in/going to addresses that are blacklisted by the "Office of Foreign Assets Control" even if those transactions pay 10 times more fees than the rest.
4 Reply Quote Share
coin_sigmaLegendary
Posts: 1275 · Reputation: 5553
#6Nov 2, 2020, 06:33 PM
I agree with OgNasty for solo mining you can choose what transactions you want to include it on the block but only big farm or pool operators can do such a thing. Small miners can but it takes months or years before they can mine one block. However, I know there is one pool that they let you submit your unconfirmed transaction to include on the recent block they mine. F2pool will let you submit the transaction they mostly called it accelerator/speedup transaction even it's has a low miner's fee they will include it on the recent block they mine.
0 Reply Quote Share
its_ninjaSenior Member
Posts: 269 · Reputation: 1259
#7Nov 2, 2020, 11:05 PM
From the point of view of general choice of transactions, there is no available software to let you decide about what transactions to include. You can of course prioritise transactions in your bitcoind, so the getblocktemplate is forced to include a transaction independent of it's fee. So anyone wanting to do this, would have to write a pool (or solo miner code) and modify it's use of the results of getblocktemplate and write their own transaction selection code. Other than using 'prioritise' to help include low fee transactions or one's own transactions, modifying your choice of transactions is bad for bitcoin since it is an attempt to add centralised control to transaction selection. This of course will be to the disadvantage of the miner, since getblocktemplate will maximise your block reward based on the transactions it knows about, rather than adding some centralised bias that also leads to the block getting lower total transaction fees i.e. lower block reward.
2 Reply Quote Share
paul.stakeHero Member
Posts: 651 · Reputation: 3798
#8Nov 2, 2020, 11:21 PM
Exactly. People tend to forget that transactions whose fees are lower than the dust limit aren't invalid; they can be included into a block, what they can't do is being included into nodes' memory pool and that if we assume that there are no nodes that will accept them. Your node has a default limit for the fee if I'm not mistaken, but this can change from bitcoin.conf. Theoretically, you could set it to zero and reject no transactions. Although, there is no need to do that if you're not a mining pool that solves blocks and shares them to other nodes. Your sharing wouldn't reach other nodes and thus, it'd be useless to keep them. I'd also want to add that including such transaction (with fee lower than the dust amount) would be bad for the miner's privacy. With a block chain analysis, you could expose the miner's rewarding address and the related transaction. In other words, you could know that the specific transaction was made by the miner. There wouldn't be any reason I could think of to do that, though; the fee would be sent to the rewarding address and the miner wouldn't pay for anything ultimately.
2 Reply Quote Share
D4rkFalconSenior Member
Posts: 308 · Reputation: 1050
#9Nov 3, 2020, 10:02 AM
i hear about mining wars that happen US and CHina i seen it on youtube they say miner can block the transaction so basically it will not get any confirmation from blacklisted address or specific tx my question is ? is this possible
2 Reply Quote Share
ben_yieldFull Member
Posts: 117 · Reputation: 720
#10Nov 4, 2020, 02:15 AM
yes and no... A single miner (or group of miners, or mining pool) can decide to "blacklist" whatever they want... If they run a custom node with a blacklist functionality, they can decide not to include transactions including certain unspent outputs, or funding certain addresses (or whatever they want). They can blacklist on any level they want (clear out reject the transaction, not include it in it's mempool, or not select it for creating a block). As a result, said single miner (or group of miners, or mining pools) will not include your "blacklisted" transaction into the block he/she/they is trying to solve. However, as long as there are sufficient miners that do not use a blacklist, worst that will happen is that your transaction gets delayed untill a miner not using a blacklist includes your "blacklisted" transaction into the block he/she is trying to mine.
3 Reply Quote Share
D4rkFalconSenior Member
Posts: 308 · Reputation: 1050
#11Nov 4, 2020, 02:20 AM
well it scary tho  but when one of group miner ex. blaclisted my address the other node or other mining farm still confirmed my transaction right or we can using bitcoin mixing to cover up the transcation
0 Reply Quote Share
its_ninjaSenior Member
Posts: 269 · Reputation: 1259
#12Nov 4, 2020, 06:09 AM
You can't move BTC without spending it ...
0 Reply Quote Share

Related topics