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.
Introducing ecloop A Tool for Fast Key Searches on secp256k1
12 replies 474 views
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.
No problem!
Glad you’re sharing it.
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.
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.
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?
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.
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.
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.
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.
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.
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.
Sure thing. Endomorphism checks keys beyond the given range. It’s just math. More details can be found here...
Related topics
- Issues with ripemd160 on Ubuntu 22 9
- New Bitcoin Improvement Proposal with $100 Reward 9
- Clipboard Vulnerabilities in Cryptocurrency Transactions 8
- Understanding the Differences Between Traditional and Simplified Chinese Mnemonics 6
- Running Bitcoin Core on a Laptop with Limited Storage 20
- Exploring Blockstream's Satellite Tech and Its Potential 22