Bitcoin Forum

Alternate cryptocurrencies => Altcoin Discussion => Topic started by: Jutarul on September 17, 2012, 12:21:31 AM



Title: PPcoin: POW difficulty reward relationship
Post by: Jutarul on September 17, 2012, 12:21:31 AM
I just realized an interesting conclusion based on the proof-of-work reward mechanism implemented in PPCoin.

here is the relevant part from the source
Code:
    static const int64 MAX_MINT_PROOF_OF_WORK = 9999 * COIN;
    CBigNum bnSubsidyLimit = MAX_MINT_PROOF_OF_WORK;

    // ppcoin: subsidy is cut in half every 16x multiply of difficulty
    // A reasonably continuous curve is used to avoid shock to market
    // (nSubsidyLimit / nSubsidy) ** 4 == bnProofOfWorkLimit / bnTarget
    CBigNum bnLowerBound = CENT;
    CBigNum bnUpperBound = bnSubsidyLimit;

    while (bnLowerBound + CENT <= bnUpperBound)
    {
        // changes bnLowerBound and bnUpperBound to converge against bnMidValue
        // exists when bnUpperBound is within 1 CENT of bnLowerBound
    }

    int64 nSubsidy = bnUpperBound.getuint64();
    nSubsidy = (nSubsidy / CENT) * CENT;


which translates into this behavior: (difficulty, POWreward)
10   5,622
100   3,161
1K   1,778
10K   999.9
100K   562
1M   316
10M   177
100M   99.99
1G      56
10G      31
100G   17

Which means that inflation is high when the difficulty is low. Thus, people with huge STAKES have an incentive to keep the POW difficulty high! Why? Because a high inflation rate devalues stake (more stake available -> proof of stake difficulty rises).

However, every 10-fold decrease in subsidy is accompanied with a 10000-fold increase in difficulty. Thus people who accumulate stake early on, CAN NOT easily decrease the POW reward.
With current difficulty at 10K, the expected supply is 51M/year. If difficulty goes up 100-fold the supply drops to 16M/year.
However, on the other side, keeping the reward below a certain level (and thus prevent high inflation rates) is also cheaper. If you own 0.01% of the mining power (1/10000) you can limit the MAXIMUM supply of new coins to 510M/year!

conclusion:
=======
The difficulty dependent POW reward scheme introduces some very interesting incentives, especially for stake holders. Its steep relationship suggests that limiting the money supply is CHEAP, but throttling the money supply is EXPENSIVE, causing the expected inflation rate to stay within a healthy region. I don't know whether this was the original intent when the reward mechanism was designed, but it's certainly a feature.


Title: Re: PPcoin: POW difficulty reward relationship
Post by: Etlase2 on September 17, 2012, 01:33:16 PM
How do the stakes come into play with this? This is only POW difficulty and I'm not seeing how this is energy efficient long-term, but I haven't read the code.


Title: Re: PPcoin: POW difficulty reward relationship
Post by: Jutarul on September 17, 2012, 09:36:35 PM
How do the stakes come into play with this? This is only POW difficulty and I'm not seeing how this is energy efficient long-term, but I haven't read the code.

I started to look at stake rewards in another thread: https://bitcointalk.org/index.php?topic=109128.msg1186226#msg1186226

There are two mechanism to throttle the addition of mining power:
1) the reward drop as a function of difficulty: Not only are more people competing for a piece of the pie (bitcoin), the pie gets smaller if more people compete...
2) POW blocks compete with POS blocks. (However, how that competition is implemented I am still a bit uncertain). POS blocks are essentially free as long as you have stake. E.g. if I have 1000 PPC and use it after 30 days, that gives me an 30000x advantage in meeting difficulty:

Code:
    
if (CBigNum(Hash(ss.begin(), ss.end())) <= bnCoinDay * bnTargetPerCoinDay)
        return true;

However, I am confused as how the competition between POS blocks is regulated...


Title: Re: PPcoin: POW difficulty reward relationship
Post by: rav3n_pl on August 19, 2013, 11:15:03 PM
I`m trying to make working P2Pool for PPC, but cant change this c++ code to some simple function that will calculate current block reward.
Has anyone idea how to do it?
In BTC it is:
Code:
SUBSIDY_FUNC=lambda height: 50*100000000 >> (height + 1)//210000,
But in PPC is not a simple diff/something :/


Title: Re: PPcoin: POW difficulty reward relationship
Post by: hl5460 on December 31, 2013, 07:12:31 AM
Interesting topic, I have translated it into Chinese to collect people's thoughts:
https://bitcointalk.org/index.php?topic=392817.0