Braidpool: A Second Competitor In Decentralizing Mining

Yesterday the Human Rights Foundation announced a wave of new grants for a diverse range of projects. I want to focus on one specific project and grant: Braidpool, and the grant Kulpreet Singh received to continue his work on actually implementing it.

The last few weeks have been dominated by discussions about Ocean’s recent launch, and their decision to filter inscriptions and other transaction types they deem to be spam. The conversation around their transaction filtering has entirely dominated the discussion, completely eclipsing the subject of improving the decentralization of the mining ecosystem.

Braidpool can hopefully be a conversational reset on this topic. While Ocean is a centralized mining pool that aims to decentralize parts of its operation, namely block template construction and mining payouts (at least above the threshold that is economically viable), Braidpool is a fully decentralized mining pool protocol. No aspect of the pool is left to a centralized entity in its design.

A pool conventionally does three main things:

They construct the block templates miners mine onThey divvy up the work, i.e. the nonce numbers each individual miner tries to hash the block template with in order to find a valid block, and keep track of who has found shares that meet the share difficulty requirements to earn a chunk of the next coinbase rewardThey custody block reward payouts and distribute them to individual miners

Braidpool handles all three of these in a distributed way.

In Braidpool each individual hasher is required to run their own full node, and in the process construct their own block templates. To handle tracking who did what work, Braidpool implements its own blockchain of sorts composed of “weak blocks.” These weak blocks are essentially perfectly valid Bitcoin blocks that members of the Braidpool are mining, with the exception that they do not meet the difficulty target requirement of the main network. They meet a lower difficulty target set within the Braidpool. These weak blocks take the role of shares in the scheme, allowing individual miners to keep track of who has contributed how much work to the group effort to find a block. Braidpool, like Ocean, aims to handle distribution of mining rewards amongst the miners in a non-custodial way, but they take a very different approach than Ocean. This aspect of the protocol has evolved quite a lot since my last piece on it. Instead of integrating with a Lightning hub to facilitate the atomic payout to miners when a block is found with a coinbase paying the hub, they have moved to a multisig threshold based model using FROST multisig, an m-of-n Schnorr scheme. All of the miners in the pool send the coinbase reward to a FROST address composed of all the individual miners with a 2/3rds signing majority required, and after finding a block they pre-sign a transaction paying out the individual miners for their contribution. Periodically the pool takes all past spendable coinbase outputs, condenses them to one UTXO, and then updates the tree of transactions that pay out each miner their proportional earnings.

One issue with Braidpool is going to be the same problem Ocean initially struggled with: bootstrapping. Unlike Ocean however, there is no “Braidpool company” to subsidize the initial period of volatile luck and uncertainty in finding a block. This begs the question, who goes first? Any actual Braidpool must quickly grow to a sizable enough portion of the network to smooth out the volatility in luck, or those miners that stay with a pool not achieving that growth will simply wind up losing themselves money. Also, given that there is no “template provider of last resort” to fall back on, as Ocean will be once they integrate Stratum v2, miners must run their own nodes. This requires a seamless and intuitive user experience to not drive miners away from participating in the protocol. As an open source project as opposed to a company, that UX can be finetuned and optimized over the next year while it is in development.

The plan the creators of the protocol have for attempting to bootstrap the pool initially is very simple: push the risk of mining with a Braidpool away from the actual miners and on to financial market makers. The fact that an output in the off-chain transactions that distribute funds amongst the miners can be assigned to any address opens the door to people buying the right to have such a mining reward output committed to their address. This gives the ability to construct futures, options, or other financial contracts on top of the act of mining. Such instruments give miners participating in Braidpool a way to mitigate the variance risk associated with bootstrapping a new pool.

Back to Ocean for a second, they have made a very significant contribution to this space in trying to pioneer architectural changes in the mining ecosystem to counteract prevailing centralization pressures. However, it’s undeniable that they are not seeing any continued growth, and growth is a necessity for them to truly have an impact on the issues they were founded to address.

Hopefully Braidpool can be an alternative path to addressing these issues without making the contentious decisions that have led to Ocean arguably self sabotaging its own efforts. Keep your eyes peeled over the next few days for a deeper look at Braidpool on a protocol level.