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

  • Chinese Police Dismantle $1.9B Smuggling Ring Using USDT Stablecoin

    Chinese police have dismantled a large-scale underground banking scheme involved in smuggling operations valued at $1.9 billion. The illicit network used Tether's stablecoin USDT to facilitate the smuggling of pharmaceuticals, cosmetics, and the purchase of prohibited goods overseas. The crackdown coincides with China's nationwide observance of "May 15" Publicity Day for Combating and Preventing Economic Crimes. Police have arrested 193 suspects nationwide, including ring leaders Lin, Weng, Chen, and other unnamed individuals.

  • NYC-based Prediction Market Polymarket Raises $70M in Funding to Expand Operations and Development Efforts

    NYC-based prediction market, Polymarket, has secured $70 million in funding from investors including Founders Fund, 1confirmation, ParaFi, Vitalik Buterin, Dragonfly, and Kevin Hartz. The funds will be used to expand operations and development efforts. Polymarket, founded by Shayne Coplan, allows traders to predict the outcome of future events and react to breaking news in real-time, with market prices conveying the likelihood of important events. The platform has already seen a record $202 million worth of predictions made in 2024 across politics, current events, pop culture, and more.

  • Philippines central bank approves peso stablecoin pilot

    The Philippines central bank has authorized Coins.ph to initiate a pilot program for a new Philippine Peso-backed stablecoin, PHPC, under its Regulatory Sandbox Framework. This pilot aims to integrate PHPC into significant remittance channels to enhance the efficiency of transactions within the substantial Philippine remittance market. Coins.ph plans to launch the stablecoin by early June, following comprehensive real-world application testing to potentially achieve full regulatory approval.

  • The Sonne Finance hacker address has exchanged 56 WBTC into about 1,185 ETH

    According to PeckShield's monitoring, Sonne Finance hacker address 0x6277...4c07 has exchanged 56 WBTC for approximately 1,185 ETH and 3 WBTC for 183,000 DAI.

  • ECB Governing Council: We are likely to start cutting interest rates in June

    ECB committee member Villeroy stated that it is very likely that we will begin cutting interest rates in June.

  • Former FTX executive Ryan Salame asks court for leniency, sentences him to 18 months in prison

    According to a sentencing memorandum submitted on Tuesday, former FTX executive Ryan Salame pleaded guilty in September of last year to conspiring to make illegal political contributions and conspiring to operate an unlicensed money transmission business. His lawyer requested leniency from the court and for him to serve an 18-month sentence. While working at FTX and Alameda, Salame managed wire deposits and fiat currency exchanges for FTX clients, used Alameda funds to make political contributions, and led charity efforts in the Bahamas.

  • Hong Kong police arrested a 1 million USDT fraud gang and seized 3,000 ghost coins

    According to a report from Sing Tao Daily, Hong Kong police received a report from a 35-year-old man on April 12th, claiming that he was unable to recover cash after reselling approximately 1 million yuan worth of virtual currency USDT in a shop in Tsim Sha Tsui and suspected that he had been deceived.After an investigation by the Technology and Wealth Crime Group of the Yau Tsim Police District, the police launched an operation in multiple areas of Hong Kong on May 13th and arrested three local men aged between 31 and 34 years old, who were suspected of obtaining property by deception.The police found 3,000 fake banknotes, a money clip and a counting machine in the shop. The investigation showed that the arrested men showed the victim fake banknotes and asked him to transfer virtual currency to a designated wallet, and then refused to hand over the cash for various reasons, resulting in the victim losing approximately 1 million yuan worth of virtual currency.

  • Yesterday, Tether issued $110 million USDT and redeemed $23 million USDT

    According to ChainArgos monitoring, on May 14th, Tether issued a total of 110 million USDT and redeemed 23 million USDT.

  • Cointime May 12 News Express

    1.The number of Bittensor subnets for the AI ​​project will increase to 64, and 1024 subnets will be achieved this year2.Trader predicts Bitcoin price will reach $350,0003.vladilena.eth redeemed 1930 weETH from Zircult, suspected of selling4.Solana’s on-chain DEX transaction volume yesterday exceeded the sum of five chains including Ethereum, BSC, and Arbitrum5.RSS3 VSL locked-in amount surged in the past two days and is close to 200 million US dollars 6.The transaction volume of Club Key on friend.tech platform exceeded 1 million7.Lido has paid out more than 516,000 ETH in staking rewards, equivalent to approximately $1.51 billion8.1,000 BTC transferred from TronDAO to an unknown new wallet9.Report: Justin Sun deposited 120,000 eETH into Swell L2, worth $376 million10.1707.36 BTC have flowed out of Binance in the past 7 days

  • Bitcoin opens $63K futures gap as thin liquidity threatens BTC price

    Bitcoin market participants are doubting the staying power of the ongoing BTC price relief bounce.