Collections

Hash collision bounties

Peter Todd's P2SH bounties from 2013. Five pay for a hash collision and one for an OP_ABS quirk. SHA-1 fell in 2017 and was spent in 2023. Four still stand.
IDhash-collision12 / 276 puzzles · 2013-09-13
Collection

Hash collision bounties

bitcoin

Peter Todd's P2SH scripts that pay for a collision. SHA-1 fell in 2017.

Prize recorded
3.07465 BTC
Still unsolved
4 · 0.59365 BTC
closed 2 / 6

Census

claimed
233%
unsolved
467%
public keys
00%
private keys
00%

Access

LoadgetCollection("hash-collision")
Showhash-collision/sha1 in the playground
Listall 6 in the playground

The puzzle

In September 2013 Peter Todd funded six P2SH addresses. Five pay out to anyone with a hash collision: two different preimages, same value under SHA-1, SHA-256, RIPEMD-160, HASH160 or HASH256. The sixth pays for an OP_ABS quirk, no collision needed. It's a bounty on the hash function itself. The prize sits on chain where anyone can top it up, and people did.

SHA-1 fell in 2017, when the SHAttered collision was published. The bounty was spent in 2023, and the record dates the claim to that transaction. The other four hash bounties are still funded. Nobody has a SHA-256 collision. And if you have one, there's a faster way to make money than 0.28 BTC.

What the records carry

These are the only p2sh records in the dataset, and the only ones with a redeem script:

tssrc/collections/hash-collision/sha1.ts
export const hashCollisionPuzzleSha1 = bitcoinPuzzle({
  id: "hash-collision/sha1",
  address: p2sh(
    "37k7toV1Nv4DfmQbmZ8KuZDQCYK9x5KpzP",
    "4266fc6f2c2861d7fe229b279a79803afca7ba34",
    redeemScript("4266fc6f2c2861d7fe229b279a79803afca7ba34", "6e879169a77ca787"),
  ),
  sourceUrl: "https://bitcointalk.org/index.php?topic=293382.0",
  startedAt: "2013-09-13 04:48:29",
  status: Status.Claimed,
  prize: 2.48,
  solvedAt: "2023-02-22 23:00:49",
  transactions: [
    funding("09de…8a83", "2013-09-13 04:48:29", 0.01),
    claim("9ec2…14e0", "2023-02-22 23:00:49", 0.000096),
  ],
});

6e879169a77ca787 is OP_2DUP OP_EQUAL OP_NOT OP_VERIFY OP_SHA1 OP_SWAP OP_SHA1 OP_EQUAL. Two inputs, not equal to each other, equal after SHA-1. There's no private key to publish, so hasPrivateKey() is false on all six and verify answers unavailable. A public key isn't a thing here either. A P2SH address exposes a script, not a key, and the data gate exempts this collection from the rule that a claimed puzzle needs one.

Status

claimed, not solved, for SHA-1 and OP_ABS. A collision isn't a key anyone could post to the thread. peter_todd is an alias for this collection, from the days the dataset was keyed by author.

Every puzzle

One page each: the record, the transactions and the live balance.

Listhash-collision.all()6 puzzles · 2 claimed · 4 unsolved
  1. sha1 claimed2.48 BTC37k7toV1Nv4Dfm…K9x5KpzP
  2. sha256 unsolved0.277343 BTC35Snmmy3uhaer2…4m9DT4ko
  3. ripemd160 unsolved0.115769 BTC3KyiQEGqqdb4nq…mQsLNpay
  4. hash160 unsolved0.100269 BTC39VXyuoc6SXYKp…ns6z3Yu6
  5. hash256 unsolved0.100269 BTC3DUQQvz4t57Jy7…tURNf1VW
  6. op-abs claimed0.001 BTC3QsT6Sast6ghfs…2qTfDgHV
every name is a page · the key marks a known private keylocal dataset / no network