A year of solo-only mining on Wownero

I have spent years mining Wownero, some of those without a pool. This post is about whether avoiding pools on principle is actually workable. Short version: in my opinion pure solo-only is mostly impossible to sustain, and the things people reach for instead just relocate the complication.

The motivation

Pools centralize. When most hashrate flows through a few pools, the operators decide which transactions get included, can censor in principle, and if one pool approaches a majority you have reintroduced the attack surface decentralization was supposed to remove. Each miner who joins a big pool for smoother payouts trades a sliver of network decentralization for personal convenience: rational individually, corrosive in aggregate.

Solo is the opposite trade. You eat the variance and your hashrate is genuinely yours: your own block templates, your own transaction selection, pointing at nobody.

Left, 'Pool mining': many small miner dots feed into two POOL boxes that then connect to the chain, labeled 'a few operators pick the blocks.' Right, 'Solo': a single 'you' node connects directly to the chain, labeled 'your hashrate, your block templates.'hover / hold for original
Pools funnel many miners' hashrate through a few operators who choose the blocks. Solo keeps it direct, at the cost of variance.

RandomX makes small-scale participation possible at all

The reason an individual can mine from a desk is RandomX, the proof-of-work Wownero derives its own RandomWOW from. It is CPU-optimized and ASIC-resistant by design, so the hardware is a normal processor rather than chips of specialized silicon, and the gap between a hobbyist and a professional operation is far smaller than on Bitcoin's SHA-256. That ASIC resistance is itself a decentralization argument: anyone with a spare desktop can meaningfully participate.

Wownero tried to bake it into the protocol

Wownero went further than just picking a CPU proof of work. At the "Junkie Jeff" hardfork (block 331,170, July 2021), it added miner block header signing, an explicit protocol-level shove toward solo mining.

The rule is small but pointed. A block's coinbase transaction is allowed exactly one output, and the miner has to sign the block header with the secret key for that output. The signature is part of the header that the proof of work hashes, not something bolted on afterward, so a valid block can only come from whoever holds that key. A node checks the signature against the coinbase output's public key and rejects the block if it does not verify.

Think about what that does to a pool. The normal pool arrangement is that the operator holds the payout keys and a crowd of anonymous workers hash whatever template they are handed. Here the key that receives the coinbase has to sign the very header being mined, so you cannot cleanly separate "the operator holds the keys and the money" from "strangers supply the hashrate." That separation is the thing a pool is built on.

It is not unbreakable, and I want to be honest about that. A pool can hand its signing key out to its workers, or run them as a trusted fleet, at which point you are back to the custody and trust problems the signature was meant to remove. So it does not make pooling impossible. It makes the easy, custodial version stop working and forces anyone who still wants to pool into a worse trust model. That is the same pattern as everything else here: you do not delete the centralizing option, you just make it cost something.

Why "solo only" doesn't really hold up

The problem is variance. As a small miner, solo means long stretches of nothing punctuated by a rare full block reward. The expected value matches a pool; the distribution does not. For most people that is not a sustainable or desireable way to actually receive coins, especially if hash rate grows so that the average solo miner with one computer might be expected to find a block every year or ten years or longer. So they would naturally reach for a middle ground, and that is where "solo" would stop being solo:

  • Private pools. Run your own pool for yourself or a small group. It smooths variance, but it is still a pool, with a node and software to operate. You have just become your own operator.
  • Deposit-required pools. Pools could require a one-block-reward deposit from participants, to disincentivize block-withholding and other dishonest behavior. It addresses a real attack, and it adds friction, capital lockup, and trust assumptions.

Each option solves the variance problem by adding operational complexity, and neither is "solo." The clean version (your node, your templates, no one else) is the one with the worst payout profile, which is why I do not believe it is a workable solution for secure (high hashrate) proof-of-work networks. If we assume that there is a large corpus of home and hobby miners that WANT to support large and small networks like Monero and Wownero (and even this first assumption is tenuous in my opinion...most people just will not care to participate I think), then if and when a "solo only" network like Wownero grows 1000x to the size of Monero, those home and hobby miners will have to continue to support the network by mining with an expected payout of once every five to fifty years, which I do not find plausible...

What I took away

Decentralization is not free and not automatic. It costs the individual something (here, variance and a little yield) and only happens if enough people choose to absorb that cost. Solo mining is a real gesture toward that, but it is a small and impractical one, and the practical alternatives drift back toward the pool structures they were meant to avoid. The honest conclusion is that fixing mining centralization is a protocol-and-incentives problem, not something individual stubbornness solves.

For the broader argument that a messy, distributed ecosystem is more resilient than a tidy monolith, see many networks as a form of decentralization.