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

  • The number of first-time unemployment claims in the United States last week was 258,000

    The number of first-time unemployment claims in the United States last week was 258,000, estimated to be 230,000, and the previous value was 225,000.

  • US CPI rose 2.4% year-on-year in September

    The US CPI rose by 2.4% year-on-year in September, with an estimated increase of 2.3% and a previous increase of 2.5%; the US CPI rose by 0.2% month-on-month in September, with an estimated increase of 0.1% and a previous increase of 0.2%.

  • Trump family DeFi project World Liberty Financial raises $300 million at a $1.5 billion valuation

    The Trump family's DeFi project, World Liberty Financial, raised $300 million at a valuation of $1.5 billion.

  • Apex Fusion Completes $6 Million Private Token Funding

    Apex Fusion, the first layer network of the United Multi-Chain, has completed its first private token sale. According to the team, its token ecosystem raised $6 million, with a fully diluted valuation of $180 million. The AF team stated that these funds will be used for marketing and further development of its network composed of Prime, Nexus, and Vector chains. It provides native bridges, interoperability protocols, and developer tools.

  • Web3 gaming ecosystem PiP World raises $10 million in seed funding

    PiP World, a Web3 gaming ecosystem, has secured $10 million in seed funding from fintech company Exinity.

  • ETH breaks through $2,400

    The market shows ETH breaking through $2,400, currently reporting at $2,400.17 with a 24-hour decline of 1.39%. The market is volatile, please be prepared for risk control.

  • BTC breaks through $61,000

    The market shows BTC breaking through $61,000, now reporting at $61,003.05 with a 24-hour drop of 1.96%. The market fluctuation is significant, please exercise caution in risk control.

  • South Korea’s financial regulator may lift the ban on spot cryptocurrency ETFs

    The Block reported that the Financial Services Commission (FSC) of South Korea recently stated that it will re-evaluate the ban on spot cryptocurrency ETFs and institutional accounts trading on cryptocurrency exchanges. This news marks a significant shift in regulatory attitudes towards digital assets. It is reported that the newly established cryptocurrency committee of the FSC will review the current ban. Previously, South Korean lawmakers have been calling for a change in the status quo, and both the ruling Democratic Party and the opposition party promised to approve local spot Bitcoin ETFs in this year's early elections. Since 2018, institutional investors in South Korea have been effectively banned from opening trading accounts on cryptocurrency exchanges. This policy adjustment may open up new channels for institutional investors to participate in the cryptocurrency market. At the same time, FSC Chairman Kim Byung-hwan stated that he will investigate the monopoly structure of South Korean digital asset exchanges. Data shows that among the five exchanges in South Korea that have obtained full licenses, Upbit processed more than 1.17 billion US dollars in trading volume in the past 24 hours, accounting for more than 61% of the market share. In March of this year, its monthly average market share soared to 80%. Legislator Lee Kang-ik also expressed concern about the financial relationship between Upbit and its partner bank K-bank. He pointed out that Upbit's deposits account for 20% of K-bank's total deposits, warning that if the cooperation between the two is interrupted, it may cause a run risk.

  • Cointime August 17th News Express

    1.VanEck and 21Shares Solana ETF Form 19b-4 Suspected to be Removed from CBOE Website

  • MicroStrategy is looking to sell its Class A shares to raise $2 billion to buy more Bitcoin

    MicroStrategy is seeking to sell its Class A shares to raise up to $2 billion to purchase more Bitcoin and for general corporate purposes.In regulatory filings filed with the U.S. SEC, MicroStrategy did not disclose a timetable for stock sales or how much proceeds would be used to purchase Bitcoin.Earlier in June this year, MicroStrategy announced the issuance of $500 million unsecured senior convertible notes to purchase more Bitcoin, and one day later raised the issue price to $700 million.