Bitcoin Forum
May 22, 2024, 01:07:49 AM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1]
  Print  
Author Topic: Rewarding miners with free transactions  (Read 156 times)
garlonicon (OP)
Hero Member
*****
Offline Offline

Activity: 806
Merit: 1940


View Profile
August 28, 2022, 10:49:00 AM
Merited by dkbit98 (3), n0nce (2), ABCbits (1)
 #1

Currently, there are large mining pools. They send basic block data to the miners, and they produce 80-byte headers, called shares, and receive rewards in a centralized way. Many times, where there are ideas related to mining decentralization, they are based on huge N-of-N multisigs. This time, I can share something different, called "free transactions for miners".

Transaction fees of one satoshi per virtual byte, means that the average transaction fee for a few inputs and outputs is measured in hundreds of satoshis. It is small enough that a typical miner can produce a proportional amount of work. In general, as long as transaction fees are quite low, comparable with a few bucks, it is something that small miners can achieve, just by spending a proportional amount of electricity.

A typical transaction is locked in a way, where a valid signature is needed to move the coins. That signature has two values: <r;s>. The R-value is a random "signature key" that could be anything, but that could also contain a commitment. That means, each signature can contain some 80-byte header committed into it, with some Proof of Work that matches the amount of satoshis that would be required by default. Just by comparing the current difficulty with the current block reward, and looking at the committed block hash, it is possible to quickly check if the amount of work is sufficient. Basically, "blockHash<target" has to be true for the "coinbaseAmount", but "shareHash<target*coinbaseAmount/minTxFee" could be checked for transactions.

No forks are required for such change. It is possible to introduce many competing systems, because it is only about including free transactions if they contain a proper commitment with some block hash, called a share. All consensus rules are left unchanged, the whole system can be based just on including cheaper transactions, if they contain shares, it can be only a relay-rule and block-inclusion-rule, only for nodes that accepted a new version, and only for nodes willing to store and process commitments. Also, shares could be combined, or even sold to users, so a miner that produced 0.01 BTC in a decentralized way, could just sell "an ability to make free transactions, up to 0.01 BTC in fees" to the users, and receive that reward on-chain.
jackg
Copper Member
Legendary
*
Offline Offline

Activity: 2856
Merit: 3071


https://bit.ly/387FXHi lightning theory


View Profile
August 28, 2022, 06:19:16 PM
 #2

