Skip to content

Add OpenCL kernel for MultiBit wallets #610

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

JosefZIla
Copy link

Hi, I've implemented GPU acceleration for MultiBit wallet password recovery using OpenCL. On my machine, it currently achieves a rate of approximately 4 million passwords per second:

(venv) [myd@neo btcrecover]$ python btcrecover.py --wallet wallet.key --tokenlist tokens.txt --enable-opencl --no-eta --dsw -d --opencl-workgroup-size 524288 --threads 8

Starting btcrecover 1.13.0-Cryptoguide on Python 3.13.3 64-bit, 21-bit unicodes, 64-bit ints
Notice: use --android-pin to recover the spending PIN of
    a Bitcoin Wallet for Android/BlackBerry backup (instead of the backup password)

OpenCL: Available Platforms
Platform 0 - Name NVIDIA CUDA, Vendor NVIDIA Corporation

OpenCL: Auto Selecting Best Platform
OpenCL: Using Platform: 0
OpenCL: Using Work Group Size:  524288

Wallet Type: btcrpass.WalletMultiBit
Wallet difficulty: 3 MD5 iterations
2025-07-27 14:27:10 : Using 8 worker threads
Duplicate Check Level: 1 , Add --no-dupchecks up to 4 times fully disable duplicate checking

\ 1943011328  elapsed: 0:07:54  rate:   4.09 MP/s

This is my first time working with OpenCL, so there may still be room for improvement and some rough edges. However, I've verified that the correct password is successfully identified.

@JosefZIla JosefZIla force-pushed the master branch 2 times, most recently from 30e781d to f9d0f52 Compare July 27, 2025 13:00
@3rdIteration
Copy link
Owner

Great, thanks for the PR, I'll give it a test :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants