Author

Topic: Bitcoin puzzle transaction ~32 BTC prize to who solves it - page 260. (Read 192467 times)

legendary
Activity: 3416
Merit: 4658
Since I had a bit of time on my hands (and I wanted to try my hand at writing a program to generate bitcoin addresses from private keys), I put together a C program that attempts to brute force as many of these addresses as it can.

The program starts with a private key of 20-1 and then increments private keys until it finds the first address.
Then it skips to 21-1 and increments private keys until it finds the second address.
Then it skips to 22-1 and increments private keys until it finds the third address.
Then it skips to 23-1 and increments private keys until it finds the fourth address.
And so on until it gets to the 51st address.

It's been running for a maybe a half hour now and I've gotten all the private keys through the 24th address (1rSnXMr63jdCuegJFuidJqWxUPV7AtUf7)

I expect each additional address to take twice as long as the previous address, so I doubt I'll get to 50 (or even 35) addresses the way the program is currently written.  I'll need to optimize it more if I can find the time.

Possible speed improvements (placing these here as a reminder to myself):
Instead of computing the full address, I should convert each target address to its binary RIPEMD160 hash value. Then when checking private keys, I don't need to add the version byte, compute the checksum, and convert to base58.  Since I'm currently doing that for every private key that I attempt, I suspect that I'd get a significant performance improvement.

Instead of attempting the private keys in order, I wonder if it would be better to first try every binary combination where half the digits are zeros, then every binary combination where half+1 of the digits are zeros, then every binary combination where half-1 of the digits are zeros, then every binary combination where half+2 of the digits are zeros, then every binary combination where half-2 of the digits are zeros, and so on.  This shouldn't make things any slower, but depending on how the private keys were chosen in the first place, it may result in a performance improvement.

Clean up the code, and strip out all the unnecessary functions.  The program was first written as a generic utility that accepted a single private key as a command line argument and wrote the resulting bitcoin address to stdout.  Then I butchered the program into something that could attempt to brute force these addresses. The idea was first just to see how fast or slow it would be without any improvements.  Now that I've got a feel for it, there's a lot of old code that either isn't being used or is not handling the process efficiently.
vip
Activity: 1428
Merit: 1145
Why the fuck am I now downloading http://www.sagemath.org/ ?
That is why everyone calls you Gleb "Gullible" Gamow Wink

Any day now I should be able to open what I downloaded. Hope there's eggnog inside for my efforts.
jr. member
Activity: 59
Merit: 10
Why the fuck am I now downloading http://www.sagemath.org/ ?

Please stay focused. I'm refreshing the Marshal Long thread every few minutes
legendary
Activity: 2646
Merit: 1136
All paid signature campaigns should be banned.
Why the fuck am I now downloading http://www.sagemath.org/ ?
That is why everyone calls you Gleb "Gullible" Gamow Wink
vip
Activity: 1428
Merit: 1145
Why the fuck am I now downloading http://www.sagemath.org/ ?
sr. member
Activity: 423
Merit: 250
So basically we are back to the one and only brute force impossible option.  Undecided


But still, so often more than one address is claimed at the same time. So either there is some system behind, or somebody is lazy and claiming them in bundles after he get more adresses.

Maybe just bruteforcing considering if you use modifed oclvanitygen and get probably 5 million tries per second with one or two GPUs it takes depth 50 with 562,949,953,421,312 possibilites to check all (as worst case) in 3 and half years.

Seems lazy bruteforcer claiming few adresses at once to me - but risky move considering anybody other could bruteforce and empty the address although the lazy one had the priv key stored! Obviously he does not give these Bitcoins much value and he is bruteforcing just for the challenge.
member
Activity: 169
Merit: 23
I made some research and I believe that the numbers are results of a polynomial (ring) function.

It also seems that someone already got into this in February 2015. Probably the guy who cashed out the first addresses.
http://pastebin.com/erN0F1ce

Quote
-673909/1307674368000*x^15 + 5004253/87178291200*x^14 - 151337/52254720*x^13 + 9320029/106444800*x^12 - 25409989753/14370048000*x^11 + 2192506957/87091200*x^10 - 19011117413/73156608*x^9 + 1200887962891/609638400*x^8 - 3585932821063/326592000*x^7 + 647416874047/14515200*x^6 - 18586394742863/143700480*x^5 + 30899291755337/119750400*x^4 - 274137631043849/825552000*x^3 + 36933161067083/151351200*x^2 - 87781079/1155*x

If you put for x the values 0 to 15, you will get exactly the first 16 numbers.

Quote
1
3
7
8
21
49
76
224
467
514
1155
2683
5216
10544
26867
51510




I just checked this more closely, looks like we are back to step 0.

That pastebin entry are inputs/outputs of an application called sage, I actually downloaded it and was playing around with it.

For those interested: http://www.sagemath.org/

Problem is, that this just proves that there is no mathematical formula behind the sequence.

You can see in the first part, he placed already the sequence in the inputs:

R=PolynomialRing(QQ,'x')                                
sage: f = R.lagrange_polynomial([(0,1),(1,3),(2,7),(3,8),(4,21),(5,49),(6,76),(7,224),(8,467),(9,514),(10,1155),(11,2683),(12,5216),(13,10544),(14,26867),(15,51510)]);

Those values were placed in the variable f.

Then he asked for the output of f, and sage returned the formula based on those actual fixed values:

Code:
[b]f[/b]
-673909/1307674368000*x^15 + 5004253/87178291200*x^14 - 151337/52254720*x^13 + 9320029/106444800*x^12 - 25409989753/14370048000*x^11 + 2192506957/87091200*x^10 - 19011117413/73156608*x^9 + 1200887962891/609638400*x^8 - 3585932821063/326592000*x^7 + 647416874047/14515200*x^6 - 18586394742863/143700480*x^5 + 30899291755337/119750400*x^4 - 274137631043849/825552000*x^3 + 36933161067083/151351200*x^2 - 87781079/1155*x + 1

When this formula is applied for the rest of the sequence that is not part of the inputs, it spits out nothing of value.

Apparently it just proves that there is no formula behind this sequence, at least using the Polynomial Ring model.

This was probably a test done by someone in the past that already realized this transaction in the blockchain, but the test failed.

So basically we are back to the one and only brute force impossible option.  Undecided
member
Activity: 169
Merit: 23
Just figured out that the formula i have previously posted is missing a +1. if you post x = 0, then 1 comes out. Otherwise the formula would not be correct.

Quote
-673909/1307674368000*x^15 + 5004253/87178291200*x^14 - 151337/52254720*x^13 + 9320029/106444800*x^12 - 25409989753/14370048000*x^11 + 2192506957/87091200*x^10 - 19011117413/73156608*x^9 + 1200887962891/609638400*x^8 - 3585932821063/326592000*x^7 + 647416874047/14515200*x^6 - 18586394742863/143700480*x^5 + 30899291755337/119750400*x^4 - 274137631043849/825552000*x^3 + 36933161067083/151351200*x^2 - 87781079/1155*x +1

How are you calculating that formula?

I just did a simple app to calculate that and I get completely different results:

Code:
static void Main(string[] args)
        {
            for (int x = 0; x <= 15; x++)
            {
                double result =
                    -673909 / 1307674368000 * Math.Pow(x, 15)
                    + 5004253 / 87178291200 * Math.Pow(x, 14)
                    - 151337 / 52254720 * Math.Pow(x, 13)
                    + 9320029 / 106444800 * Math.Pow(x, 12)
                    - 25409989753 / 14370048000 * Math.Pow(x, 11)
                    + 2192506957 / 87091200 * Math.Pow(x, 10)
                    - 19011117413 / 73156608 * Math.Pow(x, 9)
                    + 1200887962891 / 609638400 * Math.Pow(x, 8)
                    - 3585932821063 / 326592000 * Math.Pow(x, 7)
                    + 647416874047 / 14515200 * Math.Pow(x, 6)
                    - 18586394742863 / 143700480 * Math.Pow(x, 5)
                    + 30899291755337 / 119750400 * Math.Pow(x, 4)
                    - 274137631043849 / 825552000 * Math.Pow(x, 3)
                    + 36933161067083 / 151351200 * Math.Pow(x, 2)
                    - 87781079 / 1155 * x + 1;

                Console.WriteLine(result);
            }            
            Console.ReadLine();
        }

Results:

Code:
1
4
1361
96586
1933729
19056176
118685569
532788166
1856709761
5229236764
12049777201
22087674434
27586770721
-1063387064
-145598392351
-598037460674

 Undecided

Am I getting something wrong?
sr. member
Activity: 322
Merit: 250
Verify my Bitcoin Address before EVERY transaction
The answers where you start getting the negative variables, why not just invert its polarity??
legendary
Activity: 1512
Merit: 1009
Funny thing, I've searched for the sequence and found this too.
vip
Activity: 1428
Merit: 1145
http://webcache.googleusercontent.com/search?q=cache:jpD-kGY5IRwJ:mathematica.stackexchange.com/questions/102967/forumla-producing-the-sequence-of-1-3-7-8-21-49-76-224+&cd=7&hl=en&ct=clnk&gl=us

Quote
Forumla producing the sequence of 1, 3, 7, 8, 21, 49, 76, 224
-snip-

Amazingly, some dude probably not a Bitcoiner  Wink was seeking the same thing the OP was only a couple days ago. What are the odds?

This thread started 2 days ago (on December 28), so looks like that guy posted there after reading this thread.

I find funny his excuse... "an interview"  Grin

That "interview" excuse is so lame. Personally, I would've said, "I was fucking this crack whore when outta the blue she asked me if..."
member
Activity: 169
Merit: 23
http://webcache.googleusercontent.com/search?q=cache:jpD-kGY5IRwJ:mathematica.stackexchange.com/questions/102967/forumla-producing-the-sequence-of-1-3-7-8-21-49-76-224+&cd=7&hl=en&ct=clnk&gl=us

Quote
Forumla producing the sequence of 1, 3, 7, 8, 21, 49, 76, 224
-snip-

Amazingly, some dude probably not a Bitcoiner  Wink was seeking the same thing the OP was only a couple days ago. What are the odds?

This thread started 2 days ago (on December 28), so looks like that guy posted there after reading this thread.

I find funny his excuse... "an interview"  Grin
vip
Activity: 1428
Merit: 1145
http://webcache.googleusercontent.com/search?q=cache:eyTz1uovmGkJ:pastebin.com/erN0F1ce+&cd=3&hl=en&ct=clnk&gl=us

Quote
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
R=PolynomialRing(QQ,'x')                                
sage: f = R.lagrange_polynomial([(0,1),(1,3),(2,7),(3,8),(4,21),(5,49),(6,76),(7,224),(8,467),(9,514),(10,1155),(11,2683),(12,5216),(13,10544),(14,26867),(15,51510)]); f
-673909/1307674368000*x^15 + 5004253/87178291200*x^14 - 151337/52254720*x^13 + 9320029/106444800*x^12 - 25409989753/14370048000*x^11 + 2192506957/87091200*x^10 - 19011117413/73156608*x^9 + 1200887962891/609638400*x^8 - 3585932821063/326592000*x^7 + 647416874047/14515200*x^6 - 18586394742863/143700480*x^5 + 30899291755337/119750400*x^4 - 274137631043849/825552000*x^3 + 36933161067083/151351200*x^2 - 87781079/1155*x + 1
sage: for i in range(0,17):
    print f(i)
....:    
1
3
7
8
21
49
76
224
467
514
1155
2683
5216
10544
26867
51510
-1514935
sage:

[rosemary]
[thyme]

 Grin

How close am I? I'm pretty sure parsley = -1514935  Grin

EDIT: I see somebody already found it: https://bitcointalksearch.org/topic/m.13401879 I guess it's not potato clock then.  Cry
vip
Activity: 1428
Merit: 1145
http://webcache.googleusercontent.com/search?q=cache:jpD-kGY5IRwJ:mathematica.stackexchange.com/questions/102967/forumla-producing-the-sequence-of-1-3-7-8-21-49-76-224+&cd=7&hl=en&ct=clnk&gl=us

Quote
Forumla producing the sequence of 1, 3, 7, 8, 21, 49, 76, 224

up vote
1
down vote
favorite
I had an interview yesterday and I got a tricky question What formula is producing the following sequence of numbers:

1, 3, 7, 8, 21, 49, 76, 224

I could not answer this question and the guy on the opposite site has not given me a solution afterwards. Did not get the job and I am still struggling to find out the formula.

Any help to crack the question?

numerics
shareimprove this question
asked 36 mins ago

nullpointr
1061
         
Is this question related to the software Mathematica? – Karsten 7. 17 mins ago
add a comment
1 Answer
active oldest votes
up vote
0
down vote
It is not the result of any standard "formula" something you can verify by using the OIES or using Mathematica functions like FindSequence. Undoubtedly the "solution" is supposed to be something "out of the box" to test your "creative thinking".

Questions like this are very cruel and unfair. I remember once as a boy growing up on the West coast a teacher gave me a book of puzzles for talented children and it had number sequences. One of the sequences was the intersection of streets on one of the subway lines in Manhattan, as though a child in Los Angeles would somehow know that. People who pose such problems are just complete a-holes in my opinion.

Amazingly, some dude probably not a Bitcoiner  Wink was seeking the same thing the OP was only a couple days ago. What are the odds?
tyz
legendary
Activity: 3346
Merit: 1530
Just figured out that the formula i have previously posted is missing a +1. if you post x = 0, then 1 comes out. Otherwise the formula would not be correct.

Quote
-673909/1307674368000*x^15 + 5004253/87178291200*x^14 - 151337/52254720*x^13 + 9320029/106444800*x^12 - 25409989753/14370048000*x^11 + 2192506957/87091200*x^10 - 19011117413/73156608*x^9 + 1200887962891/609638400*x^8 - 3585932821063/326592000*x^7 + 647416874047/14515200*x^6 - 18586394742863/143700480*x^5 + 30899291755337/119750400*x^4 - 274137631043849/825552000*x^3 + 36933161067083/151351200*x^2 - 87781079/1155*x +1
vip
Activity: 1428
Merit: 1145
With regards to the future, we never know what will be possible tomorrow.

Not exactly true.  With respect to brute forcing a private key we know it will never be possible because we can calculate how much energy it would take for a theoretical best possible computer from a thermodynamics point of view to do the task of just counting from 1 to 2160 or 2256.

Since any possible actual computer will be less efficient than the best possible computer we know it will take any possible actual computer more energy than the theoretical machine - which is already too much energy.

Carefully reread the description next to the picture of the sun that is posted every single time this question is posed.

In your previous thread it was posted here:

https://bitcointalksearch.org/topic/m.13377953

Every now and then I regret not attending college, like when reading this post and skimming over this video: https://www.youtube.com/watch?v=iB3HcPgm_FI

Many a times in our one room home (I have 5 siblings) my mom would make me turn off the light and go to bed at one in the morning while I was teaching myself calculus because it wasn't offered at the school I attended, but even if it was, I would've been reading the text months ahead of the class like I did in them classes that taught about shapes and things, and in the class that dealt with letters like a, b, c, x, y, etc., and sometimes foreign symbols which I think were Greek letters. Come to think of it, I think them Greek letter thingies were mostly taught in that shapes and things class. Or was it that other class that had to with stars and things. Or was it the class that taught me about moles. Or was it that class about copper wires making light bulbs light. Whatever it was, I aced them all... for funsies. That was the extent of my nerddom back in the mid-70's. Good times! Thanks to the advent of Bitcoin et al. I'm now able to revisit them years thanks to accidentally stumbling upon this space in mid-2011... or was it 2009 like when Marshall Long and Leroy Fodor falsely claimed to start their foray into Bitcoin?
legendary
Activity: 2646
Merit: 1136
All paid signature campaigns should be banned.
Sounds like overfitting to me. Its easy to find a function with x+1 terms to match x points exactly. 2 points define a line (a*x1+b*x0), 3 points define a function of leading coefficient x2, etc.

The only thing that makes me think there might be something to this is the "burst" of claims after a long delay.  This indicates that the person was able to claim #47 - #50 in short order, possibly by finding a polynomial fit.

The interesting thing is that addresses #1 - #46 were cleaned out in January 2015. Then nothing for many months. Then on Sep 1 2015 #47, #48, #49 and #50 were almost simultaneously cleaned out.
legendary
Activity: 1946
Merit: 1007
So a version 1 bitcoin address has a security level of 2160, but how to make sure you have a security of 2256? From when on was the version 1 bitcoin address abandoned and we are sure to enjoy increased security?

Maybe I'm understanding this wrong and everybody is using version 1 addresses, but I would rather know for sure I'm using the safest keys possible.

Even though the security of Bitcoin is reduced to "only" 2160 by the selected second hashing algorithm it is actually more secure in other ways due to the selection of two different hashing algorithms in the public key to Bitcoin address step since both algorithms need to be broken in order to break that step.

Every step of the way everything possible was done to ensure that Bitcoin was secure.  For example Bitcoin is one of the only systems in existence that uses the secp256k1 curve instead of the secp256r1 curve that is used by almost everyone else.  But this was a very wise decision in light of recent leaks about the NSA and their underhanded practices with respect to the cryptography they produce or help produce.

secp256r1 was designed by the NSA, secp256k1 was not.

Thanks for the explanation! Good to know that bitcoin uses an encryption curve that was not designed by the NSA. Also feels good that bitcoin is one of the only ones to use this method, as it gives less incentive for hackers to try and crack the cryptography (would be worth more if you hack a bank right?).

Back to the puzzle: Nice find tyz, looks like it is less random than we thought a bit before. It's getting interesting now, I'll take another crack at it Smiley
copper member
Activity: 1498
Merit: 1520
No I dont escrow anymore.
I made some research and I believe that the numbers are results of a polynomial (ring) function.

It also seems that someone already got into this in February 2015. Probably the guy who cashed out the first addresses.
http://pastebin.com/erN0F1ce

Quote
-673909/1307674368000*x^15 + 5004253/87178291200*x^14 - 151337/52254720*x^13 + 9320029/106444800*x^12 - 25409989753/14370048000*x^11 + 2192506957/87091200*x^10 - 19011117413/73156608*x^9 + 1200887962891/609638400*x^8 - 3585932821063/326592000*x^7 + 647416874047/14515200*x^6 - 18586394742863/143700480*x^5 + 30899291755337/119750400*x^4 - 274137631043849/825552000*x^3 + 36933161067083/151351200*x^2 - 87781079/1155*x

If you put for x the values 0 to 15, you will get exactly the first 16 numbers.

Quote
1
3
7
8
21
49
76
224
467
514
1155
2683
5216
10544
26867
51510

When you put x = 17 then you got -1514935. This is probably because the formula is not complete. There is x^16 to x^256 missing.
The callange is to find out what formula generates the -673909/1307674368000, 5004253/87178291200,... values.

Very nice finding tyz, this gives us some hope that this puzzle will still be solved during our lifetime  Cheesy

Yes the problem are those divisions like -673909/1307674368000, not sure whats the formula behind this, will have a look on it.

Sounds like overfitting to me. Its easy to find a function with x+1 terms to match x points exactly. 2 points define a line (a*x1+b*x0), 3 points define a function of leading coefficient x2, etc.
member
Activity: 169
Merit: 23
I made some research and I believe that the numbers are results of a polynomial (ring) function.

It also seems that someone already got into this in February 2015. Probably the guy who cashed out the first addresses.
http://pastebin.com/erN0F1ce

Quote
-673909/1307674368000*x^15 + 5004253/87178291200*x^14 - 151337/52254720*x^13 + 9320029/106444800*x^12 - 25409989753/14370048000*x^11 + 2192506957/87091200*x^10 - 19011117413/73156608*x^9 + 1200887962891/609638400*x^8 - 3585932821063/326592000*x^7 + 647416874047/14515200*x^6 - 18586394742863/143700480*x^5 + 30899291755337/119750400*x^4 - 274137631043849/825552000*x^3 + 36933161067083/151351200*x^2 - 87781079/1155*x

If you put for x the values 0 to 15, you will get exactly the first 16 numbers.

Quote
1
3
7
8
21
49
76
224
467
514
1155
2683
5216
10544
26867
51510

When you put x = 17 then you got -1514935. This is probably because the formula is not complete. There is x^16 to x^256 missing.
The callange is to find out what formula generates the -673909/1307674368000, 5004253/87178291200,... values.

Very nice finding tyz, this gives us some hope that this puzzle will still be solved during our lifetime  Cheesy

Yes the problem are those divisions like -673909/1307674368000, not sure whats the formula behind this, will have a look on it.
Jump to: