Pages:
Author

Topic: Pollard's kangaroo ECDLP solver - page 50. (Read 60095 times)

full member
Activity: 1232
Merit: 242
Shooters Shoot...
July 04, 2021, 12:26:51 PM
Just FYI, for my 2 cents, if you know the range a key lies in, or want to gamble and take a chance where you think the key may lie, then I think subtraction is better.

Like I said a few posts back; we will take #120 puzzle for example. The private key can only start with 1 of 8 possibilities: 8, 9, A, B, C, D, E, F

Let's say you think it starts with C. You can then take the pubkey and subtract by C00000000000000000000000000000. Let us now say for example purposes the private key is:
C23BD97E765A75F0D6D4A6C6B67221.

So for your search range, after subtracting the C000....would be 0:FFFFFFFFFFFFFFFFFFFFFFFFFFFFF

By subtracting, you went from a search range of 2^120 to 2^116; 16 times smaller the original search range. BUT if you guessed wrong and the key does not start with C, then you will not find the key.

Staying with the same example, if you thought it started with C, D, E, or F and you subtracted by C000....then you could search the range of:
0:3FFFFFFFFFFFFFFFFFFFFFFFFFFFFF, and now you've went from 2^120 down to 2^117, 8 times smaller. BUT again, if the key does not start with C, D, E, or F, you won't find the key.

Dividing is fascinating because in your mind you see a much smaller search range, BUT the amount of pubkeys you have to search GROWS the smaller you cut the search range.

So I understand you subtract C00000000000000000000000000000 from 02CEB6CBBCDBDF5EF7150682150F4CE2C6F4807B349827DCDBDD1F2EFA885A2630 the public key for 120 and for example if you wanted to search F then you would subtract F00000000000000000000000000000 from 120 public key? and then search the same range 0:FFFFFFFFFFFFFFFFFFFFFFFFFFFFF
Correct.
jr. member
Activity: 76
Merit: 4
July 04, 2021, 11:09:35 AM
Just FYI, for my 2 cents, if you know the range a key lies in, or want to gamble and take a chance where you think the key may lie, then I think subtraction is better.

Like I said a few posts back; we will take #120 puzzle for example. The private key can only start with 1 of 8 possibilities: 8, 9, A, B, C, D, E, F

Let's say you think it starts with C. You can then take the pubkey and subtract by C00000000000000000000000000000. Let us now say for example purposes the private key is:
C23BD97E765A75F0D6D4A6C6B67221.

So for your search range, after subtracting the C000....would be 0:FFFFFFFFFFFFFFFFFFFFFFFFFFFFF

By subtracting, you went from a search range of 2^120 to 2^116; 16 times smaller the original search range. BUT if you guessed wrong and the key does not start with C, then you will not find the key.

Staying with the same example, if you thought it started with C, D, E, or F and you subtracted by C000....then you could search the range of:
0:3FFFFFFFFFFFFFFFFFFFFFFFFFFFFF, and now you've went from 2^120 down to 2^117, 8 times smaller. BUT again, if the key does not start with C, D, E, or F, you won't find the key.

Dividing is fascinating because in your mind you see a much smaller search range, BUT the amount of pubkeys you have to search GROWS the smaller you cut the search range.

So I understand you subtract C00000000000000000000000000000 from 02CEB6CBBCDBDF5EF7150682150F4CE2C6F4807B349827DCDBDD1F2EFA885A2630 the public key for 120 and for example if you wanted to search F then you would subtract F00000000000000000000000000000 from 120 public key? and then search the same range 0:FFFFFFFFFFFFFFFFFFFFFFFFFFFFF
full member
Activity: 1232
Merit: 242
Shooters Shoot...
July 04, 2021, 09:50:43 AM
Quote
Good job
just correct one line
Also, I have accomplished what brainless has done now/in the past, but with a twist.
now/in the past >>  in the past
remove "now", as no one know whats NOW
and in the past aprox a year ago
Haha! Got it!

Ok, so what are you working on NOW? I know you are always doing some kind of pubkey manipulation/tinkering. Any newly found secrets or tips you have found?


If i post 260 pubkeys in 110 bit rang. Maybe zieler with his gpu bank could find in a year.
If i print 720 pubkeys in 90 bitrange. How much days need to find ?
Probably 1.5 to 2 hours per pubkey; but all Tames would be players, which may speed it up, especially the latter pubkeys.  Would probably go with a little higher DP to try and cut down on tame and wild file size.

How many pubs would be in the 2^90 range?
1/720. 90bit
16/260 110bit
The above was an estimate using my hardware. I ran tests in the 92 bit range, with high DP (32) and it took around 1.5 hours.
If you are asking about Zielar's hardware, I would imagine he could run each pubkey, combine and check for solve, in around 33 days total. Maybe faster with 90 bit.
member
Activity: 348
Merit: 34
July 04, 2021, 09:28:12 AM
Quote
Good job
just correct one line
Also, I have accomplished what brainless has done now/in the past, but with a twist.
now/in the past >>  in the past
remove "now", as no one know whats NOW
and in the past aprox a year ago
Haha! Got it!

Ok, so what are you working on NOW? I know you are always doing some kind of pubkey manipulation/tinkering. Any newly found secrets or tips you have found?


If i post 260 pubkeys in 110 bit rang. Maybe zieler with his gpu bank could find in a year.
If i print 720 pubkeys in 90 bitrange. How much days need to find ?
Probably 1.5 to 2 hours per pubkey; but all Tames would be players, which may speed it up, especially the latter pubkeys.  Would probably go with a little higher DP to try and cut down on tame and wild file size.

How many pubs would be in the 2^90 range?
1/720. 90bit
16/260 110bit
full member
Activity: 1232
Merit: 242
Shooters Shoot...
July 04, 2021, 09:10:54 AM
Quote
Good job
just correct one line
Also, I have accomplished what brainless has done now/in the past, but with a twist.
now/in the past >>  in the past
remove "now", as no one know whats NOW
and in the past aprox a year ago
Haha! Got it!

Ok, so what are you working on NOW? I know you are always doing some kind of pubkey manipulation/tinkering. Any newly found secrets or tips you have found?


If i post 260 pubkeys in 110 bit rang. Maybe zieler with his gpu bank could find in a year.
If i print 720 pubkeys in 90 bitrange. How much days need to find ?
Probably 1.5 to 2 hours per pubkey; but all Tames would be players, which may speed it up, especially the latter pubkeys.  Would probably go with a little higher DP to try and cut down on tame and wild file size.

How many pubs would be in the 2^90 range?
member
Activity: 348
Merit: 34
July 04, 2021, 08:18:53 AM
Quote
Good job
just correct one line
Also, I have accomplished what brainless has done now/in the past, but with a twist.
now/in the past >>  in the past
remove "now", as no one know whats NOW
and in the past aprox a year ago
Haha! Got it!

Ok, so what are you working on NOW? I know you are always doing some kind of pubkey manipulation/tinkering. Any newly found secrets or tips you have found?


If i post 260 pubkeys in 110 bit rang. Maybe zieler with his gpu bank could find in a year.
If i print 720 pubkeys in 90 bitrange. How much days need to find ?
legendary
Activity: 1568
Merit: 6660
bitcoincleanup.com / bitmixlist.org
July 04, 2021, 07:55:24 AM
This was previously posted in this thread but deleted for some reason, it's a snippet from iceland2k14's Github that divides a pubkey by an arbitrary number and returning all the parts in between. I polished it a bit to print the compressed and uncompressed keys: https://gist.github.com/ZenulAbidin/286a652b160086b3b0f184a886ba68ca

Here's the script output when called with a random (uninteresting - with no balance) pubkey, divided by 48. The keys divided by 0, 1, 2, 3 and so on are printed in order:

Code:
>>> shiftdown("0267830f83723fa565ccb8677c14d13f7d47bf1008fea826833359f27f866632ab", 48)
023f81e98df59d891264d3fca9bca16552feaf1c7dba1bebd9a774c5fd6041f248 043f81e98df59d891264d3fca9bca16552feaf1c7dba1bebd9a774c5fd6041f24873afd6e4fe6e2e93db77f96f04428dc8f66831960a6122c81e8a6095428f8b94
03b7d16572d1c71e629645c311078ca3cfbdd15b752de69ac606d9b0076f8373ca 04b7d16572d1c71e629645c311078ca3cfbdd15b752de69ac606d9b0076f8373ca90d73ee0e478d1f9440ce9ae6a08d65d35a7f0c3b1b34d14e7d1bce7f51b3fc1
0227216fdb90bd046064c3b93d10270a047233d17073ec6dae0ece6fe5d5f3942c 0427216fdb90bd046064c3b93d10270a047233d17073ec6dae0ece6fe5d5f3942c4813f1e70df2d6222bc3c5fd822cd750ed63bc899651f89fe39d6630999360e4
033b9934491df1cd5308886498dcc2be62a7a38093a372dd9355d45625a50c5407 043b9934491df1cd5308886498dcc2be62a7a38093a372dd9355d45625a50c54075b2d3d5e12b0c892016f9d30e44f98fad0e9bf35ee6897b9278fabad3eb6f9ab
0236bd119cd3471b5dab8599b0963fafa39972139a9c0cf11d57ff88e4449c15ce 0436bd119cd3471b5dab8599b0963fafa39972139a9c0cf11d57ff88e4449c15ceecea8c7018281b1b7efe9571623a1656e929999064a8a38288e743158645b638
03dfacf1392ee2a08655897f64563cdbbc9f8d700425f5d47a789fdbab028061db 04dfacf1392ee2a08655897f64563cdbbc9f8d700425f5d47a789fdbab028061dbd5c479f1e6fc35d3db8088791a740b52d0324a034e76789b01f813d75aac184d
0375bb11d9936856d2a081847bf121cf6ba4b687ca1ed890e46662ec26d626514b 0475bb11d9936856d2a081847bf121cf6ba4b687ca1ed890e46662ec26d626514b8f517daf3b05802849bfd51d23b60104c185be840bd481289800b957aa1bbc3d
02d4524b803c225a177449263b024bb6b2b7196fed3cb6905dbe02f9a54b4cfa53 04d4524b803c225a177449263b024bb6b2b7196fed3cb6905dbe02f9a54b4cfa53529f8e7328cdf85fca6727e4d44e45402d43480e65c11117ae0041aa8978a1c4
03d71a03b483720655d327983a64dbedf6f3d4b29a0545907e8894a9d575d5e004 04d71a03b483720655d327983a64dbedf6f3d4b29a0545907e8894a9d575d5e0046c7bfc0f84767f43ddc51015469aa09108ca1b1369305c3430f6651b245c415d
0284ef6b14ba3accb84d467c5f39c3d6bee2b1b972f260283ef29a3391ff44cc92 0484ef6b14ba3accb84d467c5f39c3d6bee2b1b972f260283ef29a3391ff44cc92e191dd65da677a85c858795c6995a164a2c4c35ccd27dfdd7f14af515e679b4a
02afb52737d6ffc033455fcd93aac81b7f9744fdcb6393553a8c1ab5f0c7540f2e 04afb52737d6ffc033455fcd93aac81b7f9744fdcb6393553a8c1ab5f0c7540f2ec78c5e51b4eb89dab380cc62912d861084ad587b7530f6276a37ad206adfea4e
03e872311ae7200f33bff94d33159596e716a5d149547d4c8b5cc0319e69272006 04e872311ae7200f33bff94d33159596e716a5d149547d4c8b5cc0319e69272006fdf7c325e3e06e9fd666afb0af6e280d461a608e04614a2921a6d5ab41fc2491
0204f555a02d8e439e216f6f906ecb3f18a3156ac27a52b8be50241e94a4ad1b5b 0404f555a02d8e439e216f6f906ecb3f18a3156ac27a52b8be50241e94a4ad1b5be4f1c6ca003b968f1c34d055d4fb2d7bbdc152f2632dde308b0c08ba64e1636e
02f38ef3d039a01f254dfea5c526cd7fbac66ba4f119f4f079b023b358c966c88f 04f38ef3d039a01f254dfea5c526cd7fbac66ba4f119f4f079b023b358c966c88fc67031c67a9698df456693055b1e7f5905180f6d4f1ac050dd599d87614acd72
03e68a481b261229bc326522334573acedc08def4e27156625b67fc3618ab37865 04e68a481b261229bc326522334573acedc08def4e27156625b67fc3618ab37865fc00b314a85033f24e610fce633d3f0034dc07ced7bab805ddd4882ba385a411
037edc3ad44ab06b71a8c15cce4cf366411cd24d4017b4195a757aadf71b2bf79e 047edc3ad44ab06b71a8c15cce4cf366411cd24d4017b4195a757aadf71b2bf79e0ce8524931e85be88aef99081775e20140c19d8b62075e6216f211c5d977c3eb
029c864308910b3ac3856e71c1261018fff180f0340c19addfb62d277ccb6ae730 049c864308910b3ac3856e71c1261018fff180f0340c19addfb62d277ccb6ae73073625826e7e8cae06cbed7384ae158c584f7ce49e65f859da5ed3b8fada338de
02d7ca55e58d070e78126bb3bd2ed75825627775c9fddd032d35082c15131deebd 04d7ca55e58d070e78126bb3bd2ed75825627775c9fddd032d35082c15131deebd419621117f642ebdebf3d284ddaf8b10bbf601759ea6943032981b0240001f00
02ef9af103205ed92432df2a7d07241615a6566f80743fb5673bb6d6dee5d8b4f1 04ef9af103205ed92432df2a7d07241615a6566f80743fb5673bb6d6dee5d8b4f1e0e321db29fa0c9d550fcb08aed871ee6d9d25f670f5bbfad973048033db6cea
03ad7aaf4595b3afbf432cded4e394583d093b6c25049e5f3134c95358e3588745 04ad7aaf4595b3afbf432cded4e394583d093b6c25049e5f3134c95358e35887458a6dae6d5614abd980f56245ee45975ad72957bd800b6e0335382c2a59ed91c9
03ddb8447d948936dd4760cec2dd6cd273c7cf50ca4d5d381044b36ec8741b22c5 04ddb8447d948936dd4760cec2dd6cd273c7cf50ca4d5d381044b36ec8741b22c5a008a1b0cb8e41a1a376db4cf750bdd93b5dabb1458b58555c22de3d11693321
02a510ab53586dd366388ce5e83dd566dfa036fa5cea5b2ac50c0470ec39d952d5 04a510ab53586dd366388ce5e83dd566dfa036fa5cea5b2ac50c0470ec39d952d5715d568b37ecc1f1d2073482cb6fe48d5e44b03ac7340fcd04d8e0785461d20e
03f76ffb506b5757398a43d41ab98d2613b0df0e4637e3d266278395a7b578d09c 04f76ffb506b5757398a43d41ab98d2613b0df0e4637e3d266278395a7b578d09c0be238cfd2b54079d47ab5db419bba96c44ea0f7fce5a01a79da2c432c398597
02ca39a54157c35b04b1fee81710a867ed862fa279e2302662a720c8f46c5b4d7b 04ca39a54157c35b04b1fee81710a867ed862fa279e2302662a720c8f46c5b4d7b6bc7d7f2d980e86cac28bb5b63076a0dd0aa5fae87fa302d9fd4ad1e7c15269a
02ede8c8e81369cfeb0abb53de9511896d2d7c9e8e5ed40928bd356d7287c5d9b8 04ede8c8e81369cfeb0abb53de9511896d2d7c9e8e5ed40928bd356d7287c5d9b8bd74498e1cfb9b6d96bfe31c13179af6d92b84700353351d372939fe0c7eb41e
03920a3695485fd70304b37ebb7d8ee72c27d9052bdc1c59e1224cd9fa6124fc44 04920a3695485fd70304b37ebb7d8ee72c27d9052bdc1c59e1224cd9fa6124fc443281843227790e8f3ba432d58b32d0a156e6547f8b41ffa747b922abb709be55
0347d1765f1a5627a8c16041bbdf14d88abfbefed90aa8672ead83a6eff3b9f2e7 0447d1765f1a5627a8c16041bbdf14d88abfbefed90aa8672ead83a6eff3b9f2e7db8669de83cfb8c20454dc2197875c5bcfb499c47bd227c28a61d569bc02bf7f
0215f893d55929a8a101be21c6071f706d1be874af95a33eea23b7fc7a283d6f75 0415f893d55929a8a101be21c6071f706d1be874af95a33eea23b7fc7a283d6f759f1cf84d6b9bbd6bc97c41256b1f12a12ffacd00a1f915a92567318260ee3b38
027bd4d04d02759b7cddb134d6eb88b9ef54ea950c42b929b050e431e32dcc4276 047bd4d04d02759b7cddb134d6eb88b9ef54ea950c42b929b050e431e32dcc42768569e2c75663956d932c9ab6af8e33dd1b5922100ccd86b74065ca187da18e4a
022c5062793956267056d8420aff1e7628533cf9d0e4d30416aea06c8ffa57075a 042c5062793956267056d8420aff1e7628533cf9d0e4d30416aea06c8ffa57075ae55c7e00e8d3502960abc07df0462bac678d50fa0283423b6501c5cf384b4292
03d9e8fdea0f739a5a67585c801e24b8ae5f528e64ca9268ac2703dd96ef9640f3 04d9e8fdea0f739a5a67585c801e24b8ae5f528e64ca9268ac2703dd96ef9640f32f4e6e1c4780e7ee0e24b03edb514a1eb42b9311ae69f15c2933ea4bf1993e5b
02fa1e16af956474cdb52eb069012813ebfe508ac50e16bb7bef6c2233605c3709 04fa1e16af956474cdb52eb069012813ebfe508ac50e16bb7bef6c2233605c37093780172eeb613c2c19836f63bba7d7ac164420130c7d71dd06bd11e00f465db4
0361b28c079e403ec070efe4247ca22c652f4feee414cc361b1a70b6c8bd753f48 0461b28c079e403ec070efe4247ca22c652f4feee414cc361b1a70b6c8bd753f4890e76066c3a07d6514dab89784b7847d3967ea77e70322373cb485313c13f009
0347cbf63b2849c894f9c22660c766034226ac6c61ae76b220b5df7831cc9b9e0b 0447cbf63b2849c894f9c22660c766034226ac6c61ae76b220b5df7831cc9b9e0b91a3017cb6a8ed5744bbb30af37d984209a489f94c4c85629cfa1ef7ff3f5131
03a452116d43720f3fd28243e2a114ff145f8475016b34a378af021946e2a3f87b 04a452116d43720f3fd28243e2a114ff145f8475016b34a378af021946e2a3f87b28649a7d5a2559a5092d52c697c66aa04beb7f5d1ddc171003e50dea58b6674d
032a9c89f590aba176ef0d1a69dab1121fdf4d925900d3fa58676267b02c538567 042a9c89f590aba176ef0d1a69dab1121fdf4d925900d3fa58676267b02c5385672974e58f4b1073c60c89e2e7d1a1d39494cbe10e3fcfa2ed07843c078cc1af07
03385b50a489bebc64d8b989c55756ab8db18cbc9bedb3119d020de02ea728b8f0 04385b50a489bebc64d8b989c55756ab8db18cbc9bedb3119d020de02ea728b8f03dd3d75614a806a8aa9e691bfcb8e407e3b60713d2dea8209e577647ce502bb3
036b54187fd9bbbfa4839f0a8cd22117bb25c32d0488005efd2932748ca6b170b4 046b54187fd9bbbfa4839f0a8cd22117bb25c32d0488005efd2932748ca6b170b42776916233d8ebb1e7f8ced8ed49dded5c5431891f4cada816bd09f77ab965b1
03b02a39d64581de4644a9dabf7b82d39e56ab3451325be2d6297ef04bd41ae8d4 04b02a39d64581de4644a9dabf7b82d39e56ab3451325be2d6297ef04bd41ae8d4a35e244188dbf0bf733089259d4806eb6e6c7e9b623af719e6aec28a23e18301
0301df71ddf8bffee835dcaf0c8d40625b297b972fc65c9fc528bde11782f78056 0401df71ddf8bffee835dcaf0c8d40625b297b972fc65c9fc528bde11782f780569ec37a656613d99f2a5b828def9e7d9997766077f6dc734802e99e6458ba211f
03719a27faa6d659cbb05a19f8e194ee393b19ad2be8975a459afa67ff1e83f60f 04719a27faa6d659cbb05a19f8e194ee393b19ad2be8975a459afa67ff1e83f60fee4cb7b2dc564a9bf1646fe947d7f0a03b5e86a8824211d0ff81e092928612af
02c59315d3c212c3f5fac3c543f123e01a84968700563387838093b713255bc719 04c59315d3c212c3f5fac3c543f123e01a84968700563387838093b713255bc719ed2cdb661626657ed5dd4952a740ec3479c0f8c0c002c554b064ec61bc2d229e
036f7a6354b572e5d916977036a05080e8f1b4d4b9318ff01e2d34d1c2d23d74a8 046f7a6354b572e5d916977036a05080e8f1b4d4b9318ff01e2d34d1c2d23d74a80becc560cd7e25710dba8b091629bfd187baafcdfefedf85d571411ac00e0073
03171895c9e5014231367bcc5a4dfa7a627130766c8ee156be591f08406aad0559 04171895c9e5014231367bcc5a4dfa7a627130766c8ee156be591f08406aad05598dc268607c44ae9d4b778e33ae1c4a9df1b4e861c62007c3521f2973f3321ef7
027cea24324d9a75b087b0e4edfe9010e4344b82d031ea5aada98b76d8e3be195d 047cea24324d9a75b087b0e4edfe9010e4344b82d031ea5aada98b76d8e3be195d16eb15dc757870c79b18bc0ed6a73957ff1b0c0c0b453d92e37a950c1747fc26
02242dda2b724f4d591656be1385e1fa12b0f14058f018bfec4d43ff381de4fa71 04242dda2b724f4d591656be1385e1fa12b0f14058f018bfec4d43ff381de4fa712552b2a971ca452b757c9b50bb21c79d3cccfeb5b6959adf2d03c7007d4e630c
03c2966edf6fbc5d4fac3374bb2efa742866b172f7615e0bd344da40802e8d5f19 04c2966edf6fbc5d4fac3374bb2efa742866b172f7615e0bd344da40802e8d5f192e50a8745d87bcbd60d5f4e66615bb5f73399eea3aa831e510c91a614e7c0bb7
03762c522915bbf095256a81d5e4f727e5de10adeefae46a29aa145245cdfeb1aa 04762c522915bbf095256a81d5e4f727e5de10adeefae46a29aa145245cdfeb1aaf38fe17a77bea18c35f8597a58e3b5581c35ccfe07cd66b61c20b1858c21c905
03eae5e964c71aad0103e47ad1c51dfd176dc79d7723065809b9030898ced99138 04eae5e964c71aad0103e47ad1c51dfd176dc79d7723065809b9030898ced99138c34a46c6f2585b6760b04516323d89e01d7a3af1df27e84df18dfa58973c823d

*edit: some text was cut off*
full member
Activity: 1232
Merit: 242
Shooters Shoot...
July 04, 2021, 01:59:25 AM
Quote
Good job
just correct one line
Also, I have accomplished what brainless has done now/in the past, but with a twist.
now/in the past >>  in the past
remove "now", as no one know whats NOW
and in the past aprox a year ago
Haha! Got it!

Ok, so what are you working on NOW? I know you are always doing some kind of pubkey manipulation/tinkering. Any newly found secrets or tips you have found?

member
Activity: 348
Merit: 34
July 04, 2021, 01:41:07 AM
Also, I have accomplished what brainless has done now/in the past, but with a twist. 

I created 57 million pubkeys that all link to #120's pubkey but they all lie within the 2^120 range (the original search range 80000...FFFFF) They are all proportionately spaced out. I basically created a certain length "jump" if you will.

I first started the process to see how long it would take to create that many pubkeys, and after 20 million I just let it keep going and finally stopped it around 57 million.

I have the pubkeys and the applicable compressed addresses to each pubkey.  I secondly was going to run a test and search for all 57 million addresses with my modified VanBitcracken (one could do it with bitcrack as well, I think. When I once tried loading an input file of over 25 million addresses, bitcrack wouldn't start/run) and see how much of an impact it had on GPU speed.  I have yet to run that test.  Funny thing is, I can run python on 1 CPU thread and check 2,000 keys per second no matter how many addresses I search, 1 or 57 million.  Your only limitation is the amount of RAM you have.
Good job
just correct one line
Also, I have accomplished what brainless has done now/in the past, but with a twist. 
now/in the past >>  in the past
remove "now", as no one know whats NOW
and in the past aprox a year ago
Smiley
full member
Activity: 1232
Merit: 242
Shooters Shoot...
July 04, 2021, 12:08:38 AM
Also, I have accomplished what brainless has done now/in the past, but with a twist. 

I created 57 million pubkeys that all link to #120's pubkey but they all lie within the 2^120 range (the original search range 80000...FFFFF) They are all proportionately spaced out. I basically created a certain length "jump" if you will.

I first started the process to see how long it would take to create that many pubkeys, and after 20 million I just let it keep going and finally stopped it around 57 million.

I have the pubkeys and the applicable compressed addresses to each pubkey.  I secondly was going to run a test and search for all 57 million addresses with my modified VanBitcracken (one could do it with bitcrack as well, I think. When I once tried loading an input file of over 25 million addresses, bitcrack wouldn't start/run) and see how much of an impact it had on GPU speed.  I have yet to run that test.  Funny thing is, I can run python on 1 CPU thread and check 2,000 keys per second no matter how many addresses I search, 1 or 57 million.  Your only limitation is the amount of RAM you have.
full member
Activity: 1232
Merit: 242
Shooters Shoot...
July 03, 2021, 11:59:57 PM
Just FYI, for my 2 cents, if you know the range a key lies in, or want to gamble and take a chance where you think the key may lie, then I think subtraction is better.

Like I said a few posts back; we will take #120 puzzle for example. The private key can only start with 1 of 8 possibilities: 8, 9, A, B, C, D, E, F

Let's say you think it starts with C. You can then take the pubkey and subtract by C00000000000000000000000000000. Let us now say for example purposes the private key is:
C23BD97E765A75F0D6D4A6C6B67221.

So for your search range, after subtracting the C000....would be 0:FFFFFFFFFFFFFFFFFFFFFFFFFFFFF

By subtracting, you went from a search range of 2^120 to 2^116; 16 times smaller the original search range. BUT if you guessed wrong and the key does not start with C, then you will not find the key.

Staying with the same example, if you thought it started with C, D, E, or F and you subtracted by C000....then you could search the range of:
0:3FFFFFFFFFFFFFFFFFFFFFFFFFFFFF, and now you've went from 2^120 down to 2^117, 8 times smaller. BUT again, if the key does not start with C, D, E, or F, you won't find the key.

Dividing is fascinating because in your mind you see a much smaller search range, BUT the amount of pubkeys you have to search GROWS the smaller you cut the search range.
full member
Activity: 1232
Merit: 242
Shooters Shoot...
July 03, 2021, 11:11:59 AM
Quote
@WanderingPhilospher Please explain if I divide a public key with a range of 2 ^ 255 by 0, 1, 2, 3, 4, 5, ... up to 2 ^ 155 the probability is much more likely to get 2 ^ 100 than, for example, to split public key with a range of 2 ^ 255 by 2 ^ 235 to end up with the smallest 5 times range of 2 ^ 20 ?
I don't really understand number theory. Does all this have to do with modular multiplication? That is, getting 2 ^ 100 is more efficient and expected in theory the probability due to the fact that the module is 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFEBAAEDCE6AF48A03BBFD25E8CD0364141?

I'm not sure I understand your question 100% but,

dividing doesn't necessarily equal probability.  It just shrinks the search range BUT adds more pubkeys you have to search for in that smaller range.

With Pollard's Kangaroo, starting from scratch (meaning no previous tames and tamed wilds) I think it will take you longer to solve; unless you get lucky and pubkey is towards the beginning.

With BSGS, you save a little time searching say 100 pubkeys versus 1 pubkey, from not having to generate baby steps 100 times (most time consuming in BSGS)

With brute force like bitcrack, it would save time but since the more pubkeys you have in your input file, impacts the overall speed, then there is very little speed up, if any. But also, bitcrack is exponentially slower than Kangaroo or BSGS, just searching for 1 pubkey/address, so this would not be an option for me, at all.

But the biggest thing to remember is, can you write to file, the amount of pubkeys you wish to shrink the range by. If you want to shrink the range by more than 2^26, then it starts to take awhile/unfeasible to write all of those pubkeys to an input file. Just my 2 cents.
newbie
Activity: 30
Merit: 0
July 03, 2021, 03:46:59 AM
Quote
This is realy woked ? for ex, If I substract 128 pubkey from 255 pubkey, I will get 128 pubkey ?

No magic Cobras, just math on the curve. Come on man.


If someone will generate a random private key in the range of (let's keep it small to show it works and can be checked quickly):



WanderingPhilospher, can you show on this yor example:

2^255 3E2E2AE352CF04AA1BD62491AF51349B559F52CDBD2140A7A8C072A1FAE6FFD5

shift to 2^100

this is a public keys of 3E2E2AE352CF04AA1BD62491AF51349B559F52CDBD2140A7A8C072A1FAE6FFD5 :

0419f1854552de8509c438288726e45f049b1ebc2a7b573630437af7c443b2729070528c6d01b16 114e3a9ab033405ff2799fdb61473755073f7ca689b2ae2ef44 - 13zwUCryqSn7LPdWCKArj4UCRExpg7UYJz

0219F1854552DE8509C438288726E45F049B1EBC2A7B573630437AF7C443B27290 - 1A692apD3nn1NqNZSWCd1oyfEhxM7J7F1Q

?

I now not really understand and trust this method(dividing of pubkey what can be worked...) and I hope you can help understand me more

Thank you

Regard


The only way to get a key down from 2^255 to 2^100 is to divide by 2^155.  Meaning you would take that pubkey and divide it by 0, 1, 2, 3, 4, 5, ... all the way to 2^155 (which is a HUGE number) even if your computer could divide and write to file a trillion pubkeys a second, and start a new file once the current file got up to say 1 GB, there is still no way to capture from 0 to 2^155 pubkeys. It would take an eternity. But let us say you did manage to capture those 2^155 pubkeys...now you would have to search each and every pubkey in the 2^100 range to find the one that will give you the private key of the original 2^255 pubkey that you were searching for.

If you would have done like I asked and gave me a random pub key in a smaller range, like 2^40 range, I could show you with examples. 2^255 is to big man, for explanation purposes.

@WanderingPhilospher Please explain if I divide a public key with a range of 2 ^ 255 by 0, 1, 2, 3, 4, 5, ... up to 2 ^ 155 the probability is much more likely to get 2 ^ 100 than, for example, to split public key with a range of 2 ^ 255 by 2 ^ 235 to end up with the smallest 5 times range of 2 ^ 20 ?
I don't really understand number theory. Does all this have to do with modular multiplication? That is, getting 2 ^ 100 is more efficient and expected in theory the probability due to the fact that the module is 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFEBAAEDCE6AF48A03BBFD25E8CD0364141?
member
Activity: 348
Merit: 34
July 03, 2021, 12:05:54 AM
I don't understand how the search is calculated in this particular range.
Explain in a nutshell.

Start range is subtracted from End range to make a new range between 0 and end-start, which is searched instead.

Then we make a batch, or herd, of 1024 starting points, with tames and wild points overlapping each other like this: Tame Wild Tame Wild Tame... The tame random points between 0 and end-start=range, and the wild points will have them between -range/2 and range/2. These are the starting points


We take some random numbers, the same amount as herd points, between 0 and range/2 as "jump points" and subtract them from our herd points. Resulting numbers are then placed in an Group (which in Kangaroo is just defined as a collection of numbers) and ModInv is applied to all of them.

For iteration we compute:

Rx = (Py - JumpPointY [mod n]
    * Group [mod n])
  ^2 [mod n]
  - JumpPointX [mod n]
  - Py [mod n]

Ry = Px - Rx [mod n]
  * (Py - JumpPointY [mod n]
    * Group [mod n])
  - Py [mod n]

For each g in CPU_GRP_SIZE (2014)


And the search points P are replaced with the ones in R.
Guys fyi 1024 is not div point in ecc, posting here, divideable magic digits for ecc, these will help you to decide bitrange to divide, use these magic ecc div numbers, for pollard kanagroo or other manual div

2   447   7572   564114
3   596   9536   752152
4   631   10096   1128228
6   894   14304   1504304
8   1192   15144   2256456
12   1262   20192   3008608
16   1788   28608   4512912
24   1893   30288   6017216
32   2384   40384   9025824
48   2524   60576   18051648
64   3576   94019   
96   3786   121152   
149   4768   188038   
192   5048   282057   
298   7152   376076   
legendary
Activity: 1568
Merit: 6660
bitcoincleanup.com / bitmixlist.org
July 02, 2021, 02:24:10 AM
I don't understand how the search is calculated in this particular range.
Explain in a nutshell.

Start range is subtracted from End range to make a new range between 0 and end-start, which is searched instead.

Then we make a batch, or herd, of 1024 starting points, with tames and wild points overlapping each other like this: Tame Wild Tame Wild Tame... The tame random points between 0 and end-start=range, and the wild points will have them between -range/2 and range/2. These are the starting points


We take some random numbers, the same amount as herd points, between 0 and range/2 as "jump points" and subtract them from our herd points. Resulting numbers are then placed in an Group (which in Kangaroo is just defined as a collection of numbers) and ModInv is applied to all of them.

For iteration we compute:

Rx = (Py - JumpPointY [mod n]
    * Group [mod n])
  ^2 [mod n]
  - JumpPointX [mod n]
  - Py [mod n]

Ry = Px - Rx [mod n]
  * (Py - JumpPointY [mod n]
    * Group [mod n])
  - Py [mod n]

For each g in CPU_GRP_SIZE (2014 1024 [really bad typo])


And the search points P are replaced with the ones in R.
newbie
Activity: 11
Merit: 0
July 01, 2021, 08:22:37 AM
I don't understand how the search is calculated in this particular range.
Explain in a nutshell.


Here's an example-

#135 ( 16RGFo6hjq9ym6Pj7N5H7L1NR1rVPJyw2v )
4000000000000000000000000000000000
7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
02145D2611C823A396EF6712CE0F712F09B9B4F3135E3E0AA3230FB9B6D08D1E16
legendary
Activity: 1568
Merit: 6660
bitcoincleanup.com / bitmixlist.org
June 28, 2021, 12:28:13 PM
Code:
divisor = 32
keyfoundinposition=22
privkeyfound=0x74D72499E
solvedkey = int(privkeyfound*divisor+keyfoundinposition)
print(">%x"%solvedkey)
#E9AE4933D6

OK now this makes sense, thanks for producing the code. So apparently this dividing by 0,1,2,3... to shrink the size of the pubkey really is just ((pubkey-keyfoundinposition)*divisor)-1

So for example ((pubkey-0)*32)-1 or ((pubkey-1)*32)-1, etc.
full member
Activity: 1232
Merit: 242
Shooters Shoot...
June 28, 2021, 11:57:28 AM
Quote
Wow, I just checked and found this match:

address: 1Kc3gPy54e68BsHVJreSqSHgm3fLeXnj2g
pubkey : 02133205BAD04B511DA446FE2E4777D15B1AAAA7E99B084E67A2968DAA7C1EB946
privkey : 74D72499E (35 bit)

I want to ask how you did get these 33 pubkeys?, I have read your previous messages but not getting it completely.
If we divide range 400000000:7FFFFFFFFF which is 7FFFFFFFFF (39 bit) by 2^5 then the result will be in decimal point, its not a perfect division.

So how do you do this? And how to derive those 33 pubkeys, Need little explanation.


Regards!!
Like I said, it's mod p this and mod p that.

Some smarter people may be able to explain it better...I get the gist and know it works.

Now to get the private key for the original pubkey we were searching for:

Code:
divisor = 32
keyfoundinposition=22
privkeyfound=0x74D72499E
solvedkey = int(privkeyfound*divisor+keyfoundinposition)
print(">%x"%solvedkey)
#E9AE4933D6

You take the divisor, which position the private key found is in (in this case it was 22; if you count down from the lines of the pubkeys I posted, or the addresses, you will find the one you found on line 23, but the first line is 0, so line 23 = line 22 and then multiply the hex priv key found by the divisor number and then add the key found in position. And now you have the actual private key we were looking for.

legendary
Activity: 1568
Merit: 6660
bitcoincleanup.com / bitmixlist.org
June 28, 2021, 01:34:39 AM
Wow, I just checked and found this match:

address: 1Kc3gPy54e68BsHVJreSqSHgm3fLeXnj2g
pubkey : 02133205BAD04B511DA446FE2E4777D15B1AAAA7E99B084E67A2968DAA7C1EB946
privkey : 74D72499E (35 bit)

I want to ask how you did get these 33 pubkeys?, I have read your previous messages but not getting it completely.
If we divide range 400000000:7FFFFFFFFF which is 7FFFFFFFFF (39 bit) by 2^5 then the result will be in decimal point, its not a perfect division.

So how do you do this? And how to derive those 33 pubkeys, Need little explanation.


Regards!!

Well you would duplicate the public key to have 33 copy and add a different number like 0, 1, 2, 3, ... up to 32 to each pubkey and then divide them all by 2^5. Because each pubkey has a slightly different number added to it, the division will make wildly different smaller pubkeys like those ones above.

Division is done mod curve order to my understanding, but what I don't get is why both a division (which can I just say I think addition-then-division is a better term to call this since otherwise division by 0 sounds... weird) by 0 and 32 is necessary when the divisor is 32.
newbie
Activity: 2
Merit: 1
June 28, 2021, 12:48:20 AM
Cobras, haha, since you wouldn't do as I asked, I'll just use #40 from the puzzle/challenge.

Adddress (not important):
1EeAxcprB2PpCnr34VfZdFrkUWuxyiNEFv

Pub key:
03a2efa402fd5268400c77c20e574ba86409ededee7c4020e4b9f0edbee53de0d4

Now, it's range is 8000000000:FFFFFFFFFF

I will divide by 2^5 (32, which will actually be 33 because you also divide by 0)
Here are those 33 pubkeys:
Code:
02f0c386f6714fe5940ec7e622d8ba2e5204c58cd71a9c73ca95fb0e4ec0e76d72
03f7f61f6fc40c3df9696ab839727b1dc1391a9da275ea6d42d17302cdccbdc09a
02c19b2db68679148bd96635d08fe824ba9bd20daab2873840aaabcfceec484a96
0209e65b3fe12c22728d87fcca8b984084b2f9b646fbabe2f5981024fb95eba4e1
038f479f61a73435ba2f038b1a54f1f54adb0508be58bd880b9174bea3aa7e86d5
039e894d63c7153c69f87868d9c63b02a8a011d942f4886d91bd5d8f58bb6b5afc
0381d7a33f05ade886db9bbcf96f8e1759fbffd2df33532753bab3433d281dc87f
02d25985c166a0ca3bf3f41e0d183df2f0a2cce1cf90caf79165b42cb12c1105db
032061e0311088d0d98131adf4a38b0bfbdcea1c23a732c3113169ddebb905a267
0242f66a0c1fa8c6b4ab00172b99e8bf92227570b2fb980e08f45a0db5bf617dd7
0239703514939aec42c3103e8a02c712b4f26903d559e92403ecd0511523ddedc9
0221a766fd4041d03ad65681684bde68db01dc9bdf09b3dcbb7fe513f71b81ae24
03d21e878ab0aeac492a88c1f5430e823a05201f50b2b6dda1af05e62c69d332ef
03642173b68ffd55b79ae59e8504e726285a5d916b8cf2224cf9dd3b6ab5550427
02124482f38119b78ced6d4cfdbb1f527538eea8158f7e7ca14507e70640e6f6ec
033df51c60c3e0cee9317eea3d97125a76aea5e9087a332df6fb47f5a7e78ac935
0249d150e04bf39f36c85499af2d56c285f93f647d563a8d644b03109a905d3ad8
03d999d94ebe5a16b8d473c4d00d325f0874926c8dea8a22aeb60b1a35f5543100
0380ede2c7f5cc251e1ecd52773e3dcebb3bc5fceab4ce89d62018b45ddc4ee3aa
024b97c8d72f48320211b5e67131799004be48250dce123c56e3fb89d68d9396e5
02a20ce9ba321bf7a13b45af5645a49eae0870dd0aee64ce48eec46904982e09f5
03248efe604a9bf36e86f2257d1af410565bab4ea237493c34b5b86a144a6470eb
02133205bad04b511da446fe2e4777d15b1aaaa7e99b084e67a2968daa7c1eb946
03d05d0862f0d677b838af72763982be68850d9b222081289dd191283e68c75058
02152bd00d55a9f82eef113d4e2b8c26e2c280b8c713154515fea807ff07e00fad
02f5f38191a6afbb8efda92c199626dc54362aeb4ec7df55adb0d3076af6251e71
03de0ae872279680997511720b05d197bd164955688bb27d1b8747a6b4b071322e
03ec224492baa0bfc9d3fe7388384aa74a0397d66acf9736434044981febfd4679
02ba62c3d3e7c6c782113d45d3426e222adefcef36f0241746340153dcc51c218c
02aec4e228a8bfea725af79be641788b0b7743b620cae1426d6f052bf4f1e451ed
022fdbce7c0ed6ff7f6461fad0b0361209db556c6668b63c62ec2d6ab5c1be53dc
03a16d65d082d8c4e655d20eac7b2d216b2e22ab2b6ed5133df4394669ec9d10a4
03858ecab60490237bf8053a7354223cdbfdc76634623800a8e64deb4aa0adc0c0


And if you want to search by compressed addresses that match the above pubkeys:
Code:
14zJF8CnG4hYZnPk4PYfc8gLU31Puqfgsv
1NRNqBzcGrhVPwcAG3mQtuVJk8LzbJbzJq
1JcJGT8ezp8EHsVDcDyPNa3Ar2zbhiy4ax
1HaCnLU7wssvrTUpEGDcBPebX4mmR21MWN
14Xuu5dGxwZpHf4mr1r4ziYDXdgMrFbDbP
19YPjv6E1642SPve4toMZkpo8TMvYvhin3
1Bdx4r4xx9UFRoVoR4QtgSjrcgEfpehia
1FJzTav9h59pi81yGXmgQAWu6ZergWEFZo
1GCzqPsWNN52M5oViktLdawZYMb912PXyZ
1GfWXSJ1eA14ap8enpUsVm2HTQV2cRBPZD
17e1To7mLCJzusa7sbs8habEzsMiF5jKej
1JPaPJpYUCsFn25ECZTZxU62mdrHTwYUkM
1JixzUPVmoeU25a84pUXf6xNfHBmoT8FXy
1EHUpUsHeLFNhLeivmkqZp4rYqivaq2Ghe
1CGAuzs7MRyXFpMnNTVsSvEknt2AxDPaLK
1JuaDBFmHFhV6ozKJbsnR9k3Mnv3PWB9GZ
1KRHnqXQyfLZuYVqPmfKSpZPNE4j2vCnRn
1JwHmAFSgrDsUV6ow9CvuYz4YKhiFHtdLm
1N7Vbc9bsYy6B4Qmf3Vr3wKjJJLf7xR4sk
1JkKmLkmuUg9g8UpzoJvrfz38bzYKKaA85
1GV5w1kvsybCiTk8EJ6JcwtioabaxPTF96
1M23DScXBhi1imqVqmTTvndrDQjACYpATp
1Kc3gPy54e68BsHVJreSqSHgm3fLeXnj2g
19PS9jCNYaQ4LnhJ3Yt8K9hcH6swBQi9pV
1CAxJ3uDxnAza79NfPbJXRoznYkA6w865Y
1DePnGTmKV8it1XQjXM9Y4cW7PhLQerFRY
14j7AZVuGMvTUavj1DRFE4Wp6dWGPrBeAc
165Echz8WdXjXdBZ8eAp6sUCPsWw8n62xg
1LEvqW3x8eF2jQeYLrjANAZWaFqvU3Xw7L
12AD1vSr1QcW2e2LZvMSHv63RXKT8eJUXo
15RTpbp2AfHp8d7Xgq8DbyNsT4rKDfxQCo
1BvJV9vp7Yg38rycEFtHxFYx9Aid2aD3RL
14UUWCMpLB6doUuTkUjsBAFXwpvCnADt9N

Now since we divided by 2^5, you will find at least one of those pubkeys/addresses in a new range (35 bit range; 40-5=35):
400000000:7FFFFFFFFF

So use kangaroo or BSGS to find pubkey in that new range or bitcrack to find addresses in that new range.



Wow, I just checked and found this match:

address: 1Kc3gPy54e68BsHVJreSqSHgm3fLeXnj2g
pubkey : 02133205BAD04B511DA446FE2E4777D15B1AAAA7E99B084E67A2968DAA7C1EB946
privkey : 74D72499E (35 bit)

I want to ask how you did get these 33 pubkeys?, I have read your previous messages but not getting it completely.
If we divide range 400000000:7FFFFFFFFF which is 7FFFFFFFFF (39 bit) by 2^5 then the result will be in decimal point, its not a perfect division.

So how do you do this? And how to derive those 33 pubkeys, Need little explanation.


Regards!!



Pages:
Jump to: