Skip to main content

On 7 August at 15:44 UTC, block 4,487,776 arrived on the Ravencoin network and vulnerable nodes accepted it. It should never have existed. A consensus flaw in KAWPOW header validation left the nHeight field unchecked, so an attacker could produce blocks that passed validation orders of magnitude more cheaply than mining them honestly.

Four days later, 2Miners and RavenMiner, who between them control most of Ravencoin’s hashpower, are building a replacement chain from block 4,487,775, the last block nobody disputes. If it becomes dominant, three to four days of transaction history stops having happened: deposits, withdrawals, payments, all of it. Upbit and Bitget suspended RVN movements, the token fell around 19% to $0.0029, and the whole network is now worth about $47m.

Here is the detail worth sitting with. The Ravencoin project asked the pools to restart from a more recent point. The pools declined.

TL;DR

  • A KAWPOW consensus bug let attackers mint invalid Ravencoin blocks from 7 August; two mining pools are rebuilding the chain from before the first bad block, potentially reversing three to four days of settled transactions.
  • Nobody cheated. The pools are doing the responsible thing, and the core team asked them to reorganise less deeply and was told no. Finality turned out to be a decision taken by whoever holds the hashpower.
  • The fourteenth unasked half of fairness: a Chainlink VRF proof certifies that a number was honest, not that the block containing it is still in the canonical chain next Tuesday.
  • Confirmations are not a countdown, they are a price. Your game’s finality is denominated in a security budget you did not set, which is why every studio launching its own chain is quietly setting that budget near zero.
  • Satoshie settles on Base, so reversing a result costs what it costs to reorganise Ethereum, not a weekend of rented hashrate. Honest caveats below, including ours.

Nobody cheated, and that is exactly the problem

Give the pools their due. Somebody had to decide what the chain was, and the parties holding the hashpower decided it was the version without the exploit in it. That is the correct call. 2Miners even shipped the emergency patch, so the fix for a protocol’s third consensus failure came from a mining pool rather than the protocol’s own team.

This is not a story about villains, it is a story about a capability: a few parties can agree that four days did not happen, and four days stop having happened. Everyone used it well this time, which tells you nothing about the next time, because a capability has no direction built into it.

We have made this argument before about platforms: the authority that returns your stolen funds can void your win. Ravencoin relocates it one floor down, to the substrate. There is nothing to read in the bytecode. It is what a majority of block producers can do on a Sunday, and no contract on top can opt out.

What a proof of fairness does not cover

A Chainlink VRF proof begins when randomness is requested and ends when the coordinator verifies it on-chain and the callback fires. Inside that window the guarantee is airtight: no node can grind for a preferred word, and a word whose proof does not verify never gets delivered.

The proof says nothing about whether the block containing that callback survives the week.

Everything we have claimed about atomic settlement is a statement about a transaction, and a transaction is exactly as durable as the chain it settled on. A game can be provably fair and reorganised out of existence at once, and the proof will still verify perfectly against a block that is no longer part of anything.

Confirmations are a price, not a countdown

Players are taught to count confirmations: six and you are safe, twelve and you are very safe. What actually makes a result final is not how many blocks sit on top of it, it is how much it would cost somebody to build a taller stack. Confirmation depth is the unit; the security budget is the price.

Ravencoin’s network is worth about $47m today, down 77% on the year, and the exploit made the real price lower still. When a chain’s security budget collapses its finality collapses with it, silently, without one line of your contract changing. The durability of your win is a number other people set, in a market you do not participate in, and it moves.

The bit crypto gaming should be embarrassed about

Every studio launching its own chain or app-rollup is setting this number, usually without saying so and usually near zero. We have been rude about bespoke gaming chains before because the studio runs both the sequencer and the only RPC anyone uses. Ravencoin adds the harder edge: on a chain secured by a token nobody wants, “settled” is an accounting entry rather than a fact.

Then the question nobody in gaming has a written answer to. A reorganisation wipes out a round that resolved, paid out and got celebrated in a Discord. Does the payout stand? Someone decides, and it is not the contract, because from the contract’s point of view the transaction never occurred. It is decided in a room you are not in. A reorg is the one event that hands even a genuinely admin-key-free platform a discretionary decision: not through a privileged function, but through which chain its front end reads.

Notice, though, that all of this was legible from outside within days. A casino that quietly reversed four days of results would leave no record at all, and you would experience it as a bad weekend.

Where Satoshie actually stands

The narrow claim, no adjectives. Satoshie settles on Base, so reversing the block holding your result costs what it costs to reorganise Ethereum: a supermajority of staked ETH getting slashed, rather than a weekend of rented hashrate. Different category of price, not a better version of the same one. Base posts its data to Ethereum mainnet, so state is reconstructable from a chain Coinbase does not run.

The mechanics, so you can check rather than trust: the coordinator verifies the VRF proof on-chain before the callback fires, the outcome is computed inside that callback in verified immutable code, a coinflip is one modulo on the VRF word, a raffle is keccak256(VRF word + prior blockhash) % ticketsMinted, and escrow, resolution and payout are one transaction.

The caveats, because a fairness claim that cannot name its own limits is marketing. Base’s sequencer is Coinbase-operated and not decentralised today; its soft confirmations are a promise rather than finality, the real guarantee arrives with Ethereum, and L1 forced inclusion is the backstop. Ethereum has had shallow reorgs of its own. Our front end is an ordinary web app and the least trustworthy thing we ship. Our bugs are permanent. This is not immunity from physics, only a claim that the price of undoing your result is set by a chain we cannot influence.

Three questions for whatever you play next. What would it cost someone to reverse the block holding your last result, and can you work that out without asking the platform? If the chain reorganised past your win, who decides whether the payout stands? Has your chain ever reorganised before, and how would you know?

Two mining pools spent this week deciding four days of a blockchain did not happen. They were right to. That is what should worry you.

📷 Photo by Michael Förtsch on Unsplash

Valentina Ní Críonna

Author Valentina Ní Críonna

More posts by Valentina Ní Críonna