No_2 (OP)
|
|
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. NXTThis 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? PPCThis 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
|
|
|
|
ThePurplePlanet
|
|
June 27, 2014, 06:07:10 AM |
|
Here is the main problem with Proof of stake https://bitcointalk.org/index.php?topic=615843.msg6751334#msg6751334PoS 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
|
|
|
|
No_2 (OP)
|
|
June 27, 2014, 03:42:32 PM |
|
Here is the main problem with Proof of stake https://bitcointalk.org/index.php?topic=615843.msg6751334#msg6751334PoS 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?
|
|
|
|
coinsolidation
|
|
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.
|
|
|
|
ChuckOne
Sr. Member
Offline
Activity: 364
Merit: 250
☕ NXT-4BTE-8Y4K-CDS2-6TB82
|
|
June 27, 2014, 04:18:45 PM |
|
Here is the main problem with Proof of stake https://bitcointalk.org/index.php?topic=615843.msg6751334#msg6751334PoS 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.
|
|
|
|
ChuckOne
Sr. Member
Offline
Activity: 364
Merit: 250
☕ NXT-4BTE-8Y4K-CDS2-6TB82
|
|
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.
|
|
|
|
devphp
|
|
June 27, 2014, 04:37:41 PM |
|
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.
|
|
|
|
No_2 (OP)
|
|
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...
|
|
|
|
|
ThePurplePlanet
|
|
June 29, 2014, 08:32:04 AM |
|
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
|
|
|
|
ChuckOne
Sr. Member
Offline
Activity: 364
Merit: 250
☕ NXT-4BTE-8Y4K-CDS2-6TB82
|
|
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.
|
|
|
|
No_2 (OP)
|
|
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?
|
|
|
|
jubalix
Legendary
Offline
Activity: 2618
Merit: 1022
|
|
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
|
|
|
|
No_2 (OP)
|
|
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?
|
|
|
|
ChuckOne
Sr. Member
Offline
Activity: 364
Merit: 250
☕ NXT-4BTE-8Y4K-CDS2-6TB82
|
|
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
|
|
|
|
ChuckOne
Sr. Member
Offline
Activity: 364
Merit: 250
☕ NXT-4BTE-8Y4K-CDS2-6TB82
|
|
July 27, 2014, 09:56:23 PM Last edit: July 27, 2014, 10:13:49 PM by ChuckOne |
|
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)
|
|
|
|
No_2 (OP)
|
|
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?
|
|
|
|
No_2 (OP)
|
|
September 08, 2014, 11:04:10 PM |
|
Bump.
|
|
|
|
No_2 (OP)
|
|
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?
|
|
|
|
No_2 (OP)
|
|
November 10, 2014, 03:12:56 PM |
|
In the PPC source code is bnChainTrust applicable for proof-of-work blocks?
|
|
|
|
|