Pages:
Author

Topic: Proof of Stake Mining and NXT's and PPC's Implementations (Read 2713 times)

legendary
Activity: 1092
Merit: 1000
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.

 Cool
legendary
Activity: 1092
Merit: 1000
Here is the main problem with Proof of stake

https://bitcointalksearch.org/topic/m.6751334

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.    Smiley

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.

 Cool
hero member
Activity: 906
Merit: 1034
BTC: the beginning of stake-based public resources
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.
hero member
Activity: 906
Merit: 1034
BTC: the beginning of stake-based public resources
In the PPC source code is bnChainTrust applicable for proof-of-work blocks?
hero member
Activity: 906
Merit: 1034
BTC: the beginning of stake-based public resources
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?
hero member
Activity: 906
Merit: 1034
BTC: the beginning of stake-based public resources
hero member
Activity: 906
Merit: 1034
BTC: the beginning of stake-based public resources
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?
sr. member
Activity: 364
Merit: 250
☕ NXT-4BTE-8Y4K-CDS2-6TB82
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)
sr. member
Activity: 364
Merit: 250
☕ NXT-4BTE-8Y4K-CDS2-6TB82
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
hero member
Activity: 906
Merit: 1034
BTC: the beginning of stake-based public resources
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?
legendary
Activity: 2632
Merit: 1023
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
hero member
Activity: 906
Merit: 1034
BTC: the beginning of stake-based public resources
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?
sr. member
Activity: 364
Merit: 250
☕ NXT-4BTE-8Y4K-CDS2-6TB82
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.
full member
Activity: 144
Merit: 100
Here is the main problem with Proof of stake

https://bitcointalksearch.org/topic/m.6751334

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
sr. member
Activity: 336
Merit: 260
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/
hero member
Activity: 906
Merit: 1034
BTC: the beginning of stake-based public resources
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...

sr. member
Activity: 336
Merit: 260
Here is the main problem with Proof of stake

https://bitcointalksearch.org/topic/m.6751334

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.
sr. member
Activity: 364
Merit: 250
☕ NXT-4BTE-8Y4K-CDS2-6TB82
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.
sr. member
Activity: 364
Merit: 250
☕ NXT-4BTE-8Y4K-CDS2-6TB82
Here is the main problem with Proof of stake

https://bitcointalksearch.org/topic/m.6751334

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. Smiley
sr. member
Activity: 294
Merit: 250
Bitmark Developer
Checkpoints are broadcast to nodes to protect against history rewrites. It's centralisation of some kind, but serves the purpose.
Pages:
Jump to: