Bitcoin Forum

Bitcoin => Development & Technical Discussion => Topic started by: mndrix on December 13, 2010, 07:51:12 PM



Title: Questions about inflation enforcement
Post by: mndrix on December 13, 2010, 07:51:12 PM
I'm trying to clarify my understanding of how Bitcoin's inflation limit is enforced.  Feel free to point me toward a wiki page if I've missed it.

I understand that bitcoins in circulation asymptotically approach 21 million by halving the mining reward at points in the future.  When do the "pay cuts" go into effect?  Is it based on block number?

If a sizable (non-majority) fraction of the network decides to continue awarding 50 BTC for blocks after the pay cut, does it matter?  Or must a majority of miners disregard the pay cut to make their protest effective?

I watched the IsStandard() discussions with interest.  There seemed to be strong opposition from miners to a change which only theoretically decrease their revenue.  What incentive do miners have to honor the pay cuts when it will halve their revenue in an instant?

Thank you for any guidance.


Title: Re: Questions about inflation enforcement
Post by: RHorning on December 13, 2010, 08:26:40 PM
I'm trying to clarify my understanding of how Bitcoin's inflation limit is enforced.  Feel free to point me toward a wiki page if I've missed it.

I understand that bitcoins in circulation asymptotically approach 21 million by halving the mining reward at points in the future.  When do the "pay cuts" go into effect?  Is it based on block number?

Yes, the amount of coins newly generated by a block will be diminished every 210,000 blocks.

Quote
If a sizable (non-majority) fraction of the network decides to continue awarding 50 BTC for blocks after the pay cut, does it matter?  Or must a majority of miners disregard the pay cut to make their protest effective?

It is based upon what the rest of the network decides is the correct value for a generated block.  Keep in mind that the transactions are enforced not just by miners, but by other nodes in the network passing around blocks.  If somebody has a 25BTC block and tries to spend 30 BTC, that will be an invalidated transaction unless they have other blocks they are using as an input besides that mined block.

Yes, several computers could recognize the value of a block to be in theory any possible value, but at that point they wouldn't really be using Bitcion but some other parallel network.  Any transactions that attempt to spend more than the number described by the network will be simply invalidated by that part of the network which still recognizes the gradual halving of Bitcoins.  This is much more than merely 50% of the network, but simply anybody claiming to even be using Bitcoins at all.  If you want to participate with Bitcoin, you will recognize that limit with regular halving of the value of new blocks over time, or simply go start your own currency instead as that would be much easier than convincing those on Bitcoin to change this system.

In theory this could change on the "official client" right now and would likely be accepted across the whole network, but there already is strong resistance to permitting a change of this nature even if you tried.  The "majority" you'd have to convince to make a change of this nature would be the "overwhelming majority" of anybody who might even consider using Bitcoins, not just the small developer group or for that matter even a majority of the CPU processing power.

Quote
I watched the IsStandard() discussions with interest.  There seemed to be strong opposition from miners to a change which only theoretically decrease their revenue.  What incentive do miners have to honor the pay cuts when it will halve their revenue in an instant?

Thank you for any guidance.

When miners have to deal with blocks past # 210,000, I strongly suspect many of them are going to start to expect fees for transactions, at least if they are going to maintain their server farms that are currently being used to generate blocks.  The miners are going to follow the rules because they want their blocks recognized by the rest of the network, not just other miners.

Keep in mind that while the issue of the IsStandard() function has been motivated by financial interests, there are other "political" issues involved too in terms of differing groups of people in several philosophical camps regarding if or how data other than financial transactions ought to be recognized by Bitcoin miners.  Some of the people who regularly "win" blocks through mining activity are looking at non-financial data as a chance to earn some extra bitcoins, but it is the political issue that is the central theme over what should go into blocks.


Title: Re: Questions about inflation enforcement
Post by: FreeMoney on December 13, 2010, 08:45:14 PM
It would be like writing a "7" in front of the "1" on your FRN. If a group of people want to accept it as a $71 bill then it "is" for them, but it doesn't affect anyone else. Now if most people started accepting altered bills it would be weird, but I would start adding a "7" and spending way before I'd start accepting altered bills. This process never really gets off the ground because everyone knows no one else will take them.


Title: Re: Questions about inflation enforcement
Post by: mndrix on December 14, 2010, 12:59:15 AM
Thank you both for the good explanations.

I suppose that if the inflation limits could be broken after 210,000 blocks, they could just as easily be broken now.  That they've not been violated, indicates the system's stability even with a relatively young and small network.


Title: Re: Questions about inflation enforcement
Post by: casascius on December 15, 2010, 08:23:06 PM
I'm not sure I understand the wisdom behind capping it at 21 million blocks, or by reducing the production rate.  Inflation isn't intrinsically a bad thing, it is only bad when it is used to swindle people out of their savings.

Can someone explain what would be the harm in allowing 50 BTC to be created per block forever?  Even that is still an inflation rate that asymptotically trends toward zero, when considered as a proportion of the entire economy.  And the inflation rate will still be vastly disproportionate to the expected deflation that can be guaranteed if Bitcoin experiences a surge in popularity, deflation which offers undesirable effects all its own.  I would hope I would not sound heretical to even suggest the 50 BTC should actually go up to stay a constant small percentage of the economy.

I see two parallel phenomena.  The more people adopt Bitcoin, the more one BTC is going to be worth, but the less worthwhile it will be to generate coins due to the increased competition (difficulty).  Both of these growths will be in proportion, and that should be a good thing.  But if the incentive to generate coin goes to zero (transaction fees aside), what's the point?  You're going to have the casual user disinterested in generating blocks, leaving all the block generation to a small class of professional administrators of large banks of GPU's (may as well call them "bankers" for short!).

I recognize there's transaction fees, but the way I understand it, the maximum block size is imposed by fiat... and unless the maximum block size adjusts in some systematic fashion in response to the transaction fees, they serve no purpose other than to prevent spam... there's no market force that would compel people to pay transaction fees in a quantity that would do more than set the transaction apart from spam... nothing to incentivize people to contribute computational power, except perhaps to compete for a limited number of transaction processing "slots" where the maximum block size is arbitrarily set too small (unless the goal is to facilitate only big transactions).  If I have misunderstood, someone please correct me and provide an address for a small donation.

The way I see it, incentivizing the average joe is critical... If Joe might solve a block once a year as difficulty increases, and his trouble is worth the equivalent of two bucks, why would he bother?  The network won't care... the more Joes who get bored and go away, the difficulty will just lessen in proportion, the same number of blocks and transactions will get through just as quickly whether Joe helps or not.  However, the network will just be weaker to a determined opponent, as the threshold needed to control 50% CPU will be that much lower without any Joes.  If nobody but a few heavyweight GPU "bankers" are in charge, then the whole point of decentralizing becomes broken.  Reminds me of the Simpsons episode where Bart lost the class president election to Martin Prince - all because everyone was so sure Bart would win hands down that nobody voted for him.

On the other hand, if generating a block becomes a once-in-a-lifetime affair due to a surge in popularity, perhaps 50 BTC would be a prize worthy of a lottery.  Either way, whether the incentive to generate blocks comes in the form of transaction fees or inflation, it is still a cost imposed upon the entire user base as a whole and it is a cost that goes up (in the form of difficulty) at the same time.  Why not let the reward climb with it?


Title: Re: Questions about inflation enforcement
Post by: ribuck on December 15, 2010, 08:33:45 PM
... If Joe might solve a block once a year as difficulty increases, and his trouble is worth the equivalent of two bucks, why would he bother?

There are only about 50,000 blocks generated each year. So if bitcoin gets a million users, there's no way the average Joe can generate a block once a year.

Collaborative mining is the way forward for the "little guy". Very small payouts, but reasonably regular.


Title: Re: Questions about inflation enforcement
Post by: casascius on December 15, 2010, 08:49:44 PM
... If Joe might solve a block once a year as difficulty increases, and his trouble is worth the equivalent of two bucks, why would he bother?

There are only about 50,000 blocks generated each year. So if bitcoin gets a million users, there's no way the average Joe can generate a block once a year.

Collaborative mining is the way forward for the "little guy". Very small payouts, but reasonably regular.

