Hash collision bounties
Hash collision bounties
bitcoin
Peter Todd's P2SH scripts that pay for a collision. SHA-1 fell in 2017.
- Author
- Peter Todd
- Prize recorded
- 3.07465 BTC
- Still unsolved
- 4 · 0.59365 BTC
Census
- claimed
- 233%
- unsolved
- 467%
- public keys
- 00%
- private keys
- 00%
Access
- Load
getCollection("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:
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.