Pages:
Author

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

newbie
Activity: 7
Merit: 0
https://www.talkimg.com/images/2024/04/16/jvtt1.gif
Hello friends, it's time to make it public.
I hope these findings will help you find the keys.
The program used is Adobe Illustrator, where the keys are placed together around a spiral axis and separated by a distance.
The coloring is adjusted according to the work of zahid888.
What is strange is that with the font number 10 and the distance between the numbers of 600, we have an order and the colors are automatically placed in their own categories.
The stars selected in black color are the position of key number 66, and the next stars are placed in order up to key 70.
I have many more things and more detailed arrangements, and if I can and my condition allows, I will make them public.
Note that the private keys are in decimal format

Don't forget me if I helped you reach the key.
1E4Shdpyfqz2vBqsnYw1Z8XT5cu7N5dEaK

https://www.talkimg.com/images/2024/04/16/jvZq3.jpeg
member
Activity: 260
Merit: 19
the right steps towerds the goal
Happy 10x Anniversary. On this inspiring day, will Satoshi increase the value of my wallet tenfold and provide renewed motivation?  Huh
newbie
Activity: 33
Merit: 0
e54acb08cf7e7d9be0102e2914d1a4eb643f5df386e67bb4be1bad5a05a53879

Huh
I guess he's implying that he found some <80 bits solution and he posted here some proof hash so the Collective assists him morally once the pubkey gets leaked and hundreds of TX will fight over the fee in the next 10 seconds.

A simple empty private address
1EVURWZJW38MzbqHQULons1jWDR34p96hE
jr. member
Activity: 40
Merit: 6
e54acb08cf7e7d9be0102e2914d1a4eb643f5df386e67bb4be1bad5a05a53879

Huh
I guess he's implying that he found some <80 bits solution and he posted here some proof hash so the Collective assists him morally once the pubkey gets leaked and hundreds of TX will fight over the fee in the next 10 seconds.
member
Activity: 316
Merit: 34
e54acb08cf7e7d9be0102e2914d1a4eb643f5df386e67bb4be1bad5a05a53879

Huh
member
Activity: 260
Merit: 19
the right steps towerds the goal
e54acb08cf7e7d9be0102e2914d1a4eb643f5df386e67bb4be1bad5a05a53879
newbie
Activity: 19
Merit: 5
Hey Guys,, the Question is about Kangaroo. i'm a bit confused..  the kangaroo designed by JeanLucPons. is the program restricted to work only inside the range of 125 bits? if yes what does it mean? because i tried it with a 130 bit range and it seems to work and in the issues section i see people talking about how it wouldn't work for 130 bits can someone tell me what they are talking about ?

The program is limited to a range width of 125 bits or less.

The range width is the upper bound of the range minus the lower bound.

You can find the discussion about this on the kangaroo thread;

https://bitcointalksearch.org/topic/pollards-kangaroo-ecdlp-solver-5244940
newbie
Activity: 4
Merit: 0
Could someone take a look at my smaller application/website for calculating smaller ranges to see if it uses the correct calculations ?    http://cosmiccat.unas.cz/ (You need to use HTTP instead of HTTPS. It's some random free web hosting, don't worry)
newbie
Activity: 24
Merit: 4
Hey Guys,, the Question is about Kangaroo. i'm a bit confused..  the kangaroo designed by JeanLucPons. is the program restricted to work only inside the range of 125 bits? if yes what does it mean? because i tried it with a 130 bit range and it seems to work and in the issues section i see people talking about how it wouldn't work for 130 bits can someone tell me what they are talking about ?
jr. member
Activity: 40
Merit: 6
I could save some time there, calculating only what has to be calculated, C-02 or C-03, but...

If it is stupid, why people sent funds to all 3, compressed-02, compressed-03 and uncompressed-04 addresses of the same private key?, by error? just for testing? who knows...

I discovered this by accident, because did not understand which is the check on the private key, to decide which Compressed-02 or compressed-03 Id I must use, so I did both, and also the other U-4, C-6 and C7 and calculated everything else up to the ripemd160 hash, and searched all 5 in my list of list 53M ripemd160 hashes with balance. Just in case there is a treasure somewhere.
You are confusing a lot of things.
Private Key is a scalar value.
Public Key is an EC point (X, Y) and Y has a parity (e.g. least significant bit odd or even, 1 or 0).
Y is a function of X.
So a public key can be uncompressed (04) in full (X, Y) form or compressed with just X and the Y parity (02 or 03 byte hint prefix)

If you are doing blind searches in hope of a collision, and you have a private key interval, you need to use the correct Y parity to produce the hashed address, otherwise you are hashing the address for private key N - k which is always outside your private key search interval (for all intervals lower than N/2 in size, which is ~ 2^255), and the Y value is negated, hence the key for (X, -Y) = (X, P - Y). -Y = P- Y is always odd if Y is even, and viceversa, because P is odd.

If you are doing blind searches in hope of a collision and you don't have a private key interval in mind (so full-blown 256-bit keyspace), then your goal is to produce as fast as possible public keys, in which case you can use symmetry (02 / 03) and the 3-cycle endomorphism ±k*lambda^i -> (X*beta^i, ±Y) to quickly compute 6 (2 * 3) private keys and their points (public keys) for every generated (private key, public key) pair. So it ends up as an optimization problem to do as fast as possible key generation with lowest amount of multiplications involved, since it was explained earlier that multiplication is the highest overhead of any possible group operation (since it's basically just rounds of additions).

The only number I am aware of that is larger than the number of all possible Bitcoin private keys is the number of electrons in the Universe (around 2-3 electrons for every possible BTC private key).
newbie
Activity: 55
Merit: 0
Quote
It's not like the 02 or 03 were chosen arbitrarily. It's stupid to check for a collision by doing both 02 and 03. Just stick to the correct parity of the actual Y of the point.

I could save some time there, calculating only what has to be calculated, C-02 or C-03, but...

If it is stupid, why people sent funds to all 3, compressed-02, compressed-03 and uncompressed-04 addresses of the same private key?, by error? just for testing? who knows...

I discovered this by accident, because did not understand which is the check on the private key, to decide which Compressed-02 or compressed-03 Id I must use, so I did both, and also the other U-4, C-6 and C7 and calculated everything else up to the ripemd160 hash, and searched all 5 in my list of list 53M ripemd160 hashes with balance. Just in case there is a treasure somewhere.

For example, private key 1,


Quote
(0) Private ECDSA Key (64 hex chars, 256 bits):
    0000000000000000000000000000000000000000000000000000000000000001
(1) (U)ncompressed & (C)ompressed Public Key from SECP256K1 curve (130 hex chars, 520 bits): 27.46 us
          (C-02) 0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798
          (C-03) 0379be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798
          (U-04) 0479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c 4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8
          (C-06) 0679be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798
          (C-07) 0779be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798
(2) SHA-256 hash of 1) (64 hex chars, 256 bits): 2.41 us
          (C-02) 0f715baf5d4c2ed329785cef29e562f73488c8a2bb9dbc5700b361d54b9b0554
          (C-03) fbd27dbb9e7f471bf3de3704a35e884e37d35c676dc2cc8c3cc574c3962376d2
          (U-04) 50929b74c1a04954b78b4b6035e97a5e078a5a0f28ec96d547bfee9ace803ac0
          (C-06) a5b6d4f1afa0d2d636d24fedbbf4b9e7af021c781ba49d3aa929995ff2ca816b
          (C-07) f202daaa8a47a5b3c956ed3336a29a41bd18219f774631a36486fcc6d2c07bf4
(3) RIPEMD-160 Hash of 2) (40 hex chars, 160 bits): 3.13 us
          (C-02) 751e76e8199196d454941c45d1b3a323f1433bd6
          (C-03) adde4c73c7b9cee17da6c7b3e2b2eea1a0dcbe67
          (U-04) 91b24bf9f5288532960ac687abb035127b1d28a5
          (C-06) f7c5db8a136ecdeb0a166b90dba910ec5c0e084c
          (C-07) b5ad7fc95a16cd96ac15b34f5556c8c42738f4c2
(4) Adding Bitcoin (00) network byte to 3) Smiley
          (C-02) 00751e76e8199196d454941c45d1b3a323f1433bd6
          (C-03) 00adde4c73c7b9cee17da6c7b3e2b2eea1a0dcbe67
          (U-04) 0091b24bf9f5288532960ac687abb035127b1d28a5
          (C-06) 00f7c5db8a136ecdeb0a166b90dba910ec5c0e084c
          (C-07) 00b5ad7fc95a16cd96ac15b34f5556c8c42738f4c2
(5) SHA-256 hash of 4) (64 hex chars, 256 bits): 1.20 us
          (C-02) c5a2ed70d2c035108c2415792162a6daaf21e6dc015ace0f9a458dd3f01da598
          (C-03) 0a949428f11ccbbd74e2f6837b65bee2cde8d5c493c44868a746ed0c4b8d382f
          (U-04) 79fa926bf4ac874060b244d6e985c694233eed0d5562c0b88cdf37bfbb80b44f
          (C-06) 1b051daafde0cc5730701f0bb7fe41afe06d613a22f31b98600eefb76d2c4d74
          (C-07) eadcc137063b2856e15e9579d006370d02dbe11130912bd31ada66516e632637
(6) SHA-256 hash of 5) (64 hex chars, 256 bits): 1.17 us
          (C-02) 510d1634d943109b69da527ef5948106f22b655fb5193b4e9ef7e4dcd342d245
          (C-03) 2c2b0787b4332fa72ea7174062b0dd262dcf24cff911ff122cad781c40b213dd
          (U-04) 0074ffe0526d823be09b39865422a1d6135afc85afb0a6863c58e9fe89989170
          (C-06) af537bc85e867fed63eb5460d085e35a06275e524be860ef2926d2920cf32cc6
          (C-07) 9fbf8ab54d2f5f4e754048ee673346c389281b4f0d805209bc3a8c7ed2ca6f0e
(7-8 ) First four bytes of 6) at the end of 4):
          (C-02) 00751e76e8199196d454941c45d1b3a323f1433bd6510d1634
          (C-03) 00adde4c73c7b9cee17da6c7b3e2b2eea1a0dcbe672c2b0787
          (U-04) 0091b24bf9f5288532960ac687abb035127b1d28a50074ffe0
          (C-06) 00f7c5db8a136ecdeb0a166b90dba910ec5c0e084caf537bc8
          (C-07) 00b5ad7fc95a16cd96ac15b34f5556c8c42738f4c29fbf8ab5
9) Base58 encoding of 8 ):6.48 us
      (BTC C-02) 1BgGZ9tcN4rm9KBzDn7KprQz87SZ26SAMH (35 chars)
      (BTC C-03) 1GrLCmVQXoyJXaPJQdqssNqwxvha1eUo2E (35 chars)
      (BTC U-04) 1EHNa6Q4Jz2uvNExL497mE43ikXhwF6kZm (35 chars)
   (BTC CHyb-06) 1Pb6vmWniHWeK1yVECHcHGmw5y8b5DAaRD (35 chars)
   (BTC CHyb-07) 1HZd9eyS44EXgWsDVrQnpqZnLiqLTnARvU (35 chars)
10) Export Mainnet PrivKey 1) into WIF format:
    (C-SHA256x2) 4671fc3f80de85b50cc4d7d718fbe440800b885dba9e2b4c2cf930d1e4682401
    (U-SHA256x2) a85aa87e9879f34d1449e35c58e64d9325733ca2efb4577e6720ec42c3625783
         (C-ext) 80000000000000000000000000000000000000000000000000000000000000000101
         (U-ext) 800000000000000000000000000000000000000000000000000000000000000001
   (C-ext+chksm) 800000000000000000000000000000000000000000000000000000000000000001014671fc3f
   (U-ext+chksm) 800000000000000000000000000000000000000000000000000000000000000001a85aa87e
         (C-WIF) KwDiBf89QgGbjEhKnhXJuH7LrciVrZi3qYjgd9M7rFU73sVHnoWn (53 chars)
         (U-WIF) 5HpHagT65TZzG1PH3CSu63k8DbpvD8s5ip4nEB3kEsreAnchuDf (52 chars)