So similar to what pools already (or used to) offer to their users to mine valid transactions for them (I'm not sure if they allowed them to be fee free).

If something like this become possible I'd imagine mining pools would have to spend a lot of time/crypto buying up those commitment shares so they don't become cheap and lose them in block rewards.

When I mine, I normally assume that the fees for my transaction will be returned to me anyway (and they're normally insignificant enough to be able to come that way).
NotATether
Legendary
*
Offline Offline

Activity: 1610
Merit: 6753


bitcoincleanup.com / bitmixlist.org


View Profile WWW
August 29, 2022, 07:50:20 AM
Merited by ABCbits (1)
 #3

What's the point of free transactions for miners anyway? I must be missing something, because this sounds like a workaround for increasing transaction throughput.

.
.BLACKJACK ♠ FUN.
█████████
██████████████
████████████
█████████████████
████████████████▄▄
░█████████████▀░▀▀
██████████████████
░██████████████
████████████████
░██████████████
████████████
███████████████░██
██████████
CRYPTO CASINO &
SPORTS BETTING
▄▄███████▄▄
▄███████████████▄
███████████████████
█████████████████████
███████████████████████
█████████████████████████
█████████████████████████
█████████████████████████
███████████████████████
█████████████████████
███████████████████
▀███████████████▀
█████████
.
garlonicon (OP)
Hero Member
*****
Offline Offline

Activity: 806
Merit: 1940


View Profile
August 29, 2022, 04:43:15 PM
 #4

Quote
What's the point of free transactions for miners anyway?
Because if you are a miner and you want to solo mine the whole block, you will get the base reward and all transaction fees. But if you don't have enough computing power, then you need some way to get your reward in a decentralized way. And getting a free transaction processed by the network is one of those possible ways. Because even in decentralized mining, the difficulty will still be high, so you cannot rely on assumption that miners will have enough power to mine those blocks alone.

Quote
I must be missing something, because this sounds like a workaround for increasing transaction throughput.
It is one of the side effects, but yes, handling all rewards directly on-chain can cause too much traffic being assigned to distributing rewards, instead of processing users' transactions. Centralized pools accumulate those amounts automatically, so a similar mechanism is also needed to convince miners that P2P solution is better.
stompix
Legendary
*
Offline Offline

Activity: 2898
Merit: 6352


Blackjack.fun


View Profile
August 29, 2022, 05:27:29 PM
 #5

What happens if a miner or pool decides to turn to this system, generating those shares and then selling to themselves, how will that affect the rest of block generation? Because a single entity like Foundry could almost clog the network with just a few days of work and lost fees (which are right now 1% of the whole reward) The fee also acts as a way to prevent spam, by incentivizing miners to include zero fees tx you're just turning the blockchain more vulnerable to spam where lower fees would take priority space, secondary I don't see how this would work with thousands of small miners getting their "shares" of each block each day, without further more affecting the limited space.

No forks are required for such change.

How would you do this as this would need to store each miner's contribution from the previous block to the next one and that is not happening right now?

It is one of the side effects, but yes, handling all rewards directly on-chain can cause too much traffic being assigned to distributing rewards, instead of processing users' transactions. .

There is LN, and anyhow, home mining for BTC will probably be completely dead in a few years, right now is barely breathing.

.
.BLACKJACK ♠ FUN.
█████████
██████████████
████████████
█████████████████
████████████████▄▄
░█████████████▀░▀▀
██████████████████
░██████████████
████████████████
░██████████████
████████████
███████████████░██
██████████
CRYPTO CASINO &
SPORTS BETTING
▄▄███████▄▄
▄███████████████▄
███████████████████
█████████████████████
███████████████████████
█████████████████████████
█████████████████████████
█████████████████████████
███████████████████████
█████████████████████
███████████████████
▀███████████████▀
█████████
.
garlonicon (OP)
Hero Member
*****
Offline Offline

Activity: 806
Merit: 1940


View Profile
August 29, 2022, 06:17:42 PM
Merited by stompix (2)
 #6

Quote
What happens if a miner or pool decides to turn to this system, generating those shares and then selling to themselves, how will that affect the rest of block generation?
It is not that easy, because you cannot easily produce Proof of Work out of thin air, you have to spend some "work" on that. And if something is committed to the block, then if you want to change your commitment, you have to re-mine it.

Quote
Because a single entity like Foundry could almost clog the network with just a few days of work and lost fees (which are right now 1% of the whole reward)
It is not that easy to clog the network if you have a Proof of Work, because it can be used to filter spam. For example, each node can adjust required work for commitments, based on how many of them are broadcasted: if there are too strong, then one commitment can cover N transactions. If they are too weak, then N commitments can cover a single transaction. If something is gameable, then it can require re-mining, then people couldn't easily change their minds after spending work on mining some commitment.

Quote
The fee also acts as a way to prevent spam, by incentivizing miners to include zero fees tx you're just turning the blockchain more vulnerable to spam where lower fees would take priority space
It is not a scheme, where lower fees are always included. They are conditionally included, if you can provide some Proof of Work for that. So, the minimal fee stays the same, it is just measured not only in satoshis, but rather in "satoshis+work" combination. Another thing is that it depends on what nodes accept, so they can decide, how much discount they want to provide, and how much work they are willing to validate from smaller miners. And in case where something goes wrong, it does not affect the whole network, because it is only relay-rule, and block-inclusion-rule, so no forks are needed, and the old system can be restored at any time if needed (and different nodes can try different settings, to find the right balance between requiring N satoshis, and supporting small miners). Also, older commitments can be later removed, because if a free transaction is included, then those commitments are no longer needed, as long as those transactions are deep enough to not be reversed.

Quote
secondary I don't see how this would work with thousands of small miners getting their "shares" of each block each day, without further more affecting the limited space
It is only an option. And it is only a discount for a miner's transaction. If it gets abused, then nodes could require more work per satoshi, or turn off that feature entirely. Another thing is that with proper sighashes, it is possible to create a negative fee transaction, if getting a higher reward in one shot is needed.

Quote
How would you do this as this would need to store each miner's contribution from the previous block to the next one and that is not happening right now?
Not "each miner's contribution", but only for those willing to use that system. Also, it can be turned on and off at any time, because it depends on each node, exactly in the same way as minimal fees depends on nodes. So, if you have 700k blocks, you don't need the whole history of all mined shares in the whole system. You need only a short, moving, on-the-fly calculated window of shares. You don't have to store the rest, because each miner can provide a proof when willing to get a discount. So, if you have a commitment for the block 700,000, then you are the only one who needs to backup that commitment, and then you reveal it later to some node. But as the whole chain is moving forward, your discount is getting less and less significant in the whole chainwork, so you are incentivized to share it early, then it will get combined with other commitments.

Quote
There is LN, and anyhow, home mining for BTC will probably be completely dead in a few years, right now is barely breathing.
Yes, we have LN for such things, this is just one more step, to cover for example discounts in channel opening and closing transactions. Because if you are a really small miner, then you probably don't have enough power to use that on-chain, for small miners there are millisatoshis (or maybe smaller units in the future) inside LN channels.
stompix
Legendary
*
Offline Offline

Activity: 2898
Merit: 6352


Blackjack.fun


View Profile
August 29, 2022, 07:06:22 PM
 #7

It is not that easy, because you cannot easily produce Proof of Work out of thin air, you have to spend some "work" on that. And if something is committed to the block, then if you want to change your commitment, you have to re-mine it.

Yes, that's how attacks happen, you have to have a way of attacking in the first place and that is hashrate, you're opening  door to someone who can use their hashrate to influence fees at a later time with this system, and no it's not about the current block.

For example, each node can adjust required work for commitments, based on how many of them are broadcasted

Yeah right, lets be honest here, no one is going to tune their nodes each time and again, we're opening another door to abuse and to a lot of forking, like a ton of forking when some nodes reject and some approve but in the end no matter how people tune it up the nodes accepting the blocks on the chain with more work will be the ones deciding it. Unless you want to change that too which is not ever going to happen.

For the next paragraph, I admit I must re-read it early in the morning with a hot coffee as I can't make head or tails of it, so the next thing

Not "each miner's contribution", but only for those willing to use that system. Also, it can be turned on and off at any time, because it depends on each node, exactly in the same way as minimal fees depends on nodes. So, if you have 700k blocks, you don't need the whole history of all mined shares in the whole system. You need only a short, moving, on-the-fly calculated window of shares. You don't have to store the rest, because each miner can provide a proof when willing to get a discount. So, if you have a commitment for the block 700,000, then you are the only one who needs to backup that commitment, and then you reveal it later to some node. But as the whole chain is moving forward, your discount is getting less and less significant in the whole chainwork, so you are incentivized to share it early, then it will get combined with other commitments.

Yes, and how is this going to be calculated and relayed between nodes, and now it is going to be inserted when there is no place for it right now?
There is no way proof of shares received by one node right now could be transmitted and accepted by another since nodes don't communicate this at all, so again, how are you going to do this without a fork? How would a node know that you have a commitment for the next block and how could another node validate and store your claim?

Quote
Because if you are a really small miner, then you probably don't have enough power to use that on-chain, for small miners there are millisatoshis (or maybe smaller units in the future) inside LN channels.

If you're a small miner, as in having an S9 and making right now 1$ a day, assuming 3 cents kwh you're already flat, and if you have 6 cents you lose $1 a day, so these guys that are still trying it this way would probably try to get a solo block rather than selling tx free coupons,  if you have a newer machine like an s19 you make around $300 a month so you could simply wait for a month and get paid a more sizeable chunk, even assuming that half of the entire hashrate is generated by such single machine cases (and you know it all too well it's not) a payment a month won't cover more than 3% of the chain capacity. I really have a feeling we're trying to find an overcomplicated solution to an almost non-existent problem.

.
.BLACKJACK ♠ FUN.
█████████
██████████████
████████████
█████████████████
████████████████▄▄
░█████████████▀░▀▀
██████████████████
░██████████████
████████████████
░██████████████
████████████
███████████████░██
██████████
CRYPTO CASINO &
SPORTS BETTING
▄▄███████▄▄
▄███████████████▄
███████████████████
█████████████████████
███████████████████████
█████████████████████████
█████████████████████████
█████████████████████████
███████████████████████
█████████████████████
███████████████████
▀███████████████▀
█████████
.
n0nce
Hero Member
*****
Offline Offline

Activity: 882
Merit: 5829


not your keys, not your coins!


View Profile WWW
August 29, 2022, 11:32:57 PM
 #8

Quote
I must be missing something, because this sounds like a workaround for increasing transaction throughput.
It is one of the side effects, but yes, handling all rewards directly on-chain can cause too much traffic being assigned to distributing rewards, instead of processing users' transactions. Centralized pools accumulate those amounts automatically, so a similar mechanism is also needed to convince miners that P2P solution is better.
I do still like the high-level idea of using full nodes as decentralized mining pool operators. The infrastructure is there, it requires no consensus upgrades and most people's nodes are overpowered / sitting idle 99% of the time after the IBD anyway.
As people often want to 'help the network', this would be a great way to do so, especially if you're not keen to get into layer 2 stuff.

█▀▀▀











█▄▄▄
▀▀▀▀▀▀▀▀▀▀▀
e
▄▄▄▄▄▄▄▄▄▄▄
█████████████
████████████▄███
██▐███████▄█████▀
█████████▄████▀
███▐████▄███▀
████▐██████▀
█████▀█████
███████████▄
████████████▄
██▄█████▀█████▄
▄█████████▀█████▀
███████████▀██▀
████▀█████████
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
c.h.
▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
▀▀▀█











▄▄▄█
▄██████▄▄▄
█████████████▄▄
███████████████
███████████████
███████████████
███████████████
███░░█████████
███▌▐█████████
█████████████
███████████▀
██████████▀
████████▀
▀██▀▀
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!