I have a lot of equipment. All running for searches about these puzzles.
To have fun, I chose to search via vanity in last days.
I have desktops and notebooks with latest and powerful intel chips, nvidia graphics, 120GB DDR5 etc. each. On vanity, these setups find ~20 addresses per day for each.
However, when I applied vanity via apple silicone chips (M1, M2, M3), daily found vanity addresses ~500 per each setup.
I observed the behavior, and when it finds a vanity address in the pool I search, immediately it finds 5-6 addresses more in milliseconds, it is moving to the numbers to check that might have the vanity around some near numbers while I'm generating those numbers using "random".
For example:
1MVDYUvrcMqdprCTYuthuaQxWWAL8Ty2KS 220647290646478288674
1MVDYE2EHY3VR3AXKrD7mYvpSgD2SGgqZb 257335783054352585279
1MVDYuE5HGPjYaEH72sZukwNXhdtdKSQRY 280101386265359359876
1MVDYNcMjPsAW1PQgjwCGRNwijJMSW1UcR 274962343828436157207
1MVDYGms9qGRsrDD7AuoyYJBZnJTzAj9B8 213173989571665196391
1MVDYnfq7s3yG8fdnhQ66cqDa4h2DNoGeB 247904416465366500764
1MVDYY8GUU8or4WfLSrsbHip8F7pwA4xpv 243282287509672730681
1MVDYxMNG8fKf9fvX3r5PmwNXY8tjfESsu 245042251007899478320
1MVDY8aYEQsCWqU2MVWRjhrLHaX28SHFky 270190501490895327846
These are found in the same second and it keeps this behavior.
This behavior made me crazy guys. I do not understand how it can do this.
Do you have a binary to search vanity which runs on Silicon CPUs? I could not find any nor make it work, a lot of libraries are only for intel.
Could you share it ?
It is very simple vanity search using "random" and written in Python
import sqlite3
import random
from bit import Key
import bitcoin
# Connect to vanity_addresses.db for storing found vanity addresses
vanity_conn = sqlite3.connect('vanity_addresses.db')
vanity_cursor = vanity_conn.cursor()
# Create a table in vanity_addresses.db to store vanity addresses and private keys
vanity_cursor.execute('''
CREATE TABLE IF NOT EXISTS vanity_addresses (
address TEXT PRIMARY KEY,
private_key TEXT
)
''')
vanity_conn.commit()
def generate_vanity_address(prefix):
while True:
# Generate a new private key
private_key = random.randint(147573952589676412927, 295147905179352825855)
# Compute the corresponding public key
key = Key.from_int(private_key)
addr = key.address
addr_uncompressed = bitcoin. privkey_to_address(private_key)
if addr.startswith(prefix):
# Insert found vanity addresses into the vanity_addresses.db database
vanity_cursor.execute(
'INSERT INTO vanity_addresses (address, private_key) VALUES (?, ?)', (addr, str(private_key)))
vanity_conn.commit()
if addr_uncompressed.startswith(prefix):
# Insert found vanity addresses into the vanity_addresses.db database
vanity_cursor.execute(
'INSERT INTO vanity_addresses (address, private_key) VALUES (?, ?)', (addr_uncompressed, str(private_key)))
vanity_conn.commit()
# Log that a vanity address was found
# print(
# "Vanity Address found and inserted into the vanity_addresses.db database:", addr)
prefix = '1MVDY'
generate_vanity_address(prefix)