P2Pool

Decentralised pool mining

First, just a quick recap of how centralised pooled mining works: (feel free to skip this if you already know)

Cryptocurrency networks (such as Bitcoin, Dogecoin) use what's known as a block chain to store the history of all the transactions ever made. Using this history, we are able to figure out the balance of each and every account - this is how the network knows how much money is stored in each address. As you'd expect, bits of data known as blocks make up the block chain. Each block contains a list of transactions made after the previous block.

Mining is the process of creating these blocks. In order to regulate block creation, the network demands that the block must contain the solution to a computational problem with a set difficulty. As a reward for solving this problem, the miner is given coins. The difficulty of the problem is adjusted based on how long it took for the last problem to be solved.

As the amount of miners on the network grows, it is becomes non-viable for a miner working alone to solve the problem in a reasonable amount of time. Pooled mining is a service that that allows many miners to work together and split the rewards.

There are several problems with centralised servers distributing work and payouts

  1. The pool server is the a central point of failure. If the server is unavailable for any reason, miners cannot continue to work and will not be able to receive shares
  2. If the pool server is compromised, a significant amount of miner funds can be lost

Enter P2Pool

P2Pool allows operators to set up nodes that share hash rate, miners can connect to any node they want with no registration required

  1. To join a node, all you need is your payout address
  2. The P2Pool network is DDOS resistant, if the node you are mining on is down, you can just switch to another node, without losing any shares
  3. If a node is compromised, the attacker cannot steal any of the worker's payouts
  4. Miners get higher payouts than normal pools because they receive transactions fees from block rewards

How does it work?

The P2Pool software encodes the shares into what's called the share chain. This is very similar to the block chain used by Bitcoin. This chain is built using the computational power miners use to find shares. All of the P2Pool nodes maintain a copy of the share chain for the current block and use it to determine payouts to miners.

What are the drawbacks?

Due to the way the PPLN (Pay Per Last N Shares) payout system in P2Pool works, slow or very unlucky miners may not receive the first payout for up to 24 hours.

However, once the first payout is received, the payout for the miner will grow to match the miner's mining speed. The system is designed to punish pool hoppers - miners who switch pools to get the maximum amount of shares.

Joining P2Pool

You can get in easily using existing nodes (all you need is a payout address)

For Dogecoin

Full list here

You can also set up your own node

For Dogecoin

References and resources

  1. Original P2Pool post on bitcointalk.org
  2. Github repository for P2Pool
  3. P2Pool information page on Bitcoin wiki
  4. Adapting P2Pool for Bitcoin derivatives