Bitcoin Forum
December 16, 2017, 02:26:52 AM *
News: Latest stable version of Bitcoin Core: 0.15.1  [Torrent].
 
   Home   Help Search Donate Login Register  
Pages: [1] 2 »  All
  Print  
Author Topic: Proof of Stake Mining and NXT's and PPC's Implementations  (Read 2626 times)
No_2
Hero Member
*****
Offline Offline

Activity: 805


BTC: the beginning of stake-based public resources


View Profile WWW
June 27, 2014, 05:42:09 AM
 #1

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

MetaLair: a blockchain and cryptocurrency consultancy
Twitter: @MetaLair | Facebook | Google+
1513391212
Hero Member
*
Offline Offline

Posts: 1513391212

View Profile Personal Message (Offline)

Ignore
1513391212
Reply with quote  #2

1513391212
Report to moderator
1513391212
Hero Member
*
Offline Offline

Posts: 1513391212

View Profile Personal Message (Offline)

Ignore
1513391212
Reply with quote  #2

1513391212
Report to moderator
1513391212
Hero Member
*
Offline Offline

Posts: 1513391212

View Profile Personal Message (Offline)

Ignore
1513391212
Reply with quote  #2

1513391212
Report to moderator
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction. Advertise here.
1513391212
Hero Member
*
Offline Offline

Posts: 1513391212

View Profile Personal Message (Offline)

Ignore
1513391212
Reply with quote  #2

1513391212
Report to moderator
ThePurplePlanet
Full Member
***
Offline Offline

Activity: 144


View Profile
June 27, 2014, 06:07:10 AM
 #2

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
No_2
Hero Member
*****
Offline Offline

Activity: 805


BTC: the beginning of stake-based public resources


View Profile WWW
June 27, 2014, 03:42:32 PM
 #3

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?

MetaLair: a blockchain and cryptocurrency consultancy
Twitter: @MetaLair | Facebook | Google+
coinsolidation
Sr. Member
****
Offline Offline

Activity: 294

Bitmark Developer


View Profile WWW
June 27, 2014, 04:15:54 PM
 #4

Checkpoints are broadcast to nodes to protect against history rewrites. It's centralisation of some kind, but serves the purpose.

Bitmark (reputation+money) : Bitmark v0.9.4 (release)
ChuckOne
Sr. Member
****
Offline Offline

Activity: 364

☕ NXT-4BTE-8Y4K-CDS2-6TB82


View Profile
June 27, 2014, 04:18:45 PM
 #5

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

ChuckOne
Sr. Member
****
Offline Offline

Activity: 364

☕ NXT-4BTE-8Y4K-CDS2-6TB82


View Profile
June 27, 2014, 04:23:51 PM
 #6

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
Sr. Member
****
Offline Offline

Activity: 336


View Profile
June 27, 2014, 04:37:41 PM
 #7


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
Hero Member
*****
Offline Offline

Activity: 805


BTC: the beginning of stake-based public resources


View Profile WWW
June 27, 2014, 07:55:46 PM
 #8

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


MetaLair: a blockchain and cryptocurrency consultancy
Twitter: @MetaLair | Facebook | Google+
devphp
Sr. Member
****
Offline Offline

Activity: 336


View Profile
June 27, 2014, 07:57:53 PM
 #9

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/
ThePurplePlanet
Full Member
***
Offline Offline

Activity: 144


View Profile
June 29, 2014, 08:32:04 AM
 #10


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 Offline

Activity: 364

☕ NXT-4BTE-8Y4K-CDS2-6TB82


View Profile
June 29, 2014, 09:52:10 AM
 #11

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
Hero Member
*****
Offline Offline

Activity: 805


BTC: the beginning of stake-based public resources


View Profile WWW
July 27, 2014, 05:15:08 PM
 #12

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?

MetaLair: a blockchain and cryptocurrency consultancy
Twitter: @MetaLair | Facebook | Google+
jubalix
Legendary
*
Offline Offline

Activity: 1680


View Profile
July 27, 2014, 05:53:00 PM
 #13

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

Admitted Practicing Lawyer::BTC/Crypto Specialist.
B.Engineering/B.Laws
No_2
Hero Member
*****
Offline Offline

Activity: 805


BTC: the beginning of stake-based public resources


View Profile WWW
July 27, 2014, 09:47:50 PM
 #14

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?

MetaLair: a blockchain and cryptocurrency consultancy
Twitter: @MetaLair | Facebook | Google+
ChuckOne
Sr. Member
****
Offline Offline

Activity: 364

☕ NXT-4BTE-8Y4K-CDS2-6TB82


View Profile
July 27, 2014, 09:52:50 PM
 #15

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 Offline

Activity: 364

☕ NXT-4BTE-8Y4K-CDS2-6TB82


View Profile
July 27, 2014, 09:56:23 PM
 #16

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
Hero Member
*****
Offline Offline

Activity: 805


BTC: the beginning of stake-based public resources


View Profile WWW
July 28, 2014, 10:24:07 AM
 #17

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?

MetaLair: a blockchain and cryptocurrency consultancy
Twitter: @MetaLair | Facebook | Google+
No_2
Hero Member
*****
Offline Offline

Activity: 805


BTC: the beginning of stake-based public resources


View Profile WWW
September 08, 2014, 11:04:10 PM
 #18

Bump.

MetaLair: a blockchain and cryptocurrency consultancy
Twitter: @MetaLair | Facebook | Google+
No_2
Hero Member
*****
Offline Offline

Activity: 805


BTC: the beginning of stake-based public resources


View Profile WWW
November 04, 2014, 11:11:09 AM
 #19

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?

MetaLair: a blockchain and cryptocurrency consultancy
Twitter: @MetaLair | Facebook | Google+
No_2
Hero Member
*****
Offline Offline

Activity: 805


BTC: the beginning of stake-based public resources


View Profile WWW
November 10, 2014, 03:12:56 PM
 #20

In the PPC source code is bnChainTrust applicable for proof-of-work blocks?

MetaLair: a blockchain and cryptocurrency consultancy
Twitter: @MetaLair | Facebook | Google+
Pages: [1] 2 »  All
  Print  
 
Jump to:  

Sponsored by , a Bitcoin-accepting VPN.
Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!