Braidpool: Decentralized Bitcoin Mining Pool
Braidpool is a protocol proposal for a decentralized Bitcoin mining pool.
It aims to handle everything that a mining pool does, but in a distributed way.
How does Braidpool work?
Bitcoin Mining Favors Large Miners
Bitcoin mining favors miners who are providing the most hashing power to the network.
It's just the nature of the protocol and because the block time is programmed to be 10 minutes on average.
The likelihood of a miner finding a block reward is correlated with the amount of hash power they contribute.
Smaller miners have to endure with more variance (unpredictability) when it comes to mining profits.
This makes it harder to budget a profitable mining business.
Mining Pools to Reduce Variance (Unpredictability)
The above factors have led miners to join mining pools where payouts to miners can be more predictable.
A mining pool conventionally does 3 things:
1️⃣ Constructs block templates
2️⃣ Keeps track of individual miners' work (shares)
3️⃣ Custodies and distributes rewards
Mining Centralization
Pooled mining affects the decentralization of the Bitcoin network.
Pools want to get more hashrate to reduce variance, but they don't want to become too big to be a 51% attack risk to the network.
Problems with mining pool centralization:
⚠️ Pool operators have the ultimate say on which transactions to select in a block (censorship)
⚠️ Known or regulated pools can be pressured by a government to seize miners' bitcoin or KYC them
Directed Acyclic Graph (DAG) to Decentralize Mining Share Accounting
Braidpool aims to decentralize share accounting, payouts and transaction selection.
Each individual miner in Braidpool is required to run a full Bitcoin node and construct its own block templates.
To keep track of individual miners' contributions to the pool, Braidpool uses a directed acyclic graph (DAG) layer-1 blockchain on top of the Bitcoin blockchain.
This blockchain is only for the purpose of producing Bitcoin blocks.
There is no altcoin, ICO etc.!
Braidpool DAG blocks are "weak blocks" that are valid Bitcoin blocks, except that they don't meet the difficulty target requirement of a valid Bitcoin block on the Bitcoin blockchain.
They only meet the 1000x easier difficulty target within the Braidpool DAG blockchain.
These weak blocks take the role of shares in the Braidpool mining scheme, and allows the distribution of shares between miners according to the hashing power they have provided to the pool.
Braidpool is a bit like a merge-mined "layer-2" to decentralize mining payouts.
Technically Braidpool's DAG is not a chain of blocks, but a graph of "beads".
Beads can have parent beads, and the graph can have diamonds or other higher-order graphs within it.
A DAG doesn't have orphan blocks like Bitcoin does, and therefore can be much faster.
Each bead (share) has a value based on the number of SHA256 hashing performed.
Non-Custodial Payouts via FROST Multisig
At the end of a difficulty adjustment epoch (2016 Bitcoin blocks or about 2 weeks), Braidpool shares settle on the Bitcoin blockchain and the protocol pays to individual miners via a multisig.
This multisig is called FROST.
It enables large multisig quorums, currently for around 50 participants.
Basically, individual miners share mining shares amongst themselves in a distributed way and reach a 2/3 consensus on how to pay each miner in a self-custodial way.
If miners can't reach consensus on the payouts, the most recently signed transactions become valid, and the miners will effectively revert to solo mining.
Improved Revival of P2Pool
Braidpool is a new iteration of P2Pool, a past mining protocol with the aim of decentralizing mining pools.
P2Pool is effectively a Bitcoin blockchain on top of the Bitcoin blockchain itself with a 30-second block time for the purpose of decentralizing pool payouts.
P2Pool couldn't scale and it's not being used anymore.
When more miners joined the pool, the difficulty required for shares grew, making it more difficult for small miners.
In Braidpool's DAG, it's not a zero-sum game which miner will win the share because there are no orphaned blocks in a DAG.
The difficulty is set dynamically within a 2016-block epoch and small miners have less variance even if the pool grows larger!
Hashrate Derivatives to Incentivize Miners
Because the output that distributes funds to miners can be assigned to any address, Braidpool's design provides building blocks for hashrate derivatives markets.
A Braidpool bead represents a share within the protocol that can be traded in e.g. futures or options contracts.
This can reduce miners' variance risk.
A pool or a financial market maker can e.g. buy miners' shares in exchange for bitcoin.
Or if a newbie small miner wants to lock in their risk until the mining rigs are paid etc.
These kind of contracts are common with e.g. agricultural commodities dealing with variance related to weather conditions, energy prices etc.
Braidpool doesn't intend to be an exchange platform for hashrate derivatives, and the trading would have to happen outside the scope of the protocol.
Hashrate derivatives could also help bootstrapping the adoption of Braidpool.
Braidpool is an open-source protocol, not a company, so it can't subsidize miners in any way to start using it.
But if miners can reduce variance and mining pools can make extra buck participating in hashrate contracts, both will have the incentive to use Braidpool.
The financial risks of mining with Braidpool will be pushed from miners to financial market makers!
Opportunities for Entrepreneurs and Volunteers
Braidpool requires miners to run their own nodes, which is not what miners currently often do.
Maybe there are business opportunities within Braidpool for Bitcoin entrepreneurs to help miners with node installation!
Braidpool is still in early development and not ready to use yet.
It relies on volunteer contributions, both technical and financial.
Meanwhile as a miner, you can use DEMAND pool because it also requires you to use your own node, for practice!
DEMAND uses Stratum V2 mining protocol.
More about Stratum V2 here: #537092
What do you think about the Braidpool proposal?
Is it a good solution to decentralize Bitcoin mining pools?