Collections

Bitaps mnemonic challenge

One SegWit address behind a 3 of 5 Shamir secret sharing scheme. Two shares and the extended public key are published. One bitcoin and change since 2020.
load
getCollection("bitaps")
puzzles
1 · 1 unsolved
prize recorded
1.00016404 BTC
still unsolved
1.00016404 BTC
known material
1 public keys · 0 private keys
bitcoinstarted 2020-06-19 open bitaps in the playground

The puzzle

Bitaps split a mnemonic into five shares with a threshold of three. They published two of them and the account's zpub, and put a bitcoin on the first receiving address. Three shares recover the seed. Two don't, by construction. So the challenge is a statement about the scheme as much as a bounty: you can't get there from what's public.

What the records carry

The one record in the collection is the only one with shares on it:

src/collections/bitaps.ts
export const bitapsPuzzle = bitcoinPuzzle({
  id: "bitaps",
  address: p2wpkh(
    "bc1qyjwa0tf0en4x09magpuwmt2smpsrlaxwn85lh6",
    "249dd7ad2fccea67977d4078edad50d8603ff4ce",
  ),
  sourceUrl: "https://bitaps.com/mnemonic/challenge",
  startedAt: "2020-06-19 13:24:41",
  pubkey: compressed("0385a3a591451ed7ed6c90dae882db918107d6f906d270cf4728d168126e0e89aa"),
  key: derivation("m/84'/0'/0'/0/0")
    .xpub(
      "zpub6qdEDkv51FpxX6g1rpFGckmiL46vV8ccmtEgPAkj3qj8N4ZZHyXDRA9RwpTiFK2Kb8vRaDmSmwgX6rfB4t2K8Ktdq8ExQ6fumKpn2ndJCqL",
    )
    .shares(3, 5, [
      share(1, "session cigar grape merry useful churn fatal thought very any arm unaware"),
      share(
        2,
        "clock fresh security field caution effort gorilla speed plastic common tomato echo",
      ),
    ]),
  prize: 1.00016404,
  transactions: [
    funding("a24e…25e6", "2020-06-19 13:24:41", 1),
    increase("bb0b…f167", "2021-11-29 12:20:03", 0.00008781),
    increase("fe3f…c14d", "2022-02-05 20:43:56", 0.00002403),
    increase("910c…b272", "2022-10-13 00:48:34", 0.0000522),
  ],
});

The public key is known because the zpub gives it. The private key isn't. A path plus an xpub is no secret, so hasPrivateKey() says false. The three top-ups since 2020 are on the record as increase transactions. That's why the prize has change on the end.

Status

Open, and a singleton. The id is bitaps, bitaps.get() takes no argument, and get("bitaps") at the top level finds it too.

The record

The one puzzle in this collection, the way its page shows it.

bitaps unsolved bitcoin Bitaps mnemonic challenge
prize
1.00016404 BTC
key material
none published
public key
compressed · 0385a3a591…6e0e89aa
started
2020-06-19
solved
not yet
verification
puzzle has no private key

address · p2wpkh

bc1qyjwa0tf0en4x09magpuwmt2smpsrlaxwn85lh6 blockstream.info

hash160 249dd7ad2fccea67977d4078edad50d8603ff4ce

balance

asking the explorer

key material · on the record

derivation path
m/84'/0'/0'/0/0
extended public key
zpub6qdEDkv51FpxX6g1rpFGckmiL46vV8ccmtEgPAkj3qj8N4ZZHyXDRA9RwpTiFK2Kb8vRaDmSmwgX6rfB4t2K8Ktdq8ExQ6fumKpn2ndJCqL
secret sharing
3 of 5 shares, 2 published
share 1
session cigar grape merry useful churn fatal thought very any arm unaware
share 2
clock fresh security field caution effort gorilla speed plastic common tomato echo

transactions · 4

  1. funding2020-06-191 BTC
  2. increase2021-11-290.00008781 BTC
  3. increase2022-02-050.00002403 BTC
  4. increase2022-10-130.0000522 BTC

toolpuzzles_show

what a model reads · MCP · Pi · OMP

bitaps	unsolved	1.00016404 BTC	bc1qyjwa0tf0en4x09magpuwmt2smpsrlaxwn85lh6
chain: bitcoin  address kind: p2wpkh
public key: 0385a3a591451ed7ed6c90dae882db918107d6f906d270cf4728d168126e0e89aa
private key known: no
explorer: https://blockstream.info/address/bc1qyjwa0tf0en4x09magpuwmt2smpsrlaxwn85lh6
source: https://bitaps.com/mnemonic/challenge
puzzle.toJSON() absent fields are absent, never null
{
  "id": "bitaps",
  "chain": "bitcoin",
  "address": {
    "value": "bc1qyjwa0tf0en4x09magpuwmt2smpsrlaxwn85lh6",
    "kind": "p2wpkh",
    "hash160": "249dd7ad2fccea67977d4078edad50d8603ff4ce"
  },
  "status": "unsolved",
  "pubkey": {
    "value": "0385a3a591451ed7ed6c90dae882db918107d6f906d270cf4728d168126e0e89aa",
    "format": "compressed"
  },
  "key": {
    "seed": {
      "path": "m/84'/0'/0'/0/0",
      "xpub": "zpub6qdEDkv51FpxX6g1rpFGckmiL46vV8ccmtEgPAkj3qj8N4ZZHyXDRA9RwpTiFK2Kb8vRaDmSmwgX6rfB4t2K8Ktdq8ExQ6fumKpn2ndJCqL"
    },
    "shares": {
      "threshold": 3,
      "total": 5,
      "shares": [
        {
          "index": 1,
          "data": "session cigar grape merry useful churn fatal thought very any arm unaware"
        },
        {
          "index": 2,
          "data": "clock fresh security field caution effort gorilla speed plastic common tomato echo"
        }
      ]
    }
  },
  "prize": 1.00016404,
  "start_date": "2020-06-19 13:24:41",
  "source_url": "https://bitaps.com/mnemonic/challenge",
  "transactions": [
    {
      "tx_type": "funding",
      "txid": "a24e37411d1860c51a71a2f0c2bb1561ed40c7d8bb724f5faa3dfcb0a99925e6",
      "date": "2020-06-19 13:24:41",
      "amount": 1
    },
    {
      "tx_type": "increase",
      "txid": "bb0b6c3198c7274469b68fd5e2a5031dd31ce4c82a0aa2688f76c53d7cc8f167",
      "date": "2021-11-29 12:20:03",
      "amount": 0.00008781
    },
    {
      "tx_type": "increase",
      "txid": "fe3f6d1f4536bbea7a84c8b5947caf407d69e0740c789277272a185c402ec14d",
      "date": "2022-02-05 20:43:56",
      "amount": 0.00002403
    },
    {
      "tx_type": "increase",
      "txid": "910c4c6af9bd8790645de7827ef33aa9a750b89b0353c749d1edbd5925a1b272",
      "date": "2022-10-13 00:48:34",
      "amount": 0.0000522
    }
  ]
}

@agntn/puzzles·MIT license· Public data about public puzzles. Balances come from the chains' explorers through the worker, cached for five minutes. Every key here was public before it landed in a record.