The problem is the same whether mining is collaborative or otherwise.  If bitcoin gets a million users but the reward for mining is 0 BTC as it is planned in the future (plus fees no one has any incentive to pay beyond a token penny to set their transaction apart from spam), why would Joe bother?


Title: Re: Questions about inflation enforcement
Post by: MoonShadow on December 15, 2010, 08:55:53 PM
I'm not sure I understand the wisdom behind capping it at 21 million blocks, or by reducing the production rate.  Inflation isn't intrinsically a bad thing, it is only bad when it is used to swindle people out of their savings.

Can someone explain what would be the harm in allowing 50 BTC to be created per block forever?  Even that is still an inflation rate that asymptotically trends toward zero, when considered as a proportion of the entire economy.  And the inflation rate will be vastly disproportionate to the expected deflation that can be guaranteed if Bitcoin experiences a surge in popularity.


The point is that the creation of new  coins is mathmaticly similar to the mining of gold, as the mining continues, the difficulty of doing so increases until the mine is played out.  Also, there is the problem of initial distribution of a new currency, if the rate was continuous then it would take decades for the inflation rate to drop into the range of a rational currency, say 2-3% APR.  The halving system used by bitcoin will have distributed half of all the coins by 2013, 75% by 2017, and will be into an inflation rate preferable to any fiat currency on Earth today.  We wouldn't want to wait a couple decades before Bitcoin was preferable to a regular national currency issued by a government with "target inflation rate" of 2%.

Quote

I see two parallel phenomena.  The more people adopt Bitcoin, the more one BTC is going to be worth, but the less worthwhile it will be to generate coins due to the increased competition (difficulty).  Both of these growths will be in proportion, and that should be a good thing.  But if the incentive to generate coin goes to zero (transaction fees aside), what's the point?  You're going to have the casual user disinterested in generating blocks, leaving all the block generation to a small class of professional administrators of large banks of GPU's (may as well call them "bankers" for short!).

I recognize there's transaction fees, but the way I understand it, the maximum block size is imposed by fiat... and unless the maximum block size adjusts in some systematic fashion in response to the transaction fees, they serve no purpose other than to prevent spam...


The max block size is not imposed by fiat, but by agreement to a convention.  You could change that in your client right now and produce blocks just fine, but unless at least 50% of generators agree with you, whenever your client produces a block that defies this agreed convention it will be ignored by those who do.

Quote

 there's no market force that would compel people to pay transaction fees in a quantity that would incentivize people to contribute computational power.  If I have misunderstood, someone please correct me and provide an address for a small donation!


Yes there are such market forces, at least there will be once the rate of transactions is averaging over 50KB per block.  Some fees are voluntary, but increase your priority, allowing your transaction to be processed in a timely manner.  There are numberous cases in real life wherein a delay of a couple of hours is unacceptable, and it would be worthwhile to tack on a transaction fee of .02 bitcoin in order to jump the line of freebies.  If you are tyring todonate to a cause, or just moving funds around between multiple clients of your own (working client to a savings client, for example) then you can probably wait a few hours, or a few days, for the transaction to get processed at the network's own convience.  Buying a car, however, would likely justify the fee for speed.

Other fees are not voluntary, but are required of more sophisticated transactions than the simple send X bitcoin to Y.
Quote

The way I see it, incentivizing the average joe is critical... If Joe might solve a block once a year as difficulty increases, and his trouble is worth the equivalent of two bucks, why would he bother?  If nobody but a few heavyweight GPU "bankers" are in charge, then the whole point of decentralizing becomes broken.  Reminds me of the Simpsons episode where Bart lost the class president election to Martin Prince - all because everyone was so sure Bart would win hands down that nobody voted for him.


I think that you misunderstand the point of decentralization in the context of currency.  It's not the idea of a bank that is the problem, but the monopolies that cnetral banks have in our modern world.  Bitcoin banks will likely exist before very long, as Mybitcoin.com and Mtgox.com already offer some of the most important functions of a bank, but none of them can manipulate the system to their own advantage over any other peer, be they a user or another bank.

Quote

On the other hand, if generating a block becomes a once-in-a-lifetime affair due to a surge in popularity, perhaps 50 BTC would be a prize worthy of a lottery.  Either way, whether the incentive to generate blocks comes in the form of transaction fees or inflation, it is still a cost imposed upon the entire user base as a whole and it is a cost that goes up (in the form of difficulty) at the same time.  Why not let the reward climb with it?

Those two incentives are not equivalant, transaction fees do not affect the value of all other bitcoins held by others.  Increasing the monetary base does.


Title: Re: Questions about inflation enforcement
Post by: mndrix on December 15, 2010, 09:01:15 PM
I'm not sure I understand the wisdom behind capping it at 21 million blocks, or by reducing the production rate.  Inflation isn't intrinsically a bad thing, it is only bad when it is used to swindle people out of their savings.

I think the wisdom is that a declining pay out for discovering new blocks closely models currencies based on commodities (gold, silver, etc).  The profit margins on gold mining are much lower now than they were 100 years ago, when one only needed a river and a pan.  Gold mining is still possible, but it requires a substantial capital investment (buying "GPUs" so to speak).  Such commodities have proven to be useful currencies over the last couple thousand years.  It seems like a prudent model for a new currency.


Title: Re: Questions about inflation enforcement
Post by: MoonShadow on December 15, 2010, 09:09:19 PM

The problem is the same whether mining is collaborative or otherwise.  If bitcoin gets a million users but the reward for mining is 0 BTC as it is planned in the future (plus fees no one has any incentive to pay beyond a token penny to set their transaction apart from spam), why would Joe bother?

First, the day that comes that a reward is zero is beyond our lifetimes, and only a theoretical issue to us.  Second, the priorities system gives more priority to transactions that pay a higher fee.  So the blocksize limit, whatever it is in the future, functions as artifical scarcity as well as limit the bandwidth/storage consumption of the network.  If Bitcoin were to become as regularly used as Paypal, even a 10 meg top limit is likely to delay transactions of the smallest fee, creating a natural market price for the value of a near term transaction.  A future client can look at the most recent several blocks, and produce an average transaction fee recommendation for a user to get his transactions processed in a timely manner.  This premium on speed will likely be in constant flux.

Perhaps we should consider a "flushing block" every so often, wherein the top limit is uncapped for that single block, to allow all persistant transactions to clear.  This could be done once every retarget, permitting the network to catch up, so that even free transactions have a high end limit of two weeks of wait.


Title: Re: Questions about inflation enforcement
Post by: FreeMoney on December 15, 2010, 09:47:13 PM
... If Joe might solve a block once a year as difficulty increases, and his trouble is worth the equivalent of two bucks, why would he bother?

There are only about 50,000 blocks generated each year. So if bitcoin gets a million users, there's no way the average Joe can generate a block once a year.

Collaborative mining is the way forward for the "little guy". Very small payouts, but reasonably regular.

The problem is the same whether mining is collaborative or otherwise.  If bitcoin gets a million users but the reward for mining is 0 BTC as it is planned in the future (plus fees no one has any incentive to pay beyond a token penny to set their transaction apart from spam), why would Joe bother?

Right now everyone who generates leaves it on all the time. When a block is found they keep right on going because they are after the 50 and there is another 50 for the next block. When the reward is 0 everyone will likely stop after a block is found and wait for a fee transaction to show up. If the fee is worth the average power it will take to get it then they turn on, else they wait for more fees to accumulate. If generators are not finding it worth it to solve the block in an average of 10 minutes then the difficulty will drop until they do. 


Title: Re: Questions about inflation enforcement
Post by: mndrix on December 15, 2010, 11:45:22 PM
I summarized some important points from this thread in a wiki article about inflation controls (http://www.bitcoin.org/wiki/doku.php?id=inflation_controls) and linked that article from a relevant paragraph on the main What are bitcoins (http://www.bitcoin.org/wiki/doku.php?id=bitcoins#what_are_bitcoins) page.

There's plenty of room for improvement in my remarks.  Some comments about parallels to real world mining might be in order.


Title: Re: Questions about inflation enforcement
Post by: MoonShadow on December 15, 2010, 11:58:51 PM
I do like that graph, but I think that it would mean more to the average Joe if a similar graph existed to mark the declining inflation rate over time.


Title: Re: Questions about inflation enforcement
Post by: TiagoTiago on March 21, 2011, 07:44:20 PM
...

First, the day that comes that a reward is zero is beyond our lifetimes...

...

Speak for yourself; me, i plan on living way past the switch into the 22nd century.


Title: Re: Questions about inflation enforcement
Post by: nazgulnarsil on May 29, 2011, 06:32:35 PM
Inflation above zero but below the growth of the world economy still results in deflation in terms of prices.


Title: Re: Questions about inflation enforcement
Post by: Steve on May 30, 2011, 03:32:57 AM
Inflation above zero but below the growth of the world economy still results in deflation in terms of prices.

Not quite...inflation above zero, but below the growth of the *bitcoin* economy still results in deflation (or as I prefer to view it, an appreciation in the value of a bitcoin).

As for the question about why not keep a permanent inflation, I think that could have also worked.  A declining payout means that the rate of inflation of the bitcoin money supply more quickly reaches rates comparable with and ultimately better than national currencies (as has been mentioned earlier).  But, if the rate remained at 50btc/block, eventually the rate of inflation would still approach 0%.  I do think the timeframes for the declining payout should give bitcoin inflation a chance at staying a bit lower than the growth rate of its economy.  If it works out that way, the value of a bitcoin should continue to appreciate, which makes it a good store of value...and that is important at this stage.


Title: Re: Questions about inflation enforcement
Post by: grue on May 30, 2011, 09:42:27 PM
Inflation above zero but below the growth of the world economy still results in deflation in terms of prices.

Not quite...inflation above zero, but below the growth of the *bitcoin* economy still results in deflation (or as I prefer to view it, an appreciation in the value of a bitcoin).

As for the question about why not keep a permanent inflation, I think that could have also worked.  A declining payout means that the rate of inflation of the bitcoin money supply more quickly reaches rates comparable with and ultimately better than national currencies (as has been mentioned earlier).  But, if the rate remained at 50btc/block, eventually the rate of inflation would still approach 0%.  I do think the timeframes for the declining payout should give bitcoin inflation a chance at staying a bit lower than the growth rate of its economy.  If it works out that way, the value of a bitcoin should continue to appreciate, which makes it a good store of value...and that is important at this stage.
that's been discussed before.
http://bitcointalk.org/index.php?topic=2792.0


Title: Re: Questions about inflation enforcement
Post by: goatpig on May 30, 2011, 09:58:00 PM
If I'm not mistaken, a block with an invalid amount on coinbase transaction will be rejected by the network. IIRC, nodes use the address advertised in the coinbase transaction, but write in the amount of BTC reclaimed based on the network agreed upon standard. This is how you can't reclaim more than 50BTC per solved block right now. At block 210,000 only clients modified to still reward 50BTC per block would accept such blocks, which, if some miners intent to do, will fork the chain.


Title: Re: Questions about inflation enforcement
Post by: ene on May 30, 2011, 10:09:33 PM
I watched the IsStandard() discussions with interest.  There seemed to be strong opposition from miners to a change which only theoretically decrease their revenue.  What incentive do miners have to honor the pay cuts when it will halve their revenue in an instant?

What is this in reference to?


Title: Re: Questions about inflation enforcement
Post by: TiagoTiago on May 31, 2011, 02:34:28 AM
If I'm not mistaken, a block with an invalid amount on coinbase transaction will be rejected by the network. IIRC, nodes use the address advertised in the coinbase transaction, but write in the amount of BTC reclaimed based on the network agreed upon standard. This is how you can't reclaim more than 50BTC per solved block right now. At block 210,000 only clients modified to still reward 50BTC per block would accept such blocks, which, if some miners intent to do, will fork the chain.
Is that block really the block when the builtin reward will reach zero?


Title: Re: Questions about inflation enforcement
Post by: theymos on May 31, 2011, 03:05:49 AM
Is that block really the block when the builtin reward will reach zero?

It's halved at 210,000.


Title: Re: Questions about inflation enforcement
Post by: TiagoTiago on May 31, 2011, 04:43:14 AM
ah, ok