ASERT Explained
Bitcoin retargets difficulty every two weeks. Bitcoin Cash retargets every single block — using an algorithm called ASERT that quietly does something remarkable for solo miners: it deletes the profitable windows that let opportunistic hashrate raid a chain and vanish. Here is how aserti3-2d actually works, why its two-day half-life is the number that matters, and why the same design that stabilizes Bitcoin Cash can nearly break a chain that's too small. Part of our difficulty-science cluster.
ASERT (Absolutely Scheduled Exponentially Rising Targets, implemented as aserti3-2d) is Bitcoin Cash’s difficulty adjustment algorithm, live since November 2020, which recalculates mining difficulty for every single block instead of every 2,016 blocks like Bitcoin. It measures how far the chain’s real timeline has drifted from its ideal 10-minute-per-block schedule since a fixed anchor point, and steers difficulty back exponentially with a two-day half-life. The effect that matters to solo miners: continuous, cliff-free adjustment that erases the profitable windows opportunistic hashrate uses to raid a chain — protecting the odds of everyone who mines steadily.
Key takeaways
- Per-block, not per-epoch. Bitcoin holds difficulty fixed for ~2,016 blocks then jumps; ASERT nudges it every block. No plateaus means no windows — the single most important consequence for miners.
- The formula is one line. next_target = anchor_target × 2^((actual_time − scheduled_time) / half_life). Difficulty is just the anchor’s difficulty scaled by how far ahead or behind schedule the chain has drifted.
- Two-day half-life is the tuning knob. Run two days ahead of schedule and difficulty doubles; two days behind and it halves. Fast enough to track real hashrate, slow enough to ignore lucky-block noise.
- It was built to reward steady miners. ASERT’s explicit design goals included minimizing the profit advantage of switch-miners who hop between chains — which is exactly the protection a solo miner on a minority chain wants.
- The same design can trap a chain that’s too small. A brief hashrate flood spikes difficulty; when it leaves, a tiny chain can grind for ~6.6 days recovering from a 10× spike. This is why ASERT’s behavior on small chains is a feature and a hazard at once.
This article sits in our difficulty-science cluster alongside the Bitcoin Cash profile, where ASERT is the chain’s armor, and the BC2 retarget-window guide, which explores the opposite world — a chain where windows still exist and can be played. Understanding ASERT is understanding why some chains have those windows and others don’t.
The problem ASERT was built to solve
Every proof-of-work chain must answer one question continuously: as hashrate joins or leaves, how do we keep blocks arriving about every ten minutes? Bitcoin’s original answer — recalculate every 2,016 blocks from the previous epoch’s pace — works beautifully when hashrate is enormous and stable. On a smaller chain it fails in a specific, exploitable way.
Bitcoin Cash learned this the hard way. Its first difficulty algorithm after the 2017 fork, and an emergency adjustment before it, produced violent oscillations: difficulty would drop, opportunistic “switch miners” would flood in to mint easy blocks, difficulty would lurch back up, they’d leave, and the chain would stall until the next drop — a sawtooth that hurt everyone mining steadily. The pattern had a name and a victim: the profitable window, and the loyal miner whose share it diluted. ASERT was designed, after extensive simulation against competing algorithms, specifically to flatten that sawtooth — and its stated goals included keeping block times near target, keeping confirmation times near target, and reducing the profitability gap between steady miners and switchers.
How aserti3-2d actually works
The whole algorithm is one elegant formula:
next_target = anchor_target × 2((time_delta − ideal_block_time × (height_delta + 1)) / half_life)
Read it in plain language. Take a fixed anchor block from the chain’s past — for Bitcoin Cash, the block just before ASERT activated. Its difficulty is the permanent baseline. Now for any new block, compute two things: time_delta, how much real time has actually passed since the anchor, and the scheduled time, which is simply ideal_block_time (600 seconds) times the number of blocks since the anchor. The difference between them — is the chain ahead of or behind its ideal timetable? — goes into the exponent, divided by the half-life. If the chain is exactly on schedule, the exponent is zero, 20 = 1, and difficulty equals the anchor’s. Run ahead of schedule and the exponent goes positive, doubling difficulty for every half-life of lead. Fall behind and it goes negative, halving difficulty for every half-life of lag.
Two design choices make it robust. Because the anchor is absolute (a fixed point, never a rolling window), rounding imprecision can’t accumulate over months — every block is computed fresh from the same origin. And because floating-point math produces different results on different processors — a consensus catastrophe waiting to happen — ASERT approximates the exponential with fixed-point integer arithmetic and a cubic polynomial, so every node on every machine computes byte-identical difficulty. It’s a control-system feedback loop dressed as three lines of integer code.
The two-day half-life: the number that matters
The half-life is ASERT’s personality. Bitcoin Cash chose two days (technically 288 blocks’ worth of ideal time), and the human-readable version is exactly as clean as it sounds: for every two days the chain gets ahead of schedule, difficulty doubles; for every two days it falls behind, difficulty halves.
Why two days specifically? It’s a balance point found in simulation. Too short a half-life and difficulty twitches at every lucky streak of fast blocks, overreacting to statistical noise — the chain never settles. Too long and it responds sluggishly to genuine hashrate changes, drifting off-target for days and reopening the very windows it was meant to close. Two days sits in the sweet spot: responsive within roughly a day to real shifts, deaf to the random jitter of individual blocks. The practical arithmetic that falls out of it: recovering from a 2× difficulty spike takes 2 days, a 4× spike 4 days, and a 10× spike about 6.6 days — numbers that become very important the moment a chain is small.
What ASERT means for a solo miner
Three consequences, in order of importance.
Your steady odds are protected. This is the headline. On an epoch-retarget chain, a burst miner can wait for a difficulty drop, flood in during the easy window, and leave before the correction — every easy block they mint is one you didn’t, diluting your share of a rigged interval. ASERT erases that window: difficulty rises the instant they arrive and falls the instant they leave, block by block, so there’s no lag to farm. The loyal miner’s expected share stays clean.
The difficulty you see is honest. On Bitcoin, today’s difficulty reflects the network of up to two weeks ago; on an ASERT chain it reflects the network of the last few blocks. When you compute your odds — in the calculator or by hand — an ASERT chain’s number is a live price, not a trailing average, so your probability estimate is as current as the chain itself.
You cannot time it — and neither can anyone else. The flip side of protection is that ASERT offers no clever entry point. There’s no difficulty drop to swoop in on, because any drop is already priced in for the whole network simultaneously. This is the exact opposite of the playable dynamic on retarget-window chains, and it’s a fair trade: you give up the chance to game the schedule in exchange for a guarantee that nobody games it against you.
The small-chain paradox: ASERT’s sharpest edge
Here is where the elegance turns double-edged. ASERT’s responsiveness assumes a chain has enough steady hashrate that difficulty tracks a real, persistent signal. Give it a chain with very little hashrate, and a single large miner becomes a weapon — not always maliciously, sometimes just by showing up.
The failure mode: a big miner points serious hashrate at a tiny chain for a few hours. Blocks fly, the chain races far ahead of schedule, and ASERT dutifully spikes difficulty upward — perhaps 10×. Then the big miner leaves. Now the chain’s normal, modest hashrate faces a difficulty built for ten times its size, and blocks slow to a crawl. At the standard two-day half-life, clawing back from a 10× spike takes about 6.6 days — nearly a week in which the chain is effectively frozen, confirmations stall, and the loyal miners the algorithm was meant to protect are the ones left grinding. It’s the difficulty-algorithm version of a stress injury: the muscle that makes a healthy chain strong can tear a weak one.
This is why newer and smaller SHA-256 chains that adopt ASERT frequently launch with a shortened half-life — recovering from spikes in hours instead of days — accepting a bit more noise sensitivity in exchange for survivability. It’s also a large part of why very small chains are riskier to mine than their attractive odds suggest, a trade-off worth understanding fully before pointing hashrate at the bottom of the ladder.
Conclusion
ASERT is one of proof-of-work’s quiet masterpieces: a one-line formula, an integer approximation of an exponential, and a two-day half-life that together turn a violent difficulty sawtooth into a smooth, cliff-free curve. For the solo miner on Bitcoin Cash, it works invisibly and in your favor — protecting your share from switch-miners, keeping your odds honest to the minute, and asking only that you give up a gaming opportunity you’d never have won anyway.
And in its sharpest edge — the small-chain spike trap — it teaches the deepest lesson in the difficulty-science cluster: the same mechanism can be armor or hazard depending entirely on how much hashrate stands behind it. Know which chain you’re on, and you know which ASERT you’re mining.
Mine a chain that protects steady miners
SoloFury runs Bitcoin Cash on its own nodes — ASERT-protected, per-block difficulty, no windows for burst miners to raid your share. Non-custodial coinbase payouts, 1% fee, TLS endpoints in every region, live difficulty in the calculator. Steady hashrate is exactly what this algorithm was built to reward.
Mine BCH solo →See live difficulty odds →Frequently Asked Questions
What does ASERT stand for?
Absolutely Scheduled Exponentially Rising Targets. 'Absolutely scheduled' means difficulty is computed from a fixed anchor point in the chain's history rather than from a rolling recent window; 'exponentially rising targets' describes the exponential relationship between how far ahead or behind schedule the chain is and how difficulty responds. The full implementation is called aserti3-2d — the '2d' being its two-day half-life.
How is ASERT different from Bitcoin's difficulty adjustment?
Bitcoin recalculates difficulty once every 2,016 blocks (~2 weeks) based on how long the previous epoch took, holding difficulty fixed in between. ASERT recalculates every single block, measured against a fixed anchor, so difficulty moves continuously and smoothly. The practical result: Bitcoin has ~two-week difficulty plateaus, while Bitcoin Cash has no plateaus at all — and therefore no exploitable windows.
What is the anchor block in ASERT?
The anchor is a fixed reference block — specifically the block just before ASERT activated on the chain — whose height and target serve as the permanent 'absolute' basis for every future calculation. Every new block's difficulty is computed as the anchor's difficulty scaled by how far the chain's actual timeline has drifted from its ideal schedule since that anchor. Because the reference never moves, rounding errors don't accumulate over time.
Why is the two-day half-life important?
The half-life sets how fast difficulty responds. At two days: for every two days the chain runs ahead of schedule, difficulty doubles; for every two days behind, it halves. It's a deliberate balance — fast enough to react to real hashrate changes within a day or so, slow enough to ignore the random noise of individual lucky or slow blocks. Recovering from a 10× difficulty spike takes about 6.6 days at this half-life.
Does ASERT change my odds of finding a block?
Not your odds at a given difficulty — those always equal your hashrate divided by the network's total. What ASERT changes is the fairness and stability of those odds over time. By removing retarget windows, it stops burst miners from raiding easy periods and diluting steady miners' share, and by adjusting every block it keeps the difficulty you see honest to current conditions rather than two weeks stale.
Why can ASERT be dangerous for very small chains?
The same responsiveness that stabilizes a healthy chain can trap a tiny one. If a chain has very little hashrate and a large miner briefly floods it, difficulty spikes upward; when that miner leaves, the remaining hashrate is stuck grinding at an inflated difficulty, and blocks slow to a crawl. With a standard two-day half-life, recovering from a 10× spike takes roughly 6.6 days — nearly a week of near-frozen chain. New small chains often launch with a shortened half-life to recover faster.
Which chains use ASERT?
Bitcoin Cash adopted aserti3-2d in its November 2020 Axion upgrade, and it has since been adopted by other SHA-256 chains in the family that want its stability properties, sometimes with a modified half-life tuned for a smaller network. eCash uses its own layered approach. Bitcoin itself does not use ASERT — it retains the original 2,016-block retarget.
Can I time a difficulty drop on an ASERT chain?
No — and that's the point. On chains with epoch-based retargets, a difficulty drop opens a temporary window of better odds you can try to enter. ASERT adjusts every block, so any change is immediate and priced in for everyone simultaneously; there is no lag to exploit and no window to time. Your steady odds are protected precisely because nobody else can game the schedule either.