I think you're not clearly thinking about the dynamics of this. A target which goes by difficulty^0.2 is not the same as scaling effectiveness with work^0.2. If you have twice the hashrate (with fixed stake), you generate twice as many hashes, and since each hash independently has a given probability to be a valid block, you have twice as much chance to have the next block yours - thus, you have as much weight as 2 players each with the same stake as you and the undoubled hashrate. If you have 2s and 2w, you are much more effective than 2 players with s,w each.
[tl;dr] While it is true that I am a bit careless sometimes, it looks like I didn't make an error after all.
Meni pointed out that doubling hashing power doubles the immediate probability of mining a block. This is true. However, my system is dynamic. In my system, finding a block today tremendously decreases the probability of finding a block tomorrow. Due to this factor, returns to scale can only be evaluated as the average rate of finding blocks over a longer time period, not the one-off opportunity of finding a block now. If you mine a block, then you use up all of your coin-confirmations and the timing of your next block is delayed. Because of this effect, increasing hashing power exhibits decreasing returns. Once you mine a block you have to wait for your coin-confirmations to gradually recover before you can effectively mine again. There is a downside to hashing the block now because it decreases expected output in future periods.
In simulations, I actually find that my system exhibits constant returns to scale (though some small deviation is possible. I tried to run larger trials, but matlab ran out of memory). If you double both your hashing power and your wallet balance simultaneously, then your rate of finding blocks doubles. I played around with a parameter alpha. Alpha is a parameter in (0,infinity) which determines the importance of stake relative to work, as alpha approaches infinity work become irrelevant, as alpha approaches 0 stake becomes irrelevant, if alpha equals one then they are equally important.
I want to run my simulation by Meni to see if I'm doing something wrong. I use discrete time which is indexed by 100 million draws.
1) Take one hundred million draws from a uniform distribution on support of [0,1]; denote these as rand(i) where i indexes draws
2) Assume agent uses k unit of hashing power and c coins (each coin starts with 1 confirmation)
3) denote the conf(i) as the number of coin-confirmations in the account at time i; note that conf(1)=c
3) Assume that difficult is such that the probability of mining a block in one unit of time with 1 unit of hashing power and 1 coin-confirmation is 10^-8
4) Go through these draws sequentially as follows:
4a) If rand(1) < (10^-8)/(k*conf(1)^alpha), then a block is mined
4ai) Add one block to count of mining payoff
4aii) conf(2)=c
4b) If rand(1) > (10^-8)/(k*conf(1)^alpha), then the hash isn't good enough to mine a block
4bi) Assume someone else mines this block, so conf(2)=conf(1)+c
5) iterate this procedure through all 100 million draws
Here are some simulation results:
Looking at decreasing marginal products of stake and work:
Alpha = 1 ; k = 1; c = 1 -> 7959 mined blocks
Alpha = 1 ; k = 2; c = 1 -> 11227 mined blocks
Alpha = 1 ; k = 1; c = 2 -> 11259 mined blocks
Conclusion: Factors have diminishing marginal returns. [hmm; alpha corresponds to equal factor shares; actually this looks exactly like a deterministic cobb-douglass function with equal factor shares, e.g.
alpha=beta/1-beta, so alpha = 1 -> beta =0.5
e.g. CRS Cobb-Douglas is Q= A*c^beta*k^(1-beta) with equal factor shares beta =0.5 and A =7959 is a normalization. Prediction would be 7979*(2)^0.5*1^0.5=11225.7257 .... pretty damned close.
Looking at returns to scale:
Alpha = 1 ; k = 1; c = 1 -> 7959 mined blocks
Alpha = 1 ; k = 2; c = 2 -> 15999 mined blocks
Alpha = 1 ; k = 100; c = 100 -> 800733 mined blocks
Conclusion: Either constant returns or exceptionally close to it.
Playing around with big alpha which makes stake much more important than work (Here I re normalized the base chance of finding a block on trial one to 10^-40)
Alpha = 10 ; k = 1; c = 1 -> 19455 mined blocks [ignore the increase difficulty would have to be renormalized]
Alpha = 10 ; k = 2; c = 1 -> 20719 mined blocks [doubling hashing power doesn't get you very far now]
Alpha = 10 ; k = 1; c = 2 -> 36530 mined blocks [but now doubling stake almost doubles output]
Alpha = 10 ; k = 2; c = 2 -> 38912 mined blocks [still looks like constant returns to me]
Alpha = 10 ; k = 100; c = 100 -> 1954898 [yup, either I screwed up the simulation (possible please critique) or my system has constant returns]
Let's test if Cobb-Douglas predictions are still holding up strong. To convert Alpha to the stake share we have
alpha=beta/1-beta, so alpha = 10 -> beta = 10/11. The normalization is A=19455
With k=2 and c = 1, we have 19455*(2)^(1/11)*(1)^(10/11)= 20720
With k=1 and c = 2, we have 19455*(1)^(1/11)*(2)^(10/11)= 36534
Okay, either my simulation is fucked, or my system behaves exactly like a constant returns to scale cobb-douglass production function. Please explain how it is fucked because it seems to work exactly like I expected it too which is actually really surprising to me.
Here is a wikipedia link for the interested reader:
http://en.wikipedia.org/wiki/Cobb%E2%80%93Douglas_production_functionI particularly direct your attention to: the property that expenditure on any given input is a constant fraction of total cost
This constant fraction is determined by the parameter beta which is equal to the amount of expenditure an efficient miner would invest in stake. He would spend the residual percentage of 1-beta on a combination of electricity and hashing equipment. What percentage of mining funds for should be devoted to stake and what percentage should be devoted to computer equipment and electricity?
As currency designer, you get to pick this! This is like some kind of economics wet dream.