What is the formula used to estimate the pool hashrate based on the number of blocks found by that pool? For example, Braiins provides an estimated hashrate that is calculated based on the amount of blocks each pool has found. I a looking for a formula that requires knowing only the network difficulty and the number of blocks found by each entity during a given period. https://insights.braiins.com/en/
Mining is (very close to) memoryless, i.e. every new hash you calculate gives you an equal chance at finding a valid hash with sufficient Proof of Work. In a perfectly memoryless system, large miners (or pools) have no benefit over smaller miners because their larger amount of past work does not give them any advantage in finding the next valid hash.
This makes calculating the pool's estimated hash rate straightforward. In a given time period, if nt is the total number of blocks found by all miners, np the number of blocks found by the pool, and ht the total hash rate, then the pool hash rate hp can be calculated as:
hp = (np / nt) * ht
Of course, as your question indicates this is just an estimation:
- the total network's hashrate can only be estimated from the current difficulty and the rate at which blocks are mined, it can not be calculated
- the mining process is probabilistic, pools will mine sometimes more and sometimes less blocks than their share of hash rate would suggest
- we can't verify which blocks are mined by which mining pool, this is all based on optional, voluntary and unverifiable information provided by the miner