Bitcoin Forum
May 24, 2024, 06:55:32 PM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1]
  Print  
Author Topic: Maximum transaction fee to include transaction in block  (Read 1103 times)
GingerAle (OP)
Legendary
*
Offline Offline

Activity: 1260
Merit: 1008


View Profile WWW
August 29, 2015, 12:46:18 AM
 #1

I tried to execute due diligence and figure out if this exists in the code somewhere, but I couldn't find it.

I know that minimum tx fee exists, and there's some transaction priority thing.

But I'm wondering if a miner has the option to only include transactions below a certain fee.

Why you ask?

It would be one way for the masses to keep their transactions in the blockchain. In a world where bitcoin is mined by centralized servers, and the block reward has gone to 0, the only thing keeping these servers going will be the relatively large fees they are charging to have information stored in the blockchain. These types of servers will probably be the majority of the hashrate of the network, but the people will still have some percentage of the network.

And luckily (if I understand my bitcoin correctly), a node has to accept a block if its valid, not necessarily if the transactions have a particular fee (hence why it is possible for some pools to mine 0 transaction blocks).

Thus, the 10-20% of the network that is still secured by the people can block the high fee transactions, so whenever one of the people's miners find a block, it will be filled with no fee / low fee transactions.

Of course, this maximum fee feature would provide a real problem for spam, because the high fee participants of the network could just spam low fee transactions to specifically attack the 10-20% in what will become known as blockchain oppression, but I don't underestimate the ingenuity of the free man. Surely spam filters will be devised, as LukeJr did with the recent spam attack.

In conclusion, a miner should be able to set a maximum fee for inclusion in their block.

< Track your bitcoins! > < Track them again! > <<< [url=https://www.reddit.com/r/Bitcoin/comments/1qomqt/what_a_landmark_legal_case_from_mid1700s_scotland/] What is fungibility? >>> 46P88uZ4edEgsk7iKQUGu2FUDYcdHm2HtLFiGLp1inG4e4f9PTb4mbHWYWFZGYUeQidJ8hFym2WUmWc p34X8HHmFS2LXJkf <<< Free subdomains at moneroworld.com!! >>> <<< If you don't want to run your own node, point your wallet to node.moneroworld.com, and get connected to a random node! @@@@ FUCK ALL THE PROFITEERS! PROOF OF WORK OR ITS A SCAM !!! @@@@
DannyHamilton
Legendary
*
Offline Offline

Activity: 3402
Merit: 4656



View Profile
August 29, 2015, 02:41:53 AM
 #2

A solo miner (or mining pool operator) can use any criteria they like for choosing which valid transactions they include.

They can choose to only confirm low fee transactions.
They can choose to only confirm high fee transactions.
They can choose to only confirm transactions that involve particular addresses.
They can choose to only confirm transactions that do NOT involve particular addresses.
They can choose to only confirm transactions that have a hash that is a prime number.
They can choose to only confirm transactions that have a hash that is NOT a prime number.
They can choose to sort the transaction hashes alphabetically and confirm only the transactions that are closest to the letter 'A'.

Keep in mind of course that mining requires resources that must be paid for.  As such, the only way to mine at a profit is to reduce the mining costs as much as possible (by gaining access to the most inexpensive resources possible) and increase the revenue as much as possible (by confirming the transactions with the highest fees per byte).
GingerAle (OP)
Legendary
*
Offline Offline

Activity: 1260
Merit: 1008


View Profile WWW
August 29, 2015, 02:49:48 AM
 #3

A solo miner (or mining pool operator) can use any criteria they like for choosing which valid transactions they include.

They can choose to only confirm low fee transactions.
They can choose to only confirm high fee transactions.
They can choose to only confirm transactions that involve particular addresses.
They can choose to only confirm transactions that do NOT involve particular addresses.
They can choose to only confirm transactions that have a hash that is a prime number.
They can choose to only confirm transactions that have a hash that is NOT a prime number.
They can choose to sort the transaction hashes alphabetically and confirm only the transactions that are closest to the letter 'A'.

Keep in mind of course that mining requires resources that must be paid for. As such, the only way to mine at a profit is to reduce the mining costs as much as possible (by gaining access to the most inexpensive resources possible) and increase the revenue as much as possible (by confirming the transactions with the highest fees per byte).

marvelous, thats good news.

re: bold - yes and no, right? the first miners of bitcoin (who called it generating at the time, apparently) weren't doing it for the money. No one has to mine for profit. The entire BOINC community hashes data for no monetary reason at all.

< Track your bitcoins! > < Track them again! > <<< [url=https://www.reddit.com/r/Bitcoin/comments/1qomqt/what_a_landmark_legal_case_from_mid1700s_scotland/] What is fungibility? >>> 46P88uZ4edEgsk7iKQUGu2FUDYcdHm2HtLFiGLp1inG4e4f9PTb4mbHWYWFZGYUeQidJ8hFym2WUmWc p34X8HHmFS2LXJkf <<< Free subdomains at moneroworld.com!! >>> <<< If you don't want to run your own node, point your wallet to node.moneroworld.com, and get connected to a random node! @@@@ FUCK ALL THE PROFITEERS! PROOF OF WORK OR ITS A SCAM !!! @@@@
DannyHamilton
Legendary
*
Offline Offline

Activity: 3402
Merit: 4656



View Profile
August 29, 2015, 03:07:00 AM
 #4

re: bold - yes and no, right? the first miners of bitcoin (who called it generating at the time, apparently) weren't doing it for the money.

True.  However, they were not competing with:

- snip -
a world where bitcoin is mined by centralized servers, and the block reward has gone to 0, the only thing keeping these servers going will be the relatively large fees they are charging to have information stored in the blockchain. These types of servers will probably be the majority of the hashrate of the network,
- snip -

The "relatively large fees they are charging" mean that the "centralized servers" can afford to spend a lot of money on hashpower.  This huge amount of hash power means that the difficulty is very high.  A very high difficulty means that mining with very small amounts of hashpower is effectively a waste of time. In order for "10-20% of the network" to still be "secured by the people", it would mean that the "centralized servers" only have 80-90% of the global hashpower.

Start by picking a number that you think represents the daily amount of money that the "centralized servers" will be spending chasing their profits.

Divide that number by 4.  The result is the minimum amount that would need to be spent for "the people" to maintain "20% of the network".

So, if the "centralized servers" are spending a total of a million dollars a day on mining, then "the people" will need to spend $250,000 per day to maintain their 20% (allowing them to solve 28.8 blocks per day, or a bit more than 1 per hour).
99Percent
Full Member
***
Offline Offline

Activity: 403
Merit: 100


🦜| Save Smart & Win 🦜


View Profile WWW
August 29, 2015, 03:37:24 AM
 #5

I am thinking also on what a miner can do, thinking about solutions to increasing (or not) the max blocksize.

Can a miner fake a lot of transaction, transactions that were never in the mempool, even with transactions fee (which he can reclaim) and include it in his block?

If not, how is this enforced?

DannyHamilton
Legendary
*
Offline Offline

Activity: 3402
Merit: 4656



View Profile
August 29, 2015, 03:40:09 AM
 #6

I am thinking also on what a miner can do, thinking about solutions to increasing (or not) the max blocksize.

Can a miner fake a lot of transaction, transactions that were never in the mempool, even with transactions fee (which he can reclaim) and include it in his block?

Yes, a solo miner or (mining pool operator) can.

He can also fake a lot of transactions with no fee and include them all in his block (so that he doesn't need to "reclaim" them).
99Percent
Full Member
***
Offline Offline

Activity: 403
Merit: 100


🦜| Save Smart & Win 🦜


View Profile WWW
August 29, 2015, 03:52:31 AM
 #7

I am thinking also on what a miner can do, thinking about solutions to increasing (or not) the max blocksize.

Can a miner fake a lot of transaction, transactions that were never in the mempool, even with transactions fee (which he can reclaim) and include it in his block?

Yes, a solo miner or (mining pool operator) can.

He can also fake a lot of transactions with no fee and include them all in his block (so that he doesn't need to "reclaim" them).

I think then any solution that allows miners to set their maximum block size is completely useless, either by voting in blocks like BIP100, or by average transaction fees like BIP upal, or average block size. Miners will always try to maximize the possible block size since they can always soft minimize later.

There should be a way to enforce transactions to be in the mempool for them to be valid in blocks. Is that posible?

DannyHamilton
Legendary
*
Offline Offline

Activity: 3402
Merit: 4656



View Profile
August 29, 2015, 12:50:38 PM
 #8

I think then any solution that allows miners to set their maximum block size is completely useless, either by voting in blocks like BIP100, or by average transaction fees like BIP upal, or average block size. Miners will always try to maximize the possible block size since they can always soft minimize later.

There is no "voting".  I know that people seem to like to call it "voting", but that's not actually what is happening.

A consensus protocol like bitcoin is ALWAYS 100% of the participants.  That's what consensus means.

If a fork triggers at 5% of the hash power, you'll still have 100% consensus of the participants.  You'll just have it with a very insecure system since you won't have enough hash power to keep your blockchain secure against an attack.

This is the reason that 75% of the blocks (not 75% of the miners, and not 75% of the nodes) was chosen.  The miners aren't "voting".  They are simply stating that they are willing to use their hash power to secure the blockchain.  Once it is clear that there is enough hash power behind an idea, it becomes "safe" to split off.  The remaining hash power is welcome to continue to support the old blockchain if they want to, but they'll be supporting a relatively insecure system.

Pretty much every altcoin is just a fork of bitcoin that just happens to trigger at the genesis block.  This means that bitcoin already has less than 100% of the "vote" of all crypto-currency participants.  What percentage does it have?  Does it matter?  All that matters is that it has enough hash power to remain secure.  If a hard fork is implemented and less than 100% of the current miners choose to participate, then there will be two bitcoin systems.  One of them will be more secure than the other.  How much more secure will depend on the exact distribution of hash power between them.

They might both choose to call themselves "bitcoin" (which will lead to some confusion with the users) or one of them may choose to change their name to clear up some of that confusion.  Perhaps the old protocol will change to "LegacyBitcoin"  or perhaps the new protocol will change to "Bitcoin2016".  That's really up to the users to decide.


There should be a way to enforce transactions to be in the mempool for them to be valid in blocks. Is that posible?

No.  That is not possible.  There is no way to know that every possible node has every possible transaction in their mempool. 
99Percent
Full Member
***
Offline Offline

Activity: 403
Merit: 100


🦜| Save Smart & Win 🦜


View Profile WWW
August 30, 2015, 11:34:39 PM
 #9

I understand that once the blockchain is set, it is always 100% "voting" by the miner since they all must agree to keep building blocks on top the last block.

However I was referring to the BIP100 where miners "vote" on increasing and decreasing the blocksize. This becomes a real vote mechanism because it is implemented at the protocol level. ie the protocol counts the votes and sets a *hard* limit on the new blocks.

It is my belief that such voting is actually useless. Miners will always vote for the ability to create larger blocks, because any individual miner can choose to make smaller blocks regardless.

Previously I was convinced not limiting the block size would be a serious problem since I thought it would lead to unhealthy fee levels (transactions become increasing cheaper since there is unlimited space in blocks, but now I am thinking that miners actually do face the real increased risk of their blocks getting orphaned if the block is too big for it to get propagated in the network, so they will enforce a better fee structure for transactions to mitigate this risk.

So yeah, I think Gavin was right after all and maybe BIP101 is the right way to go.

Pages: [1]
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!