Bitcoin Forum

Other => Off-topic => Topic started by: casascius on July 14, 2011, 06:34:46 PM



Title: [CLAIMED!] Bounty: 0.25 BTC. Find the Bitcoins hidden in plain sight.
Post by: casascius on July 14, 2011, 06:34:46 PM
"This string contains 0.25 BTC hiding in plain sight."

Whoever can first figure out how I have hidden the 0.25 BTC gets it.  The 0.25 BTC are waiting for you at 1AJ3vE2NNYW2Jzv3fLwyjKF1LYbZ65Ez64 (just sent it now).


Title: Re: Bounty: 0.25 BTC. Find the Bitcoins hidden in plain sight.
Post by: Anonymous on July 14, 2011, 06:39:24 PM
"This string contains 0.25 BTC hiding in plain sight."

Found it.


Title: Re: Bounty: 0.25 BTC. Find the Bitcoins hidden in plain sight.
Post by: Bitcoin Swami on July 14, 2011, 06:40:29 PM
"This string contains 0.25 BTC hiding in plain sight."

Whoever can first figure out how I have hidden the 0.25 BTC gets it.  The 0.25 BTC are waiting for you at 1AJ3vE2NNYW2Jzv3fLwyjKF1LYbZ65Ez64 (just sent it now).

Do I have to be super geeky to figure this out?


Title: Re: Bounty: 0.25 BTC. Find the Bitcoins hidden in plain sight.
Post by: casascius on July 14, 2011, 06:40:39 PM
"This string contains 0.25 BTC hiding in plain sight."

Found it.

LOL.  But I mean 0.25 BTC you can actually spend, not the occurrence of the substring "0.25 BTC" in the string. http://blockexplorer.com/address/1AJ3vE2NNYW2Jzv3fLwyjKF1LYbZ65Ez64


Title: Re: Bounty: 0.25 BTC. Find the Bitcoins hidden in plain sight.
Post by: Atom on July 14, 2011, 06:40:49 PM
Normal Text: This string contains 0.25 BTC hiding in plain sight.
Md5 Hash: 8a8da79b8a574ae0c474f82d97c0b222


Title: Re: Bounty: 0.25 BTC. Find the Bitcoins hidden in plain sight.
Post by: Anonymous on July 14, 2011, 06:41:27 PM
"This string contains 0.25 BTC hiding in plain sight."

Found it.

LOL.  But I mean 0.25 BTC you can actually spend, not the occurrence of the substring "0.25 BTC" in the string.

Well if you sent it to me I could spend it, couldn't I?


Title: Re: Bounty: 0.25 BTC. Find the Bitcoins hidden in plain sight.
Post by: casascius on July 14, 2011, 06:42:21 PM
"This string contains 0.25 BTC hiding in plain sight."

Found it.

LOL.  But I mean 0.25 BTC you can actually spend, not the occurrence of the substring "0.25 BTC" in the string.

Well if you sent it to me I could spend it, couldn't I?

If you find it you will be able to send it to yourself.


Title: Re: Bounty: 0.25 BTC. Find the Bitcoins hidden in plain sight.
Post by: bencoder on July 14, 2011, 07:06:07 PM
Given that it is a specific address, it would indicate that the solution will eventually resolve into either a wallet.dat or a private key (and given casascius's service, I'd guess that the solution is a private key) and isn't the login to an online wallet, as those can't guarantee sending from a specific address.

The string is very short and generic, and so it seems a little unlikely that the private key somehow is encoded into it. A private key is 256 bits and the string (assuming casascius is only looking for a-z,A-Z,0-9, period, comma, space, even including the quotes, gives a total of 66 symbols, or ~6 bits per character) has a total of 324 bits... That really doesn't include enough to hide it stego-style in such a pretty sentence.

Given that this is ruled out, its probably more likely to be a logic or lateral puzzle. plain site... site, website... somewhere on his website, view source, ctrl-f, plain.htm, plain.html.

I think I'll give up, never very good at these things.


Title: Re: Bounty: 0.25 BTC. Find the Bitcoins hidden in plain sight.
Post by: julz on July 14, 2011, 07:17:59 PM
Can it currently be retrieved without linux?


Title: Re: Bounty: 0.25 BTC. Find the Bitcoins hidden in plain sight.
Post by: JoelKatz on July 14, 2011, 07:21:21 PM
I bet the SHA-256 of that message is the private key needed to claim the bounty.


Title: Re: Bounty: 0.25 BTC. Find the Bitcoins hidden in plain sight.
Post by: SgtSpike on July 14, 2011, 07:24:06 PM
I bet the SHA-256 of that message is the private key needed to claim the bounty.
Doesn't look like a private key to me...

47510706d76bc74a5d57bdcffc68c9bbbc2d496bef87c91de7f616129ac62b5f

Lots of 5's in there though... maybe it starts at a midpoint and goes to whatever characters are necessary for a private key?


Title: Re: Bounty: 0.25 BTC. Find the Bitcoins hidden in plain sight.
Post by: JoelKatz on July 14, 2011, 07:27:12 PM
I bet the SHA-256 of that message is the private key needed to claim the bounty.
Doesn't look like a private key to me...

47510706d76bc74a5d57bdcffc68c9bbbc2d496bef87c91de7f616129ac62b5f

Lots of 5's in there though... maybe it starts at a midpoint and goes to whatever characters are necessary for a private key?
Every 256-bit value is a valid private key.


Title: Re: Bounty: 0.25 BTC. Find the Bitcoins hidden in plain sight.
Post by: SgtSpike on July 14, 2011, 07:28:24 PM
I bet the SHA-256 of that message is the private key needed to claim the bounty.
Doesn't look like a private key to me...

47510706d76bc74a5d57bdcffc68c9bbbc2d496bef87c91de7f616129ac62b5f

Lots of 5's in there though... maybe it starts at a midpoint and goes to whatever characters are necessary for a private key?
Every 256-bit value is a valid private key.
So starting with 5 is just because the PK is generated by the client then?


Title: Re: Bounty: 0.25 BTC. Find the Bitcoins hidden in plain sight.
Post by: mmdough on July 14, 2011, 07:28:37 PM
"This string contains 0.25 BTC hiding in plain sight."

Which string?


Title: Re: Bounty: 0.25 BTC. Find the Bitcoins hidden in plain sight.
Post by: SgtSpike on July 14, 2011, 07:29:29 PM
"This string contains 0.25 BTC hiding in plain sight."

Which string?
The encapsulated one.


Title: Re: Bounty: 0.25 BTC. Find the Bitcoins hidden in plain sight.
Post by: GeniuSxBoY on July 14, 2011, 07:32:39 PM
Quote
1AJ3vE2NNYW2Jzv3fLwyjKF1LYbZ65Ez64



Found them!


Title: Re: Bounty: 0.25 BTC. Find the Bitcoins hidden in plain sight.
Post by: mmdough on July 14, 2011, 07:34:58 PM
"This string contains 0.25 BTC hiding in plain sight."

Which string?
The encapsulated one.

That's implied but not stated.


Title: Re: Bounty: 0.25 BTC. Find the Bitcoins hidden in plain sight.
Post by: SgtSpike on July 14, 2011, 07:36:24 PM
"This string contains 0.25 BTC hiding in plain sight."

Which string?
The encapsulated one.

That's implied but not stated.
I doubt it's a trick question... but go off on that tangent if you want.  ;)


Title: Re: Bounty: 0.25 BTC. Find the Bitcoins hidden in plain sight.
Post by: Atom on July 14, 2011, 07:38:00 PM
Quote
1AJ3vE2NNYW2Jzv3fLwyjKF1LYbZ65Ez64



Found them!
How?


Title: Re: Bounty: 0.25 BTC. Find the Bitcoins hidden in plain sight.
Post by: SgtSpike on July 14, 2011, 07:39:28 PM
Quote
1AJ3vE2NNYW2Jzv3fLwyjKF1LYbZ65Ez64



Found them!
How?
He didn't.  He's just saying that they're in the BTC address above, so he found them.


Title: Re: Bounty: 0.25 BTC. Find the Bitcoins hidden in plain sight.
Post by: mmdough on July 14, 2011, 07:39:46 PM
"This string contains 0.25 BTC hiding in plain sight."

Which string?
The encapsulated one.

That's implied but not stated.
I doubt it's a trick question... but go off on that tangent if you want.  ;)

That's my MO. I start with the liar's paradox as an axiom and go from there.

It makes politics more interesting, I'll tell you that.


Title: Re: Bounty: 0.25 BTC. Find the Bitcoins hidden in plain sight.
Post by: GeniuSxBoY on July 14, 2011, 07:40:52 PM
They're in plain sight.


He told us where they were.


Yet they're hidden behind the address.


and he pointed out that he already sent them so he wouldn't be able to say they weren't there yet.


Title: Re: Bounty: 0.25 BTC. Find the Bitcoins hidden in plain sight.
Post by: casascius on July 14, 2011, 07:42:02 PM
When they are "found" in the proper sense of the word, you should see them spent on the block explorer into the winner's wallet.  This spend will have been done by the winner, not by me.


Title: Re: Bounty: 0.25 BTC. Find the Bitcoins hidden in plain sight.
Post by: GeniuSxBoY on July 14, 2011, 07:42:54 PM
...


Title: Re: Bounty: 0.25 BTC. Find the Bitcoins hidden in plain sight.
Post by: mmdough on July 14, 2011, 07:43:57 PM

If you find it you will be able to send it to yourself.


Implies that unless you can get at that address, you haven't found 'em yet.

When they are "found" in the proper sense of the word, you should see them spent on the block explorer into the winner's wallet.  This spend will have been done by the winner, not by me.

It's not a riddle in the sense that he wants you to answer-- it's a race to grab the coins.

BUT HOW


Title: Re: Bounty: 0.25 BTC. Find the Bitcoins hidden in plain sight.
Post by: AtlasONo on July 14, 2011, 07:44:41 PM
Plain site is an e-wallet


Title: Re: Bounty: 0.25 BTC. Find the Bitcoins hidden in plain sight.
Post by: SgtSpike on July 14, 2011, 07:47:57 PM
I bet the SHA-256 of that message is the private key needed to claim the bounty.
Doesn't look like a private key to me...

47510706d76bc74a5d57bdcffc68c9bbbc2d496bef87c91de7f616129ac62b5f

Lots of 5's in there though... maybe it starts at a midpoint and goes to whatever characters are necessary for a private key?
Every 256-bit value is a valid private key.
I tried importing it, and the python script I am using says "Bad private key".


Title: Re: Bounty: 0.25 BTC. Find the Bitcoins hidden in plain sight.
Post by: AtlasONo on July 14, 2011, 07:51:12 PM
I know what it is but i don't know the specifics of what I have o do


Title: Re: Bounty: 0.25 BTC. Find the Bitcoins hidden in plain sight.
Post by: mmdough on July 14, 2011, 07:51:48 PM
I'll bet you anything the e-wallet is a spruce code somewhere.

Well, I'll bet you .25 BTC that it is.

No, wait, I won't.


Title: Re: Bounty: 0.25 BTC. Find the Bitcoins hidden in plain sight.
Post by: JoelKatz on July 14, 2011, 07:54:00 PM
I bet the SHA-256 of that message is the private key needed to claim the bounty.
Doesn't look like a private key to me...

47510706d76bc74a5d57bdcffc68c9bbbc2d496bef87c91de7f616129ac62b5f

Lots of 5's in there though... maybe it starts at a midpoint and goes to whatever characters are necessary for a private key?
Every 256-bit value is a valid private key.
I tried importing it, and the python script I am using says "Bad private key".
Your scripts expects the key to be encapsulated in an X.509 DER object, including the particular type of key it is and so on. It was not designed to import the raw private key data.


Title: Re: Bounty: 0.25 BTC. Find the Bitcoins hidden in plain sight.
Post by: cuddlefish on July 14, 2011, 08:04:03 PM
protip: It's a deterministic wallet, we have our seed here, now figure out the PRNG

or it may be an encoded private key, sha256, so single-seed no nonce.


Title: Re: Bounty: 0.25 BTC. Find the Bitcoins hidden in plain sight.
Post by: gentakin on July 14, 2011, 08:08:02 PM
Your scripts expects the key to be encapsulated in an X.509 DER object, including the particular type of key it is and so on. It was not designed to import the raw private key data.

Code:
$ ./pywallet.py 
A mandatory option is missing

Usage: pywallet.py [options]
[..]
  --importprivkey=KEY  import private key from vanitygen

(vanitygen seems to output base58-encoded privkeys)

Code:
$ ./pywallet.py --importprivkey=9MYaow1fLJHwaYgZVs6fLeALpTWuZY4zTA2NfFz8eMNQAiGQmzqeaHAYstXQ81vgVc
Bad private key

So I probably got the hash wrong. I used an online sha256 tool, copied that sentence into the form field, got the hash in base64, then converted base64 to hex using another online tool, then used a copy-pasted python script to create this base58 key. It was worth a try. :D


Title: Re: Bounty: 0.25 BTC. Find the Bitcoins hidden in plain sight.
Post by: julz on July 14, 2011, 08:16:19 PM
I think I'm gonna have to give up.  I can't find a website that imports private keys - and bitcoind crashes on my one working linux box.

Someone try importing TssgcsBChginpnst

Just a guess!


Title: Re: Bounty: 0.25 BTC. Find the Bitcoins hidden in plain sight.
Post by: BitcoinPorn on July 14, 2011, 08:34:06 PM
I need the programs and intelligence from this thread http://forum.bitcoin.org/index.php?topic=23081.0

Someone read that and got splitsies with me when you get it.


Title: Re: Bounty: 0.25 BTC. Find the Bitcoins hidden in plain sight.
Post by: mmdough on July 14, 2011, 08:40:08 PM
How does one import a private key anyway? Do I need a new version of the client? I have an old one, I believe.


Title: Re: Bounty: 0.25 BTC. Find the Bitcoins hidden in plain sight.
Post by: BitcoinPorn on July 14, 2011, 08:43:59 PM
How does one import a private key anyway? Do I need a new version of the client? I have an old one, I believe.
It's as easy as...
Code:
#!/bin/bash 

base58=({1..9} {A..H} {J..N} {P..Z} {a..k} {m..z})
bitcoinregex="^[$(printf "%s" "${base58}")]{34}$"

decodeBase58() {
    local s=$1
    for i in {0..57}
    do s="${s//${base58}/ $i}"
    done
    dc <<< "16o0d${s// /+58*}+f"
}

encodeBase58() {
    # 58 = 0x3A
    bc <<<"ibase=16; n=${1^^}; while(n>0) { n%3A ; n/=3A }" |
    tac |
    while read n
    do echo -n ${base58[n]}
    done
}

checksum() {
    xxd -p -r <<<"$1" |
    openssl dgst -sha256 -binary |
    openssl dgst -sha256 -binary |
    xxd -p -c 80 |
    head -c 8
}

checkBitcoinAddress() {
    if [[ "$1" =~ $bitcoinregex ]]
    then
        h=$(decodeBase58 "$1")
        checksum "00${h::${#h}-8}" |
        grep -qi "^${h: -8}$"
    else return 2
    fi
}

hash160() {
    openssl dgst -sha256 -binary |
    openssl dgst -rmd160 -binary |
    xxd -p -c 80
}

hash160ToAddress() {
    printf "%34s\n" "$(encodeBase58 "00$1$(checksum "00$1")")" |
    sed "y/ /1/"
}

hash256ToAddress() {
#printf "80$1$(checksum "80$1")"
    printf "%34s\n" "$(encodeBase58 "80$1$(checksum "80$1")")" |
    sed "y/ /1/"
}

publicKeyToAddress() {
    hash160ToAddress $(
    openssl ec -pubin -pubout -outform DER |
    tail -c 65 |
    hash160
    )
}

privateKeyToWIF() {
    hash256ToAddress $(openssl ec -text -noout -in data.pem | head -5 | tail -3 | fmt -120 | sed 's/[: ]//g')
   
}

openssl  ecparam -genkey -name secp256k1 | tee data.pem &>/dev/null

sleep 3

echo " "
echo "BITCOINS OFF-THE-GRID (BOTG) : A VERY SECURE SAVINGS ACCOUNT!"
echo " "
echo "THE FOLLOWING WILL BE THE PRIVATE HEX KEY NEEDED TO ACCESS YOUR BITCOINS!"
echo "***RECORD THIS NUMBER CAREFULLY*** IT CONTAINS NUMBERS 0-9 AND LETTERS A-F."
echo "THIS WILL HELP SO YOU DON'T ACCIDENTALLY CONFUSE SIMILAR LOOKING DIGITS LATER ON!"
echo "KEEP THIS HEX KEY SAFE. HIDE IT AND/OR LOCK IT UP SOMEWHERE."
echo "IT IS THE ONLY WAY TO ACCESS THE BTC IN THE FUTURE. WHOEVER HAS THAT HEX KEY"
echo "CAN SPEND YOUR MONEY. RECORD THE WHOLE LINE AFTER 'read EC key' "
echo " "
echo "ONLY USE THIS HEX KEY AND ADDRESS IF THIS SCRIPT WAS RUN OFF OF A LIVE CD WITH"
echo "NO INTERNET CONNECTION. REBOOT COMPUTER WHEN DONE TO CLEAR RAM."
echo "DO NOT COPY THIS HEX KEY ANYWHERE ONTO A COMPUTER."
echo " "



openssl ec -text -noout -in data.pem | head -5 | tail -3 | fmt -120 | sed 's/[: ]//g'
privateKeyToWIF

sleep 2

echo " "
echo "THE FOLLOWING IS THE BITCOIN ADDRESS YOU CAN SEND YOUR SAVINGS TO."
echo "RECORD THE ADDRESS CAREFULLY. IT IS NOT CRITICAL YOU KEEP THIS ADDRESS"
echo "SECRET. THE HEX CODE AND THE WALLET-IMPORT-KEYCODE MUST REMAIN SECRET!"
echo "THE LINE THAT BEGINS WITH THE NUMBER 1 IS THE BITCOIN ADDRESS."
echo " "

openssl ec -pubout < data.pem | publicKeyToAddress


echo " "
echo "SPECIAL THANKS TO 'grondilu' AND 'unk' WHO MADE THIS SCRIPT POSSIBLE!!"


Title: Re: Bounty: 0.25 BTC. Find the Bitcoins hidden in plain sight.
Post by: mmdough on July 14, 2011, 08:45:58 PM
How does one import a private key anyway? Do I need a new version of the client? I have an old one, I believe.
It's as easy as...
{code}

Bitchin, thanks

edit: Looking at it now, it doesn't do what I wanted... actually at all. But thanks anyway, it's neat.


Title: Re: Bounty: 0.25 BTC. Find the Bitcoins hidden in plain sight.
Post by: julz on July 14, 2011, 08:48:26 PM
I'm pretty sure some of you are overcomplicating the key import process.

If it's hidden in 'plain sight' - you probably don't need to hash it etc and use python or shell scripts.

Just work out which letters to read off  e.g 1st and last letter of each word?

And follow the instructions on bitbills to import.

The impossible part for me is running a bitcoind that has the 'importprivkey' command.
The paper wallet thing looks interesting.. once the gui allows key import.


Title: Re: Bounty: 0.25 BTC. Find the Bitcoins hidden in plain sight.
Post by: casascius on July 14, 2011, 08:52:36 PM
You guys are on the right track.  It is likely to be found soon.


Title: Re: Bounty: 0.25 BTC. Find the Bitcoins hidden in plain sight.
Post by: casascius on July 14, 2011, 08:54:15 PM
(vanitygen seems to output base58-encoded privkeys)

Code:
$ ./pywallet.py --importprivkey=9MYaow1fLJHwaYgZVs6fLeALpTWuZY4zTA2NfFz8eMNQAiGQmzqeaHAYstXQ81vgVc
Bad private key

So I probably got the hash wrong. I used an online sha256 tool, copied that sentence into the form field, got the hash in base64, then converted base64 to hex using another online tool, then used a copy-pasted python script to create this base58 key. It was worth a try. :D

This is not a valid Base58-encoded wallet import string.  Valid Base58-encoded wallet import strings always start with '5'.


Title: Re: Bounty: 0.25 BTC. Find the Bitcoins hidden in plain sight.
Post by: mmdough on July 14, 2011, 09:01:53 PM
And follow the instructions on bitbills to import.

THAT'S what I was trying to figure out.

To bad it doesn't seem to work :'(


Title: Re: Bounty: 0.25 BTC. Find the Bitcoins hidden in plain sight.
Post by: casascius on July 14, 2011, 09:07:21 PM
How to convert 32 byte hex private key into Base58-key that can be imported into a wallet...

1. take your 32 bytes...
2. tack 0x80 on at the beginning as the first byte (so now you have 33 bytes)
3. take sha256(sha256(those 33 bytes))
4. tack the first 4 bytes of the result of step 3 onto the end (so now you have 37 bytes)
5. compute base58 of the resulting 37 bytes

Base58 key will always start with a '5' in part because of the constant 0x80 being the first byte.

Working Microsoft C# code that does it:

Code:
        private string ByteArrayToBase58Check(byte[] ba) {
            // it is assumed that ba is 33 bytes long and starts with 0x80
            byte[] bb = new byte[ba.Length + 4];
            Array.Copy(ba, bb, ba.Length);
            SHA256CryptoServiceProvider sha256 = new SHA256CryptoServiceProvider();
            byte[] thehash = sha256.ComputeHash(ba);
            thehash = sha256.ComputeHash(thehash);
            for (int i = 0; i < 4; i++) bb[ba.Length + i] = thehash[i];
            return ByteArrayToBase58(bb);
        }

        private string ByteArrayToBase58(byte[] ba) {
            Org.BouncyCastle.Math.BigInteger addrremain = new Org.BouncyCastle.Math.BigInteger(1,ba);
            Org.BouncyCastle.Math.BigInteger big0 = new Org.BouncyCastle.Math.BigInteger("0");
            Org.BouncyCastle.Math.BigInteger big58 = new Org.BouncyCastle.Math.BigInteger("58");

            string b58 = "123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz";
            string rv = "";

            while (addrremain.CompareTo(big0) > 0) {
                int d = Convert.ToInt32(addrremain.Mod(big58).ToString());
                addrremain = addrremain.Divide(big58);
                rv = b58.Substring(d, 1) + rv;
            }

            // handle leading zeroes
            foreach (byte b in ba) {
                if (b != 0) break;
                rv = "1" + rv;
            }
            return rv;
        }



Title: Re: Bounty: 0.25 BTC. Find the Bitcoins hidden in plain sight.
Post by: gentakin on July 14, 2011, 09:21:13 PM
I studied the vanitygen code, and I probably figured it out. Just noticed your C# explanation now. (edit: Huh, if I remember correctly, I only used sha256 once... So this is maybe not going to work..?)

I did a -rescan and the 0.25 showed up. Then it took me another minute to figure out an amount where bitcoin wouldn't complain about transaction fees. Now waiting to see if my transaction goes through or if someone was faster than me. ;D

Anyway, it was fun! Thanks a lot for the challenge. :)


Title: Re: Bounty: 0.25 BTC. Find the Bitcoins hidden in plain sight.
Post by: julz on July 14, 2011, 09:22:18 PM
lol.. well there goes my theory that casascius was throwing out this little puzzle to demonstrate how easy and convenient it is to import the keys from paper wallets!



Title: Re: Bounty: 0.25 BTC. Find the Bitcoins hidden in plain sight.
Post by: mmdough on July 14, 2011, 09:25:06 PM
lol.. well there goes my theory that casascius was throwing out this little puzzle to demonstrate how easy and convenient it is to import the keys from paper wallets!



That's what I figured, too. I did a google search for "Plain Sight Bitcoin" and found http://sprucecodes.com/ (http://sprucecodes.com/) who cross-promotes the paper wallets heavily. SO SURE I was on the right track!

Ah well, kept me from cleaning the house for a few hours :-P.

Congrats to the skillful winner!


Title: Re: Bounty: 0.25 BTC. Find the Bitcoins hidden in plain sight.
Post by: SgtSpike on July 14, 2011, 09:28:59 PM
I studied the vanitygen code, and I probably figured it out. Just noticed your C# explanation now. (edit: Huh, if I remember correctly, I only used sha256 once... So this is maybe not going to work..?)

I did a -rescan and the 0.25 showed up. Then it took me another minute to figure out an amount where bitcoin wouldn't complain about transaction fees. Now waiting to see if my transaction goes through or if someone was faster than me. ;D

Anyway, it was fun! Thanks a lot for the challenge. :)
Care to elaborate?  Once the transaction goes through, of course...


Title: Re: Bounty: 0.25 BTC. Find the Bitcoins hidden in plain sight.
Post by: gentakin on July 14, 2011, 09:29:39 PM
There is no winner yet! ;) My transaction shows up at bitcoincharts.com/bitcoin, however it is listed as low priority. So.. if it works, I will be asleep by that time. ;D

The last block was found 30 minutes ago.. come on. I can't wait any longer.. I will check tomorrow, and if I see the BTC in my wallet, I will update here to explain how it worked.


Title: Re: Bounty: 0.25 BTC. Find the Bitcoins hidden in plain sight.
Post by: casascius on July 14, 2011, 09:38:16 PM
lol.. well there goes my theory that casascius was throwing out this little puzzle to demonstrate how easy and convenient it is to import the keys from paper wallets!



That's just it, it's not yet easy.

I was mainly trying to show that Bitcoins can be hidden in short amounts of plain text.  Any text will do, as long as it's not too short that it can be guessed by brute force.

An entire wallet could be generated from a short amount of plain text as well - simply by adding a counter onto the end of the string.  That's been proposed as a "deterministic wallet".  If done that way, one would never need to back it up, as long as they kept the original string safe and secure.


Title: Re: Bounty: 0.25 BTC. Find the Bitcoins hidden in plain sight.
Post by: randomguy7 on July 14, 2011, 09:41:20 PM
Wild guess: the string is base58. Decode it, import resulting 32 bytes as private key, grab a cookie

edit: Are i and l allowed in base58? Afaik not, will this produce some result when trying to decode it or will it fail?


Title: Re: Bounty: 0.25 BTC. Find the Bitcoins hidden in plain sight.
Post by: willphase on July 14, 2011, 09:55:26 PM
Wild guess: the string is base58. Decode it, import resulting 32 bytes as private key, grab a cookie

edit: Are i and l allowed in base58? Afaik not, will this produce some result when trying to decode it or will it fail?

i (eye) is allowed by l (ell) isn't.   Annoying for someone with L's in my name... it's hard to keep up with the 1JonesesnUrF3mMFYmJbKHzRrvpdUP7Tke with an L in your name...

Will


Title: Re: Bounty: 0.25 BTC. Find the Bitcoins hidden in plain sight.
Post by: EricJ2190 on July 14, 2011, 10:03:35 PM
It was claimed while I was trying to do so myself. Somebody beat me to it.  :(

Anyway, the secret is that the SHA-256 hash of the string is the private key for that address.


Title: Re: Bounty: 0.25 BTC. Find the Bitcoins hidden in plain sight.
Post by: spruce on July 14, 2011, 10:11:07 PM

I was mainly trying to show that Bitcoins can be hidden in short amounts of plain text.  Any text will do, as long as it's not too short that it can be guessed by brute force.


Yeah, that's actually pretty neat.

I've been doing it the other way round, i.e. starting with a specific address and key and then obfuscating the key somehow. It hadn't occurred to me to start with some convenient text and then generate a private key and public address from that.

Hey Casascius — you could include in your business creating public/private keys on paper based on a specific passphrase. I don't know how popular that would be, although there is no real difference in the trust involved.

I think I prefer my unbreakable one-time code (http://sprucecodes.com/one-time.htm). Apart from the slight problem that I don't know of a simple way for someone not a computer genius to get their bitcoins out again.


Title: Re: [CLAIMED!] Bounty: 0.25 BTC. Find the Bitcoins hidden in plain sight.
Post by: Bitcoin Swami on July 14, 2011, 10:27:34 PM
You guys are so smart.


Title: Re: [CLAIMED!] Bounty: 0.25 BTC. Find the Bitcoins hidden in plain sight.
Post by: casascius on July 14, 2011, 10:35:16 PM
Here is also why I became interested in hiding bitcoins in strings:

I have considered making some sort of physical bitcoins (like coins, or poker chips, or whatever) - who knows if I'll do it - but it occurred to me that hiding 51 legible characters in a small object might be difficult.  But I thought that if I could hide even 20 characters, and simply define the private key as SHA256 of those 20 characters, that it would be just as secure.


Title: Re: [CLAIMED!] Bounty: 0.25 BTC. Find the Bitcoins hidden in plain sight.
Post by: SgtSpike on July 14, 2011, 10:51:19 PM
Time to start SHA-256ing dictionary words to see if the bitcoin addresses that match have a balance.  :P


Title: Re: [CLAIMED!] Bounty: 0.25 BTC. Find the Bitcoins hidden in plain sight.
Post by: casascius on July 14, 2011, 10:59:25 PM
Time to start SHA-256ing dictionary words to see if the bitcoin addresses that match have a balance.  :P

A brute force attack on keys like this would be computationally intensive.  Getting the bitcoin address from the private key requires a slow EC point multiplication.  It would run as slowly as a vanity bitcoin address search, and would be difficult to port to a GPU due to recursion.

I could see a future bitcoin client allowing redemption of coins sitting on "passphrases", and the creation of those same passphrases, and suckers choosing poor passphrases as places to put their coins.




Title: Re: [CLAIMED!] Bounty: 0.25 BTC. Find the Bitcoins hidden in plain sight.
Post by: sgravina on July 15, 2011, 12:09:59 AM
"This string contains 0.25 BTC hiding in plain sight."

Whoever can first figure out how I have hidden the 0.25 BTC gets it.  The 0.25 BTC are waiting for you at 1AJ3vE2NNYW2Jzv3fLwyjKF1LYbZ65Ez64 (just sent it now).

This is real cute but I don't think the puzzle as presented was accurate.  The string holds the private key.  But you need the private key and the address to spend the bitcoins.  The second sentence is necessary to find the bitcoins.

Sam


Title: Re: [CLAIMED!] Bounty: 0.25 BTC. Find the Bitcoins hidden in plain sight.
Post by: casascius on July 15, 2011, 12:15:09 AM
"This string contains 0.25 BTC hiding in plain sight."

Whoever can first figure out how I have hidden the 0.25 BTC gets it.  The 0.25 BTC are waiting for you at 1AJ3vE2NNYW2Jzv3fLwyjKF1LYbZ65Ez64 (just sent it now).

This is real cute but I don't think the puzzle as presented was accurate.  The string holds the private key.  But you need the private key and the address to spend the bitcoins.  The second sentence is necessary to find the bitcoins.

Sam

It actually was not necessary. The address can be computed from the private key. I gave the address to prove the existence of the bounty and as a hint.


Title: Re: [CLAIMED!] Bounty: 0.25 BTC. Find the Bitcoins hidden in plain sight.
Post by: sgravina on July 15, 2011, 12:30:48 AM
Quote

It actually was not necessary. The address can be computed from the private key. I gave the address to prove the existence of the bounty and as a hint.

So every address has a unique private key.  The private key can generate the address but each address can't generate a private key?  Is that true?

Sam


Title: Re: [CLAIMED!] Bounty: 0.25 BTC. Find the Bitcoins hidden in plain sight.
Post by: DamienBlack on July 15, 2011, 02:33:22 AM
Quote

It actually was not necessary. The address can be computed from the private key. I gave the address to prove the existence of the bounty and as a hint.

So every address has a unique private key.  The private key can generate the address but each address can't generate a private key?  Is that true?

Sam

That is exactly it. Bends the mind a little bit the first time you here of such one-way functions. But the math is solid.


Title: Re: [CLAIMED!] Bounty: 0.25 BTC. Find the Bitcoins hidden in plain sight.
Post by: casascius on July 15, 2011, 03:03:56 AM
Since a SHA256 can be computed from any string, and a Bitcoin address can be computed from any 256-bit value, it follows that every sentence has a corresponding Bitcoin address.


"My bum really hurts" --> 1NCKYVgwK7gN8sA4Y8gZzePZ6QHUN1zbmz

"Trix are for kids" --> 1BhakTJnBMYGmcNDF44e4T1JJMR5AfcEty

"I love my MacBook Pro" --> 14JdvVQiVwTx4eHxchXoqW4z2PL5rw3Cbo

"As it turns out, I actually sent 0.10 BTC to the bitcoin address corresponding to this sentence." --> 1Dfucy6z2BxUHavLUhDooc7UeuQj52Ek3D


Title: Re: [CLAIMED!] Bounty: 0.25 BTC. Find the Bitcoins hidden in plain sight.
Post by: Serge on July 15, 2011, 04:28:46 AM
can this be done on Windows? and how one would import such key into the wallet there?
I have php w/ openssl on it  and may figure out how to run openssl from command line


Title: Re: [CLAIMED!] Bounty: 0.25 BTC. Find the Bitcoins hidden in plain sight.
Post by: EricJ2190 on July 15, 2011, 04:50:32 AM
can this be done on Windows? and how one would import such key into the wallet there?
I have php w/ openssl on it  and may figure out how to run openssl from command line

Sure. I just claimed the last .1 BTC using Windows. Casascius even made an awesome tool (http://forum.bitcoin.org/index.php?topic=25141.0) in Visual C# to convert between address formats. As for importing private keys, you need a client patched with sipa's patch (http://forum.bitcoin.org/index.php?topic=8091.0). I also believe someone made a Python script to directly import keys into your wallet, which might be easier. For hashing, you can use command-line OpenSSL or one of the many websites out there that will hash strings for you.


Title: Re: [CLAIMED!] Bounty: 0.25 BTC. Find the Bitcoins hidden in plain sight.
Post by: casascius on July 15, 2011, 05:08:41 AM
"Here is another 0.08 BTC waiting to be claimed."
(Please let someone else claim if you've already claimed one)

Another one: "Pay to the order of John Doe, 0.08 BTC"


Title: Re: [CLAIMED!] Bounty: 0.25 BTC. Find the Bitcoins hidden in plain sight.
Post by: BitcoinPorn on July 15, 2011, 05:20:32 AM
Since a SHA256 can be computed from any string, and a Bitcoin address can be computed from any 256-bit value, it follows that every sentence has a corresponding Bitcoin address.
Did a logo for my podcast based on this.

http://media.tumblr.com/tumblr_lo0ksgYALF1qkojkv.png (http://hashingitout.tumblr.com/)

http://www.xorbin.com/tools/sha256-hash-calculator is what I used.  Now I feel like taking everyones address' and see if I can find words (I need to find a better link for this, or maybe understand this sha stuff a bit better lol)


Title: Re: [CLAIMED!] Bounty: 0.25 BTC. Find the Bitcoins hidden in plain sight.
Post by: Anonymous on July 15, 2011, 05:34:26 AM
I wonder what the bitcoin address of the entire bible is ?


I wonder what twitter looks like as bitcoin addresses ?


Title: Re: [CLAIMED!] Bounty: 0.25 BTC. Find the Bitcoins hidden in plain sight.
Post by: casascius on July 15, 2011, 05:40:41 AM
Another challenge: 0.08 BTC to be had in "货币的怪才" which is the Google translation of "Currency of the geeks"


Title: Re: [CLAIMED!] Bounty: 0.25 BTC. Find the Bitcoins hidden in plain sight.
Post by: BitcoinPorn on July 15, 2011, 05:48:08 AM
When will the mac version of this riddle solving Bitcoin program be released for non coders, I want free money :p


Title: Re: [CLAIMED!] Bounty: 0.25 BTC. Find the Bitcoins hidden in plain sight.
Post by: gentakin on July 15, 2011, 06:23:15 AM
The bounty arrived at my wallet in block 136300: http://blockexplorer.com/tx/3267be98b592862bf23ae5e711b74c4fb2f5f2249f55f4afbec32bb23ac34c11#i1725603

Here's my explanation how I did it (it is probably the most complicated way to do it, but that's what you get for trial-and-error I guess..)

  • Hash the string using an online sha256 tool: http://www.xorbin.com/tools/sha256-hash-calculator - result is 47510706d76bc74a5d57bdcffc68c9bbbc2d496bef87c91de7f616129ac62b5f (in hex)
  • Read the vanitygen code (I knew it shows the private key in base58, so the solution must be inside the code). See the encode_privkey function.
  • Come up with this code:
Code:
	char print_buf[512];
// Notice this is the hex hash from above, and 0x80 (=128) prepended to it. I figured this out from encode_privkey.
unsigned char hash1[33] = {128, 0x47,0x51,0x07,0x06,0xd7,0x6b,0xc7,0x4a,0x5d,0x57,0xbd,0xcf,0xfc,0x68,0xc9,0xbb,0xbc,0x2d,0x49,0x6b,0xef,0x87,0xc9,0x1d,0xe7,0xf6,0x16,0x12,0x9a,0xc6,0x2b,0x5f};

encode_b58_check(hash1, sizeof(hash1), print_buf); // This actually computes sha256 twice, so that's why it was correct

printf("privkey: %s\n", print_buf);
  • Executing this code prints the private key in base58.
  • Create a new wallet.dat.
  • Use the pywallet tool (from github) to import the privkey in base58 into the new wallet.
  • Start bitcoin with -rescan. It takes some time but finds the 0.25BTC.
  • Send them to my main wallet.
  • wait.. go to sleep.
  • wake up, find the bounty in my main wallet.

Congrats to the other bounty takers. I think this is a nice system for "offline wallets".


Title: Re: [CLAIMED!] Bounty: 0.25 BTC. Find the Bitcoins hidden in plain sight.
Post by: Leon on July 15, 2011, 06:32:38 AM
Can someone explain this? :o


Title: Re: [CLAIMED!] Bounty: 0.25 BTC. Find the Bitcoins hidden in plain sight.
Post by: BitcoinPorn on July 15, 2011, 06:40:54 AM
What the fuck, a link I gave helped.  Donations now people! I will never get any of these bounties myself!

I feel this if I'm not running Linux in this thread, I'm useless.  And I am pretty sure most people in the thread just think that about everybody in general lol


Title: Re: [CLAIMED!] Bounty: 0.25 BTC. Find the Bitcoins hidden in plain sight.
Post by: Leon on July 15, 2011, 06:43:53 AM
What the fuck, a link I gave helped.  Donations now people! I will never get any of these bounties myself!

I feel this if I'm not running Linux in this thread, I'm useless.  And I am pretty sure most people in the thread just think that about everybody in general lol

I'm still so... very...... lost..... and......... confused.............  :'(


Title: Re: [CLAIMED!] Bounty: 0.25 BTC. Find the Bitcoins hidden in plain sight.
Post by: SgtSpike on July 15, 2011, 07:28:21 AM
What the fuck, a link I gave helped.  Donations now people! I will never get any of these bounties myself!

I feel this if I'm not running Linux in this thread, I'm useless.  And I am pretty sure most people in the thread just think that about everybody in general lol
I'm with ya.  :(  And I'm no good at compiling things, so everyone who posts source code without binaries makes me sad...


Title: Re: [CLAIMED!] Bounty: 0.25 BTC. Find the Bitcoins hidden in plain sight.
Post by: spruce on July 15, 2011, 07:31:47 AM

I could see a future bitcoin client allowing redemption of coins sitting on "passphrases", and the creation of those same passphrases <snip>


Bingo! I bet that would be *very* popular with both the general public and the press, as long as it was relatively malware-proof.


Title: Re: [CLAIMED!] Bounty: 0.25 BTC. Find the Bitcoins hidden in plain sight.
Post by: EricJ2190 on July 15, 2011, 08:13:59 AM
Step-by-step guide to claiming coins, easy mode:

Step 1: Create a new bitcoin wallet.
Start bitcoin with a fresh wallet to keep from polluting your current wallet with these addresses. You can do this by temporarily moving your wallet.dat out of your bitcoin data directory, or by making bitcoin use a new data directory. The step is optional but highly recommended.

Step 2: Hash the string using SHA-256 to get the hex private key.
Go to http://www.xorbin.com/tools/sha256-hash-calculator and enter the string. For example, "Damnesia" gives "58c00ef49f161ac94e40cde5106227e09a6dc1840cf601c877b48d9ccc7ebdbe". This is your private key in hexadecimal form.

Step 3: Convert the hex to base58 bitcoin private key format.
Go to http://blockexplorer.com/q/hashtoaddress/x/80 replacing "x" with the hex private key. This tells BBE to encode a bitcoin address of version 80, which is used for private keys. For our example above, we'd go to http://blockexplorer.com/q/hashtoaddress/58c00ef49f161ac94e40cde5106227e09a6dc1840cf601c877b48d9ccc7ebdbe/80 . This gives us the encoded private key of "5JVNazqC4JucAHUeRLhcqrbGFAro2CySd2ptDaDnPe18G9tmuAs".

Step 4: Import the private key into your bitcoin wallet.
If you can build or obtain a copy of bitcoin with sipa's importwallet, start bitcoind (or bitcoin -server) and run "bitcoin importkey y" where y is the base58-encoded private we just created. Now just wait for it to finish scanning the block chain for transactions. If you can't get a patched client, get Python and pywallet. Stop bitcoin altogether and run "python pywallet.py --importprivkey=y" where y is the base58-encoded private key. Run bitcoin -rescan.

Step 5: Send the coins to your main wallet.
Send yourself the coins so nobody else can claim them. Once you get a confirmation or two, the coins are yours and you can close bitcoin and switch back to your primary wallet. Have fun!


Title: Re: [CLAIMED!] Bounty: 0.25 BTC. Find the Bitcoins hidden in plain sight.
Post by: BitcoinPorn on July 15, 2011, 08:48:46 AM
Donations for sharing that http://www.xorbin.com/tools/sha256-hash-calculator link can be given to 1Eeya8PUji6kFVwQYwgwrKvv7gHkk6GAdg that is now part of the Official Step by Step Guide btw.

I think that is as close as I'll come to this shit still, those easy instructions are still too much lol.  I was good until Step 4.


Title: Re: [CLAIMED!] Bounty: 0.25 BTC. Find the Bitcoins hidden in plain sight.
Post by: brendio on July 15, 2011, 09:40:08 AM
Wahoo! Didn't see EricJ's post until after I made a claim a muck harder way, but glad to have learnt a bit along the way, even if it was a bit trial and error.

I have not programmed in Python before, but I thought is easier than C# for trying to muck around in since it doesn't need to be compiled. I made a copy of Joric's pywallet.py script and renamed it muckaround.py. I then added an option in def main() to take a string input.

Code:
	parser.add_option("--b58encodestr", dest="keystr", 
help="convert string to b58 key")

Then I canabalised the section where pywallet normally writes the wallet file and replaced it with:

Code:
		#Take sha256 hash of key string
priv_key = hashlib.sha256(options.keystr).digest()
#Convert hash to bitcoin address
priv_key = SecretToASecret(priv_key)
print priv_key

It took quite a bit of mucking around with various functions to get it right. I made quite a few different functions and had them print out the base 58 hash until I saw one that looked right.

I then imported it into a blank wallet with the original pywallet.py script. Checked the output addresses in block explorer to see there was still some bitcoin there and then fired up bitcoin with the -rescan option.

My method doesn't work for the Chinese version, since it comes up as "? ? ? ?" in the cmd window.


Title: Re: [CLAIMED!] Bounty: 0.25 BTC. Find the Bitcoins hidden in plain sight.
Post by: gentakin on July 15, 2011, 10:02:16 AM
Donations for sharing that http://www.xorbin.com/tools/sha256-hash-calculator link can be given to 1Eeya8PUji6kFVwQYwgwrKvv7gHkk6GAdg that is now part of the Official Step by Step Guide btw.

Come on, this is on the first google results page. I didn't use that link because you posted about it, I actually found it myself. So your link didn't help me (I only read your post after taking the bounty). And I guess EricJ knows how to google as well.


Also, python for windows exists, so you could get a bounty even with a less developer friendly OS like windows. :)


Title: Re: [CLAIMED!] Bounty: 0.25 BTC. Find the Bitcoins hidden in plain sight.
Post by: oOoOo on July 15, 2011, 10:38:56 AM
I was good until Step 4.

Agreed. We urgently need a user-friendly import/export function in the client!

This is the most secure "wallet" there could possibly be. No no copies of wallet.dat, no encryption, no USB stick/paper/printing which can be lost, no malware which secretly steals my coins, no storage or bank vault, no life CD, no nothing! Just a simple passphrase I can remember. Since nothing is stored or written down anywhere this wallet concept is basically impossible to compromise.
The only flaw is that I might forget my passphrase, but I can still write hints/clues which can make my help remember while still being 100% secure. We need this.

.


Title: Re: [CLAIMED!] Bounty: 0.25 BTC. Find the Bitcoins hidden in plain sight.
Post by: pc on July 15, 2011, 12:45:43 PM
Agreed. We urgently need a user-friendly import/export function in the client!
I'm sure it's coming. I've learned a lot compiling Bitcoin myself, though. Bitcoin is still very young, and still needs a lot of work to be completely usable by the masses.

This is the most secure "wallet" there could possibly be. No no copies of wallet.dat, no encryption, no USB stick/paper/printing which can be lost, no malware which secretly steals my coins, no storage or bank vault, no life CD, no nothing! Just a simple passphrase I can remember. Since nothing is stored or written down anywhere this wallet concept is basically impossible to compromise.
The only flaw is that I might forget my passphrase, but I can still write hints/clues which can make my help remember while still being 100% secure. We need this.

I'm pretty sure that it'd be much more secure to have a completely random number for your private key (as Bitcoin does by default), encrypt that number with your passphase (such as say encrypting your wallet.dat with TrueCrypt as some people do now anyway), and store that on "the cloud" somewhere if you're worried about losing it. With the amount of hashing/computing power already in the hands of bitcoin enthusiasts, trying to hash all dictionary words and passphrases up to a few words and seeing if they're the private key to money in the chain is going to be a lot easier than needing to find wallets and brute force each one separately. My sense of scale may be deceiving me, but that's my intuition at least.


Title: Re: [CLAIMED!] Bounty: 0.25 BTC. Find the Bitcoins hidden in plain sight.
Post by: sgravina on July 15, 2011, 02:01:32 PM

Quote

That is exactly it. Bends the mind a little bit the first time you here of such one-way functions. But the math is solid.

It is cool.  You need a function that is destructive.  The private key to address function must lose information so that it is not reversible.

Real world examples are plentiful.  You can generate a unique hand from every person, but you can't generate a unique person from any hand.

Sam


Title: Re: [CLAIMED!] Bounty: 0.25 BTC. Find the Bitcoins hidden in plain sight.
Post by: oOoOo on July 15, 2011, 02:30:39 PM
store that on "the cloud" somewhere if you're worried about losing it.

While I appreciate your point, I'll have to disagee.
The idea of "storing your wallet in the cloud" relies heavily on assumptions about current and/or future bitcoin users, which might not be met.

First of all, your idea assumes that a user can access the "cloud" or the net at anytime, anywhere at their will. Besides that, it also assumes that the user lives in a place with established infrastructure and reliable net access. We can go a step further and also assume that a cloud remains stable and the provider doesn't go bankrupt etc.

Encrypting the wallet like you describe is certainly the right choice for a number of users however, it also introduces additional layers, complexity and potential points of failure.

Having a private key stored in "my brain" and nowhere else gives one peace of mind in a way no other option can.
.


Title: Re: [CLAIMED!] Bounty: 0.25 BTC. Find the Bitcoins hidden in plain sight.
Post by: brendio on July 15, 2011, 02:42:44 PM
I thought I'd give back to the community for the free 0.0785 BTC I got mucking around in python and have uploaded the source from my python script to github:
https://github.com/brendio/convertphrase

Note, that I don't really know what I'm doing, so use with care. It took me a while to work out how to use github and I'm still not sure I understand it.


Title: Re: [CLAIMED!] Bounty: 0.25 BTC. Find the Bitcoins hidden in plain sight.
Post by: MrJoshua on July 15, 2011, 04:39:23 PM
Step-by-step guide to claiming coins, easy mode:

Step 1: Create a new bitcoin wallet.
Start bitcoin with a fresh wallet to keep from polluting your current wallet with these addresses. You can do this by temporarily moving your wallet.dat out of your bitcoin data directory, or by making bitcoin use a new data directory. The step is optional but highly recommended.

Step 2: Hash the string using SHA-256 to get the hex private key.
Go to http://www.xorbin.com/tools/sha256-hash-calculator and enter the string. For example, "Damnesia" gives "58c00ef49f161ac94e40cde5106227e09a6dc1840cf601c877b48d9ccc7ebdbe". This is your private key in hexadecimal form.

Step 3: Convert the hex to base58 bitcoin private key format.
Go to http://blockexplorer.com/q/hashtoaddress/x/80 replacing "x" with the hex private key. This tells BBE to encode a bitcoin address of version 80, which is used for private keys. For our example above, we'd go to http://blockexplorer.com/q/hashtoaddress/58c00ef49f161ac94e40cde5106227e09a6dc1840cf601c877b48d9ccc7ebdbe/80 . This gives us the encoded private key of "5JVNazqC4JucAHUeRLhcqrbGFAro2CySd2ptDaDnPe18G9tmuAs".

Step 4: Import the private key into your bitcoin wallet.
If you can build or obtain a copy of bitcoin with sipa's importwallet, start bitcoind (or bitcoin -server) and run "bitcoin importkey y" where y is the base58-encoded private we just created. Now just wait for it to finish scanning the block chain for transactions. If you can't get a patched client, get Python and pywallet. Stop bitcoin altogether and run "python pywallet.py --importprivkey=y" where y is the base58-encoded private key. Run bitcoin -rescan.

Step 5: Send the coins to your main wallet.
Send yourself the coins so nobody else can claim them. Once you get a confirmation or two, the coins are yours and you can close bitcoin and switch back to your primary wallet. Have fun!

Is it possible to do step 3 with openssl on the command line?
(step 2 is 'echo -n "Damnesia" | openssl dgst -sha256', fyi)

How can I get a valid address from this private key with openssl without loading the bitcoin client?


Title: Re: [CLAIMED!] Bounty: 0.25 BTC. Find the Bitcoins hidden in plain sight.
Post by: EricJ2190 on July 15, 2011, 04:58:41 PM
Is it possible to do step 3 with openssl on the command line?

You can use the bash script commands here:
http://forum.bitcoin.org/index.php?topic=2461.msg35749#msg35749

To encode the private key, add those functions and run:
privkey=58c00ef49f161ac94e40cde5106227e09a6dc1840cf601c877b48d9ccc7ebdbe
EncodeBase58 "80$privkey$(checksum "80$privkey")" && echo



Title: Re: [CLAIMED!] Bounty: 0.25 BTC. Find the Bitcoins hidden in plain sight.
Post by: casascius on July 15, 2011, 05:05:37 PM
How can I get a valid address from this private key with openssl without loading the bitcoin client?

If you use Windows I have published a program that does this


Title: Re: [CLAIMED!] Bounty: 0.25 BTC. Find the Bitcoins hidden in plain sight.
Post by: MrJoshua on July 15, 2011, 05:12:08 PM
How can I get a valid address from this private key with openssl without loading the bitcoin client?

If you use Windows I have published a program that does this

No I don't use Windows, and I'm trying to do it with built in unix commands.

Being able to create a valid wallet and receive bitcoins entirely offline with tools you already have installed seems like a pretty big deal.

j

[Edit:]

P.S. Plus it seems that if this is true, then "over the phone" bitcoin transactions should be possible in the future. 


Title: Re: [CLAIMED!] Bounty: 0.25 BTC. Find the Bitcoins hidden in plain sight.
Post by: casascius on July 15, 2011, 06:15:13 PM
How can I get a valid address from this private key with openssl without loading the bitcoin client?

If you use Windows I have published a program that does this

No I don't use Windows, and I'm trying to do it with built in unix commands.

Being able to create a valid wallet and receive bitcoins entirely offline with tools you already have installed seems like a pretty big deal.

j

[Edit:]

P.S. Plus it seems that if this is true, then "over the phone" bitcoin transactions should be possible in the future. 


Search on the forums for a shell script called "BOTG" ("Bitcoins Off The Grid").  Someone has already put together such a thing that uses OpenSSL to do the key work.


Title: Re: [CLAIMED!] Bounty: 0.25 BTC. Find the Bitcoins hidden in plain sight.
Post by: Joric on July 22, 2011, 05:49:35 AM
relevant http://bitcointools.appspot.com


Title: Re: [CLAIMED!] Bounty: 0.25 BTC. Find the Bitcoins hidden in plain sight.
Post by: brendio on July 22, 2011, 09:53:55 AM
relevant http://bitcointools.appspot.com

Nice! Doesn't like the Chinese characters though.


Title: Re: [CLAIMED!] Bounty: 0.25 BTC. Find the Bitcoins hidden in plain sight.
Post by: oOoOo on July 24, 2011, 05:52:25 AM
relevant http://bitcointools.appspot.com

Is this trustworthy? How do I know the private keys aren't secretly stored on the server?
.


Title: Re: [CLAIMED!] Bounty: 0.25 BTC. Find the Bitcoins hidden in plain sight.
Post by: casascius on July 24, 2011, 12:51:47 PM
relevant http://bitcointools.appspot.com

Is this trustworthy? How do I know the private keys aren't secretly stored on the server?
.

You can't.  I wouldn't have assumed it was meant to secure your 25000 BTC long-term, it's not even using HTTPS.  Looks more like proof of concept to me.  The value is there though, in that once the utility is realized by many, hopefully the feature will make it into the bitcoin client itself, then trust won't be quite an issue.


Title: Re: [CLAIMED!] Bounty: 0.25 BTC. Find the Bitcoins hidden in plain sight.
Post by: Jaagu on December 02, 2011, 10:56:14 AM
Who's code is http://bitcointools.appspot.com (http://bitcointools.appspot.com)?

Is it your's, casascius, or Joric's?

Where can I get the source code?


Title: Re: [CLAIMED!] Bounty: 0.25 BTC. Find the Bitcoins hidden in plain sight.
Post by: racerguy on December 06, 2011, 12:15:49 PM
This is a bad idea, I've searched the sha256 hashes of a number of words on google and someones already done it and made it public.


Title: Re: [CLAIMED!] Bounty: 0.25 BTC. Find the Bitcoins hidden in plain sight.
Post by: coretechs on December 07, 2011, 02:19:53 AM
The easiest safe way I've found so far is through the http://bitaddress.org script.  You can save a local copy and run it to generate the private keys on a disconnected PC + whatever other security measures you deem necessary.