Why stake will be split into two parts if it generated less than 90 days?

While I was walking through PPC 's source code, I found something interesting. The stake will be splited if the its age is less than 90 days. Take this account as an example:

http://ppc.cryptocoinexplorer.com/address/PCuezfp3JRdLdpViTgtrf827nBx2fxtYX7
I guess the account holder mines everyday, so his account has been splited again and again.

Sunny’s comments in the source code said it is important for the security. First I thought the purpose is to prevent big account generate stake too frequently. Later, I realized that it may not be that simple.

What’s your thoughts on this?

Very interesting, I noticed, that it splits up sometimes, but was not able to find out why and when.

Posted using Tapatalk for Android.

Each stake is a miner, so the protocol creates multiple transactions to increase the pool of PoS minting stakes thus enhance security. Lack of qualified PoS transactions would lead to increased number of PoW blocks (this would be an issue in early stages of peercoin). - That’s my take on it.

It is very good the splitting is there. As sahkan says, it solves problem, where big stakes are used to secure one block and the remaining blocks are left with smaller stake pool to secure them. Small number of big stakes is not good for the security. (Also look at remotely related discussion here.)

This thread kept me thinking about the opposite potential problem: With time, the stakes are getting smaller and smaller. They split with every successful mint and transaction. Eventually, there will be only dust of small stakes. This could be a potential serious problem. If the total ~21,000,000 PPC consist only of 1 PPC stakes, each of the ~52,000 blocks per year would produce only mint from 1 PPC and the minting would be almost impossible. There would be a place only for 0.25% of total coins to be minted. For this reason, it is also very important that in case the mint is won by a very small stake, the stake is grouped together with other small stakes and reward is paid for more of them.

Luckily, it seems Sunny King have thought about it already. I did not go through the details of the code, but according to the following comment, it seems the situation have been though of.

// ppcoin: create coin stake transaction bool CWallet::CreateCoinStake(const CKeyStore& keystore, unsigned int nBits, int64 nSearchInterval, CTransaction& txNew) { // The following split & combine thresholds are important to security // Should not be adjusted if you don't understand the consequences static unsigned int nStakeSplitAge = (60 * 60 * 24 * 90); int64 nCombineThreshold = GetProofOfWorkReward(GetLastBlockIndex(pindexBest, false)->nBits) / 3;

General transactions on the network would consolidate those small, disparate stakes into new transactions that would be used, 30 days later, to attempt to mint. I may be over-estimating people’s willingness to use Peercoin as a medium of exchange, and the “real” rational tendency is for people to horde, rather than to spend, but so far, it’s too early to tell from the data.

My intuition leads me to the belief that only way that the Peercoin network would ever get into a condition where there were only tiny stakes available was if it was extremely unhealthy to begin with – at which point, we’d have far bigger problems than network security via proof-of-stake. If there’s no depth of market, and no transactions does the asset continue to have “value”?

We should be studying some of the smaller, less popular cryptos to model what happens when you have a very small rate of exchange. Does the network fall apart because it’s less secure, or does it just go into hibernation? Do people cash out en-masse until the effective valuation is zero?


I’ll create a separate topic to address it, but I’d like to see if we could pull together a set of people in the community who are familiar with formal statistics, economics, monetary, and public policy to form a working group to discuss and model the various “what ifs?” and share them with the community. I know we have people in the community who have the skills.

[size=8pt]Edit: Sentence fragment and a couple of typos.[/size]

Keep me in the loop when this policy group happens