Bitcoin Forum

Alternate cryptocurrencies => Altcoin Discussion => Topic started by: No_2 on June 27, 2014, 05:42:09 AM



Title: Proof of Stake Mining and NXT's and PPC's Implementations
Post by: No_2 on June 27, 2014, 05:42:09 AM
I'm trying to understand different Proof of Stake (PoS) implementations as they exist in NXT and PPC. I've given an overview of what I've managed to find online so far, but have lots of gaps in my knowledge, can anyone help answer the questions below.

NXT
This uses a 100% PoS mining process so the likelihood of being selected as the next node to mine a block is dictated by how many coins a user has in their unlocked wallet divided by all the other coins in all the other unlocked wallets on the network.

I understand each NXT block is every 60 seconds – how is this enforced by the network?


PPC
This uses a PoS/SHA-256 hybrid, where the reliance on SHA-256 will degrade at a predetermined rate with time.

How is SHA-256 combined with PoS in PPC to generate blocks?

The likelihood of mining a block, for a given unlocked wallet, is dictated by the coin-age of the coins for that wallet, as long as the coins are over 30 days old (not sure how many blocks this is).

How is a specific wallet selected to mine the next block from all the wallets able to use their coin-age?

What is the average block time for PPC and how is this enforced?

With the gradual decrease in reliance on SHA-256 over time how will this affect block generation times?

The bottom post here makes mention of some bugs relating to spending PPC coin age. Can anyone elaborate on what it was?

http://bitcoin.stackexchange.com/questions/20007/how-does-proof-of-stake-mining-work
 (http://bitcoin.stackexchange.com/questions/20007/how-does-proof-of-stake-mining-work)


Title: Re: Proof of Stake Mining and NXT's and PPC's Implementations
Post by: ThePurplePlanet on June 27, 2014, 06:07:10 AM
Here is the main problem with Proof of stake

https://bitcointalk.org/index.php?topic=615843.msg6751334#msg6751334

PoS need some form of trust like checkpointing or web of trust solutions to solve the problem which undermines the trustless nature  of cryptocuncies. IMO opinion we should aim for algorithms that make crryptocuncies more trustless i.e. removing dependence of pools etc


Title: Re: Proof of Stake Mining and NXT's and PPC's Implementations
Post by: No_2 on June 27, 2014, 03:42:32 PM
Here is the main problem with Proof of stake

https://bitcointalk.org/index.php?topic=615843.msg6751334#msg6751334

PoS need some form of trust like checkpointing or web of trust solutions to solve the problem which undermines the trustless nature  of cryptocuncies. IMO opinion we should aim for algorithms that make crryptocuncies more trustless i.e. removing dependence of pools etc

Thank you for this, its a very interesting point. Am I correct in thinking that PPC is SHA-256 hybrid in an attempt to rectify this ability to rewrite coin history if you were a large coin holder in the past?


Title: Re: Proof of Stake Mining and NXT's and PPC's Implementations
Post by: coinsolidation on June 27, 2014, 04:15:54 PM
Checkpoints are broadcast to nodes to protect against history rewrites. It's centralisation of some kind, but serves the purpose.


Title: Re: Proof of Stake Mining and NXT's and PPC's Implementations
Post by: ChuckOne on June 27, 2014, 04:18:45 PM
Here is the main problem with Proof of stake

https://bitcointalk.org/index.php?topic=615843.msg6751334#msg6751334

PoS need some form of trust like checkpointing or web of trust solutions to solve the problem which undermines the trustless nature  of cryptocuncies. IMO opinion we should aim for algorithms that make crryptocuncies more trustless i.e. removing dependence of pools etc

PoS does not need some form of trust like checkpointing.

Bitcoin too has some checkpoints. :)


Title: Re: Proof of Stake Mining and NXT's and PPC's Implementations
Post by: ChuckOne on June 27, 2014, 04:23:51 PM
NXT
This uses a 100% PoS mining process so the likelihood of being selected as the next node to mine a block is dictated by how many coins a user has in their unlocked wallet divided by all the other coins in all the other unlocked wallets on the network.

I understand each NXT block is every 60 seconds – how is this enforced by the network?

I try to answer that because I know Nxt very well.

In Nxt, we can predict the next forgers based on the current block. That is achieved by an algorithm that sorts the list of all accounts pseudo-randomly where those with a higher active stake are more likely to show up in the upper part of that list. The first account in the pseudo-randomly shuffled list has the first chance to forge the next block. If he does not, the next one is given the chance and so on -- until the next block is forged.

Retargetting is another algo that keeps the blocks time relatively stable. It modifies a certain value in the forging algo to make that sure. But it also makes it almost impossible to forge a better chain.


Title: Re: Proof of Stake Mining and NXT's and PPC's Implementations
Post by: devphp on June 27, 2014, 04:37:41 PM
Here is the main problem with Proof of stake

