Cointime

Download App
iOS & Android

The Untold Story of ditto-b

From Jameson Lopp

The fourth Bitcoin halving just triggered a few hours ago, ushering in the 5th mining epoch. As such, this seems like a good time to tell the tale of a little-known Bitcoin contributor who had a massive effect upon the halving algorithm.

The story takes place 10 years ago when an anonymous developer with no reputation managed to make a significant change to the Bitcoin consensus rules.

The Timeline

A user by the handle "ditto-b" joined GitHub on April 8, 2011.

In 2013 they forked OpenTransactions but didn't seem to do anything with it.

Ditto-b was a fan of Runescape as we can see from this table of Experience Point Levels. https://gist.github.com/ditto-b/933800

Ditto-b also built a basic funds sending script for interacting witih Bitcoin compatible RPC nodes. https://gist.github.com/ditto-b/9360868

On March 10, 2014 they created a pull request to change 4 lines of code in the Bitcoin repository.

These four lines of code are consensus critical and are not to be trifled with!

Long story short: ditto-b discovered a common type of software flaw known as a value overflow bug. No one in Bitcoin's first 5 years of existence had thought through how this function would operate when the blockchain was at a height of 13,440,000 after 64 halvings.

A few weeks later, Pieter Wuille used the timing of the pull request to publish BIP-42 as an April Fool's Day joke that was simultaneously satirical and dead serious.

Ditto Who?

Does "ditto-b" mean anything? The first hit I could come up with is a particular Windows virus dating back to 2007 called Ditto.B.

Then I discovered that "Ditto" is a Pokemon character, and Ditto's attributes are... interesting.

Ditto - Pokedex Guide - IGNDitto is the most flexible Pokémon in the entire universe. It's mainly used for breeding, seeing as how it can mate with almost any Pokémon.

IGNJSnakeC, das6486, Jim McQ, +787 moreupdatedFeb 13, 2013

To use Ditto you have to know a weakness when you see a Pokémon, so you can choose the best possible move at all times. Ditto can only run one set usefully.

It's just interesting, and perhaps coincidental, that this character is related to knowing / exploiting weaknesses. Who knows if the username was chosen with the intention of conveying any meaning; it seems unlikely since the account was created 3 years before the pull request was made.

My Speculative Take

The history on ditto-b's account is suspiciously sparse. It's uncharacteristic, to say the least, for a developer with practically no real contribution activity to simply appear and propose a patch for such a niche edge case in an extremely complex software project.

It's incredibly unlikely that ditto-b was just a random person with no history of contributing to Bitcoin who happened to run across these crazy edge case. Ditto-b is most like a well-known "Bitcoin wizard" who, upon noticing this edge case, decided that it was too sensitive an issue to want to have their reputation linked to the proposed change. As such, they chose to report the issue via an alternate pseudonymous account.

We only ever got 2 sentences out of ditto-b, so there's no point attempting any sort of stylometric analysis, but this snarky comment certainly lends credence to my claim that it was a seasoned Bitcoin developer who was very familiar with the wider ecosystem.

Lessons Learned

In one respect, it's interesting that there were no activation parameters suggested for this consensus change. A soft fork will be executed at block height 13,440,000 without any signaling whatsoever. This leads me to conclude that:

  • Consensus changes that are considered "bug fixes" are assumed to have such strong consensus that the effort to write and test signaling activation logic is considered wasteful.
  • Uncontroversial consensus changes that don't activate for an extremely long period of time are similarly considered not worth the effort for activation logic, as it's assumed that everyone will have updated their code long before the soft fork activates.

Pieter phrased it a bit more humorously in BIP-42:

Given the moderate time frame over which this change is to be implemented, we expect all miners to choose to screw themselves and deploy this change before 2214.If they don't, and a minority remains on the old code base, a fork may occur. Essentially, they'll be mining fool's gold after that time.

This has some tie-ins to my previous analysis of non-backwards compatible changes to Bitcoin client code:

Comments

All Comments

