Comparison With SV2 & DATUM
SV2 with Job Declaration and OCEAN’s DATUM both let a centralized pool operator offload transaction selection to miners. Both decentralize block template construction to the miners in the pool.
At a Glance
Before we get into the details of the various protocols, here’s a tl;dr
| DATUM (OCEAN) | SV2 Job Declaration | P2Poolv2 | |
|---|---|---|---|
Who builds block templates |
Miner, through the DATUM Gateway |
Miner |
Miner, on their own node |
Who keeps share accounting |
Pool operator |
Pool operator |
Every node, through sharechain consensus |
How miners are paid |
Coinbase outputs set by the pool; small balances held by the pool |
From the pool’s wallet (custodial) |
Coinbase outputs every node validates; small miners sell shares by atomic swap |
Can the pool reject work for its transactions? |
Yes, it validates every share |
Yes in full-template mode; no in coinbase-only mode |
No operator to reject it; excluding a transaction needs 51% of sharechain hashrate |
Can the pool withhold payment? |
Yes, by leaving a miner out of later coinbases |
Yes, it holds the balances |
No, payouts follow the sharechain |
Permission to mine |
Granted by the operator |
Granted by the operator |
None; anyone can join the peer-to-peer network |
Miners Build Templates
The following diagram shows the messages exchanged when a pool supports DATUM Gateway or SV2 Job Declaration. It leaves out the exact message types each protocol specifies and captures only the idea of decentralized template construction.
Centralized Pools Provide Permissioned Mining
Miners who join a centralized pool need, by definition, the operator’s permission to join and to receive work or payouts. Many pool operators are companies that must follow the regulations where they operate. P2Poolv2 strives to remain permissionless: anyone can join the peer-to-peer network and start mining, with fully auditable accounting and payouts.
Pools Control Payout Distribution
OCEAN, however, still manages the payout distribution: the DATUM server tells the DATUM Gateways which coinbase outputs to include. A centralized pool operating with SV2 Job Declaration has the same shortcoming.
In both cases a centralized pool operator controls the accounting and payout distribution. SV2 could support a more decentralized model, but we have not yet seen a pool designed for it.
A pool that decides the block reward distribution holds a lever over its miners' transaction selection. Under pressure from a regulator, a centralized pool operator can be compelled to refuse payment to any miner that includes transactions involving the addresses or Script constructions the regulator wants suppressed.
The diagram below shows a centralized pool operator, under pressure from a regulator, refusing to pay a miner for its work. The miner must then drop the transaction or leave the pool.
Pools Can Reject Work
The DATUM server validates the shares it receives, so it has the final say over which block templates count as valid work.
In the full-template mode of SV2 Job Declaration, the pool operator can reject jobs outright, as OCEAN can with DATUM.
The coinbase-only mode of SV2 Job Declaration, however, lets a miner work without sending its transaction list to the pool operator, so the pool cannot reject the work outright. The coinbase-only mode is the most censorship-resilient mode available to SV2 pools, but the pool is vulnerable to miners lying about their fees and the pool can be forced by regulators to abandon the coinbase-only mode.
P2Poolv2 Uses Decentralized Accounting
P2Poolv2 instead runs accounting on a decentralized sharechain, a blockchain of weak bitcoin blocks. Nakamoto consensus brings all miners to the same view of the shares, so each miner can generate coinbase payout distributions that every other miner can continuously and independently validate.
P2Poolv2 Provides Non-Custodial Payouts
Miners are paid directly from coinbases or through an atomic swap mechanism, so they never hand custody of their shares or rewards to a pool operator. See Marketplace for how P2Poolv2 enables this.