I understand that currently new bitcoins are awarded during the validation/mining process.

However, how exactly does the system determine that bitcoins that were previously nonexistent should be awarded to whoever solved a block?

My understanding is, once all bitcoins have been mined, the only way to gain any profit from mining is through fees that were voluntarily added to a transaction. How does the system right now know that this is not the case for a given transaction (or a group thereof) and that it should instead create new coins "out of thin air" to reward the workers?

up vote 4 down vote accepted

There is a rule in the Bicoin protocol that when a block is mined, the block is allowed to include transactions referencing input transaction "0000000000000000000000000000000000000000000000000000000000000000". These transactions are allowed to add up to all the unspent inputs (transaction fees) plus the block reward. If transactions total more than this, the block is invalid and not accepted on the network.

Take a look at http://blockexplorer.com/rawtx/881b1853b2e2367763ba4309e954b6d837d009a7f839b69011ae1875067d67e6 for an example of one of these transactions for 25.14819476 BTC which is made up of the block reward plus 0.14819476 in transaction fees.

However, how exactly does the system determine that bitcoins that were previously nonexistent should be awarded to whoever solved a block?

That was decided when the system was designed. Everyone knows it now because it's part of the public specification. The block reward schedule is well known and well understood.

It's no different from how we all know that a nickel is worth half as much as a dime -- if you want to use US coins, you have to know and understand that rule because everyone else follows it. Everyone who wants to use US currency has to learn the rules, otherwise others won't accept their payments.

My understanding is, once all bitcoins have been mined, the only way to gain any profit from mining is through fees that were voluntarily added to a transaction. How does the system right now know that this is not the case for a given transaction (or a group thereof) and that it should instead create new coins "out of thin air" to reward the workers?

How do people know a nickel is worth less than a dollar? If you want to use a currency, you have to learn its rules. You must know the value of a nickel or you can't properly credit and debit payments that use nickels. You must know the relative value of dollars and pennies. And so on.

These are the rules of Bitcoins. If you want to use Bitcoins, you (or the software you use) must understand the block reward schedule, otherwise it won't be able to properly credit or debit payments.

There's nothing complicated or mysterious about it -- it's just the rules everyone else has agreed to, and thus the rules you must agree to if you want to exchange Bitcoins with other people.

  • I guess my problem is that I don't understand those rules yet. Given that there is no central authority, I assume that the reward rule itself must be baked into the validation process. So when you solve a block, a transaction must come into play that assigns the rewarded coins to your address. But what builds the trust for that transaction given that it doesn't reference any prior transaction? – Der Hochstapler Dec 5 '13 at 0:21
  • Why do you need to "build trust"? Each computer checks to make sure the block is valid. The rules allow such a transaction, therefore the block is valid. What is the problem that you think needs to be solved? – David Schwartz Dec 5 '13 at 1:02
  • I don't think there is a problem that needs to be solved. I'm asking for an explanation of how things work in detail. – Der Hochstapler Dec 5 '13 at 1:04
  • 1
    Your assumption is correct. What more trust do you need? That miner solved that block and put his own address in there. – Jannes Dec 5 '13 at 1:06
  • 1
    As Jannes said, your assumptions are all correct. The miner who solves the block (or his pool) inserts a special "coinbase" transaction into the block that claims the block reward and any transaction fees. Everyone tests its validity according to the rules, the same way they test the validity of all transactions. The rules include allowing a block reward according to a schedule. – David Schwartz Dec 5 '13 at 1:12

Bitcoin creation follows a pre-determined schedule specified in the community contract, the Bitcoin protocol. Each block allows the respective successful miner to assign a fixed number of new bitcoins to an address of his choice. The schedule allows the creation of 50BTC for the first 210,000 blocks, then subsequently half of the previous reward for every next 210,000 blocks. (Currently we are in the second block area with 25BTC reward.) This reward is not adjusted due to additional revenue from transaction fees, rather (at this stage) they represent an added bonus.

The idea is that slowly the incentive from the reward will diminish and that this will be absorbed by increasing value of the transaction fees. There is currently some discussion whether this will actually work; some worry that transaction fees generally trend to zero, others suggest that by the time it becomes a big issue, there will be sufficient shareholders in bitcoin, in whose interest it is to either provide mining power in order to sustain their livelihood or to provide transaction fees to incentivize others to do so.

Your Answer

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Not the answer you're looking for? Browse other questions tagged or ask your own question.