BigDb is one way to massively expand a database filled with sequentially arranged public keys.
A Bloom filter is used to create and keep track of these sequential points.
Creating the Database
To whip up a database with 1 million points:
Once it's up and running, a log file gets generated to keep track of the point count. In this case, the log will show that we have 1 million points. This log is super useful for both growing the database and doing precise searches.
Example of Expanding the Database
If we want to pile on another million points:
We start generating points from where the log tells us to. So in this example, we'd go from 1 million to 2 million (since we're adding another million).
Using the Database
After our database is set up, we run:
The -f flag reads from "30.txt" to determine the search range and the target public key, plus it builds a hash table with the -ht flag.
Here's how the hash table works:
It checks the log file to find out the size of our database.
Then it deducts this amount (2 million in our sample) from the target as many times as indicated by -ht (1,000 in this case).
This means subtracting 2 million from the public key 1,000 times in a row, temporarily saving all the intermediate results in the hash table.
We've now boosted the range of our database by a factor of 1,000, so it now covers 2 billion points (2,000,000 * 1,000).
Note that this enhancement does require more computing power for searches (more on that later).
Search
For the search in this case, we stick to good old brute force:
boosting a database of sequential public keys with brute-force
13 replies 72 views
Hi thanks for this.
Thought i would give win wsl a bash and get many build errors.
First was SECP256k1.h renamed to SECP256K1.h fixed that
Then secp256k1/Timer.h and bloom/bloom.h missing #include <cstdint> done that
after that i now get In file included from bloom/bloom.cpp:6:
/usr/include/openssl/md5.h:52:38: note: declared here
52 | OSSL_DEPRECATEDIN_3_0 unsigned char *MD5(const unsigned char *d, size_t n,
Now it builds but when running Bigdb -bs 1000000 it gives Bigdb: command not found
Just a heads up maybe its my setup or maybe i smoked too much but i like tinkering with things like this so ill update when running.
well that was quick got it running on wsl.
./BigDb -bs 1000000 didnt work for me renaming to ./Bigdb -bs 1000000 worked
Bigdb v0.1(alpha) by Mcdouglasx
[======================================================================] 100 %
Now i can play.
It is strange what you say, perhaps it is a problem with your WLS or missing libraries.
Possibly either way its working as you stated.
So i generated the DB with 1,000,000 pubs and only 1 million then the search for puzzle 30 and 40 the results
PrivateKey found: 1033162084
PublicKey: 030D282CF2FF536D2C42F105D0B8588821A915DC3F9A05BD98BB23AF67A2E92A5B
Time to find key: 0.57816 seconds
PrivateKey found: 995061478358
PublicKey: 03CCC97D220A22C4CA538882BD93BFC11356F5C57EC1B5DAEAE47D705C4689905A
Time to find key: 2.62869 seconds
still a lot more to play about with but nice times so far.
omega_bearFull Member
Posts: 116 · Reputation: 780
#5May 12, 2020, 01:31 PM
keyhunt cant work with 1,000,000 point, all regivme's I was try.
I make this :
priv in outlut is a priv of substracted pubkey
result:
3991
priv 0x100011a8f5b4002da0001f4
iIii 0x242276ecdc7ddee17700001 698945340000000000000000001 K 69894535 k 543992
priv 0x10000bef1e52203cfd801f4
iIii 0x24227ca6b3dfbed21980001 698947030000000000000000001 K 69894704 k 543993
priv 0x1000076d86ff0a82a5001f4
iIii 0x242281284b32d48c7200001 698948360000000000000000001 K 69894837 k 543994
priv 0x100001b3af9d2a9202801f4
iIii 0x242286e22294b47d1480001 698950050000000000000000001 K 69895006 k 543995
K this is total pubkeys
k this is mach smaler pubkeys what is good for brute
Can you implement k to your scrypt
with sach param:
result:
784884
priv 0xc3d06aa7760afac0af
iIii 0x34227c58cb8767ae6754146 1008431949999999999899156806 K 100843196 k 784885
priv 0x8bfa4b90a28ea2c116
iIii 0x34227fd62d78d4e62cd40df 1008432979999999999899156703 K 100843299 k 784886
priv 0x54242c79cf124ac17d
iIii 0x342283538f6a421df254078 1008434009999999999899156600 K 100843402 k 784887
priv 0x1c4e0d62fb95f2c1e4
iIii 0x342286d0f15baf55b7d4011 1008435039999999999899156497 K 100843505 k 784888
so, 0x1c4e0d62fb95f2c1e4 - one pubkey 2^69 in 784888 pubkeys
input key 2^90 0x34228895d231df0f17001f5
What you think
I ran the below command and the BabyStep.bf file overwrites after it reached 2GB, could this be a bug?
./Bigdb -bs 1000000000
It's not a bug, it's normal!
How can I create a database with 1,000,000,000 or bigger?
f0x_d1amondMember
Posts: 5 · Reputation: 141
#9May 13, 2020, 10:41 PM
BloomFilter load successfully.
terminate called after throwing an instance of 'std::out-of-range'
what(): stol
Aborted (core dumped)
You would need to optimize the Bloom filter to make it lighter like Keyhunt.
Maybe you are using an incongruent hex range
f0x_d1amondMember
Posts: 5 · Reputation: 141
#11May 14, 2020, 06:48 AM
How to improve and optimize search computation speed.
What is the maximum database that can be created?200,000,000Tested maximum value
Maximum hexadecimal range 7FFFFFFFFFFFFFFF Tested maximum value
The program cannot function beyond this value.
This code is a proof of concept, it is not intended for that
but optimizing bloom and integrating it into another algorithm such as bsgs would have better results.
f0x_d1amondMember
Posts: 5 · Reputation: 141
#13May 16, 2020, 06:54 AM
Can you further optimize the code to make it run in practice?
Maybe next month if work allows me.
Related topics
- issues with bitcoin core database read error 2
- Probabilistic Prefix Search vs Random and Sequential Methods Part II 4
- Ideas for Boosting Bitcoin's Transaction Capacity 3
- Bitcoin Core displaying coins (UTXOs) in a new tab 13
- Are you in favor of BIP-110? Let's get a Bitcoin poll going. 0
- Erlay seems to have some issues here’s a better proposal for a bitcoin protocol without invites 3