# Bitcoin Hashrate and Mining Difficulty

> Bitcoin hashrate estimated from difficulty and block times, with mining difficulty per epoch, each retarget's change and the record highs, from block headers.

Markdown copy of https://voltfincrypto.com/apps/bitcoin-hashrate-difficulty

**Question:** What are Bitcoin's current hashrate and mining difficulty, and how have they changed?

- Kind: Dashboard in Voltfin Vantage
- Topic: [Bitcoin](https://voltfincrypto.com/topics/bitcoin)
- Chains: Bitcoin
- Status: Planned. The data is not published yet, so this page states no figure; each figure will open its receipt when it is.

Bitcoin's current hashrate and difficulty are shown here as the chain records them: the difficulty set in the latest block header, and the network hashrate that recent blocks imply, beside the history of both since the genesis block. Hashrate is the computing power miners spend searching for valid blocks; difficulty is the target the protocol sets so that a block is found about every ten minutes.

Hashrate cannot be observed directly, because no block reports it. It is estimated from the difficulty and from how quickly blocks arrived, so short windows are noisy and long ones lag. The dashboard shows the estimate over a day, a week and an epoch of blocks side by side, names the window behind each figure and pins it to the block where that window ends.

## Blueprint

### Network

Hashrate and difficulty now, and how they moved over the selected period.

- **Estimated hashrate** (EH/s): Estimated network hashrate over the selected window of blocks, ending at the latest block.
- **Difficulty**: The difficulty of the current epoch, read from the latest block header's bits.
- **Last retarget** (%): The change in difficulty at the most recent retarget, against the epoch before it.
- **Record weekly hashrate** (EH/s): The highest hashrate estimated over any week of blocks so far, with the block where that week ended.
- **Hashrate by day** (EH/s): Estimated hashrate by day over the selected period, with the one-day and one-week windows drawn together so noise and trend can be told apart.
- **Difficulty by epoch**: Difficulty over the selected period, drawn as a step that changes only at retarget heights.

### Epochs

Every difficulty retarget with its change and the hashrate it implied.

- **Epochs completed** (count): Difficulty epochs completed since the genesis block, counted from retarget heights.
- **Average block time this epoch** (seconds): The average interval between blocks in the current epoch so far, against the ten-minute target.
- **Change at each retarget** (%): The percentage change in difficulty at each retarget over the selected period, rises and drops coloured apart.
- **Every epoch**: Each epoch with its first height and date, its difficulty, the change from the epoch before, its average block time and the hashrate it implies.

Filters: Hashrate window (Blocks of the last day, the last week or the current epoch); Period (Last 90 days, last year or every year since the genesis block).

## How it will be measured

- Difficulty is read from each block header (bits, converted to difficulty) and changes only at retarget heights, the multiples of the difficulty epoch length.
- Estimated hashrate is the difficulty times 2 to the power 32, divided by the average seconds between blocks in the window; getnetworkhashps over the same blocks is used as a check.
- Cumulative work comes from the chainwork of each block, the sum of the expected hashes behind every block since the genesis block.
- Each figure is pinned to the last block of its window, with the height, the block hash and the reads that agreed.

## Data it needs

- `bitcoin_network_daily` (to build): Blocks, hashrate implied by difficulty, difficulty, fees, transaction counts, block weight and miner revenue (subsidy plus fees) per day.
- Source: Block headers: bits, time, nonce and version for every block
- Source: getblockheader difficulty and chainwork for every block
- Source: getnetworkhashps over the last day of blocks and since the last retarget, as a check
- Source: Retarget heights at each multiple of the epoch length (protocol constant)

## Questions

### What is Bitcoin hashrate?

The number of hashes per second that miners compute across the network while searching for a valid block. It is quoted in exahashes per second (EH/s), and it measures how much hardware and energy an attacker would need to outpace honest miners.

### How is Bitcoin hashrate measured?

It is estimated, not counted. Each block proves a known amount of work on average, given its difficulty, so the work implied by the blocks in a window divided by the time they took gives hashes per second. A lucky or unlucky run of blocks moves the estimate, which is why longer windows are steadier.

### What is Bitcoin mining difficulty?

A measure of how hard it is to find a block hash below the current target, relative to the easiest target allowed. At the end of every epoch, about two weeks of blocks, the protocol resets it so that blocks keep arriving about every ten minutes at the hashrate of the time.

### Why does Bitcoin difficulty drop?

Difficulty falls when the last epoch's blocks came slower than the target, which happens when miners switch machines off: after a halving cuts revenue, when older hardware no longer covers its electricity cost or during heat waves and power curtailment.

### What is a zettahash?

A zettahash per second is 10 to the power 21 hashes per second, the unit above the exahash. Hashrate milestones are often quoted in these units, and the dashboard shows hashrate in exahashes per second so that changes stay readable.

## Glossary

- **Hashrate**: Hashes computed per second across the network in the search for a valid block, estimated from difficulty and block times.
- **Difficulty**: A measure of how hard it is to find a valid block, derived from the target in each header and reset at the end of every epoch.
- **Difficulty epoch**: The fixed run of blocks between retargets, about two weeks at the ten-minute target. Difficulty is constant within an epoch.
- **Chainwork**: The total expected number of hashes behind every block from the genesis block to a given block, as nodes compute it. The valid chain is the one with the most work.

## Related apps

- [Next Bitcoin Difficulty Adjustment Estimate](https://voltfincrypto.com/apps/bitcoin-difficulty-adjustment-estimate)
- [Bitcoin Mining Pools: Hashrate Share by Pool](https://voltfincrypto.com/apps/bitcoin-mining-pool-share)
- [Bitcoin Hashprice and Miner Revenue per Day](https://voltfincrypto.com/apps/bitcoin-miner-revenue-hashprice)
- [Bitcoin Halving Countdown and Block Reward](https://voltfincrypto.com/apps/bitcoin-halving-countdown)
- [Bitcoin Transaction Fees and Mempool Tracker](https://voltfincrypto.com/apps/bitcoin-fees-mempool-tracker)
- [How Many Bitcoin Are Left to Mine: Supply and Issuance](https://voltfincrypto.com/apps/bitcoin-supply-left-to-mine)

Build it in Voltfin Studio: https://app.voltfincrypto.com/signup?next=%2F
