Collections

Bitimage

Corey Phillips turned photographs into seeds in 2019. The kitten fell in a week. The second image needs a passphrase nobody has posted.
IDbitimage06 / 512 puzzles · 2019-06-28 → 2019-07-03
Collection

Bitimage

bitcoin

Seeds hashed out of photographs. One solved, one waits on a passphrase.

Prize recorded
0.01097033 BTC
Still unsolved
1 · 0.010019 BTC
closed 1 / 2

Census

solved
150%
unsolved
150%
public keys
150%
private keys
00%

Access

LoadgetCollection("bitimage")
Showbitimage/kitten in the playground
Listall 2 in the playground

The puzzle

Corey Phillips wrote a three part series on turning a photo into a private key. Hash the image bytes, use the hash as BIP39 entropy, derive along m/84'/0'/0'/0/0. Then he funded two addresses from two images and posted them. The first image was Andreas Antonopoulos's kitten tweet. Solved in six days. The second adds a BIP39 passphrase on top of the image hash, and it's still open.

What the records carry

This is the collection that exercises the entropy part of the key builder. The kitten record has a derivation path, no phrase, and an entropy block with the hash and where it came from:

tssrc/collections/bitimage/kitten.ts
export const bitimagePuzzleKitten = puzzle({
  id: "bitimage/kitten",
  chain: "bitcoin",
  address: "bc1q57euh23y3qs2f9d5mtwpax5lqecfvrdkqce82a",
  sourceUrl: "https://corey-lyle-phillips.medium.com/…",
  startedAt: "2019-07-03 02:48:04",
  status: Status.Solved,
  pubkey: compressed("021209b131dfbd1efcfe15b1d1e92002653f5fc98e9ff6cb73a0d70153dbe58463"),
  key: derivation("m/84'/0'/0'/0/0").entropy(
    "1808d35318ac7cb98b69ff9779b699d6a631f15e0b353ac89b7c4020774832ed",
    source(
      "https://twitter.com/aantonop/status/603701870482300928",
      "Antonopoulos kitten tweet (May 2015)",
    ),
  ),
  prize: 0.00095133,
  solvedAt: "2019-07-09 21:26:12",
  assets: assets({
    puzzle: "kitten/puzzle.jpg",
    sourceUrl: "https://twitter.com/aantonop/status/603701870482300928",
  }),
});

A path and an entropy hash aren't a secret in the library's sense. secretOf wants a phrase, so hasPrivateKey() is false here and verify answers unavailable. The hash is the puzzle's statement of what the seed was built from, kept for whoever wants to reproduce the derivation. The second record marks its passphrase as Required instead of inventing one.

Status

One solved, one open. The open one is bitimage/kitten-passphrase, 0.01 BTC, and the image is in assets/bitimage/.

Every puzzle

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

Listbitimage.all()2 puzzles · 1 solved · 1 unsolved
  1. kitten solved0.00095133 BTCbc1q57euh23y3q…dkqce82a
  2. kitten-passphrase unsolved0.010019 BTCbc1qcyrndzgy03…wgt0246r
every name is a page · the key marks a known private keylocal dataset / no network