11) Binary Search of 3) in the input list:
    (C-02)751e76e8199196d454941c45d1b3a323f1433bd6 r=-138
    L=000000,M=26997358,R=53994717  [026997358][7f6d1f7a3c4c2218944870f7902f2a7f1b489082] r=-10 -> searching down
    L=000000,M=13498678,R=26997357  [013498678][3fba6ab86c91fd1c7d8eaccfae45d634c948047d] r=54 -> searching up
    L=13498679,M=20248018,R=26997357  [020248018][5fcf41f80dc97a709b37bab9dadefe50a79d6d77] r=22 -> searching up
    L=20248019,M=23622688,R=26997357  [023622688][6f802f2c5209b67328916fb7f91420630758b503] r=6 -> searching up
    L=23622689,M=25310023,R=26997357  [025310023][776afd85cbc23414b99aa4244d69973effbf60cf] r=-2 -> searching down
    L=23622689,M=24466355,R=25310022  [024466355][73738b855e053c71397fc6572be19fb88a9b9210] r=2 -> searching up
    L=24466356,M=24888189,R=25310022  [024888189][756e25805cddbb24d6b177b9d9af29139b8ea84b] r=-80 -> searching down
    L=24466356,M=24677272,R=24888188  [024677272][746f6d2ac6e6008d61cff82eaeb5b78a1f364412] r=1 -> searching up
    L=24677273,M=24782730,R=24888188  [024782730][74eec386cc13e03a62ee0a281e5d6210a852cda4] r=1 -> searching up
    L=24782731,M=24835459,R=24888188  [024835459][752ea978faffb2d9aac5f77db626f212681e79db] r=-16 -> searching down
    L=24782731,M=24809094,R=24835458  [024809094][750f08e0526ff1235da8fb58517e1cc48dda0f1e] r=15 -> searching up
    L=24809095,M=24822276,R=24835458  [024822276][751ef46df183ecf1edff58087507827f57a3f152] r=-126 -> searching down
    L=24809095,M=24815685,R=24822275  [024815685][75171082196189db524ce50e841c80ddbc97322b] r=7 -> searching up
    L=24815686,M=24818980,R=24822275  [024818980][751b051c231073cd588960ba4bba649424b17132] r=3 -> searching up
    L=24818981,M=24820628,R=24822275  [024820628][751d0c2953b8d5d899012432daab1887806c0635] r=1 -> searching up
    L=24820629,M=24821452,R=24822275  [024821452][751e02f00e0e1c8c701914d1472388066bcc2c8b] r=116 -> searching up
    L=24821453,M=24821864,R=24822275  [024821864][751e7ebf0973e343e36db34274248749b7287411] r=-8 -> searching down
    L=24821453,M=24821658,R=24821863  [024821658][751e430d740583d15556375e8591a0ef153679a6] r=51 -> searching up
    L=24821659,M=24821761,R=24821863  [024821761][751e61cc4036ac563d6b247b59a92fd81600bbe1] r=21 -> searching up
    L=24821762,M=24821812,R=24821863  [024821812][751e70916d45447472ca626365a8c7b8adbfd9e7] r=6 -> searching up
    L=24821813,M=24821838,R=24821863  [024821838][751e77051d52a132cafa91f0adc6b58ef6206889] r=-1 -> searching down
    L=24821813,M=24821825,R=24821837  [024821825][751e752b04646b2142e3f89cf74a23d230353062] r=1 -> searching up
    L=24821826,M=24821831,R=24821837  [024821831][751e7594b54496e60d9f87c9719d7de9c88de58a] r=1 -> searching up
    L=24821832,M=24821834,R=24821837  [024821834][751e7677d4b56fa664dd5690336ac26bf382c48d] r=113 -> searching up
    L=24821835,M=24821836,R=24821837  [024821836][751e76e8199196d454941c45d1b3a323f1433bd6] r=0 -> BINGO! HASH FOUND!-C02.
    COMPRESSED-02 HASH FOUND IN THE LIST!: 0000000000000000000000000000000000000000000000000000000000000001 -> Key saved in found.txt
 jumps=024 95618.23 us

    (C-03)adde4c73c7b9cee17da6c7b3e2b2eea1a0dcbe67 r=-82
    L=000000,M=26997358,R=53994717  [026997358][7f6d1f7a3c4c2218944870f7902f2a7f1b489082] r=46 -> searching up
    L=26997359,M=40496038,R=53994717  [040496038][bfa9e9e4e75dd26fc34343505fc7bfe7e1b3f854] r=-18 -> searching down
    L=26997359,M=33746698,R=40496037  [033746698][9f9293a4b16f79ebdd6a9a95d1280381fe306683] r=14 -> searching up
    L=33746699,M=37121368,R=40496037  [037121368][af90a29b48ca6c37ad04c9af7549eaad65485cf7] r=-2 -> searching down
    L=33746699,M=35434033,R=37121367  [035434033][a7846d7805d181ab265c83af5b384bfe9564c78d] r=6 -> searching up
    L=35434034,M=36277700,R=37121367  [036277700][ab89e364ae07e7ab122b9df14234e038c0ea8f11] r=2 -> searching up
    L=36277701,M=36699534,R=37121367  [036699534][ad8cf4b68db1de5beaaad5d2f279bcde8a568c2a] r=82 -> searching up
    L=36699535,M=36910451,R=37121367  [036910451][ae8e36ba499c869a9badb6891a6561a585f357d4] r=-1 -> searching down
    L=36699535,M=36804992,R=36910450  [036804992][ae0dadbf3e37cd2295b03b2d097b817c053a6c59] r=-1 -> searching down
    L=36699535,M=36752263,R=36804991  [036752263][adcd5813cc21b7a7d617a7bc69813c2614b59a4e] r=17 -> searching up
    L=36752264,M=36778627,R=36804991  [036778627][aded6fdfd74c74b11df493a5c41f75a9ae30e9c8] r=-15 -> searching down
    L=36752264,M=36765445,R=36778626  [036765445][addd68257d27cf9054cfb9c45f9dcef937cc31bc] r=1 -> searching up
    L=36765446,M=36772036,R=36778626  [036772036][ade5847b88a3fee264ad2a339c7c16b1e644e3ee] r=-7 -> searching down
    L=36765446,M=36768740,R=36772035  [036768740][ade168acc9b78d9bc5f4125418a413932e5b5efe] r=-3 -> searching down
    L=36765446,M=36767092,R=36768739  [036767092][addf7426bc41f6013b5159143d5b46c8736b3345] r=-1 -> searching down
    L=36765446,M=36766268,R=36767091  [036766268][adde6c452daddda62a0487280c0030282b29f8ae] r=-32 -> searching down
    L=36765446,M=36765856,R=36766267  [036765856][addde8aa011388d42d723698fed8f32b4ac4100f] r=1 -> searching up
    L=36765857,M=36766062,R=36766267  [036766062][adde293f8d6b835e398c9086c68711f5606a4e49] r=35 -> searching up
    L=36766063,M=36766165,R=36766267  [036766165][adde4c6650e369dd5470acf1a4c30a21c8bf2b3c] r=13 -> searching up
    L=36766166,M=36766216,R=36766267  [036766216][adde5cdf4390cce6fdf12fb092a082a23a42e865] r=-16 -> searching down
    L=36766166,M=36766190,R=36766215  [036766190][adde540d129d88a372939332767c98fc96d6d1b0] r=-8 -> searching down
    L=36766166,M=36766177,R=36766189  [036766177][adde50f07fd306d43ed5e8a3eecc3acc133bce6b] r=-4 -> searching down
    L=36766166,M=36766171,R=36766176  [036766171][adde4de053aa9db5394b38d4bdd1ddeb7b961d5a] r=-1 -> searching down
    L=36766166,M=36766168,R=36766170  [036766168][adde4cfe08c932487a7ff6119540d9ce7d68bf9a] r=-139 -> searching down
    L=36766166,M=36766166,R=36766167  [036766166][adde4cb424dd52d296fc1d6c7bc1443f01372fb9] r=-65 -> searching down jumps=025 119.48 us

    (U-04)91b24bf9f5288532960ac687abb035127b1d28a5 r=-110
    L=000000,M=26997358,R=53994717  [026997358][7f6d1f7a3c4c2218944870f7902f2a7f1b489082] r=18 -> searching up
    L=26997359,M=40496038,R=53994717  [040496038][bfa9e9e4e75dd26fc34343505fc7bfe7e1b3f854] r=-46 -> searching down
    L=26997359,M=33746698,R=40496037  [033746698][9f9293a4b16f79ebdd6a9a95d1280381fe306683] r=-14 -> searching down
    L=26997359,M=30372028,R=33746697  [030372028][8f82895a18e2409bd54c43838f53106677ea57e0] r=2 -> searching up
    L=30372029,M=32059363,R=33746697  [032059363][978a904cfce9f5b45dbe93fc619e14bae26baeed] r=-6 -> searching down
    L=30372029,M=31215695,R=32059362  [031215695][93855355fb12b4f7a45022b2ad14af9d2fac9100] r=-2 -> searching down
    L=30372029,M=30793861,R=31215694  [030793861][9185076cb256e675c63431d76deac88a6ad6bcbb] r=45 -> searching up
    L=30793862,M=31004778,R=31215694  [031004778][9284a538feec87dcba156b217a898c644ea0df78] r=-1 -> searching down
    L=30793862,M=30899319,R=31004777  [030899319][92055139acf8da4af5987d96041cd08bfabb81a7] r=-1 -> searching down
    L=30793862,M=30846590,R=30899318  [030846590][91c4f55d85f486e7eaa9fe6242047727bce4f0e9] r=-18 -> searching down
    L=30793862,M=30820225,R=30846589  [030820225][91a4ca1f09381d0710f4888572c25b653af6b34d] r=14 -> searching up
    L=30820226,M=30833407,R=30846589  [030833407][91b4bfd64ad44d38f1aa57314e515f81ae36bfce] r=-2 -> searching down
    L=30820226,M=30826816,R=30833406  [030826816][91ace7e86f4cb311249081bee2a509257e11a844] r=6 -> searching up
    L=30826817,M=30830111,R=30833406  [030830111][91b0e4212d608573c033a5f57256f5ac61795dc4] r=2 -> searching up
    L=30830112,M=30831759,R=30833406  [030831759][91b2d3b2294d5fac93843ba59ce61c3ae41ac7b9] r=-136 -> searching down
    L=30830112,M=30830935,R=30831758  [030830935][91b1daf82560e8f09e0498939908b583de393e1e] r=1 -> searching up
    L=30830936,M=30831347,R=30831758  [030831347][91b254f149b3cc8f2c459b84d0aa740924b108dd] r=-9 -> searching down
    L=30830936,M=30831141,R=30831346  [030831141][91b2194e05060df067c4989c1ea6f1865b03432e] r=50 -> searching up
    L=30831142,M=30831244,R=30831346  [030831244][91b2379d843bebf2fbaf20cad483858571b4382b] r=20 -> searching up
    L=30831245,M=30831295,R=30831346  [030831295][91b24748670f53d3f79af870926e137fff8a35f6] r=4 -> searching up
    L=30831296,M=30831321,R=30831346  [030831321][91b24e755c0c43dbc4465b4efb046ddf060bade3] r=-3 -> searching down
    L=30831296,M=30831308,R=30831320  [030831308][91b24b66892bcda55cb5bdddf8b2b0f84366b6c2] r=147 -> searching up
    L=30831309,M=30831314,R=30831320  [030831314][91b24c396b87f530d25ed9ec28c3965bfbdb1040] r=-1 -> searching down
    L=30831309,M=30831311,R=30831313  [030831311][91b24bc29b0206629359d3f6d4a6727245d08039] r=55 -> searching up
    L=30831312,M=30831312,R=30831313  [030831312][91b24bd47b0d32db93138158203277c2737e6b6e] r=37 -> searching up
    L=30831313,M=30831313,R=30831313  [030831313][91b24c165727fce1d621ab36caedece9d0469a3c] r=-1 -> searching down jumps=026 70.70 us

    (C-06)f7c5db8a136ecdeb0a166b90dba910ec5c0e084c r=-8
    L=000000,M=26997358,R=53994717  [026997358][7f6d1f7a3c4c2218944870f7902f2a7f1b489082] r=120 -> searching up
    L=26997359,M=40496038,R=53994717  [040496038][bfa9e9e4e75dd26fc34343505fc7bfe7e1b3f854] r=56 -> searching up
    L=40496039,M=47245378,R=53994717  [047245378][dfd6d80c1f496f49e64c37c35825ade57c2e96c9] r=24 -> searching up
    L=47245379,M=50620048,R=53994717  [050620048][efe8281cd47c48401a8f59d2a22262eddabb2b84] r=8 -> searching up
    L=50620049,M=52307383,R=53994717  [052307383][f7f2aa3652744864d14e1b58cfc2fc6b5aab2a8b] r=-45 -> searching down
    L=50620049,M=51463715,R=52307382  [051463715][f3ec6ffa4c78a65d0aa1422540edd87fb90b7fc0] r=4 -> searching up
    L=51463716,M=51885549,R=52307382  [051885549][f5ef5e49e0674be3bfc3c529b42eb5ca6687c0b5] r=2 -> searching up
    L=51885550,M=52096466,R=52307382  [052096466][f6f125770f6b709b6ffb3388b14dac4c341f24ea] r=1 -> searching up
    L=52096467,M=52201924,R=52307382  [052201924][f7727ccda3c74e95ae0bc580b0cded445452001b] r=83 -> searching up
    L=52201925,M=52254653,R=52307382  [052254653][f7b2974abd090996c8f0b51108b1f7b0bd98b400] r=19 -> searching up
    L=52254654,M=52281018,R=52307382  [052281018][f7d25d4920fe3c44aef56a2c34e8556d60a223ab] r=-13 -> searching down
    L=52254654,M=52267835,R=52281017  [052267835][f7c24227fa1ce2dccf7dae013d7a2f9dd71dc65f] r=3 -> searching up
    L=52267836,M=52274426,R=52281017  [052274426][f7ca352f88a1737e0a2cc60f90eae03c1f15c917] r=-5 -> searching down
    L=52267836,M=52271130,R=52274425  [052271130][f7c6463d6ae90ac102cd3cd25a824c134d88d47b] r=-1 -> searching down
    L=52267836,M=52269482,R=52271129  [052269482][f7c4452debea533b835d18f421b295ea5c8c19db] r=1 -> searching up
    L=52269483,M=52270306,R=52271129  [052270306][f7c5427c9fb735b8e63ac6e7c79c4c633d00f91e] r=153 -> searching up
    L=52270307,M=52270718,R=52271129  [052270718][f7c5c843a21776136c95b09c7824a3f0bdbd4708] r=19 -> searching up
    L=52270719,M=52270924,R=52271129  [052270924][f7c60967db247b96b4384463a7e1b6dafa2045ab] r=-1 -> searching down
    L=52270719,M=52270821,R=52270923  [052270821][f7c5e828d3f6afc2238c219719610a4ed30faf39] r=-13 -> searching down
    L=52270719,M=52270769,R=52270820  [052270769][f7c5d79937b794705594f7fe89c4bad9ce1e6dda] r=4 -> searching up
    L=52270770,M=52270795,R=52270820  [052270795][f7c5e034e87fd22b7c52af6a74a0cf61663ba4b4] r=-5 -> searching down
    L=52270770,M=52270782,R=52270794  [052270782][f7c5db2ce61593bddfc473ea05d60ce1770179cd] r=94 -> searching up
    L=52270783,M=52270788,R=52270794  [052270788][f7c5dc9ff1b3ac6c65c7c19f8692521ca4894c73] r=-1 -> searching down
    L=52270783,M=52270785,R=52270787  [052270785][f7c5dc0fde1087bd5260d0bbb05c8f80c7248878] r=-1 -> searching down
    L=52270783,M=52270783,R=52270784  [052270783][f7c5db9dcdd5f2b4a4e617ca8b6640ce4b902403] r=-19 -> searching down jumps=025 160.75 us

    (U-07)b5ad7fc95a16cd96ac15b34f5556c8c42738f4c2 r=-74
    L=000000,M=26997358,R=53994717  [026997358][7f6d1f7a3c4c2218944870f7902f2a7f1b489082] r=54 -> searching up
    L=26997359,M=40496038,R=53994717  [040496038][bfa9e9e4e75dd26fc34343505fc7bfe7e1b3f854] r=-10 -> searching down
    L=26997359,M=33746698,R=40496037  [033746698][9f9293a4b16f79ebdd6a9a95d1280381fe306683] r=22 -> searching up
    L=33746699,M=37121368,R=40496037  [037121368][af90a29b48ca6c37ad04c9af7549eaad65485cf7] r=6 -> searching up
    L=37121369,M=38808703,R=40496037  [038808703][b79c46c17fe0cc0ab23e538fe6c29664f0fae312] r=-2 -> searching down
    L=37121369,M=37965035,R=38808702  [037965035][b396058622569091c9de70b5fc92e87c356dd4d8] r=2 -> searching up
    L=37965036,M=38386869,R=38808702  [038386869][b59a79f07fa7d88ef487c0d7d8e635ece640a219] r=19 -> searching up
    L=38386870,M=38597786,R=38808702  [038597786][b69b64ad218fc50c92996d143792b661826a84e1] r=-1 -> searching down
    L=38386870,M=38492327,R=38597785  [038492327][b61a64aa24df4516957df4b07ce243d8c0c337f3] r=-1 -> searching down
    L=38386870,M=38439598,R=38492326  [038439598][b5da7b7a0b837d0905968bb09aafbce1a6b5ae62] r=-45 -> searching down
    L=38386870,M=38413233,R=38439597  [038413233][b5ba9dab104aacf677a7bdf3b794ecc4b3ff7801] r=-13 -> searching down
    L=38386870,M=38400051,R=38413232  [038400051][b5aaae7f8215bcc0f58f80b7c89a603237dcf9de] r=3 -> searching up
    L=38400052,M=38406642,R=38413232  [038406642][b5b28cfd055b817109126b78d7ff2f60d6682a77] r=-5 -> searching down
    L=38400052,M=38403346,R=38406641  [038403346][b5ae9c6645b33cb8c53fab074a2b8411c6a192c0] r=-1 -> searching down
    L=38400052,M=38401698,R=38403345  [038401698][b5acabe38fa7fe92f163b4e27ffe2b3eaa1cb501] r=1 -> searching up
    L=38401699,M=38402522,R=38403345  [038402522][b5ad9e724f11549ad8771064bd817cdd0184619a] r=-31 -> searching down
    L=38401699,M=38402110,R=38402521  [038402110][b5ad25fde5a12578352a5e6cb9e27e724475905d] r=90 -> searching up
    L=38402111,M=38402316,R=38402521  [038402316][b5ad63c866b42c3a414dfea477a1a268e7fc0192] r=28 -> searching up
    L=38402317,M=38402419,R=38402521  [038402419][b5ad843176e8653cb0ed83ebe23cc968fbfe4e4a] r=-5 -> searching down
    L=38402317,M=38402367,R=38402418  [038402367][b5ad728ee14d53c76f72cf6568d7b8547e699ea8] r=13 -> searching up
    L=38402368,M=38402393,R=38402418  [038402393][b5ad7c8d5a602db819db894a82d0ad8b3df0d961] r=3 -> searching up
    L=38402394,M=38402406,R=38402418  [038402406][b5ad8080c63a396fa9f679e8dd7c29d17231e200] r=-1 -> searching down
    L=38402394,M=38402399,R=38402405  [038402399][b5ad7e4eff15d25f57a527ce4fcc091f2d913d01] r=1 -> searching up
    L=38402400,M=38402402,R=38402405  [038402402][b5ad7f8a2a5f7180d5da6423eaebac0796791933] r=63 -> searching up
    L=38402403,M=38402404,R=38402405  [038402404][b5ad80167174e9c1b677d1e13907c2e7faec9617] r=-1 -> searching down
    L=38402403,M=38402403,R=38402403  [038402403][b5ad7fa7c7ca3e1847cce60fe36797e6f0af733d] r=34 -> searching up jumps=026 173.27 us

