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.
IDbitaps05 / 511 puzzle · 2020-06-19
Collection

Bitaps mnemonic challenge

bitcoin

A 3 of 5 secret sharing scheme with two shares published.

Author
Bitaps
Prize recorded
1.00016775 BTC
Still unsolved
1 · 1.00016775 BTC
closed 0 / 1

Census

unsolved
1100%
public keys
1100%
private keys
00%

Access

LoadgetCollection("bitaps")
Showbitaps 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:

tssrc/collections/bitaps.ts
export const bitapsPuzzle = puzzle({
  id: "bitaps",
  chain: "bitcoin",
  address: "bc1qyjwa0tf0en4x09magpuwmt2smpsrlaxwn85lh6",
  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.00016775,
  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),
    increase("c617…3419", "2026-02-01 14:34:35", 0.00000371),
  ],
});

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 four 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.

IDbitaps2020-06-19
Puzzle / bitaps

bitcoinp2wpkh unsolved

Record

puzzle({
  chain: "bitcoin",
  address: "bc1qyjwa0tf0…xwn85lh6",
  key: derivation("m/84'/0'/0'/0/0").xpub("zpub6qdEDkv5…n2ndJCqL").shares(3, 5, [share(1, "session ciga… unaware"), share(2, "clock fresh …ato echo")]),
})
Prize
1.00016775 BTC
Key material
none published
Verification
unverifiable
Solved
not yet
tx 5
Trail
Explorerblockstream.info
Sourcebitaps.com/mnemonic/challenge
Trybitaps in the playground
Address
bc1qyjwa0tf0en4x09magpuwmt2smpsrlaxwn85lh6

hash160 249dd7ad2fccea67977d4078edad50d8603ff4ce

Balance
asking the explorer

Key

public key · compressed
0385a3a591451ed7ed6c90dae882db918107d6f906d270cf4728d168126e0e89aa
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

  1. funding2020-06-191 BTCa24e37411d…9925e6
  2. increase2021-11-290.00008781 BTCbb0b6c3198…c8f167
  3. increase2022-02-050.00002403 BTCfe3f6d1f45…2ec14d
  4. increase2022-10-130.0000522 BTC910c4c6af9…a1b272
  5. increase2026-02-010.00000371 BTCc6178e5541…943419

Techniques

  1. shamir-sharespuzzlebitaps.com/mnemonic/challenge
local record / balance from the explorer