Recommended for you

  • David Sacks: The U.S. government’s premature sale of Bitcoin has cost U.S. taxpayers more than $17 billion

    White House AI and cryptocurrency chief David Sacks posted on social media, "The early sale of Bitcoin by the US government has cost American taxpayers over $17 billion. Now, the federal government will develop a strategy to maximize the value of its Bitcoin holdings."

  • David Sacks: The U.S. government will not acquire other crypto assets for strategic reserves except for confiscated assets

    White House AI and cryptocurrency chief David Sacks posted on social media that President Trump's executive order also established the U.S. Digital Asset Reserve, which includes digital assets other than Bitcoin confiscated in criminal or civil litigation. In addition to assets obtained through confiscation procedures, the government will not acquire other assets for the reserve assets. The purpose of the reserve is to manage government digital assets under the leadership of the Treasury Department.

  • Forbes reporter: Trump's executive order will establish two types of digital asset storage mechanisms

    Forbes reporter Eleanor Terrett wrote on X platform that Trump's executive order will establish two different digital asset storage mechanisms: Bitcoin Strategic Reserve and Digital Asset Reserve. The Bitcoin Strategic Reserve will contain approximately 200,000 BTC obtained through criminal and civil forfeitures, with the government authorized to explore ways to acquire more bitcoin without increasing the taxpayer burden. The Digital Asset Reserve will include other digital assets such as XRP, ADA, ETH, and SOL, but the government will not actively seek to purchase these assets. The executive order also requires a comprehensive audit of all digital assets held by the government. According to David Sacks, the purpose of the reserves is "responsible management of government digital assets by the U.S. Treasury Department."

  • In the past hour, the entire network has liquidated 152 million US dollars, mainly long orders

    Data shows that in the past 1 hour, the entire network has liquidated $152 million, with long positions liquidated $119 million and short positions liquidated $33.3292 million, with the main liquidation being long positions. Among them, ETH liquidated $12.5215 million and BTC liquidated $88.1221 million.

  • August Completes $10 Million Financing, Led by Dragonfly Ventures

    On March 7th, it was reported that the cryptocurrency broker August completed a $10 million financing round, led by Dragonfly Ventures, with participation from Foresight Ventures, Standard Chartered Bank, and 6th Man Ventures. The funds raised will be used to develop marketing strategies, hire more employees, and continue to develop new technologies. August is a brokerage company focused on cryptocurrencies, aiming to connect customers with lending cryptocurrencies and providing derivatives and token trading on the DeFi network, including Aave, Morpho, and Uniswap.

  • Hong Kong SAR Legislative Council Member Wu Jiezhuang: Hong Kong does not have an official currency

    Hong Kong Legislative Councilor Wu Jiezhuang said that Hong Kong does not have an official currency. Some citizens and Web3 practitioners have asked me about someone impersonating the Chief Executive to post on the X platform that they will launch the Hong Kong Coin on the Solana chain (launch of the National Hong Kong Coin). The government has sternly clarified that the information is absolutely false and intentionally deceptive. Please remember to be careful and not to mislead and fall victim to fraud.

  • Trump family’s WLFI project purchased $25 million in WBTC, ETH and MOVE tokens

    According to Arkham monitoring data, the wallet of the Trump family's project World Liberty Fi (WLFI) has just transferred 25 million USDC to an independent contract. The contract then purchased $10 million worth of ETH, $10 million worth of WBTC, and $1.5 million worth of MOVE tokens. After the purchase was completed, these assets were transferred back to WLFI's main wallet. This move is seen as a signal that the Trump project is further entering the cryptocurrency market, although its specific strategic intent is not yet clear.

  • Circle mints another 250 million USDC on Solana

    According to OnchainLens monitoring, Circle has minted an additional 250 million USDC on Solana. As of now, they have minted a total of 9.25 billion USDC on Solana by 2025.

  • US spot Bitcoin ETFs saw a net inflow of $21.7 million yesterday

    According to TraderT monitoring, the net inflow of the US spot Bitcoin ETF was 21.7 million US dollars yesterday.