https://bitcointalk.org/index.php?topic=615843.msg6751334#msg6751334

This problem doesn't exist as the NXT blockchain wouldn't accept re-organization attempt by someone from the past. The assumption of DeathAndTaxes is a false one.


Title: Re: Proof of Stake Mining and NXT's and PPC's Implementations
Post by: No_2 on June 27, 2014, 07:55:46 PM
I try to answer that because I know Nxt very well.

In Nxt, we can predict the next forgers based on the current block. That is achieved by an algorithm that sorts the list of all accounts pseudo-randomly where those with a higher active stake are more likely to show up in the upper part of that list. The first account in the pseudo-randomly shuffled list has the first chance to forge the next block. If he does not, the next one is given the chance and so on -- until the next block is forged.

Retargetting is another algo that keeps the blocks time relatively stable. It modifies a certain value in the forging algo to make that sure. But it also makes it almost impossible to forge a better chain.

So NXT retargets but relative to what? Does this retargeting have external dependencies? For example I assume it's not relying on some external time server...



Title: Re: Proof of Stake Mining and NXT's and PPC's Implementations
Post by: devphp on June 27, 2014, 07:57:53 PM
So NXT retargets but relative to what? Does this retargeting have external dependencies? For example I assume it's not relying on some external time server...

https://nxtforum.org/proof-of-stake-algorithm/forging-2088/
https://nxtforum.org/proof-of-stake-algorithm/%27blind-shooter%27-algorithm/


Title: Re: Proof of Stake Mining and NXT's and PPC's Implementations
Post by: ThePurplePlanet on June 29, 2014, 08:32:04 AM
Here is the main problem with Proof of stake

https://bitcointalk.org/index.php?topic=615843.msg6751334#msg6751334

This problem doesn't exist as the NXT blockchain wouldn't accept re-organization attempt by someone from the past. The assumption of DeathAndTaxes is a false one.

You probably dont understand the problem. In fact NXT devs responded to that with creating something called economic clustering which is a web of trust solution. If you have a web of trust you just trust some people and dont need proof of something


Title: Re: Proof of Stake Mining and NXT's and PPC's Implementations
Post by: ChuckOne on June 29, 2014, 09:52:10 AM
So NXT retargets but relative to what? Does this retargeting have external dependencies? For example I assume it's not relying on some external time server...

Exactly. It simply calculates the delay between the current and the previous block, scales the new base target accordingly and then caps this values by half and the double of the last base target. So, longer delays will result in higher base targets and shorter delays will result in lower base targets.

Cf. links from devphp.


Title: Re: Proof of Stake Mining and NXT's and PPC's Implementations
Post by: No_2 on July 27, 2014, 05:15:08 PM
Thanks for all this. Will take a look at the NXT links.

Asking about PPC specifically does the blockchain expect PoS then SHA-256 blocks in a set order of rotation or does one supersede the other based on criteria such as the number of available PoS wallets left open for mining dropping off?

How will the SHA-256 degrade over time?

I believe I read somewhere that Sunny King said he had a solution to centralised check pointing in PPC if so how does this work?


Title: Re: Proof of Stake Mining and NXT's and PPC's Implementations
Post by: jubalix on July 27, 2014, 05:53:00 PM
Nxt and PPC use the same algo except NXT is trying to develop a look ahead forgeing known as transparent forgeing, which as I understand it has not been implemented yet. Also NXT uses a 720? rolling block checkpoint to stop re-orgs.

Sunny King appears to be offerigng opt out checkpointing in PPC 0.5


Title: Re: Proof of Stake Mining and NXT's and PPC's Implementations
Post by: No_2 on July 27, 2014, 09:47:50 PM
Nxt and PPC use the same algo except NXT is trying to develop a look ahead forgeing known as transparent forgeing, which as I understand it has not been implemented yet. Also NXT uses a 720? rolling block checkpoint to stop re-orgs.

Sunny King appears to be offerigng opt out checkpointing in PPC 0.5

Ok, so how does that differ with regard to SHA-256 as I understand that NXT is pure PoS?


Title: Re: Proof of Stake Mining and NXT's and PPC's Implementations
Post by: ChuckOne on July 27, 2014, 09:52:50 PM
Nxt and PPC use the same algo except NXT is trying to develop a look ahead forgeing known as transparent forgeing, which as I understand it has not been implemented yet.

The algorithms are completely different.

The first difference is the definition of effective stake that is used for block generation:

Nxt - your stake
Peercoin - your stake-age


Title: Re: Proof of Stake Mining and NXT's and PPC's Implementations
Post by: ChuckOne on July 27, 2014, 09:56:23 PM
Second, the block generation itself is different:

Nxt - pseudo-random, but the next block generator can be determined from the current block (that is btw already implemented but not utilized to get 1000 transactions per second)
Peercoin - random (AFAIK because it is PoW + PoS)


Title: Re: Proof of Stake Mining and NXT's and PPC's Implementations
Post by: No_2 on July 28, 2014, 10:24:07 AM
Second, the block generation itself is different:

Nxt - pseudo-random, but the next block generator can be determined from the current block (that is btw already implemented but not utilized to get 1000 transactions per second)
Peercoin - random (AFAIK because it is PoW + PoS)

This is more inline with what I thought. Asking about PPC specifically does the blockchain expect PoS then SHA-256 blocks in a set order of rotation or does one supersede the other based on criteria such as the number of available PoS wallets left open for mining dropping off?

How will the SHA-256 degrade over time?


Title: Re: Proof of Stake Mining and NXT's and PPC's Implementations
Post by: No_2 on September 08, 2014, 11:04:10 PM
Bump.


Title: Re: Proof of Stake Mining and NXT's and PPC's Implementations
Post by: No_2 on November 04, 2014, 11:11:09 AM
When I run PPC I have the option to run both ThreadBitcoinMiner() to mine PoW coins and ThreadStakeMinter() to mine PoS coins.

I cannot see in the source code where it decides to switch between mining PoW and PoS as these seem to be only selectable at the command prompt when the program is run.

Have I understood this correctly or can someone point me at what part of the code decides between the selection/priority of the two functions to generate the next block? Is this perhaps decided by the network rather than locally?


Title: Re: Proof of Stake Mining and NXT's and PPC's Implementations
Post by: No_2 on November 10, 2014, 03:12:56 PM
In the PPC source code is bnChainTrust applicable for proof-of-work blocks?


Title: Re: Proof of Stake Mining and NXT's and PPC's Implementations
Post by: No_2 on June 23, 2016, 05:57:19 AM
How does checkpointing in PPC work?

Broadly I understand that Sunny King or a super user with a specific key signs the PPC's blockchain periodically to effectively lock it and prevent reorganisations.


Title: Re: Proof of Stake Mining and NXT's and PPC's Implementations
Post by: kiklo on June 23, 2016, 06:18:36 AM
Here is the main problem with Proof of stake

https://bitcointalk.org/index.php?topic=615843.msg6751334#msg6751334

PoS need some form of trust like checkpointing or web of trust solutions to solve the problem which undermines the trustless nature  of cryptocuncies. IMO opinion we should aim for algorithms that make crryptocuncies more trustless i.e. removing dependence of pools etc

Actually that is BS.

Nothing At Stake Problem summarized here by gmaxwell
Quote:
"In PoW when you attempt to mine you must expend energy and so you should only mine on a consensus which is likely to be the surviving one if you want your work to not be wasted. In PoS the same is not true, and an optimally rational PoS miner will attempt to concurrently mine all forks which he does not hate."


1.  Gmaxwell is a Major BTC advocate , it is like walking over to Dunkin Donuts store and asking how the Krispy Kreme Doughnuts taste from across the street, don't expect an untainted answer.

2. In PoS , you still expend Electricity & Bandwith, it is just PoS is so much more economical to run than PoW, no one considers it a cost.
    In PoS, all of the coins compete against everyone else's coins to find consensus of the longest chain with the highest difficulty,
    this increases the Difficulty # Higher than anything you could produce alone by staking your coins alone on an offline fork  
    Since when on an offline fork , your Difficulty # will always be lower than the main chain.

    So basically the Nothing At Stake Problem , is really just a Stupid Myth.
    Because staking on the online fork makes it impossible , for your Same coins to create enough difficulty on an offline fork concurrently to matter,
    As the online fork will always have it's difficulty plus your own if you mine both concurrently.    :)

PoS & Pow are both protected by this simple fact, Longest Chain with the Highest Difficulty Wins.
Except some PoS Specs also include coin age which further strengthens its security.

 8)


Title: Re: Proof of Stake Mining and NXT's and PPC's Implementations
Post by: kiklo on June 23, 2016, 06:26:25 AM
How does checkpointing in PPC work?

Broadly I understand that Sunny King or a super user with a specific key signs the PPC's blockchain periodically to effectively lock it and prevent reorganisations.

Peercoin uses a checkpoint server that sends out a checkpoint on some basis , I don't know if it is scheduled or random.
But when a checkpoint is sent out it makes sure anything below the checkpoint can not be changed.

If you don't have a large number of coins staking then a checkpoint server is a good idea,
others just set a coin up with a billion or so and there is always enough coins staking to secure the network.

Checkpoint servers could be a centralized single point of failure, which is why some coins like ZEIT don't bother with one.
NXT uses a rolling checkpoint after 720 blocks no chain reorganization is allowed.

 8)