Introducing ecloop A Tool for Fast Key Searches on secp256k1

12 replies 893 views
alex420Newbie
Posts: 4 · Reputation: 33
#1Dec 25, 2023, 10:45 AM
Hey all, I want to share my new project called ecloop. It's a tool designed to speed up the search for Bitcoin public keys (hash160) on the secp256k1 curve. I mixed ideas from other tools like keyhunt and brainflayer, focusing on clean C code and SIMD for performance. It can handle both compressed and uncompressed public keys and uses a Bloom filter for efficient scanning. Works on MacOS and Linux, and can be set up on Windows via WSL. This is my first time posting here.
14 Reply Quote Share
CalmFarmMember
Posts: 5 · Reputation: 42
#2Dec 27, 2023, 02:35 AM
I used some Makefile flags from @nomachine. #./ecloop rnd -f 71.txt -t 12 -o./BINGO.txt -r 400000000000000000:7fffffffffffffffff -endo threads: 12 ~ addr33: 1 ~ addr65: 0 ~ endo: 1 | filter: list (1) [RANDOM MODE] offs: 2 ~ bits: 32 0000000000000000 0000000000000000 0000000000000042 8ddff88400000000 0000000000000000 0000000000000000 0000000000000042 8ddff887fffffffc 27.91s ~ 64.92 Mkeys/s ~ 0 / 1,811,939,328 ('p' pause) I’m getting around 65 Mkeys/s. This is insane.
9 Reply Quote Share
sam.gasNewbie
Posts: 16 · Reputation: 11
#3Dec 27, 2023, 03:51 AM
No problem! Glad you’re sharing it.
9 Reply Quote Share
alex420Newbie
Posts: 4 · Reputation: 33
#4Dec 27, 2023, 05:31 AM
Appreciate you checking out my code and adding it to your repo! The comment about the ‘buy me a coffee’ link is kinda odd though. I include that in most public repos because I don't think the techniques are mine. This builds on well-known concepts from papers and projects. To be honest, JLP's code is hard to understand, so I'm not clear on everything there. I started ecloop as a brain wallet checker and built it from the ground up.
9 Reply Quote Share
alex420Newbie
Posts: 4 · Reputation: 33
#5Dec 28, 2023, 05:29 PM
That’s awesome! What CPU are you using? I don’t have a decent x86 chip atm to test properly. And which compiler do you use? Clang on my side shows about 10% better performance than GCC, but no idea why.
4 Reply Quote Share
CalmFarmMember
Posts: 5 · Reputation: 42
#6Dec 28, 2023, 08:11 PM
I’ve got an AMD Ryzen 5 3600 and I'm using GCC C++11 on Debian 12. What’s this AOCC compiler @nomachine mentioned? It’s a tailored Clang for AMD, right?
9 Reply Quote Share
sam.gasNewbie
Posts: 16 · Reputation: 11
#7Dec 28, 2023, 09:10 PM
Yeah, but there’s a catch. If you don’t know what you’re doing and don’t cool your CPU well, it can overheat.
8 Reply Quote Share
im_sigmaMember
Posts: 4 · Reputation: 191
#8Dec 30, 2023, 03:37 AM
Very interesting! Do you have insights on running this with GPU/CUDA? If you can, hit me up. I’m looking for a $$pecial project.
4 Reply Quote Share
swiftledgerFull Member
Posts: 2 · Reputation: 276
#9Dec 30, 2023, 04:32 AM
Why is `-endo` faster but takes longer overall? When I tested with `-endo`, it took 3 times longer for the same range.
10 Reply Quote Share
falcon2019Full Member
Posts: 93 · Reputation: 425
#10Dec 30, 2023, 06:30 AM
Maybe because a sixth (non-endo range keys) of 48.79 equals a third of 23.86? You reach the same key, but it’s slower? Endomorphism feels like slowing down a fast car but getting more cars on the road. Only one car is headed to Starbucks, the others are lost in space.
5 Reply Quote Share
swiftledgerFull Member
Posts: 2 · Reputation: 276
#11Dec 30, 2023, 08:28 AM
Got it, but does that mean using `-endo` searches outside the specified range `-r 400000000000000000:40000000000ffffff`? That seems off.
6 Reply Quote Share
falcon2019Full Member
Posts: 93 · Reputation: 425
#12Dec 30, 2023, 09:00 AM
Exactly, that’s how endomorphism works: it maps a scalar multiple to different points. The multiple is a constant of 256 bits.
5 Reply Quote Share
alex420Newbie
Posts: 4 · Reputation: 33
#13Dec 30, 2023, 01:02 PM
Sure thing. Endomorphism checks keys beyond the given range. It’s just math. More details can be found here...
14 Reply Quote Share

Related topics