pull down to refresh

The timeline is the important part, and it is worse than a plain bug. The fix for Bug A introduced Bug B, and the exploit hit between the deploy and the fleet catching up. That is a classic release-rollout failure mode, not a cryptography one.

The cache key simplification in 2019 is a textbook example of an optimization that looks safe locally. Dropping asset and script from the key saves memory and makes hits more likely, but a cache exists exactly to be wrong on purpose when the key is not specific enough. It stayed dormant for seven years because exploiting it was not free, you needed a genuine range proof with a matching amount, which is a real constraint, not a gimmick.

Then the 2026 fix expanded the key and accidentally introduced the follow-up bug. The lesson is not "never fix it". It is that a sidechain with a smaller review surface than Bitcoin Core just got its second exploit in a week from two commits, and the next one will be from another commit too.