Skip to content

Stratum V2: The Next Generation Protocol

Stratum V1 has been the backbone of Bitcoin mining communication since 2012. It works, it’s simple, and virtually every miner and pool speaks it. But it was designed in an era when the entire network hashrate was measured in terahashes, not exahashes. As mining scaled up by orders of magnitude, the cracks started showing.

Stratum V2 is a ground-up redesign that addresses V1’s most serious shortcomings: no encryption, wasted bandwidth, and an uncomfortable centralization problem where pools have too much power over what goes into blocks.

V1 sends everything in plain text JSON over TCP. Anyone who can observe the network traffic between your miner and the pool can see:

  • Your worker name and credentials
  • Every share you submit
  • Every job you receive
  • Your hashrate (by counting shares)

This is a problem for privacy, but it’s also a security risk. A man-in-the-middle attacker could redirect your hashrate to their own pool without you knowing — a technique called hashrate hijacking.

Every mining.notify message contains hex-encoded strings inside a JSON wrapper. All those quotes, brackets, colons, and field names are pure overhead. For a high-throughput mining operation processing thousands of jobs and shares per minute, the bandwidth adds up.

A typical mining.notify message is 300-500 bytes. The actual useful data inside it is about 150 bytes. That’s 50%+ overhead just from the JSON encoding.

In V1, the pool builds the entire block template. The pool decides which transactions go into the block, the pool constructs the Merkle tree, and the pool sends the miner pre-computed data. The miner is just a hash-grinding machine — it has zero say in what transactions the block contains.

This means mining pools are the de facto gatekeepers of Bitcoin transaction inclusion. A pool could censor transactions, prioritize certain transactions over others, or implement policies that miners disagree with. Individual miners have no recourse short of switching pools entirely.

Stratum V2 was developed by Braiins (formerly Slush Pool) in collaboration with Bitcoin developers. The specification introduces several fundamental changes.

V2 replaces JSON with a compact binary encoding. Every message has a fixed header followed by binary-packed payload. No more quoted strings, no more field names, no more brackets.

The result: messages are 50-70% smaller than their V1 equivalents. For large mining farms with thousands of miners, this translates to meaningful bandwidth savings.

V2 uses the Noise Protocol Framework (specifically the Noise_NX pattern) to establish an encrypted, authenticated channel between miner and pool. This provides:

  • Confidentiality: traffic can’t be read by observers
  • Authentication: the miner can verify it’s talking to the real pool (prevents hashrate hijacking)
  • Integrity: messages can’t be tampered with in transit

The encryption handshake happens at connection setup, and all subsequent communication is encrypted with AEAD (Authenticated Encryption with Associated Data).

V1 has a single connection that handles everything. V2 splits communication into three distinct channels, each optimized for its purpose:

1. Mining Channel The equivalent of V1’s core loop — receiving jobs, submitting shares. But binary and encrypted. This is the only channel that every miner needs.

2. Job Negotiation Channel This is the revolutionary part. Miners (or mining proxies) can negotiate with the pool about which transactions to include in the block template. Instead of blindly accepting the pool’s template, the miner can propose its own transaction set.

3. Template Distribution Channel A direct connection to a Bitcoin node. Instead of relying on the pool’s node, miners can run their own Bitcoin node and receive block templates directly. The miner then proposes these templates to the pool via the Job Negotiation channel.

Job negotiation: the decentralization breakthrough

Section titled “Job negotiation: the decentralization breakthrough”

This is the feature that matters most for Bitcoin’s health. With V2 job negotiation:

  1. The miner runs its own Bitcoin node
  2. The miner’s node constructs a block template with its preferred transaction selection
  3. The miner proposes this template to the pool
  4. The pool can accept or reject it (but rejection means losing that miner’s hashrate)
  5. If accepted, the miner works on its own template

This means individual miners can choose which transactions to include in their blocks. Pools become coordinators of hashrate, not gatekeepers of transactions. If a pool starts censoring transactions, miners can override that decision or simply leave.

FeatureStratum V1Stratum V2
EncodingJSON (text)Binary
EncryptionNoneAEAD (Noise framework)
Message size300-500 bytes typical100-150 bytes typical
AuthenticationNone (plain text passwords)Certificate-based
Block template controlPool onlyMiner can propose (job negotiation)
Sub-protocolsSingle connection3 channels (mining, job negotiation, template distribution)
Hashrate hijacking protectionNoneEncryption prevents MITM
Bandwidth efficiency~50% overheadMinimal overhead
Miner runs own nodeNot supportedSupported via template distribution
SpecificationInformal, many variantsFormal specification (SRI)
AdoptionUniversalGrowing

As of 2025, V2 adoption is growing but V1 remains dominant:

Pool support:

  • Braiins Pool: full V2 support (they developed it)
  • Several other pools have announced V2 support or are in testing
  • Most major pools still primarily use V1

Firmware support:

  • Braiins OS: native V2 support
  • Stock Antminer/Whatsminer firmware: V1 only
  • Translation proxies can bridge V1 miners to V2 pools

Infrastructure:

  • The Stratum Reference Implementation (SRI) is an open-source project that provides V2 components: proxy, pool, job negotiator, and template provider
  • Mining farms can deploy SRI as a proxy between their V1 miners and a V2 pool

You don’t need to wait for your miner’s firmware to support V2. A translation proxy sits between your V1 miner and a V2 pool:

[V1 Miner] ←→ [Translation Proxy] ←→ [V2 Pool]
V1 traffic V2 encrypted traffic

The proxy speaks V1 to your miner and V2 to the pool. You get encryption and potentially job negotiation benefits without changing your miner’s firmware.

If you use Braiins OS: you can already use V2 natively with Braiins Pool. It’s a straightforward configuration change.

If you use stock firmware: you can deploy an SRI translation proxy. This requires some technical setup but gives you V2 benefits (encryption, efficiency) on the pool side.

If you’re a home miner with one or two machines: the practical benefits are modest right now. V1 works fine, and the bandwidth savings don’t matter much for a single connection. But as adoption grows and more pools support V2, switching will become increasingly worthwhile — especially for the privacy and security benefits.

If you care about Bitcoin’s decentralization: job negotiation is a game-changer. Running your own node and proposing your own block templates is the most meaningful way an individual miner can contribute to Bitcoin’s censorship resistance.

Stratum V2 isn’t just a technical upgrade — it’s a philosophical shift. V1 treated miners as dumb hash machines that take orders from pools. V2 gives miners agency: they can choose their transactions, verify their pool connections, and protect their traffic from surveillance.

For the Bitcoin network as a whole, this matters enormously. The more miners that construct their own block templates, the harder it becomes for any single entity to censor transactions or control what gets into the blockchain. Stratum V2 is how mining stays decentralized.