Перейти к содержанию

Программы для вычисления приватного ключа


alevlaslo

Рекомендуемые сообщения

3 часа назад, Lenchik сказал:

Наличие публичного ключа ничего не дает.

Знание публичного ключа позволяет использовать специальные алгоритмы поиска приватного ключа, оптимизированные для криптографии на эллиптических кривых - алгоритм больших и малых шагов (BSGS), кенгуру Полларда. Кстати, для последнего имеется реализация для CUDA.

 

Именно поэтому, в так называемой транзакции-пазле, приватный ключ от 66-го выхода до сих пор не найден, а от 120-го выхода найден. 120-й выход имеет намного более длинный приватный ключ, чем 66-й, зато от 120-го известен публичный ключ, а от 66-го - не известен. 

Ссылка на комментарий
Поделиться на другие сайты

  • Ответов 258
  • Создана
  • Последний ответ

Топ авторов темы

поэтому после исходящей транзакции сдачу лучше принимать на новый адрес

Ссылка на комментарий
Поделиться на другие сайты

@Old Miner Не применишь ты метод кенгуру к данной задаче. "Стадо" одно. Открытый ключ один, а не множество.

А подбор методом приближения на эллиптической кривой вряд ли прокатит. Если бы это было так, давно бы все кошельки грохнули.

 

И если вы так уверены в своей правоте, то дерзайте. С ваших слов, софт есть, задача для него посильная есть. Получайте приз, пока другие не взяли.

 

А то, что кто-то один ключ взял, так это просто везение. Скорей всего случайные ключи подставляли, а не по порядку перебирали. (Дуракам везет). По слухам, кто-то и в лотерею выигрывает ?

 

Взять можно, задача для современной техники посильная, вот только затраты сил и средств значительно превышают обещанный приз. 

Ссылка на комментарий
Поделиться на другие сайты

  • 3 месяца спустя...

   Кстати, описан случай, как в 2009 году группа инженеров взломала эллиптическую кривую порядка 112 бит методом ро Полларда. Они соорудили ферму из 300 приставок Playstaytion 3, которая работала непрерывно в течение 6 месяцев. Кому интересно, можете ознакомиться тут (англ яз).

 https://forums.guru3d.com/threads/playstation-3-computing-breaks-260-barrier-112-bit-prime-ecdlp-solved.300400/

Ссылка на комментарий
Поделиться на другие сайты

@Евгения Максимова

 

Спасибо. Здесь ключ 256 бит, а количество вариантов перебора растет в геометрической прогрессии от длины ключа.

Но с другой стороны, никто не доказал что эллиптическую кривую нельзя взломать построив обратный алгоритм. 

Ссылка на комментарий
Поделиться на другие сайты

@Lenchik Да уж, в публичном сообществе взломы ключей такой длины не известны. Хотя согласно сервису btcparser,  кто-то регулярно опустошает старые 8-12 летние кошельки. Потихоньку, не привлекая внимания.... Может хозяева, а может и нет...

  А что касается обратного алгоритма эллиптической кривой - почему бы и нет. Ученые ведь на полном серьезе допускают возможность существования антиматерии и белых дыр в противоположность материи и черным дырам :)

Ссылка на комментарий
Поделиться на другие сайты

3 часа назад, Евгения Максимова сказал:

  кто-то регулярно опустошает старые 8-12 летние кошельки.

У старых кошельков могло быть слабое место. Чаще от кошельков находят файл wallet.dat. Старые программы управления кошельками позволяли использовать короткие пароли или пользоваться ими без пароля вовсе.

 

Эти wallet.dat могут быть где угодно. Например на выброшенных компьютерах и их дисках. Есть даже специальные программы для поиска этого файла среди других данных. 

Ссылка на комментарий
Поделиться на другие сайты

А кто нибудь знает, бывает ли софт/прошивка для асиков whatsminer, для поиска BTC пазлов?

Ссылка на комментарий
Поделиться на другие сайты

@suspend С этим некоторые сложности. Чипы асиков устроены так, что перебирают адреса пакетами, то есть оптом перебирают последовательные адреса. На этом они экономят некоторое время. То есть часть вычислений у последовательных ключей повторять не надо.

Для вычисления пазлов нужно не сплошной перебор, а ограниченный некоторым критерием. 

Ссылка на комментарий
Поделиться на другие сайты

@Lenchik спасибо за разъяснение. То есть вариантов нет? Или скорость перебора будет существенно ниже чем родной хешрейт асика?

Ссылка на комментарий
Поделиться на другие сайты

2 часа назад, suspend сказал:

@Lenchik спасибо за разъяснение. То есть вариантов нет? Или скорость перебора будет существенно ниже чем родной хешрейт асика?

Именно так. Документации по этим чипам нет, есть только общее описание принципа работы. Поэтому даже попробовать сложно. Но даже если их можно перевести на расчет хэша единственного ключа и то ничего не получится. Последовательная шина на плате асика очень медленная. Контрольная плата заряжает в чип сразу большое задание, поэтому и скорость высокая при довольно слабом микроконтроллере на этой плате. 

 

Что бы эти чипы заработали быстро, у каждого из них должна быть память приличного объема и режим работы с получением задания из памяти. Какая то память у них конечно есть, но её явно недостаточно для загрузки произвольного задания. 

Ссылка на комментарий
Поделиться на другие сайты

  • 4 недели спустя...
12 минут назад, AknotF сказал:

А файл со списком есть актуальный? А то пост от 2020ого года, может быть посвежее есть что.

С каким списком? Списком пазлов? Так сходите на bitcointalk да посмотрите. Может еще какие задания есть.

Ссылка на комментарий
Поделиться на другие сайты

  • 2 недели спустя...

https://privatekeyfinder.io/bitcoin-puzzle/ по пазлу актуально тут смотреть,по асикам если софт править под хеширование то глупо идти длинным путем,короткий путь это написать специфический пул  на который будут стучатся асики с родной прошивкой а вот хеширование они будут делать уже по команде с пула все как при обычном майнинге вариант как у ванити пула,насчет софта что на гитхабе под перебор пазла могу твердо сказать что весь софт кривой (зачастую пропускает часть цифр либо адрес) плюс нужно учитывать что если серьезную железку с кучей карт собрать то проц за картами не успевает как вариант это собирать на райзенах 5-7-9 ну и желательно оперативы от 64 гигов и выше,тестировал на куче железа и разницу сразу видно где на простеньких процах работает и где на райзенах,вообще если пазл по уму разбирать то нужно делать таблицу с первого открытого адреса по последний при чем делать таблицу как на сжатых так и несжатых приватниках (но балансы только на сжатых адресах) и вычислять закономерность а она там есть так как разработчик пазла создавал закономерность  хекс+n=следующий адрес  причем n получается из предыдущего адреса на вскрытых адресах это можно все просчитать ,кому интересно в сети гуляет таблица в бинарнике там все прекрасно визуально видно в бинарнике каждый следующий адрес это +1 к предыдущему плюс смещение всех остальных единиц и нулей в право ,побитный перебор диапазона возможен но с оговоркой все упирается в корректный софт а он с кривизной и это нужно учитывать 

Ссылка на комментарий
Поделиться на другие сайты

@panodig Ферму можно любую. Софт должен быть на CUDA. Сильно грузит проц OpenCL. На OpenCL пишут ленивые программисты. Скорость программы на CUDA в разы выше чем на OpenCL. Центральный процессор нужен Intel. AMD глючные и их большое количество ядер по сути ничего не дает, так как общая часть у программы на CUDA работает чаще всего в один поток, та что на CPU, а не на GPU. Создатели суперкомпьютеров от NVidia отказались от использования AMD в пользу Intel. Хотя на предыдущих моделях пытались их использовать. AMD не оправдали ожиданий.

 

