Introducing ecloop A Tool for Fast Key Searches on secp256k1

12 replies 474 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.
6 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.
2 Reply Quote Share
sam.gasNewbie
Posts: 16 · Reputation: 11
#3Dec 27, 2023, 03:51 AM
No problem! Glad you’re sharing it.
4 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.
3 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.
0 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?
3 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.
4 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.
0 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.
1 Reply Quote Share
falcon2019Full Member
Posts: 92 · 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.
0 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.
2 Reply Quote Share
falcon2019Full Member
Posts: 92 · 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.
2 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...
6 Reply Quote Share

Related topics