Author

Topic: continuous function for generation ? (Read 2571 times)

legendary
Activity: 1246
Merit: 1016
Strength in numbers
December 07, 2010, 02:07:21 AM
#20
What is important is the % drop in average total reward for a block. As fees become a bigger part the % drop will decrease. I think only the first two drops will be big close to 50%.

Hum...  I don't get this.  Why do fees have anything to do with this ?  Fees are added to the subsidy from existing bitcoin stock.  It doesn't reduce creation at all.


I was thinking from the point of view of the generators' incentives, not the total number of bitcoins aspect. The shrinking rate of generation can only be a good thing for bitcoin holders imo. But the decreasing incentive to generate could be a problem. For the first few decreases fees will be a minor amount so the drop will be rather drastic, later on the fees may be much larger than the generate reward and so the drop will not matter much.
legendary
Activity: 1288
Merit: 1080
December 06, 2010, 08:16:35 PM
#19
What is important is the % drop in average total reward for a block. As fees become a bigger part the % drop will decrease. I think only the first two drops will be big close to 50%.

Hum...  I don't get this.  Why do fees have anything to do with this ?  Fees are added to the subsidy from existing bitcoin stock.  It doesn't reduce creation at all.
legendary
Activity: 1246
Merit: 1016
Strength in numbers
December 06, 2010, 07:52:49 PM
#18
The jump will be big early on. But after a while, those small jumps will be non-noticeable.

50->25 is a lot bigger impact than 1.5->0.8

don't worry about it.

What is important is the % drop in average total reward for a block. As fees become a bigger part the % drop will decrease. I think only the first two drops will be big close to 50%.
hero member
Activity: 527
Merit: 500
December 06, 2010, 05:38:53 PM
#17
The jump will be big early on. But after a while, those small jumps will be non-noticeable.

50->25 is a lot bigger impact than 1.5->0.8

don't worry about it.

Not if 1.5BTC is worth $100, as it may well be in [how many?] years.
legendary
Activity: 1232
Merit: 1076
December 06, 2010, 03:30:06 AM
#16
The jump will be big early on. But after a while, those small jumps will be non-noticeable.

50->25 is a lot bigger impact than 1.5->0.8

don't worry about it.
legendary
Activity: 1288
Merit: 1080
December 05, 2010, 10:06:41 PM
#15
Well, I did try to modify the code and surprisingly enough, it DID compile without warning !

I just changed the function in main.cpp :

Code:
int64 GetBlockValue(int nHeight, int64 nFees)
{
    int64 nSubsidy = 69.314603663439556*exp(-log(2)*nHeight/21e4)*COIN;

    return nSubsidy + nFees;
}

I'd like to try that in a test network.
legendary
Activity: 1708
Merit: 1010
December 01, 2010, 09:02:25 AM
#14
No one can say for certain that no one died due to Y2K, only that not a lot of people died.
legendary
Activity: 1652
Merit: 2301
Chief Scientist
December 01, 2010, 09:00:32 AM
#13
I'm reminded of the Y2K hype back in 2000; that was a predictable event that turned out to be a non-event.

When I see somebody claim that Y2K was a non-event, I have to either assume this is a strawman argument or somebody who is completely clueless about what actually happened.

.......  But saying that it is a non-issue because other similar kinds of problems have been non-issues is ignoring why they were non-issues in the first place.  I don't get it.

Y2K was a non-event exactly because it was predictable and so lots of people did lots of work to make sure nothing terribly bad happened.

My point is only that the block #210,000 switchover will, I think, be exactly the same.  An entirely predictable event that people will plan and prepare for.  It will be a significant event only for the very small minority of people who have to do the planning and preparing.

RE: complacency:  I think we're a lot better at getting complacent about random events (like earthquakes and hurricanes) than "this is absolutely 100% certain to happen on or around this date" events.


full member
Activity: 224
Merit: 141
December 01, 2010, 07:35:20 AM
#12
I agree with FreeMoney.

I think that as long as the generation reward is predictable there will be essentially no problems; people are smart, and will plan ahead.  I predict the 100 blocks after the generation reward gets cut to 25BTC will be generated in the same time as the 100 block generated before the reward cut, within, oh (pulling a number out of my ear) 20% plus or minus.

I'm reminded of the Y2K hype back in 2000; that was a predictable event that turned out to be a non-event.


When I see somebody claim that Y2K was a non-event, I have to either assume this is a strawman argument or somebody who is completely clueless about what actually happened.

There were billions of dollars spent at trying to make sure Y2K wouldn't become a disaster and regular audits of software from all levels that it would be Y2K compliant (aka not blow up on the big date).  The reason why it became a non-event is because some advanced planning happened and the herculean efforts of a whole bunch of people to make sure it was a non-event.  Had that effort not taken place, Y2K could have been a major disaster.  BTW, there were problems that I was aware of even with the software I wrote and the customers I worked with that happened due to Y2K.  Nothing serious and all of it was easily dealt with after the fact, but had the effort to review the software not been done it could have been a whole lot worse even for the company I worked for.

That is sort of like saying there is a major Hurricane or some other natural event which normally kills people but because everybody got into action to make sure nobody would die, nobody died.  Then when you go back and look at it and think it wasn't that big of a deal because nobody died in the event and furthermore consider all of the effort and perhaps even money spent on evacuating a city or doing what other preparations were made necessary to protect everybody was a waste of time and money because nobody died.  Really, this makes no sense at all.  Perhaps the next time when an event hits which is similar perhaps people will get complacent thinking that nobody died the last time and therefore won't die this time and no money or effort needs to be done to protect people when it happens again.  Good luck with that one.  How much was spent on Hurricane Katrina recovery/restoration efforts and how many people died there again?  And you are telling me that preparation for that couldn't have been done for a much cheaper price had some state and city officials actually thought ahead on some of the problems that happened?  Usually $1 (or a similar amount of effort) spent before an event of that nature saves $100 or $1000 later, and that certainly would have been the case in New Orleans, even though people are angry when that $1 gets spent as it is perceived as a waste of money, but scream their head off that they aren't getting the $1000 later.

What we are conducting here is a social experiment, and it will be interesting to see how it turns out.  There are other problems with Bitcoins that do need to be resolved and I'll agree that this particular issue of block #210,000 is certainly not even on the order of magnitude as the Y2K issue.... Bitcoins will survive in spite of this "issue" being in the algorithm.

As for the confidence in the currency by changing the algorithm, I don't buy that argument either.  This is beta software right now, and it should be treated as such including the protocol itself.  It is a mistake to think that we have come up with all of the solutions and that what we have is some gift from God himself and the protocol is perfect.  Even Satoshi admitted that there might come up some sort of bug or problem that might even require restarting the whole blockchain.  So far, everything that has been a problem has found solutions to keep the current chain going or at least apply the changes from a certain block onward.  That is precisely what is being proposed here too.

I'm fine with those who say that the current system is simple (I LOVE the KISS principle) as an argument for simply leaving well enough alone and that the current system of halving the value of mined blocks doesn't need to be tweaked any further.  That is a solid argument based upon logic and good design principles.  But saying that it is a non-issue because other similar kinds of problems have been non-issues is ignoring why they were non-issues in the first place.  I don't get it.
legendary
Activity: 938
Merit: 1001
bitcoin - the aerogel of money
November 30, 2010, 08:01:33 AM
#11
Speculators will anticipate that there will be fewer coins hitting the market after 210,000. The price will rise to reflect this supply reduction, long before the day of the switch. I bet that price fluctuations on that day will not be any more untypical than on any other day.

What will happen is a dramatic reduction in difficulty. That's only a minor issue, because even if difficulty drops from 10,000,000 to just 1,000,000, the chance of a double spending attack remains zero for all practical purposes.
donator
Activity: 826
Merit: 1060
November 30, 2010, 06:42:23 AM
#10
The drop from 50 to 25 bitcoins per block is not a concern. Markets adapt just fine to this kind of thing.

Consider this: it's a decrease from 7200 to 3600 new coins per day, which is a tiny drop in the bucket compared to the 10,500,000 coins that will have been generated by then.

That will be quite a milestone. Half of the total number of coins will have been generated.
legendary
Activity: 1288
Merit: 1080
November 30, 2010, 06:29:20 AM
#9
Actually when I think about it, the focus should be put on the halving of reward every 4 years instead of continuity to the current scheme.

This means that :

(1-A)^210000 = 0.5

And thus :

A = 1 - exp(-log(2)/210000) =  3.3e-6


Which means that the initial reward would have been of 69.314603663439556  instead of 50.

A reward of 50 would have occured at block n where :

A * (1-A)^n * 21000000 = 50

n = 98958.561684339962

I guess we could round it to block number 99000

Anyway : it's not too late !!

PS.  I'm not very serious here because I agree with you that it's a bit more complex and it may not worth it.  Still, I think it's quite elegant.
legendary
Activity: 1652
Merit: 2301
Chief Scientist
November 30, 2010, 12:12:57 AM
#8
I agree with FreeMoney.

I think that as long as the generation reward is predictable there will be essentially no problems; people are smart, and will plan ahead.  I predict the 100 blocks after the generation reward gets cut to 25BTC will be generated in the same time as the 100 block generated before the reward cut, within, oh (pulling a number out of my ear) 20% plus or minus.

I'm reminded of the Y2K hype back in 2000; that was a predictable event that turned out to be a non-event.
legendary
Activity: 1246
Merit: 1016
Strength in numbers
November 29, 2010, 10:28:19 PM
#7
105,000 is gives an extra month or so and it is exactly half of 210,000.

On net I don't think this is important enough to change. I think we lose a lot of credibility if we change the generation agreement. Even though the total is not changed it sets a precedent and could lead to things like speeding up the whole process, etc..
legendary
Activity: 1222
Merit: 1016
Live and Let Live
November 29, 2010, 09:50:16 PM
#6
I say don't worry about it... by the time that block 210,000 comes around, we are likely to have a significantly amount of the incentive from transaction fees.  A continuous function is 'nice' in theory, however on balance, will cause more harm from the braking change needed.  Focus on usability, the generators will care for themselves.
full member
Activity: 224
Merit: 141
November 29, 2010, 09:38:58 PM
#5
I look at this issue more from a human perspective, where the big jumps ever 210,000 blocks are likely to have a disruptive impact upon the exchange markets and the use of bitcoins.  Essentially it is an automatic doubling of difficulty for mining coins.  A more continuous function would be much, much more predictable in terms of market stability and people knowing how much a bitcoin is going to roughly be worth.  It is something I've thought about too in terms of perhaps coming up with another system for determining what the value of the mined coins in each block ought to be.

The markets will adapt regardless of what happens that way, but it certainly will be significant in the long term.

While I appreciate the simplicity of the system, we are already dealing with a fairly complex algorithm in terms of the SHA-256 algorithm and the private/public key system for addresses.  In comparison to those algorithms, this formula is really trivial in comparison, although it does need some mathematics perhaps to explain what it is doing.

The only real problem I see is that block # 100,000 is close enough that it would "force" everybody to upgrade to the latest version of the client, certainly before block #100,000 is created and that would be disruptive to the network.  It would also impact many of the private miners making blocks, where potentially if enough of those miners refuse to make this upgrade that it could cause some significant problems.  At least this isn't going to be as rushed as the update from 0.3.9.
legendary
Activity: 1708
Merit: 1010
November 29, 2010, 08:58:48 PM
#4
This is a pretty fundamental change, but I don't see any downside. I'd be interested to hear why Satoshi chose such a lumpy function.


Simplicity, most likely.  I do like the elegance of this proof, but the problem that I see is that it is hard enough for the average new user to wrap their heads around how bitcoin works at it is without adding this function.

Also, I can see a potential problem with this in the midst of a network split, and those problems could introduce a new attack vector.  The continuous function would certainly help with the distruption of the network at the fourth year intervals, but that is a short term disruption for which we have no evidence that it would be more disruptive than an attack on the network.  The last thing that we need is increased false block rejections.  Perhaps such a gradual shift could be done with each difficulty adjustment point, rather than every single block.
legendary
Activity: 1246
Merit: 1016
Strength in numbers
November 29, 2010, 07:25:35 PM
#3
This is a pretty fundamental change, but I don't see any downside. I'd be interested to hear why Satoshi chose such a lumpy function.

It seems to me that all marginally profitable generation will turn off at the drop to 25 and some will come back after the first difficulty drop.

It's complicated though. I'd guess the price will rise well before the drop since everyone knows it's coming and this might actually cause a ramp up in generation before the end resulting in an even bigger drop after 25 arrives.
newbie
Activity: 56
Merit: 0
November 29, 2010, 07:14:54 PM
#2
I kind of fear the 210,000 block.  As you know at this time the reward will half from 50 to 25.  I'm not sure the behavior of miners is predictable.  I wonder if weird things could happen at this moment.

Anyway, why not just use a more continous formula ?  I mean if we want to simulate extraction of a commodity, all we need is a geometric progression, right ?

So, say N(i) is the remaining number of btc to be extracted at block number i.

The reward is then r(i) = N(i) - N(i+1)

We then need A such that :  r(i) = A * N(i)

Of course, we have N(0) = 21,000,000 = \sum r(i)  and N(i+1) = (1-A)* N(i)

We need to chose A so that we can switch smoothly from the current situation (r(i) = 50 BTC) to the coninuous sytem.

Let's say we do the change at block 100,000.   At this point 5 million bitcoins will have been extracted.     That leaves 16 millions.

N(1e5) = 16e6

So :   A = 50/16e6 = 3.125e-6

Then r(100,000 + i) = 3.125e-6 * (1-3.125e-6)^i * 16,000,000


So the generation is a continuous function of the block number.


I have no clue what you're talking about but i totally agree!
legendary
Activity: 1288
Merit: 1080
November 29, 2010, 07:01:59 PM
#1
I kind of fear the 210,000 block.  As you know at this time the reward will half from 50 to 25.  I'm not sure the behavior of miners is predictable.  I wonder if weird things could happen at this moment.

Anyway, why not just use a more continous formula ?  I mean if we want to simulate extraction of a commodity, all we need is a geometric progression, right ?

So, say N(i) is the remaining number of btc to be extracted at block number i.

The reward is then r(i) = N(i) - N(i+1)

We then need A such that :  r(i) = A * N(i)

Of course, we have N(0) = 21,000,000 = \sum r(i)  and N(i+1) = (1-A)* N(i)

We need to chose A so that we can switch smoothly from the current situation (r(i) = 50 BTC) to the coninuous sytem.

Let's say we do the change at block 100,000.   At this point 5 million bitcoins will have been extracted.     That leaves 16 millions.

N(1e5) = 16e6

So :   A = 50/16e6 = 3.125e-6

Then r(100,000 + i) = 3.125e-6 * (1-3.125e-6)^i * 16,000,000


So the generation is a continuous function of the block number.
Jump to: