Client / Server BITCRACK - программа для решения публичных «Bitcoin Пазлов».
1. Вступление: что такое «Bitcoin Пазлы» и почему это легально
Bitcoin Пазлы (Bitcoin Puzzles) представляют собой публично выложенные задания, где на каком-либо доступном для просмотра биткоин-адресе хранится приличная сумма. Автор пазла (владелец средств) специально оставляет «загадку»: кто первым найдёт закрытый ключ к этому адресу, тот сможет получить лежащие там монеты.
Это делается в образовательных или исследовательских целях, чтобы энтузиасты и исследователи могли проверить инструменты и алгоритмы для перебора ключей, а также глубже понять, как работает криптография в биткоине.
Участие в таких пазлах полностью легально, так как средства на адресах размещены самим владельцем, а значит, никто не пытается взломать кошелёк стороннего человека без согласия. Фактически это конкурс, где призом служит найденная сумма.
Server BITCRACK - Сервер: управление и контроль. Программа представляет собой клиент-серверное приложение для распределенного поиска приватных ключей Bitcoin-адресов. Она создана для тех, кто хотят организовать совместную работу нескольких компьютеров для решения этой задачи.
Основные возможности
Распределение задач
Сервер хранит список задач в файле ok.txt и раздает их клиентам по запросу. Задачи берутся из временного файла ok.tmp (до 100 КБ), чтобы не перегружать систему. Если клиент не завершает задачу вовремя, она возвращается в общий пул для повторного распределения.
Аутентификация и безопасность (защита от переполнения буфера)
Клиенты подключаются, указывая логин, пароль и уникальный ID. Сервер проверяет данные и блокирует доступ для подозрительных или заблокированных пользователей (по IP или ID). Есть защита от спама: ограничение частоты запросов, чтобы предотвратить перегрузку.
Обработка результатов
Клиенты отправляют результаты поиска обратно на сервер. Если найден приватный ключ, создается файл ALERT_*.txt для оповещения. Сервер анализирует полученные данные и сохраняет их в файлы для дальнейшего использования. Некорректные или просроченные результаты
Контроль и мониторинг
Сервер ведет подробный лог: подключения, выдача задач, получение результатов, ошибки. Пользователь видит процесс в реальном времени через графический интерфейс. Клиенты, которые не завершают задачи или нарушают правила, могут быть заблокированы.
Управление через интерфейс
Вы можете запускать/останавливать сервер, очищать лог, настраивать параметры (например, порт, логин, пароль) и даже сбрасывать сессию по расписанию — все через удобное окно программы.
Для чего это?
Совместный поиск: распределяет вычисления между несколькими машинами, ускоряя процесс.
Автоматизация: сервер сам управляет очередью задач и следит за их выполнением.
Гибкость: параметры поиска (например, диапазоны ключей) задаются через интерфейс.
Защита: встроенные механизмы предотвращают сбои и злоупотребления.
Как это работает в двух словах?
Сервер раздает задачи клиентам, собирает результаты, анализирует их и оповещает о находках, обеспечивая контроль и стабильность процесса.
Программа идеальна для тех, кто хочет эффективно искать приватные ключи Bitcoin, используя мощности нескольких устройств, с минимальной ручной настройкой и максимальной автоматизацией.
Если скорость чтения и записи данных на диск медленная, то лучше разбить файл "ok.txt" по ~ 100gb (вычисляется путем несложных манипуляций).
Client - Клиент работает с сервером, который выдаёт задачи для поиска ключей к Биткоин-пазлам. Основная работа выполняется на видеокарте, чтобы ускорить процесс вычислений. Клиент автоматически определяет, как лучше использовать оборудование, и обменивается данными с сервером.
Проверка видеокарты
Клиент ищет в системе поддерживаемую видеокарту (например, NVIDIA). Если она есть, используется CUDA для вычислений. Если нет — клиент переключается на OpenCL, который работает с другими типами оборудования.
Клиент запускает необходимые библиотеки
cudart64_101 — библиотека для работы с CUDA.
CUDA или OpenCL — для вычислений.
Если эти файлы уже есть, они заменяются свежими версиями.
Подключение к серверу
Вы вводите параметры запуска в формате Host:Port:Login:Password (например, server.com:1234:user:pass123).
Программа генерирует уникальный идентификатор (UID) и отправляет его серверу вместе с логином и паролем.
Основной цикл работы
Получение параметров: Клиент запрашивает у сервера настройки (например, -b 82, -t 256, -p 1024, адрес Биткоин-кошелька).
Получение задачи: Если нет сохранённой задачи (файл save.txt), сервер выдаёт новый диапазон ключей (например, startKey:endKey). Если задача уже начата, работа продолжается с того же места.
Запуск вычислений: Клиент запускает CUDA или OpenCL с полученными параметрами и ждёт завершения.
Обработка результатов: Если найден ключ (файл keyc.txt), он сохраняется в папку с датой и временем, отправляется на сервер, а исходные файлы удаляются.
Работа с файлами
current_key.txt — хранит текущий диапазон ключей, чтобы продолжить работу после перезапуска.
save.txt — сохраняет состояние вычислений.
keyc.txt — содержит найденные ключи.
Особенности
Программа работает в бесконечном цикле: после завершения одной задачи запрашивает новую.
Использует интернет (TCP) для связи с сервером.
Если видеокарта не поддерживается, автоматически переключается на OpenCL.
Сохраняет прогресс, чтобы не начинать заново при сбоях.
Что нужно для работы
Видеокарта: Лучше NVIDIA для максимальной скорости, но подойдёт и другая с OpenCL.
Параметры: Укажите в командной строке Host:Port:Login:Password точно в этом формате.
Пример работы
Вы запускаете: client.exe ip-server:port:user:pass.
Программа проверяет видеокарту и извлекает файлы.
Подключается к серверу, получает задачу (например, диапазон ключей).
Запускает вычисления на GPU.
После решения одной задачи или нахождения ключа отправляет результат на сервер и берёт новую задачу.
GenTask - Программа предназначена для создания и обработки заданий для Bitcoin-пазлов — задач, связанных с поиском приватных ключей в заданных диапазонах шестнадцатеричных (hex) чисел. Она помогает подготовить диапазоны для сервера, который распределяет их между клиентами для вычислений, а также обрабатывать и фильтровать результаты. Интерфейс включает текстовые поля, кнопки и диалоговые окна для работы с файлами.
Создание диапазонов для заданий (Сгенерировать лист)
Вы вводите начальное и конечное hex-число (например, 1A00 и 1FFF) в поля 1 (начальный диапазон) и 2 (конечный диапазон), а в 3 (кол-во комбинаций) указываете размер группы (шаг, например, 100000000000 чисел). Программа разбивает диапазон на части и записывает их в файл в формате начало:конец (например, 1A00:1AFF). Эти диапазоны сервер будет раздавать клиентам для поиска приватных ключей. Процесс идёт в фоновом режиме, и по завершении вы видите сообщение «Генерация завершена!». Это основная функция для подготовки заданий для Bitcoin-пазлов.
Перемешивание заданий (Зарандомить лист)
Вы выбираете файл с диапазонами через диалоговое окно и в "кол-во строк" указываете, на сколько строк разбить файл для обработки (важно для больших файлов). Программа случайным образом перемешивает строки (диапазоны) и сохраняет их в новый файл с суффиксом .shuffled. Например, диапазоны 1A00:1AFF и 1B00:1BFF могут поменяться местами. Это нужно, чтобы сервер раздавал задания в случайном порядке, упрощая предсказание и распределяя нагрузку.
Исправление диапазонов с повторами (Исключение ненужного)
Вы выбираете файл с диапазонами, и программа проверяет строки, разделённые :. Если в начале или конце диапазона (например, AAAA1234 или BBBB5678) есть четыре или более одинаковых символа подряд, они заменяются, чтобы убрать повторы. Например, AAAA1234:5678 может стать AABB1234:5678. Это важно, так как последовательности с повторами могут быть менее вероятными для Bitcoin-ключей. Результат сохраняется в исходный файл, временные файлы удаляются.
Фильтрация диапазонов с повторами (Исключение-2)
Программа анализирует файл и удаляет строки, где оба ключа (до и после :) содержат четыре или более одинаковых символа подряд. Например, строка AAAA1234:BBBB5678 удаляется, а AAAA1234:5678 остаётся. Это помогает исключить диапазоны, которые с высокой вероятностью не содержат нужных ключей, уменьшая объём работы для клиентов.
Как это работает для Bitcoin-пазлов?
Вы запускаете программу, вводите hex-диапазоны (например, часть пространства ключей Bitcoin), задаёте шаг и выбираете файлы. Нажимая кнопки, вы создаёте задания для сервера, перемешиваете их для случайной раздачи или фильтруете, чтобы исключить «плохие» диапазоны. Программа сообщает об успехе или ошибках. Всё интуитивно и не требует глубоких знаний программирования.
Зачем это нужно для Bitcoin-пазлов?
Bitcoin-пазлы требуют поиска приватных ключей в огромных диапазонах hex-чисел. Эта программа упрощает подготовку заданий: создаёт чёткие диапазоны для клиентов, перемешивает их для равномерной нагрузки и убирает диапазоны с низкой вероятностью успеха. Это экономит время и ресурсы, делая процесс поиска ключей более эффективным.
Kwork
Для оценки Client / Server BITCRACK (BITCOIN_PUZZLE) [FULL_VERSION] необходимо зарегистрироваться или авторизоваться на нашем сайте