In step 9 we got the addresses for the 5 Ids:

      (BTC C-02) 1BgGZ9tcN4rm9KBzDn7KprQz87SZ26SAMH (35 chars)   this is puzzle 1 -> https://mempool.space/address/1BgGZ9tcN4rm9KBzDn7KprQz87SZ26SAMH
      (BTC C-03) 1GrLCmVQXoyJXaPJQdqssNqwxvha1eUo2E (35 chars)   but, this also got and spent funds! -> https://mempool.space/address/1GrLCmVQXoyJXaPJQdqssNqwxvha1eUo2E
      (BTC U-04) 1EHNa6Q4Jz2uvNExL497mE43ikXhwF6kZm (35 chars) and this had 7.847675 BTC!! https://mempool.space/address/1EHNa6Q4Jz2uvNExL497mE43ikXhwF6kZm
   (BTC CHyb-06) 1Pb6vmWniHWeK1yVECHcHGmw5y8b5DAaRD (35 chars) -> nothing
   (BTC CHyb-07) 1HZd9eyS44EXgWsDVrQnpqZnLiqLTnARvU (35 chars) -> nothing

Now you tell me how stupid is searching for all C-02, C-03 and U-04.... AT THE SAME TIME


Private key 0 (I know it is not valid point of the curve), is also interesting. People also sent funds to all 3 Addresses! Could this be considered a black hole address?

Quote
(0) Private ECDSA Key (64 hex chars, 256 bits):
    0000000000000000000000000000000000000000000000000000000000000000
(1) (U)ncompressed & (C)ompressed Public Key from SECP256K1 curve (130 hex chars, 520 bits): 29.75 us
          (C-02) 020000000000000000000000000000000000000000000000000000000000000000
          (C-03) 030000000000000000000000000000000000000000000000000000000000000000
          (U-04) 0400000000000000000000000000000000000000000000000000000000000000000000000000000 000000000000000000000000000000000000000000000000000
          (C-06) 060000000000000000000000000000000000000000000000000000000000000000
          (C-07) 070000000000000000000000000000000000000000000000000000000000000000
(2) SHA-256 hash of 1) (64 hex chars, 256 bits): 2.08 us
          (C-02) 523ba5a7ec9362dbb08039a387922592ccea3dde63634480cd1b05b7bd50a269
          (C-03) 7324b5c72b51bb5d4c180f1109cfd347b60473882145841c39f3e584576296f9
          (U-04) 59ef1a5a00f35b1a722da56ca70b52a721f33998634d4fa4259301f170f7b6bd
          (C-06) fdfdd5396ba68d416587eb28ee4dbdcb3cb04c34e0c7bb63f393afa769cd74f4
          (C-07) c14ca2b59dbaac489b662ff822ffeeab3eff0a505f23e78a589ca4d49daf350e
(3) RIPEMD-160 Hash of 2) (40 hex chars, 160 bits): 2.84 us
          (C-02) 3625c4a2ea974760a816368fd15de771594476e7
          (C-03) e47e46277b5ba401242699870e3688b9d1848f18
          (U-04) 3b4df4363caa9e3bd9da58020d3080be8230a4ae
          (C-06) 814c7d332b816d56b7983c6acf420adcb39a18c6
          (C-07) bddff6369989dc001049f578a506b8eb3d0fd1ed
(4) Adding Bitcoin (00) network byte to 3) Smiley
          (C-02) 003625c4a2ea974760a816368fd15de771594476e7
          (C-03) 00e47e46277b5ba401242699870e3688b9d1848f18
          (U-04) 003b4df4363caa9e3bd9da58020d3080be8230a4ae
          (C-06) 00814c7d332b816d56b7983c6acf420adcb39a18c6
          (C-07) 00bddff6369989dc001049f578a506b8eb3d0fd1ed
(5) SHA-256 hash of 4) (64 hex chars, 256 bits): 1.37 us
          (C-02) 15bc4c5c37fa3ddf59e3107df6813c1d5c0edcf23c9950b1c8d8df27044c1692
          (C-03) 8c3c4456ca89295fdbb255b77f4ad38d9c7feded3086b709bbc1d3ef075a835f
          (U-04) ba02fc87e13c4ac93ba8029ee9b92f4b7a73b110c40d6d913e663d566af9d0e7
          (C-06) aa7ad76bcdc7f15b2ebf07910b96e2d72ebf32cb7cb8efa79ebbceb59903e0eb
          (C-07) e43048f84bab9a001f7e70ce80dbce8020b3a82b7785b2aa474bcc5e314ef991
(6) SHA-256 hash of 5) (64 hex chars, 256 bits): 1.31 us
          (C-02) f4ed0da0b4234dcea06a923d8cab0d17d68ed9e3fe6be3a31307b0f81b934be7
          (C-03) fe3a65ae291d82113714a8b243b1b34bd8ab05d5659b38d54133d3af5f8647b1
          (U-04) b158b448eed111aafb81f989f8b29c392f7ee228814a789d5ad786ad55a95346
          (C-06) 4b5026dca67fbde6299cd7e067d2bbafe3dc6b1b387f4253ae1339ec6fd0cdf8
          (C-07) f4d06de7e9c76c6c8095dc53e3bce38ba492624f756c743f79e4576e79ccec2e
(7-8) First four bytes of 6) at the end of 4):
          (C-02) 003625c4a2ea974760a816368fd15de771594476e7f4ed0da0
          (C-03) 00e47e46277b5ba401242699870e3688b9d1848f18fe3a65ae
          (U-04) 003b4df4363caa9e3bd9da58020d3080be8230a4aeb158b448
          (C-06) 00814c7d332b816d56b7983c6acf420adcb39a18c64b5026dc
          (C-07) 00bddff6369989dc001049f578a506b8eb3d0fd1edf4d06de7
9) Base58 encoding of Cool:7.02 us
      (BTC C-02) 15wJjXvfQzo3SXqoWGbWZmNYND1Si4siqV (35 chars)
      (BTC C-03) 1MqALQs6ea1ACgwRurqgaBDWzxYPoXCXzu (35 chars)
      (BTC U-04) 16QaFeudRUt8NYy2yzjm3BMvG4xBbAsBFM (35 chars)
   (BTC CHyb-06) 1CnfoJMvvo9SV98PQhzQMMC2UJuHjuAA43 (35 chars)
   (BTC CHyb-07) 1JJy1PmdaPCsNFcdW5MBRyLyT5ahitktSA (35 chars)
10) Export Mainnet PrivKey 1) into WIF format:
    (C-SHA256x2) 69f436de87362589b89943c1554c53c4cee37d1c951552eff7e2bca8b3068967
    (U-SHA256x2) 0565fba7ebf8143516e0222d7950c28589a34c3ee144c3876ceb01bfb0e9bb70
         (C-ext) 80000000000000000000000000000000000000000000000000000000000000000001
         (U-ext) 800000000000000000000000000000000000000000000000000000000000000000
   (C-ext+chksm) 8000000000000000000000000000000000000000000000000000000000000000000169f436de
   (U-ext+chksm) 8000000000000000000000000000000000000000000000000000000000000000000565fba7
         (C-WIF) KwDiBf89QgGbjEhKnhXJuH7LrciVrZi3qYjgd9M7rFU73Nd2Mcv1 (53 chars)
         (U-WIF) 5HpHagT65TZzG1PH3CSu63k8DbpvD8s5ip4nEB3kEsreAbuatmU (52 chars)
11) Binary Search of 3) in the input list:
    (C-02)3625c4a2ea974760a816368fd15de771594476e7 r=-201 -> Blacklisted!  jumps=000 1.92 us

    (C-03)e47e46277b5ba401242699870e3688b9d1848f18 r=-27 -> Blacklisted!  jumps=000 0.46 us

    (U-04)3b4df4363caa9e3bd9da58020d3080be8230a4ae r=-196 -> Blacklisted!  jumps=000 0.46 us

    (C-06)814c7d332b816d56b7983c6acf420adcb39a18c6 r=-126
    L=000000,M=000127,R=000255  [000000127][80df54e1f612f2fc5bdc05c9d21a83aa8d20791e] r=1 -> searching up
    L=000128,M=000191,R=000255  [000000191][c97f9591e28687be1c4d972e25be7c372a3221b4] r=-72 -> searching down
    L=000128,M=000159,R=000190  [000000159][a45dae9cd5d3fde21e5aa9a95367d107267b3b8a] r=-35 -> searching down
    L=000128,M=000143,R=000158  [000000143][941ccb7383109b47b841044c9f865785676b0918] r=-19 -> searching down
    L=000128,M=000135,R=000142  [000000135][8c2a6071f89c90c4dab5ab295d7729d1b54ea60f] r=-11 -> searching down
    L=000128,M=000131,R=000134  [000000131][8661cb56d9df0a61f01328b55af7e56a3fe7a2b2] r=-5 -> searching down
    L=000128,M=000129,R=000130  [000000129][85a1f9ba4da24c24e582d9b891dacbd1b043f971] r=-4 -> searching down
    L=000128,M=000128,R=000128  [000000128][85567151f330b69bac3eba86bb3aedd8813ec2b7] r=-4 -> searching down jumps=008 18.22 us

    (U-07)bddff6369989dc001049f578a506b8eb3d0fd1ed r=-66
    L=000000,M=000127,R=000255  [000000127][80df54e1f612f2fc5bdc05c9d21a83aa8d20791e] r=61 -> searching up
    L=000128,M=000191,R=000255  [000000191][c97f9591e28687be1c4d972e25be7c372a3221b4] r=-12 -> searching down
    L=000128,M=000159,R=000190  [000000159][a45dae9cd5d3fde21e5aa9a95367d107267b3b8a] r=25 -> searching up
    L=000160,M=000175,R=000190  [000000175][b907c3a2a3b27789dfb509b730dd47703c272868] r=4 -> searching up
    L=000176,M=000183,R=000190  [000000183][c053d1c7b2e7e27c624dcb8087549876af73aa03] r=-3 -> searching down
    L=000176,M=000179,R=000182  [000000179][badf8b0d34289e679ec65c6c61d3a974353be5cf] r=3 -> searching up
    L=000180,M=000181,R=000182  [000000181][bfebb73562d4541b32a02ba664d140b5a574792f] r=-2 -> searching down
    L=000180,M=000180,R=000180  [000000180][bf7413e8df4e7a34ce9dc13e2f2648783ec54adb] r=-2 -> searching down jumps=008 54.80 us


9) Base58 encoding of Cool:7.02 us
      (BTC C-02) 15wJjXvfQzo3SXqoWGbWZmNYND1Si4siqV (35 chars)  -> HAS 0.0066 BTC https://mempool.space/address/15wJjXvfQzo3SXqoWGbWZmNYND1Si4siqV
      (BTC C-03) 1MqALQs6ea1ACgwRurqgaBDWzxYPoXCXzu (35 chars) -> HAS 0.00001800 BTC https://mempool.space/address/1MqALQs6ea1ACgwRurqgaBDWzxYPoXCXzu
      (BTC U-04) 16QaFeudRUt8NYy2yzjm3BMvG4xBbAsBFM (35 chars) -> HAS 0.01024676 BTC https://mempool.space/address/16QaFeudRUt8NYy2yzjm3BMvG4xBbAsBFM
   (BTC CHyb-06) 1CnfoJMvvo9SV98PQhzQMMC2UJuHjuAA43 (35 chars)
   (BTC CHyb-07) 1JJy1PmdaPCsNFcdW5MBRyLyT5ahitktSA (35 chars)

I blacklisted this 3 ripemd160 to avoid confusions, and getting excited for nothing, I believe they are invalid addresses:
15wJjXvfQzo3SXqoWGbWZmNYND1Si4siqV,666556,743371,3625c4a2ea974760a816368fd15de771594476e7
16QaFeudRUt8NYy2yzjm3BMvG4xBbAsBFM,1024130,549600,3b4df4363caa9e3bd9da58020d3080be8230a4ae
1MqALQs6ea1ACgwRurqgaBDWzxYPoXCXzu,1800,330208,e47e46277b5ba401242699870e3688b9d1848f18
Public Address, Balance, Transactions,ripemd

It is interesting there is a lot of transactions reported for all the 3 ripemd160... this might be an error of the python parser I am using to scrap the bitcoin addresses with balance (https://github.com/graymauser/btcposbal2csv).

I have no idea what they mean...





hero member
Activity: 828
Merit: 657
I always dreamed finding something unspent on those ID's (04-06-07).

I didn't know the existence of 06 and 07 public key prefix. I wonder where are those prefixes used?

Is there some trick to compute the X value of P + G if you don't know P.y? I'm curious to know.

Q = P+G

Well you need to know the value P.y in order to calcualte the next sequence of Q values but you you don't need to calculate the actual Q.y value, this sound a dubious but actuallly it works and faster than regular approach.

This work better for some array of Q values, if the array is 512 or 1024 items long you can skip the calcualtions of 512 or 1024  Q.y values

You only need to calculate one Q.y value for next group of items and repeat (This value need to be the center of the group becuse it use it use a property that  P + i*G and P - i*G have the same deltax and same inverse value), this save alot of time.

It not only works for  Q = P+G but for any Q = P+ iG

Its complex and painful but read the code but it worth the time to study and implement it, just to see how the speed increment, maybe i will publish an step by step explatnation for it, but if you want to take a look please check where i learned it: https://github.com/JeanLucPons/BSGS/blob/master/BSGS.cpp#L189

That implementation alone multiply the previous speed x4 times.
jr. member
Activity: 40
Merit: 6
Also talking about ID's. I realized the puzzle pieces are alternatively Compressed-02 and 03 only.
It's not like the 02 or 03 were chosen arbitrarily. It's stupid to check for a collision by doing both 02 and 03. Just stick to the correct parity of the actual Y of the point.

Why? Because if k is the private key of some point, then the key of its Y-symmetric point is -k == N - k. So the keys of all those other points is in the range [2^256 - 2^66 .... 2^256 - 2^65] which is always outside the interval of interest.

Another short cut is you don't need to calculate the Y value of all the subsequent keys (unless you are scanning for uncompressed keys) this may double the speed of the calculations.

Another short cut is endomorphism (This don't work on small puzzles) but it can multiply your speed up to 6 times for a general search.

Is there some trick to compute the X value of P + G if you don't know P.y? I'm curious to know.

Endomorphism will not work for any puzzle, not just small ones. Same reason as above. Multiplying the key by lambda or lambda^2 instantly lands your key into 256-bit space, no matter what interval you were working on. Even for 160-bit puzzle, the chance that k*lambda or k*lambda^2 ends up back into a 160-bit space is 1 / 2^96.
newbie
Activity: 55
Merit: 0
Thanks again for the detailed answer Alberto. I will try what you suggested.


My tool actually calculates for all the ID Bytes, 0x02, 0x03, 0x04, 0x06, and 0x07.

Code:
    //-----------------------------------------------------------------
    // Wallet Generation
    //
    do{

        // 0) Priv Key print
        if(single_calculation){
            printf("\r\n\r\n(0) Private ECDSA Key (64 hex chars, 256 bits): ");
            printf("\r\n    " COLOR_RED);
            for(k=0;k<32;k++) printf("%02x", privkey[k]);
            printf(COLOR_RESET);
        }

        // 1) Calculate Public Key using SECP256K1 eliptic curve
        if(single_calculation){
            printf("\r\n(1) (U)ncompressed & (C)ompressed Public Key from SECP256K1 curve (130 hex chars, 520 bits): ");
            if(single_calculation) start=omp_get_wtime();
        }
        result=secp256k1_ec_pubkey_create(ctx, &pubkey_from_secp256k1.p, privkey);       //secp256k1_ec_pubkey_create(const secp256k1_context* ctx,  secp256k1_pubkey *pubkey, const unsigned char *seckey)
        if(single_calculation){
            end=omp_get_wtime();
            printf("%.2f us",(end - start)*1000000);
        }

        //---------------------------------------------
        // Public Key
        // https://github.com/bitcoin/bitcoin/blob/ba4b3fbcf21317a9410f3be913e4437d58968091/src/secp256k1/include/secp256k1.h#L179
        //
        // Prefix byte used to tag various encoded curvepoints for specific purposes
        #define SECP256K1_TAG_PUBKEY_EVEN 0x02          // par
        #define SECP256K1_TAG_PUBKEY_ODD 0x03 // impar
        #define SECP256K1_TAG_PUBKEY_UNCOMPRESSED 0x04
        #define SECP256K1_TAG_PUBKEY_HYBRID_EVEN 0x06
        #define SECP256K1_TAG_PUBKEY_HYBRID_ODD 0x07

        // ID Byte
          compressed_02_pubkey[0]=SECP256K1_TAG_PUBKEY_EVEN;
          compressed_03_pubkey[0]=SECP256K1_TAG_PUBKEY_ODD;
          uncompressed_04_pubkey[0]=SECP256K1_TAG_PUBKEY_UNCOMPRESSED;
          compressed_06_pubkey[0]=SECP256K1_TAG_PUBKEY_HYBRID_EVEN;
          compressed_07_pubkey[0]=SECP256K1_TAG_PUBKEY_HYBRID_ODD;
       
        //---------------------------------------------
        // Uncompressed Pubkey reordering from 2 chunks of 32bytes to 65 bytes most significative byte lower index, and adding the key ID.
        //
        // 0x04 - Uncompressed public key format ID 0x04.
        //
        l=32;                                      // First 32 bytes chunk
        for(k=0;k<32;k++){
            uncompressed_04_pubkey[l]=pubkey_from_secp256k1.eb[k];  // .eb is the union element to access the memory in (E)igth (B)its.
            l--;
        }
        l=64;                                      // second 32 bytes chunk
        for(k=32;k<64;k++){
            uncompressed_04_pubkey[l]=pubkey_from_secp256k1.eb[k];
            l--;
        }

        //---------------------------------------------
        // Compressed PubKey get X from uncompressed and select ID byte using parity 0x02-0x03
        //
        // Copy X coordinate to new array with ID byte
        l=32;                                      // First 32 bytes chunk
        for(k=0;k<32;k++){
          compressed_02_pubkey[l]=pubkey_from_secp256k1.eb[k];  // .eb is the union element to access the memory in (E)igth (B)its.
          compressed_03_pubkey[l]=pubkey_from_secp256k1.eb[k];  // .eb is the union element to access the memory in (E)igth (B)its.
          compressed_06_pubkey[l]=pubkey_from_secp256k1.eb[k];  // .eb is the union element to access the memory in (E)igth (B)its.
          compressed_07_pubkey[l]=pubkey_from_secp256k1.eb[k];  // .eb is the union element to access the memory in (E)igth (B)its.  
          l--;
        }
       
        if(single_calculation){
            printf("\r\n          (C-02)" COLOR_GREEN ); for(k=0;k<33;k++) printf("%02x", compressed_02_pubkey[k]); printf(COLOR_RESET);
            printf("\r\n          (C-03)" COLOR_GREEN ); for(k=0;k<33;k++) printf("%02x", compressed_03_pubkey[k]); printf(COLOR_RESET);
            printf("\r\n          (U-04)" COLOR_GREEN ); for(k=0;k<65;k++) printf("%02x", uncompressed_04_pubkey[k]); printf(COLOR_RESET);
            printf("\r\n          (C-06)" COLOR_GREEN ); for(k=0;k<33;k++) printf("%02x", compressed_06_pubkey[k]); printf(COLOR_RESET);
            printf("\r\n          (C-07)" COLOR_GREEN ); for(k=0;k<33;k++) printf("%02x", compressed_07_pubkey[k]); printf(COLOR_RESET);
        }


Also talking about ID's. I realized the puzzle pieces are alternatively Compressed-02 and 03 only.

I got the list below just running my tool using the know private keys found here.

I know the puzzle creator said there is no pattern just a mask from HD wallets.

For example puzzle-1 to 5 are Compressed-02, and puzzle-6 is Compressed-03.


Code:

 1, Asc, C-02, 000000000000000001, 0000000000000000000000000000000000000001,            1,           2, 0000000000000000000000000000000000000010
 2, Asc, C-02, 000000000000000003, 0000000000000000000000000000000000000011,            3,           4, 0000000000000000000000000000000000000100
 3, Asc, C-02, 000000000000000007, 0000000000000000000000000000000000000111,            7,           1, 0000000000000000000000000000000000000001
 4, Asc, C-02, 000000000000000008, 0000000000000000000000000000000000001000,            8,          13, 0000000000000000000000000000000000001101
 5, Asc, C-02, 000000000000000015, 0000000000000000000000000000000000010101,           21,          28, 0000000000000000000000000000000000011100
 6, Asc, C-03, 000000000000000031, 0000000000000000000000000000000000110001,           49,          27, 0000000000000000000000000000000000011011
 7, Asc, C-02, 00000000000000004c, 0000000000000000000000000000000001001100,           76,         148, 0000000000000000000000000000000010010100
 8, Asc, C-03, 0000000000000000e0, 0000000000000000000000000000000011100000,          224,         243, 0000000000000000000000000000000011110011
 9, Asc, C-02, 0000000000000001d3, 0000000000000000000000000000000111010011,          467,          47, 0000000000000000000000000000000000101111
10, Asc, C-03, 000000000000000202, 0000000000000000000000000000001000000010,          514,         641, 0000000000000000000000000000001010000001
11, Asc, C-03, 000000000000000483, 0000000000000000000000000000010010000011,         1155,        1528, 0000000000000000000000000000010111111000
12, Asc, C-03, 000000000000000a7b, 0000000000000000000000000000101001111011,         2683,        2533, 0000000000000000000000000000100111100101
13, Asc, C-03, 000000000000001460, 0000000000000000000000000001010001100000,         5216,        5328, 0000000000000000000000000001010011010000
14, Asc, C-03, 000000000000002930, 0000000000000000000000000010100100110000,        10544,       16323, 0000000000000000000000000011111111000011
15, Asc, C-02, 0000000000000068f3, 0000000000000000000000000110100011110011,        26867,       24643, 0000000000000000000000000110000001000011
16, Asc, C-02, 00000000000000c936, 0000000000000000000000001100100100110110,        51510,       44313, 0000000000000000000000001010110100011001
17, Asc, C-03, 00000000000001764f, 0000000000000000000000010111011001001111,        95823,      102846, 0000000000000000000000011001000110111110
18, Asc, C-02, 00000000000003080d, 0000000000000000000000110000100000001101,       198669,      158866, 0000000000000000000000100110110010010010
19, Asc, C-03, 00000000000005749f, 0000000000000000000001010111010010011111,       357535,      505782, 0000000000000000000001111011011110110110
20, Asc, C-03, 0000000000000d2c55, 0000000000000000000011010010110001010101,       863317,      948447, 0000000000000000000011100111100011011111
21, Asc, C-03, 0000000000001ba534, 0000000000000000000110111010010100110100,      1811764,     1195739, 0000000000000000000100100011111011011011
22, Asc, C-02, 0000000000002de40f, 0000000000000000001011011110010000001111,      3007503,     2591299, 0000000000000000001001111000101001000011
23, Asc, C-03, 000000000000556e52, 0000000000000000010101010110111001010010,      5598802,     8829874, 0000000000000000100001101011101110110010
24, Asc, C-03, 000000000000dc2a04, 0000000000000000110111000010101000000100,     14428676,    18756833, 0000000000000001000111100011010011100001
25, Asc, C-03, 000000000001fa5ee5, 0000000000000001111110100101111011100101,     33185509,    21353353, 0000000000000001010001011101001110001001
26, Asc, C-02, 00000000000340326e, 0000000000000011010000000011001001101110,     54538862,    57411079, 0000000000000011011011000000011000000111
27, Asc, C-03, 000000000006ac3875, 0000000000000110101011000011100001110101,    111949941,   115684467, 0000000000000110111001010011010001110011
28, Asc, C-03, 00000000000d916ce8, 0000000000001101100100010110110011101000,    227634408,   173074486, 0000000000001010010100001110100000110110  
29, Asc, C-02, 000000000017e2551e, 0000000000010111111000100101010100011110,    400708894,   632453190, 0000000000100101101100100111100001000110
30, Asc, C-03, 00000000003d94cd64, 0000000000111101100101001100110101100100,   1033162084,  1069226467, 0000000000111111101110110001100111100011
31, Asc, C-03, 00000000007d4fe747, 0000000001111101010011111110011101000111,   2102388551,   991084263, 0000000000111011000100101011111011100111
32, Asc, C-02, 0000000000b862a62e, 0000000010111000011000101010011000101110,   3093472814,  4043965098, 0000000011110001000010100000001010101010
33, Asc, C-03, 0000000001a96ca8d8, 0000000110101001011011001010100011011000,   7137437912,  6995634245, 0000000110100000111110001110100001000101
34, Asc, C-03, 00000000034a65911d, 0000001101001010011001011001000100011101,  14133072157,  5979799635, 0000000101100100011011001000000001010011
35, Asc, C-02, 0000000004aed21170, 0000010010101110110100100001000101110000,  20112871792, 22274898188, 0000010100101111101011111111100100001100
36, Asc, C-02, 0000000009de820a7c, 0000100111011110100000100000101001111100,  42387769980, 57863790615, 0000110101111000111100110110000000010111
37, Asc, C-02, 000000001757756a93, 0001011101010111011101010110101010010011, 100251560595, 46719975997, 0000101011100000101110100100001000111101

I will drop the uncompressed (04) and the Compressed 06-07 as the puzzle seems not using them.

Does anyone know if the uncompressed (04) and the Compressed 06-07 were used so far on any early days wallet? or for what are they used for?

I always dreamed finding something unspent on those ID's (04-06-07).



hero member
Activity: 828
Merit: 657
would you recommend any other? or any other PRO tips?

The function that you mention use the method know as Scalar Multiplication, this method is also know as "double and add" it use a cycle that per each bit in the key double the generation point G and only adds to the result those whom are bits 1.

In the worst case it is near 256 cycle per key or if you have some precalculated data of those public keys divided in bytes instead bits  you can reduce that cycle to 32 per key but that is still just a suggestion for that function.

The best way to proceed with it this kind of programs is just calculate the first key and with that first key do Public key additions to reach the next key this process will speed you program around 30 times

So instead of recalculate the public key each time with secp256k1_ec_pubkey_create

Code:
result=secp256k1_ec_pubkey_create(ctx, &pubkey_from_secp256k1.p, privkey);
next_key =secp256k1_ec_pubkey_create(ctx, &pubkey_from_secp256k1.p, privkey +1);
next_key =secp256k1_ec_pubkey_create(ctx, &pubkey_from_secp256k1.p, privkey +2);
next_key =secp256k1_ec_pubkey_create(ctx, &pubkey_from_secp256k1.p, privkey+3);

privkey + something is just an example to illustrate what i mean.

the program will do something like:

Code:
first_key=secp256k1_ec_pubkey_create(ctx, &pubkey_from_secp256k1.p, privkey);
next_key = some_publickey_addition(first_key,G);
next_key = some_publickey_addition(next_key ,G);
next_key = some_publickey_addition(next_key ,G);
...
next_key = some_publickey_addition(next_key ,G);
...


Only the first key is calculated in the old way and the subsequent keys are calculated in a faster way.

Another short cut is you don't need to calculate the Y value of all the subsequent keys (unless you are scanning for uncompressed keys) this may double the speed of the calculations.

Another short cut is endomorphism (This don't work on small puzzles) but it can multiply your speed up to 6 times for a general search.
jr. member
Activity: 40
Merit: 6
I benchmarked every step of the brute force loop, and most of the compute time goes into the ECDSA curve library secp256k1_ec_pubkey_create() function.

Quote
#include     // Bitcore eliptic curve library. https://github.com/bitcoin-core/secp256k1
                                         // dont forget to link to /usr/local/lib/libsecp256k1.a
There are numerous places where it's stated by its authors and mentors that the Bitcoin libsecp256k1 library is designed to provide a secure framework for Bitcoin software, not to be the fastest way to do EC math. One of the main features is protection against side-channel attacks, which means that all computations take constant time, with not a lot of shortcuts, if any at all, in order to protect against branch predictions, time-based attacks, etc.

If you want a fast(er)/(est) way to do EC math on a CPU you'll most likely have to roll your own. Slow but easy? Python. Fastish? libsecp256k1. Faster? C and custom arbitrary precision modular arithmetic code. Fasterish? assembler / SIMD CPU instructions. Faster than anything so far? GPU parallel executor threads. Fastest? Your own programmed ASIC.
newbie
Activity: 55
Merit: 0
The search speed is between 15-25K keys/s per CPU thread, depending on the CPU clock.

For CPU that speed is slow, the minimum acceptable speed per thread is at least 1 Million keys.

Even my Core i5 laptop can do some 15 millions keys per second using only 8 threads.

There is a lot of shortcuts that can be made to reach those speeds.

I am interested to know the nature of the bot wars.

How is it possible the war?

Are the Kangaroo and BSGS tools sending the private key findings to the developers?

No those tools are open source and you can read the code to see what network activities they do.

The bot war may start as soon an output transaction come from those address a transaction contains the public key, with it Kangaroo or BSGS can solve the private key almost instantly and with it they may be now able to make a new transactions with a different destination address


Thank you very much for the responses Alberto.

I know the chances to brute force puzzle 66 from private key to ripemd160 are very very small, but I would like to improve my tool, just for the sake of programming it, now you mention my tool seems slow in its performance per CPU thread.

I benchmarked every step of the brute force loop, and most of the compute time goes into the ECDSA curve library secp256k1_ec_pubkey_create() function.

I am using this library.

Quote
#include      // Bitcore eliptic curve library. https://github.com/bitcoin-core/secp256k1
                                         // dont forget to link to /usr/local/lib/libsecp256k1.a
#include               // OpenMP CPU multithreading


        // 1) Calculate Public Key using SECP256K1 eliptic curve
      if(single_calculation){
         printf("\r\n(1) (U)ncompressed & (C)ompressed Public Key from SECP256K1 curve (130 hex chars, 520 bits): ");
         if(single_calculation) start=omp_get_wtime();
      }
        result=secp256k1_ec_pubkey_create(ctx, &pubkey_from_secp256k1.p, privkey);       //secp256k1_ec_pubkey_create(const secp256k1_context* ctx,  secp256k1_pubkey *pubkey, const unsigned char *seckey)
      if(single_calculation){
         printf("%f ms",(omp_get_wtime()-start)*1000);
      }




would you recommend any other? or any other PRO tips?

Thank you very much in advance.
newbie
Activity: 19
Merit: 5
Are you sure that this API is capable of displaying information from the mempool?

I don't think so, I believe this one is just for confirmed txs.

This is not meant to be used as is in a real scenario, although you could probably consider it a ground work to expand upon.

The goal was to actually see how long the whole operation can take using different tools.

In my end it took roughly a minute to go from a public key on the web to a 70 bit private key stored in a .txt file.

Probably not the best performance too, but scary nevertheless.  Grin
newbie
Activity: 7
Merit: 0

Are you sure that this API is capable of displaying information from the mempool?
hero member
Activity: 828
Merit: 657
The search speed is between 15-25K keys/s per CPU thread, depending on the CPU clock.

For CPU that speed is slow, the minimum acceptable speed per thread is at least 1 Million keys.

Even my Core i5 laptop can do some 15 millions keys per second using only 8 threads.

There is a lot of shortcuts that can be made to reach those speeds.

I am interested to know the nature of the bot wars.

How is it possible the war?

Are the Kangaroo and BSGS tools sending the private key findings to the developers?

No those tools are open source and you can read the code to see what network activities they do.

The bot war may start as soon an output transaction come from those address a transaction contains the public key, with it Kangaroo or BSGS can solve the private key almost instantly and with it they may be now able to make a new transactions with a different destination address
Pages:
Jump to: