主页 > 以太坊钱包imtoken安装 > Plutus:一个可以暴力破解随机钱包地址的自动比特币钱包碰撞器
Plutus:一个可以暴力破解随机钱包地址的自动比特币钱包碰撞器
Plutus 比特币暴力破解器
暴力破解随机钱包地址的比特币钱包碰撞器
喜欢这个项目? 给它一颗星
依赖关系
Python3.6或更高版本
Python 模块列在 requirements.txt 中
最低内存要求
安装
$ 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 标准库将公钥转换为其比特币钱包地址。
该项目包括一个预先计算的数据库,其中包含每个 P2PKH 比特币地址的正余额。 在数据库中搜索生成的地址比特币私钥格式转换器,如果发现该地址有余额,则将私钥、公钥和钱包地址保存到用户硬盘上的文本文件plutus.txt中。
该程序还通过 multiprocessing.Process() 函数利用多处理进行并发计算。
效率
该程序需要 0.0032457721 秒来暴力破解单个比特币地址。
但是,通过 multiprocessing.Process() 为计算机的每个 CPU 创建一个并发进程。 所以这个程序可以在 0.0032457721 ÷ cpu_count() 秒内暴力破解一个地址。
数据库常见问题
离线数据库用于查找生成的比特币地址的余额。 访问 /database 获取信息。
预期产出
程序每次检查生成地址的余额时,都会将结果打印给用户。 如果发现空钱包,钱包地址将打印到终端。 例如:
1Kz2CTvjzkZ3p2BQb5x5DX6GEoHX2jFS45
但是,如果找到有余额的钱包,有关该钱包的所有必要信息都会保存到文本文件 plutus.txt 中。 例如:
十六进制私钥:5A4F3F1CAB44848B2C2C515AE74E9CC487A9982C9DD695810230EA48B1DCEADD WIF私钥:5JW4RCAXDBOCFLK9BXQW5CBQWUSN86FPBMZ2HHT9NVKMTHJM公钥:04393B30BC950F358326062FF28D194A5B28751C1FF2562C02CA4DF2A864DE63280CC140D540EA1A5711D1E519C842684F4245C41CB501B7EA0036169C320地址1KZ2CTVJZZ3P2BQB5X5DX6GEOHX2JFS45
内存消耗
该程序每个 CPU 使用大约 2GB 的 RAM。 由于程序使用多处理,一些数据在线程之间共享,因此很难准确测量 RAM 使用情况。
内存消耗堆栈跟踪使用 mprof 进行监控,以在具有 8GB RAM 的 4 逻辑处理器机器上暴力破解程序的 10000 个地址。 结果,创建了 4 个子进程,每个子进程消耗 2100MiB 的 RAM(约 2GB)。
最近的改进和积压
创建一个问题,以便我可以添加更多内容以进行改进