А вот видеокарты желательно втыкать прямо в материнскую плату, а не на удлинителях, как у ферм. Удлинители они PCIe x1, а это сильно снижает скорость обмена видеокарты с центральным процессором.

Изменено пользователем Lenchik
Ссылка на комментарий
Поделиться на другие сайты

  • 2 недели спустя...

А я пазлы не копаю, там меня опередить могут, поэтому люблю самый сложный адрес у которого нет даже паблика)

Ссылка на комментарий
Поделиться на другие сайты

Всем привет случайно наткнулся на тему, даже зарегался на форуме. Немного циферок для сравнения

I7 3770 все потоки 15-20кк в сек

1060 3gb opencl 25-30кк сек

1060 3gb cuda 380кк сек

На 2080 ti cuda 1.5-1.7ккк сек коллизии до 120-130 бит

 

Код свой, как сумел так написал 

Изменено пользователем Tgsic
Ссылка на комментарий
Поделиться на другие сайты

@Tgsic Чего считает то с такой скоростью? Эллиптический алгоритм или SHA256? Если SHA256, то у меня на RTX2070, CUDA, считает около трех миллионов в секунду. 

Ссылка на комментарий
Поделиться на другие сайты

  • 1 месяц спустя...
В 26.09.2023 в 00:19, Lenchik сказал:

@Tgsic Чего считает то с такой скоростью? Эллиптический алгоритм или SHA256? Если SHA256, то у меня на RTX2070, CUDA, считает около трех миллионов в секунду. 

 

Добрый день, 

А можно посчитать примерную скорость на CUDE 
+генерация приватного ключа
+вычисление адреса sha256(  sha256(  b'\0' + ripemd160(sha256()) ))
+сравнение адреса с базой адресов

 

PubKeyToAddr-675x1024.png
 

Ссылка на комментарий
Поделиться на другие сайты

@gold2000 У меня нет реализации secp256k1 на CUDA, поэтому это померять не могу. Но secp256k1 значительно более сложный алгоритм чем sha256( + ripemd160, поэтому быстро не получится. Но тут дело даже не в этом. Блокчейн приближается к одному терабайту. Если прямо к нему примерять, то оперативную память надо большую. То есть если база будет на SSD, то всё и упрется в скорость SSD.

 

И ваша идея не нова. Несколько лет назад толи чехи, то ли поляки арендовали суперкомпьютер и гоняли его по моему пару недель. Нашли, восемь пустых кошельков. То есть в которых средства были, но давно нет. Пустых кошельков гораздо больше чем с наличными. 

 

Идея конечно проста до безобразия. Раз невозможно подобрать ключ к конкретному кошельку, то почему бы не подбирать сразу ко всем. Вероятность в этом случае несколько выше. Только хилая майнинговая ферма с ничтожной оперативной памятью для этого не годится. 

Ссылка на комментарий
Поделиться на другие сайты

В 17.11.2023 в 19:40, Lenchik сказал:

@gold2000 У меня нет реализации secp256k1 на CUDA, поэтому это померять не могу. Но secp256k1 значительно более сложный алгоритм чем sha256( + ripemd160, поэтому быстро не получится. Но тут дело даже не в этом. Блокчейн приближается к одному терабайту. Если прямо к нему примерять, то оперативную память надо большую. То есть если база будет на SSD, то всё и упрется в скорость SSD.

 

И ваша идея не нова. Несколько лет назад толи чехи, то ли поляки арендовали суперкомпьютер и гоняли его по моему пару недель. Нашли, восемь пустых кошельков. То есть в которых средства были, но давно нет. Пустых кошельков гораздо больше чем с наличными. 

 

Идея конечно проста до безобразия. Раз невозможно подобрать ключ к конкретному кошельку, то почему бы не подбирать сразу ко всем. Вероятность в этом случае несколько выше. Только хилая майнинговая ферма с ничтожной оперативной памятью для этого не годится. 

 

Да понятно что перебрать все ключи нереально даже на данный момент, тут больше случайно попасть блоком своей вычислительной мощностью реально.

А почему 1 терабайт памяти? все адреса с положительным балансом скачиваем в таблицу, 25 байт  * (сейчас примерно 48 000 000 адресов) =~ 1.1 ГБ памяти, если я всё правильно посчитал, заливаем в память видеокарты и сравниваем.

 

 

image.thumb.png.1ddcbc735c9741eb23e8cf9f58013c2d.png

 

 

Где используется secp256k1  ? 

 

 

Изменено пользователем gold2000
Ссылка на комментарий
Поделиться на другие сайты

1 час назад, gold2000 сказал:


А почему 1 терабайт памяти? все адреса с положительным балансом скачиваем в таблицу, 25 байт  * (сейчас примерно 48 000 000 адресов) =~ 1.1 ГБ памяти, если я всё правильно посчитал, заливаем в память видеокарты и сравниваем.

 

Где используется secp256k1  ? 

 

 

 Ну да. Я имел виду размер всего блокчейна. Вся нода в прошлом году была по моему 700 с чем то гигабайт. И если таблицу делать, то её еще индексировать надо. И всё равно скорость будет не очень. CUDA ядра будут конкурировать за доступ к памяти и не обеспечат высокой производительности, а кэш первого уровня у них очень маленький. У разных видеокарт разный, но зачастую всего 3 килобайта. Это же не центральный процессор. Доступ к памяти в видеокарте всегда 128 битный. Что бы чуть ускорить доступ, нужно выравнивание записей по 128 бит сделать. 

 

secp256k1 это так называется библиотечный модуль эллиптической кривой. Тот алгоритм что получает из приватного ключа открытый. Реализация CUDA на GitHub есть, но она не собирается ни под каким соусом, ни для Linux, ни для Windows. Наверное какие то математические библиотеки CUDA надо подключить.  

Есть так называемы пазлы Сатоши. Искусственные задания. Простой расчет говорит что затраты на ферму и электроэнергию будут близки к призу который получишь. Поэтому никто и не подбирает ключи. Но если разогнать алгоритм раз в десять, то эта затея становится рентабельной. Тем более там точно есть криптовалюта и само задание не фейк. То есть при полном переборе результат гарантирован. 

 

Дерзайте.

Ссылка на комментарий
Поделиться на другие сайты

  • 1 месяц спустя...

Некоторое время по сети бродит фото ключа. 

 

1520214941277.thumb.jpg.351f1655888200a175298c38a8f53c8d.jpg

 

2023-12-2201_41.35_766d073e.thumb.jpg.fbc103be6984bcdab44ea6c1ff3f0365.jpg

 

На ютюбе даже ролик есть как некий хакер искал этот ключ пол года. Меня попросили программу написать для подбора этого ключа. Программу я написал, только не смейтесь, но она на одной RTX2070 и I7 -3770K перебирает ключи со скоростью 6.5 секстиллиона в секунду. На альтернативных процессорах будет значительно меньше. Я о AMD (рожденный ползать, летать не может). У ключа утрачена часть хэша, поэтому видеокарта выдает очень много годных ключей и нагрузка на центральный процессор большая. 

 

Запустил программу, почесал репу и нарыл информацию по QR кодам. Оказывается там применятся избыточное кодирование, код Рида-Соломона. Объем корректирующей информации вдвое больше основных данных. Почитал теорию, напечатал шаблон QR, внес со всех доступных фото туда данные. Вручную, за два дня восстановил ключ из неполного QR. Ключ и адрес от разных комплектов. Фото фейк. Там и без глубоких исследований видно что адрес и приватный ключ напечатаны несколько разным шрифтом. Особенно хорошо это заметно на буквах W и M. 

 

Ну и результаты моих усилий:

 

IMG_20231224_163054_928.thumb.jpg.5c06f8d19006f1f6401a5cd34d3dfa1d.jpg

 

Я типа сфотографировал примерно в таком же стиле как имеющиеся в сети фотографии.

Что бы не набирать с фото, вот этот восстановленный ключ в текстовом виде:

 

L1FA6J9NThRTAeX5UYeWKmebM87MussFQHgh2sC4wcyJ56n65yHd
1HwGrdVYeciQbpuejvYyWe1m5kbShBvM6V

 

Адрес у него совершенно другой. Адрес не только рабочий, но им даже пользовались в 2018 году. Тогда там были монеты.

 

Программу как причешу немного, выложу. А то еще не поверите что возможно перебирать ключи с такой скоростью.

 

Изменено пользователем Lenchik
Ссылка на комментарий
Поделиться на другие сайты

@Lenchik , я перенесу этот топик в Общий раздел

 

Вообще нет догадок, почему он был в Клинике. Может, потому что улыбатор автор ?

Изменено пользователем Helber
Ссылка на комментарий
Поделиться на другие сайты

Идею использовать QR подсказал мне ulex2006, что позволило сократить время перебора до ноля. Но программа для поиска написана.

 

Работает быстро RTX2070 + i7-3770K:

 

2023-12-26220046.thumb.png.083020302658458c4b8484614650d60f.png

 

Интересующиеся этой темой люди могут попробовать её работу. Программа не имеет цифровой подписи Майкрософт, по этой причине может появиться предупреждения о том, что она может нанести вред компьютеру. Никакого вируса в ней нет. 

Программа ищет по шаблону 

0000000000000000000000000000000000XXXXXXXXXX00000XXX

Где X те символы она перебирает. По другому не умеет, она для этого ключа написана.

 

Алфавит base58

123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz

От 1 до z. В десятичном виде было бы от 0 до 57. Минимальный знак 1. Поэтому я его и вписываю на недостающие места, а не потому, что он кому-то приснился.

Счетчик работает без затей, в плюс. Справа младшие разряды, слева старшие.

 

Для примера берем ключ:

KxUAWf8fsqic3j17e4FgXJCtVqwyMDjoVrwTSsABcd55Aici2KBQ

12BnFZwvThDrurDVHHNgu1j8FkMFem7KQg

Его адрес вписываем в качестве аргумента в Start.bat

Ключ изменяем согласно шаблона.

 

KxUAWf8fsqic3j17e4FgXJCtVqwyMDjoVrwTSsABcd55Aici2KBQ
0000000000000000000000000000000000XXXXXXXXXX00000XXX
KxUAWf8fsqic3j17e4FgXJCtVqwyMDjoVrwTS1111111Aici2111 - найдет очень быстро
KxUAWf8fsqic3j17e4FgXJCtVqwyMDjoVrwT11111111Aici2111 - 1 час полный перебор. Если найдет, то быстрее
KxUAWf8fsqic3j17e4FgXJCtVqwyMDjoVrw111111111Aici2111 - два с половиной дня
KxUAWf8fsqic3j17e4FgXJCtVqwyMDjoVr1111111111Aici2111 - на моем железе примерно пять месяцев полный перебор

 

Ключ вписываем в файл Key.txt и запускаем через Start.bat В файле Key.txt перед ключом и после него не должно быть ничего, пробелов, перевода строки. Обработчика, выбрасывающего непечатаемые символы в программе нет, и она выдаст сообщение о неправильной длине ключа.

 

PriKeyWIFC_CUDA_10_3.zip

 

 

Ссылка на комментарий
Поделиться на другие сайты

Дополню еще немного. Перед тем как выкладывать программу сюда я сделал обработку полученных данных от видеокарты в четыре потока CPU. То есть в теории оно и на AMD должно как-то работать. До этого CPU работал в один поток, а у AMD производительность в один поток вообще никакая, он берет только количеством ядер. 

Ссылка на комментарий
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
×
×
  • Создать...