Picture the moment your ASIC finds a valid hash. Your machine did the work. But scroll up the stack to the block template that defined what that work was confirming, and your name is nowhere near it. The pool built that template. The pool picked those transactions. Your hardware was, in the most literal sense, following someone else's orders.
Stratum V2 is the protocol that changes that sentence.
The Old Arrangement, and Why It Bothers People
The original Stratum protocol (retroactively called V1) was written fast, in 2012, to solve a real problem: miners needed a low-overhead way to receive work from pools. It worked. It still works. But it was designed with one assumption baked in so deeply nobody discussed it: the pool constructs the block template, and the miner fills in the nonce.
A block template is the full specification of a candidate block. It names which transactions go in, in what order, and what the coinbase transaction looks like. Whoever builds the template controls, in a meaningful sense, what gets written into Bitcoin's history. Under V1, that is always the pool operator.
This concentrates power in a way that should make any serious observer genuinely uncomfortable, not just theoretically uneasy. A handful of large pools have, at various points, represented more than 50% of global hashrate combined. If those operators wanted to censor a specific address or transaction type, the original protocol gave individual miners exactly one form of recourse: leave. That's it.
Stratum V2 was specified by Matt Corallo and Jan Capek, drawing on Corallo's earlier BetterHash proposal. It encrypts the miner-to-pool connection (V1 sends everything in plaintext, which is its own embarrassment), reduces bandwidth overhead, and introduces a sub-protocol called Job Declaration.
Job Declaration: The Actual Mechanism
Job Declaration is where the authority shift lives. A miner runs a local node, constructs their own block template from their own mempool view, and submits that template to a Job Declarator Server, which can be pool-run or third-party. The pool validates that the template is legitimate (correct fees, no invalid transactions) and issues work based on it.
The miner selects the transactions. The pool audits and credits the hashrate. Those are different jobs, and separating them is the whole point.
Consider a worked example. Reza runs a small operation, 5 petahashes, pointed at a mid-size pool. Under V1, if that pool filters transactions from a particular protocol or address set, Reza's machines enforce that censorship whether he knows it or not. Under V2 with Job Declaration enabled, Reza's node pulls transactions from his local mempool. The pool sees valid proof-of-work and pays out. It never touches the template.
Now contrast that with Reza's neighbor Lena, same hardware, same pool, still on V1 because the V2 setup requires a full node and she hasn't gotten around to it. Lena's machines do whatever the pool says. Same hashrate. Completely different authority structure.
The difference between those two configurations is not philosophical. It is a config file and a synced node.
The Honest Tradeoffs
V2 adoption isn't free. Running a full node adds real operational overhead: storage (Bitcoin's chain exceeds 600 GB with full history, though pruned nodes work), bandwidth, and the minor latency of local template construction. For a large industrial miner, trivial. For someone running a few machines at home on a consumer connection, a genuine consideration.
There's also a subtler issue that deserves plain statement rather than a footnote. Pools still control payout logic. A pool could, in principle, offer worse terms to miners submitting their own templates, because those templates might include transactions the pool would have filtered. The protocol does not eliminate economic pressure. It makes the pressure visible and explicit rather than invisible and structural, which is already a significant improvement, but it is not a complete solution.
Adoption has been gradual. DEMAND, the first major pool built natively on V2, launched to demonstrate the full stack. Braiins Pool (formerly Slush Pool, the oldest pool in Bitcoin) integrated V2 support. Most hashrate still runs on V1. The protocol is ready; the migration is ongoing, which is more or less what you'd expect from an industry that treats change like a planned outage.
One thing observers sometimes get backwards: Stratum V2 does not make mining more profitable. It does not touch the block reward or fee economics at all. What it changes is editorial control over the blockchain's contents. That is a governance question dressed in a networking protocol.
So ask yourself what censorship resistance actually requires. Not the slogan, the mechanism. Because for Bitcoin, the distance between "miners could resist censorship if they switched protocols" and "miners structurally cannot censor even if a pool operator wanted them to" is not a minor footnote.
It's close to the whole point.