pull down to refresh
122 sats \ 11 replies \ @SimpleStacker 17h \ on: Mempool Space begins visualizing the merkle branches of stratum jobs mempool
ELI5 what I'm looking at?
You’re look at mining pool herd mentality or divergence.
Mining pools make block templates for miners. They send them to miners as what we call jobs. Miners don’t want to hash the whole block - only just enough of the block that it rewards them bitcoin - so they hash the block header which contains a Merkle root. This merkle root changes when the block template changes and can be used to verify a tx is present in a block with JUST a branch of the Merkle tree (which is a binary tree … so a branch size is the log of the number of txs). Because the miner spends the coinbase to the mining pool, and the coinbase is used as an extra nonce (something to mutate the hash of the block header in the hopes it’ll have enough zeros at the front when hashed), the mining pool job contains a Merkle branch that the coinbase can be added to to compute a Merkle root. So this is a visualization of the Merkle branches mining pools are sending their miners. If they’re identical they are coordinating.
reply
I'm afraid you misunderstood. Explain like I'm this guy
reply
If I understand the graph correctly, it represents the mining similarity between pools. For instance, in the image of this post, BNB Pool, UltimusPool, AntPool, and Poolin are mining the same transactions, as all branches have the same color. The columns represent the branches.
reply
I'm still trying to figure it out! 😂
/cc @0xB10C
reply
reply
My question is how to interpret this chart.
reply
Stratum jobs don’t contain the full list of transactions included in the block template. A miner only needs to construct a block header, which can be done without knowing the full template contents. Modern miners exhaust the 32-bit nonce in the block header quite fast and can then either update the timestamp in the header, roll the version a la overt ASICBoost, or change the so-called extranonce in the coinbase transaction, which causes the Merkle root to change. For this, miners need the coinbase transaction, information about the extranonce, and the Merkle branches to calculate a new Merkle root.
The list of Merkle branches in stratum jobs contains just the information required to calculate the Merkle root. To build the Merkle root, the coinbase transaction is hashes together with the first Merkle branch, the result is then hashed with the second Merkle branch, which is then again hashed with the third Merkle branch. The Merkle root is reached once all Merkle branches have been hashed together.
On the mempool.space/stratum page, each colored column is a merkle branch (marked in red in my image). Normally, these are hashes, but I've started to color them at some point to make it easier to distinguish them. Equal color in a column means equal hash means equal merkle tree branch. If all merkle tree branches are equal, then the block template is the same too. If the block template is frequently the same, you can assume that the pools are the same.