Join GitHub today
GitHub is home to over 28 million developers working together to host and review code, manage projects, and build software together.Sign up
low-variance reward PoW #137
Low-variance rewards for mining could make the difference between small-time solo miner viability or not.
Suppose the difficulty is such that a given miner expects to win a block within 1 year, and the block reward is
I haven't yet searched for low-variance PoW but @amiller's talk at MITBTC15 alluded to "many high speed low reward blocks", so I guess I should ask him first.
A conventional hashcash-style PoW requires one hash meeting a criterion that has probability
Multiplying the probability by
(See https://en.wikipedia.org/wiki/Negative_binomial_distribution#Waiting_time_in_a_Bernoulli_process ; note that a "failure" as described there corresponds to a successful trial in our case, which is why we have
As a sanity check, the expected total number of trials needed should be independent of
and so the expected total number of trials is
However, the variance of the Pascal distribution is
and so by increasing
Note that the protocol above lends itself very easily to outsourcing, which is not what we want. I'm putting it forward as a thought experiment proving that it is possible to change the variance of required work for a block, independently of the expected work for a block.
I'm very intrigued by this. It's still over the line for my gut reaction of feature conservatism, but it's certainly in my giant pool of intriguing potential features for "NextGen Coin". ;-)
So I advocate closing this at least as post-1.0 feature.
What about protocol upgrade path? I suppose we could think of this as a distinct PoW and then we use any PoW upgrade path, but is there any trick or shortcut? I ask because if we can launch with as few changes as possible, but then upgrade later to a low-variance system, that may be valuable. Actually, if that's possible for sha256d then the same upgrade could occur for Bitcoin.