delvingbitcoin

Stratum v2 Noise Protocol: BIP324 nuggets?

Stratum v2, a new specification for secure communication in Bitcoin mining, employs end-to-end encryption via the Noise Protocol Framework.

This move facilitates integration with Bitcoin Core, which is set to assume the Template Provider role within the Template Distribution protocol. An active draft PR exists for Bitcoin Core to incorporate this functionality. Although Stratum v2 shares similarities with BIP324, a peer-to-peer encryption protocol, it currently cannot switch to BIP324 due to several reasons. These include existing investment and momentum, the necessity of server authentication for directing work to the correct pool, and message routing that may benefit proxies by utilizing channel_id without decrypting messages.

Despite these hurdles, there's room to refine Stratum v2 by incorporating elements from BIP324 without overhauling current implementations. Stratum v2 and BIP324 already share commonalities such as the use of ChaCha20 and Poly1305 in AEAD mode and sha256 for key mixing. Potential enhancements could involve adopting tagged hashes, which are relatively straightforward to implement. Further changes could include adopting EllSwift encoding and ECDH—despite initial hesitations—since current practices deviate from the specified ECDH implementation, creating an opportunity to clarify the specification.

The conversation remains open for suggestions on minor yet beneficial features from BIP324 that could be integrated into Stratum v2. Such improvements would not only enhance the current protocol but also potentially ease a future transition to BIP324, provided they don't demand significant alterations from implementers. However, given the limited scope of possible amendments, extensive modifications may not be justifiable at this stage.