| 备注 | 修改日期 | 修改人 | |
| 格式调整 | 2023-06-12 21:42:16[当前版本] | 文艺范儿 | |
| 格式调整 | 2023-06-12 21:41:38 | 文艺范儿 | |
| 格式调整 | 2023-06-12 04:45:37 | 文艺范儿 | |
| 格式调整 | 2023-06-11 22:09:06 | 文艺范儿 | |
一个比特币钱包碰撞器,暴力强制随机钱包地址

Python3.6或更高
Python模块列在requirements.txt
最低RAM要求
$ git clone https://github.com/Isaacdelly/Plutus.git plutus $ cd plutus && pip3 install -r requirements.txt
$ python3 plutus.py
私钥是一个允许使用比特币的秘密号码。如果钱包中有比特币,那么私钥将允许一个人控制钱包并花费钱包中的任何余额。所以这个程序试图找到与正余额钱包相关的比特币私钥。然而,由于不可能知道哪些私钥控制有钱的钱包,哪些私钥控制空钱包,我们必须随机查看存在的每个可能的私钥,并希望找到一个平衡的私钥。
该程序本质上是一种暴力强制算法。它连续生成随机比特币私钥,将私钥转换为各自的钱包地址,然后检查地址的余额。如果发现有余额的钱包,则私钥、公钥和钱包地址将保存到用户硬盘上的文本文件plutus.txt。最终目标是在现有的2160个钱包中随机找到一个有余额的钱包。
使用加密安全os.urandom()函数随机生成私钥以创建32字节的十六进制字符串。
使用starkbank-ecdsaPython模块将私钥转换为各自的公钥。然后使用binascii和hashlib标准库将公钥转换为其比特币钱包地址。
该项目包括一个pre-calculated数据库,其中包含每个P2PKH比特币地址的正余额。在数据库中搜索生成的地址,如果发现地址有余额,则将私钥、公钥和钱包地址保存到用户硬盘上的文本文件plutus.txt。
该程序还通过multiprocessing.Process()函数利用多处理进行并发计算。
这个程序需要0.0032457721秒的时间来强制执行单个比特币地址。
然而,通过multiprocessing.Process()为计算机的每个CPU创建一个并发进程。所以这个程序可以以0.0032457721 ÷ cpu_count()秒的速度对地址进行暴力破解。
离线数据库用于查找生成的比特币地址的余额。访问/数据库获取信息。
每次该程序检查生成地址的余额时,都会将结果打印给用户。如果发现空钱包,则钱包地址将打印到终端。例如:
1Kz2CTvjzkZ3p2BQb5x5DX6GEoHX2jFS45
但是,如果找到一个有余额的钱包,则有关该钱包的所有必要信息将保存到文本文件plutus.txt。例如:
十六进制私钥:5A4F3F1CAB44848B2C2C515AE74E9CC487A9982C9DD695810230EA48B1DCEADD WIF私钥:5JW4RCAXDBOCFLK9BXQW5CBQWUSN86FPBMZ2HHT9NVKMTHJM公钥:04393B30BC950F358326062FF28D194A5B28751C1FF2562C02CA4DF2A864DE63280CC140D540EA1A5711D1E519C842684F4245C41CB501B7EA0036169C320地址1KZ2CTVJZZ3P2BQB5X5DX6GEOHX2JFS45
该程序每个CPU使用大约2GB的RAM。由于该程序使用多处理,一些数据在threads之间共享,因此难以准确测量RAM使用情况。