Автор: lisa99
Источник https://xss.pro
Основные цели статьи: систематизировать информацию по seed-фразам, показать новичкам (в этой теме) какими могут быть нестандартные подходы к получению балансов, поднять вопрос о качестве отработки данных.
Задачи: рассмотреть способы получения дополнительных сид-фраз, ключей, балансов из существующих мнемоник на примерах, а также некоторые вопросы классификации и валидации сид-фраз.
Все скриншоты - с личных устройств, все установленные кошельки сгенерированы и после публикации статьи будут удалены (то есть сид-фразы, прив.кеи, адреса останутся без балансов).
Все утверждения о кошельках проверены непосредственно (десятки скачаны). Почти все рисунки (схемы) оригинальные.
Сервисы, упоминаемые в статье, перечислены в конце настоящего текста.
Новички часто задаются вопросом - можно ли заработать на паблике? И хотя все написанное ниже не о/для публичных данных, можно будет сделать выводы в конце статьи.
Факты. База в 6 млн сид-фраз из паблика (форумы), скинутая в здесь в ЛС юзеру («я простой отраб») принесла 300 баксов - с его слов, за счет мощного софта.
Ну и второй пример , что может дать поиск из паблика (да, с ловушками, мусором, мультисигами и проч., проч.)
Рис.1 Найденная из паблика сид-фраза в кошельке Guarda
Статья задумывалась как для новичков, так и для тех, кто в целом в теме, но непрофессионал в отработке, при этом готов заняться кодингом лично на себя и возможно отдать остатки на отработку в сервисы.
Надеюсь, что написанное поможет расширить кругозор, нарастить балансы, осознать что ожидать от баз, отданных на проверку и возможно, потестировать сервисы.
2. BIP-39 и понятие валидности seed-фраз
Большая часть добытых фраз состоит из 12 слов, реже 24, и намного реже из 15 слов в формате BIP-39, самом популярном на сегодняшний день.
Заглянем в софт для поиска сид-фраз GitHub - xssis/seed-parser _github.com/xssis/seed-parser:
б) большинство кошельков действительно используют BIP-39,
в) фильтр в этом формате избегает выдавать тонны мусора из случайного набора слов, чем порой грешит различный софт файлграбберов.
Намного меньше конкуренция и больше шансов найти приятные суммы, если работать с невалидными фразами, которые не очень интересны тем, кто сидит на потоке прибылей от EVM-сетей и отбрасывает фразы, проверка балансов которых затруднена.
Рис.2 Распространяемые сид-фразы. Цель заработка — поймать нубов на оплате за газ (автовывод)
Общеизвестным контрпримером является Электрум.
- проверка покажет невалидность в отношении BIP-39. Другие рассмотрим ниже (п.4.).
До сих пор используются варианты brainwallet-а в том или ином формате, где исходной фразой может быть что угодно, а не слова из строго утвержденного списка.
Рис.4 Сид-фраза из произвольных слов
"QWERTY ..." стало рабочей сид-фразой современного кошелька для популярного блокчейна 2 уровня, то есть адреса, привязанные к ней в блокчейнах (BTC, ETH, ATOM, etc) сгенерированы и представлены в интерфейсе.
А вот еще пример.
Рис.5 Мнемоника даже из 26 слов, и даже из 29
- энтропия (в криптографии): очень большое случайное число,
- мнемоническая фраза: формируется в соответствии с энтропией из зафиксированного списка слов.
- PBKDF2: стандартная криптографическая функция, аргументом которой служит строка мнемоники (в том числе).
- стрелки означают однонаправленность: мнемоника связана с энтропией двунаправленно, а вот из хеша в 512 бит(seed в шестнадцатеричной форме) получить мнемонику в формате слов уже невозможно.
Рис.6
3. Приватный ключ у большинства монет вычисляется по-разному, хотя совпадения не исключены (отдельная тема).
4. Зная только приватный ключ кошелька (например) для btc, ни мнемонику, ни приватный ключ solana, сгенерированные в том же кошельке, что и btc, из этого ключа не получить. Барьерами стоят криптографические необратимые хеш-функции. Хотя и есть редкие исключения (о них ниже в п.5-6). Поэтому приватные ключи конкретной криптовалюты всегда менее интересны, чем сид-фразы кошельков.
5. Сколько бы слов не содержала мнемоника (12, 15 или 24), master seed используемый для приватника всегда 512 бит. Одна из причин применения хеш-функции: сериализация.
Поэтому в скриптах, использующих seed (из seed-фразы) смело можно для экспериментов брать любое число слов из любого кошелька: 12 или 24 — неважно.
Все изложенное оживает в "калькуляторе" BIP-39 (https://iancoleman.io/bip39/#english) где можно играться с параметрами всего - энтропии, фразы, приватных ключей (BASE58), деривации и тд.[/JUSTIFY]
Калькулятор: https://iancoleman.io/bip39/#english
4.2.Мнемоника, формируемая отдельными кошельками/блокчейнами (не BIP39)
1.Electrum v2. BTC (+форки LTC,DASH), используются 2048 слов BIP-39, генерация по своему алгоритму, с BIP-39 не совпадает, но может импортировать фразы BIP-39Генерирует сид из 12 слов, импортирует старые версии из 24 слов
2. Monero
Legacy (25 слов), MyMonero (13 слов), Polyseed (16 слов)
Feather использует Polyseed для сид-фраз из 16 слов. Версии до 2.0.0 использовали (устаревшую) библиотеку monero-seed для мнемоники из 14 слов.
https://github.com/monero-project/monero/blob/master/src/mnemonics/english_old.h
Рис.8 Связь между сид-фразами одного набора ключей и адреса Монеро.
а. Algorand Secure Backup - 12 words BIP-39 + файл
б. Использование двухфакторной авторизации 2FA: PIN-CODE 12*4 букв +e-mail verification. Например, кошелек Muun (btc)
Намечается некая тенденция привязки 2фа и бэкапов к кошелькам => возрастает роль стилеров/логов
5.Мультичейн-кошельки с "мульти-сидами". Algorand & Monero
Постановка текущей задачи: решение проблемы вычисления приватных ключей (сид-фраз) блокчейнов Algorand и Monero в мультичейновых кошельках.Вводные.
0. Во всех кошельках ниже используется сид-фраза: skin spot olympic dice column permit diagram ugly traffic gentle trend angle
1.Пусть мы имеем файлы со списком сид-фраз, которые нужно проверить. Очень вероятно, что они относятся к мнемоникам, сгенерированными популярными мультичейновыми кошельками — Trust Wallet, Exodus, Guarda, Atomic и др. (млн юзеров).
Рис.9 Пример сид-фразы из блокчейна Алгоранд
Более того, разные кошельки конвертируют свои 12/24-словные мнемоники в разные адреса/приватники/мнемоники этих двух блокчейнов (нередко и для других криптовалют).
Результат работы программы (python):
Здесь 4 варианта мнемоник. И наверняка найдется и 5й, и 6й. Почему так происходит?
Приватные ключи разные, (см. формулу под схемой). Так как в каждом блокчейне вычисляются из хеш-функции, параметрами которой служат Key = chaincode (первый раз — правая половина master-seed), Data =паблик ключ, вычисляемый из приватного, и 32-битное число (индекс), включающее в себя как глубину в иерархии, так и индекс криптовалюты m/purpose'/coin_type'/account'/change/
Рис.12 Алгоранд
Как и во всех кошельках, по-прежнему та же мнемоника: skin spot olympic dice column permit diagram ugly traffic gentle trend angle и ниже ее seed (hex).
Легко заметить, что приватный ключ Algorand — левая половина seed. То есть Master Priv_key всего нашего кошелька. И 25 слов — соответствующая приватному ключу мнемоника в Алгоранде. Да, в отличие от BIP-39, здесь мнемоника получается из приватного ключа. Однако, верно и обратное. Вот так
Рис.13 Сид-фраза либо генерируется из энтропии, либо получается из приватного ключа
А что это дает? Навскидку - приходит идея, что можно пойти «обратным ходом», снизу вверх. И первая (наивная) мысль — если заполучить 25 слов Алгоранда (из официального кошелька, из облака, логов и проч.), то можно же добраться и до мастер-сид (снизу-вверх) всего кошелька, со всеми его балансами(!). Но, увы, нет... Так как 32 символа из 64 мало, и без правой половины (chaincode) сделать ничего нельзя не имея расширенного публичного ключа.
Итак, речь о кошельке Atomic. Заходим в его настройки, смотрим приватные ключи всех coins и, удивляемся. Результат в схеме (подчеркну, не полный). Из нашего сида без какого-то бы ни было хеширования Атомик раздает приватный ключ встроенным библиотекам блокчейнов (как минимум, трем), напрямую.
Рис.14 Схема зависимостей от одного priv_key
Рис. 15-1 Интерфейс веб-кошелька Polkadot, c импортированным приватным ключом

В интерфейсе Атомика в разделе приватных ключей пользователь видит сид кошелька — 64 символа ( hex) у токена алгоранда, т. е. мастер-сид кошелька целиком. Но не видит мнемонику алгоранда из 25 слов, как в Exodus (рис.9)
С такой цифирью холдер далеко не уйдет, если захочет мигрировать, и прежде всего в официальный кошелек Алгоранда, ибо он (Pera Wallet) не поддерживает импорт приватных ключей.
Тогда куда? Например, Трастваллет откажет в импорте, пока не удалишь половину (предполагаем, что холдер= обыватель, который не захочет разбираться в длине ключа).
Перебрав разные кошельки, нашелся красивый, рабочий путь — импорт 64-символьного приватника в Guarda (ну очень дружелюбного). Так формируется цепочка импорта, если моделировать возможные действия холдера:
вероятность не самая маленькая, учитывая, что пользователей каждого из трех упомянутых кошельков — миллионы.
А что при таком раскладе в Guarda? Тоже интересненько. В отношении Guarda получаем схему:
Рис.16 Кошелек Guarda, импортированные аккаунты
Рис.17 Токен Алгоранда в кошельке Guarda
И да, кошельки Atomic и Guarda могут быть разделены в пространстве и времени (ноут, мобильник) — и не пострадать от стилера синхронно.
Вывод. Если в открытом Guarda находится два аккаунта Алгоранд (в логах это видно), есть смысл проверить тот, что импортирован (#2,#3,...) на «Атомик».
В сид-фразах это выглядит так:
Рис.18. Пример связи сид-фраз Алгоранда и Монеро
7. Расширение базы за счет устаревших сид-фраз
Рассмотрим на примере старых фраз Монеро и Электрума.
Устаревшие ныне версии Монеро пользовались набором слов для сид-фраз от Электрума — также устаревшей (для Электрума) версии. Соответственно, старая сид-фраза из 24 слов, невалидная для BIP-39, может относится либо к Электруму (поддерживает старый формат), либо к Монеро -либо одновременно к обоим. Старые сид-фразы Монеро также поддерживаются кошельками Монеро.На практике, сид-фраза монеро из 25 слов может быть конвертирована в старый формат 24 слова от Электрума, которые в свою очередь могут использоваться в Электруме и его клонах и по сей день (он их поддерживает).
Верно и обратное (электрум - монеро).
8. Дополнения сид-фраз в виде иерархических списков (BIP-85)
Одно из предложений по улучшению блокчейна - BIP-85 (https://github.com/bitcoin/bips/blob/master/bip-0085.mediawiki) развивает идею генерации индексированных дочерних сид-фраз из любой исходной. По некоторым правилам
Пусть master seed = "skin spot olympic dice column permit diagram ugly traffic gentle trend angle"
Тогда, если выбран параметр длина = 12 слов (а можно еще 18 и 24), язык = англ., то
seed(0) = "total adapt must job economy target bamboo force park guess pulp layer"
seed(1) = "ecology blur visit pen foam mention wrap rival crazy mango mouse similar"
........................
seed(1000) = "churn worry utility boil end maple trip flag post guess raven enrich"
.................... и тд
Все отсюда https://iancoleman.io/bip39/#english, c выставленной опцией BIP85. Логика такого изобретения оправдывается распределением по функционалу сид-фраз и контролем за всеми дочерними мнемониками (рис).
Рис.20 Резоны использовать BIP-85
Иерархии нет, есть детерминированность, что означает восстановление дочерней фразы по индексу. И всего лишь. Ни мастер-сид, ни соседние фразы получить нельзя никак. Кошельков, которые бы поддерживали идею очень мало, но они есть. Как и есть энтузиасты BIP-85, судя по тредам на reddit и др. площадках .
Еще одно преимущество - в силу экзотичности отработчики на BIP-85 мнемонику обычно не проверяют. Вы будете в числе первых.
С "имплементацией" BIP85 в питон возникают проблемы, т.к. приходится опираться на чужие либы, подторможенные и проч. (решено)
9. ИТОГИ
Итак, у нас есть сид-фразы, из которых мы хотим извлечь как можно больше полезной информации. Что такое "стандартная проверка балансов"? Могу только предположить (я не знаю), что у профессиональных отработчиков софт должен опираться на зависимости, вроде таких:
где KDF - функция деривации ключей, применяемая для конкретного блокчейна, включающая в себя и путь деривации. То есть, скорее всего, у профессионалов речь идет уже о БД .
Как изъясняется товарищ с эксплойта, кодер, подаривший полупаблик с жирком ( за что отдельная благодарность) "я делаю просто: хуяк-хуяк, подставил сид в траст валлет, он все и показывает - и балансы токенов, и “стейкинг". Увы, метод работает не на 100%. Чтоб далеко (в Polkadot) не ходить, достаточно эфира - баланс с кошелька Атомика Траст Валлет не покажет (разный путь).
Что касается наших целей - вычислить дополнительные сид-фразы, связанные с полученными, то результат сведен в схему. В подзаголовках- примеры.
Рис.21 — Общая схема получения дополнительных сид-фраз
Некоторые пояснения к новым блокам схемы, кратенько
1.Немного о Tron. Можно представить ситуацию, когда формальная, простая проверка через API Trona покажет что на аккаунте нашей мнемоники — 0 (овнер), а на подчиненном кошельке (тоже сид у нас) — крипта есть, но ограничена каким-то овнером. Не знаю при проверке trx, все сопоставляют сид-фразы по зависимости аккаунтов или нет.
2.Пример сайдчейна NEO X: адрес EVM, но debank не увидит в принципе (токен GAS) и со стороны NEO N3 тоже проблемы чекинга.
3. 12+1=13
Видела советы как сгенерировать сид-фразу Монеро из BIP-39 по-своему. Записывайте рецепт (из социалки). Берем 12 слов (можно и 24) и начинаем в «калькуляторе» Монеро подставлять по очереди в качестве 13го (25-го) каждое из слов мнемоники, пока не получим валидную в Монеро сид-фразу (последнее контрольное слово всегда совпадает с каким-то из предыдущих слов мнемоники). Затем импортируем ее в MyMonero и радуемся. Впрочем, есть и автоматизация — попадались скрипты, написанные на эту тему.
Зачем так причудливо? Могу предположить, что 12 слов уже выбито..отчеканено, распечатано и попрятано по сейфам. А одно слово к 12 уже можно как-то и упомнить . Чудаков в целом вроде немного. Но не так чтобы и мало. Для 12/24 слов с интересным балансом наверное есть смысл сгенерировать таким способом мнемонику из 13/25 слов и может быть пойти по цепочке дальше (рис.19).
Отмечу, что сид-фраза созданная вот так, «вручную», отличается от сгенерированной любыми другими распространенными методами (правила монеро из энтропии, криптокошельки).
То есть я показываю способ как из любой сид-фразы получить особым образом сид-фразу Монеро (12+1, 24+1) и точно знаю, что кто-то (небольшой %) этим способом пользовался.
Общие выводы
Ну и также можно проверить эффективность сервисов на редких монетах (старых, блокчейнах и тд)
3. Для только начинающих - если хочется потренироваться, скачивайте архивы (не мои, из паблика):
- "супер-кошельки" - из тг канала (забыла какого, аккуратней: автовывод)
- файл с сид-фразами (как бы с транзакциями) - тг,
- этот же файл отчеканный ботом в тг ("бесплатный сервис", бгг... аккуратней!)
- архив с bip-85.
4. В приведенных примерах и схемах видно как из тех сид-фраз, что есть в наличии можно различными способами получить десятки новых. В сумме- новые миллионы фраз.
Конечно, нестандартные методы дадут в итоге намного меньшие суммы, чем распространенные. И вопрос рентабельности с учетом траты времени также актуален.
Но по мере возможности можно расширить чекинг существующих баз. А также углубиться в анализ в отдельных случаях.
Онлайн инструменты
Часть II. Софт (чистка, уникализация и сортировка разными методами, бенчмарки, формирование антипаблика, генерация сид-фраз Algorand, фраз BIP-85 и проверка баланса оффлайн).
Часть III. Нестандартные решения (brainwallet, примеры находок кошельков, нетипичные методы генерация сид-фраз, идеи скам- и не-скам сервисов, задачки и загадки с балансами).
Если материал окажется вам полезным: 0xE8D5802d6285B1Ce9afcc0bF7646C041CDd5219c
За кадром. Рассмотрю любые коммерческие предложения по теме статьи.
Источник https://xss.pro
1. Цели и задачи
Основные цели статьи: систематизировать информацию по seed-фразам, показать новичкам (в этой теме) какими могут быть нестандартные подходы к получению балансов, поднять вопрос о качестве отработки данных.
Задачи: рассмотреть способы получения дополнительных сид-фраз, ключей, балансов из существующих мнемоник на примерах, а также некоторые вопросы классификации и валидации сид-фраз.
Все скриншоты - с личных устройств, все установленные кошельки сгенерированы и после публикации статьи будут удалены (то есть сид-фразы, прив.кеи, адреса останутся без балансов).
Все утверждения о кошельках проверены непосредственно (десятки скачаны). Почти все рисунки (схемы) оригинальные.
Сервисы, упоминаемые в статье, перечислены в конце настоящего текста.
Новички часто задаются вопросом - можно ли заработать на паблике? И хотя все написанное ниже не о/для публичных данных, можно будет сделать выводы в конце статьи.
Факты. База в 6 млн сид-фраз из паблика (форумы), скинутая в здесь в ЛС юзеру («я простой отраб») принесла 300 баксов - с его слов, за счет мощного софта.
Ну и второй пример , что может дать поиск из паблика (да, с ловушками, мусором, мультисигами и проч., проч.)
Рис.1 Найденная из паблика сид-фраза в кошельке Guarda
Статья задумывалась как для новичков, так и для тех, кто в целом в теме, но непрофессионал в отработке, при этом готов заняться кодингом лично на себя и возможно отдать остатки на отработку в сервисы.
Надеюсь, что написанное поможет расширить кругозор, нарастить балансы, осознать что ожидать от баз, отданных на проверку и возможно, потестировать сервисы.
2. BIP-39 и понятие валидности seed-фраз
Большая часть добытых фраз состоит из 12 слов, реже 24, и намного реже из 15 слов в формате BIP-39, самом популярном на сегодняшний день.
Заглянем в софт для поиска сид-фраз GitHub - xssis/seed-parser _github.com/xssis/seed-parser:
Программа производит рекурсивный поиск парольных фраз от криптокошельков внутри файлов, проверяет их валидность (т.е. выдает только те фразы которые удовлетворяют стандарту bip39) и выводит парольную фразу и путь к файлу в котором она была найдена. Валидация фраз на соттветствие стандарту bip39 производится с помощью библиотеки из репозитория аппаратного криптокошелька trezor
Вполне себе типовое решение. Сид-фразы у автора валидны только если соответствуют BIP-39. Понятно, почему:
а) проще программный код валидации, в паблике представлены множество вариантов реализацииб) большинство кошельков действительно используют BIP-39,
в) фильтр в этом формате избегает выдавать тонны мусора из случайного набора слов, чем порой грешит различный софт файлграбберов.
Намного меньше конкуренция и больше шансов найти приятные суммы, если работать с невалидными фразами, которые не очень интересны тем, кто сидит на потоке прибылей от EVM-сетей и отбрасывает фразы, проверка балансов которых затруднена.
Однако, кто-то может возразить, что даже непосредственная отработка отработанного (экспроприированного) в самых разных направлениях намного полезней и даже привести примеры из паблика вроде этих - под спойлером: полумертвые токены, ханипоты, призрачный стейкинг, мифические и не очень эйрдропы и проч., проч. Может быть и так.
Рис.2 Распространяемые сид-фразы. Цель заработка — поймать нубов на оплате за газ (автовывод)
Во вложении - файлик с этими кошельками. Внимание — много левой инфы, заодно и примеры как debank.com может выдавать недостоверные балансы.
Исходим из того, что абсолютное большинство фраз действительно относятся к BIP-39. Однако, если фраза не из BIP-39, то еще не значит, что перед нами мусор. Не все кошельки (и блокчейны) поддерживают BIP-39. Общеизвестным контрпримером является Электрум.
"blue spider alarm beyond isolate rent ordinary service want fragile invite pumpkin"
- проверка покажет невалидность в отношении BIP-39. Другие рассмотрим ниже (п.4.).
До сих пор используются варианты brainwallet-а в том или ином формате, где исходной фразой может быть что угодно, а не слова из строго утвержденного списка.
Рис.4 Сид-фраза из произвольных слов
"QWERTY ..." стало рабочей сид-фразой современного кошелька для популярного блокчейна 2 уровня, то есть адреса, привязанные к ней в блокчейнах (BTC, ETH, ATOM, etc) сгенерированы и представлены в интерфейсе.
А вот еще пример.
Рис.5 Мнемоника даже из 26 слов, и даже из 29
Что это значит на практике? Если чекер "стандартный", то все приведенные мнемоники он сочтет невалидными, и отбросит (как в описании выше).
Выводы. (1) невалидные фразы лучше отложитьв отдельную папочку для последующей обработки; (2) Невалидные в BIP-39 фразы, но похожие на мнемонику, нуждаются в своей классификации (да, откровенного мусора тоже хватает, который просто удаляется).
3. Под капотом криптокошелька: простая мнемоника и кривые вычисления
Немного самой базовой информации, максимально сжато, о которой нельзя не написать- для дальнейшего и потому что на форумах поднимались соответствующие вопросы, которые хочется закрыть в начале статьи по-простому.
Самый распространенный протокол BIP-39 работает так (тоже упрощенно):Выводы. (1) невалидные фразы лучше отложитьв отдельную папочку для последующей обработки; (2) Невалидные в BIP-39 фразы, но похожие на мнемонику, нуждаются в своей классификации (да, откровенного мусора тоже хватает, который просто удаляется).
3. Под капотом криптокошелька: простая мнемоника и кривые вычисления
Немного самой базовой информации, максимально сжато, о которой нельзя не написать- для дальнейшего и потому что на форумах поднимались соответствующие вопросы, которые хочется закрыть в начале статьи по-простому.
- энтропия (в криптографии): очень большое случайное число,
- мнемоническая фраза: формируется в соответствии с энтропией из зафиксированного списка слов.
- PBKDF2: стандартная криптографическая функция, аргументом которой служит строка мнемоники (в том числе).
- стрелки означают однонаправленность: мнемоника связана с энтропией двунаправленно, а вот из хеша в 512 бит(seed в шестнадцатеричной форме) получить мнемонику в формате слов уже невозможно.
Рис.6
Таким образом, задача BIP-39 выдать пользователю случайную детерминированную мнемоническую фразу на определенном языке, сохранить ее локально, и сформировать из нее master-seed. И все.
"Продолжением" BIP-39, двигаясь сверху-вниз, служит система BIP-32, и далее BIP-44 (нет на схеме) для последующего вычисления приватного, публичного ключей и адресов с учетом деривации.Простые выводы из схемы:
1. Спор на форуме о мнемонике и приватном ключе (что из чего происходит и что важнее) решается (в BIP-39) однозначно: вначале сид-фраза, потом приватный ключ из нее, и никак не иначе.
2. Вопросы (в частной беседе) о восстановлении сид-фразы кошельком из приват-кея (например, для эфира) также решаются однозначно: невозможно.1. Спор на форуме о мнемонике и приватном ключе (что из чего происходит и что важнее) решается (в BIP-39) однозначно: вначале сид-фраза, потом приватный ключ из нее, и никак не иначе.
3. Приватный ключ у большинства монет вычисляется по-разному, хотя совпадения не исключены (отдельная тема).
4. Зная только приватный ключ кошелька (например) для btc, ни мнемонику, ни приватный ключ solana, сгенерированные в том же кошельке, что и btc, из этого ключа не получить. Барьерами стоят криптографические необратимые хеш-функции. Хотя и есть редкие исключения (о них ниже в п.5-6). Поэтому приватные ключи конкретной криптовалюты всегда менее интересны, чем сид-фразы кошельков.
5. Сколько бы слов не содержала мнемоника (12, 15 или 24), master seed используемый для приватника всегда 512 бит. Одна из причин применения хеш-функции: сериализация.
Поэтому в скриптах, использующих seed (из seed-фразы) смело можно для экспериментов брать любое число слов из любого кошелька: 12 или 24 — неважно.
Однако. Кто-то возразит, что работает с файлами приватников пакетно, без всяких кошельков и мнемоник. Да, есть такое. И особенно если речь о генерированных приватниках и поисках "мозговых кошельков" с балансами на старых адресах.
Все изложенное оживает в "калькуляторе" BIP-39 (https://iancoleman.io/bip39/#english) где можно играться с параметрами всего - энтропии, фразы, приватных ключей (BASE58), деривации и тд.[/JUSTIFY]
4. Различные типы сид-фраз
4. Различные типы сид-фраз
4.1.Протоколы (алгоритмы, технологии) мнемоники
Детально проработаны, имеют свои списки слов, используют отличные от других хеш-функции. Отсортированы по степени популярностиКалькулятор: https://iancoleman.io/bip39/#english
2. Electrum (ver < 2.0) https://github.com/spesmilo/electrum/tree/master/electrum/wordlist
Electrum1_wordlist https://github.com/spesmilo/electrum/blob/master/electrum/old_mnemonic.py3. Polyseed https://github.com/tevador/polyseed
3. SLIP-39 https://github.com/satoshilabs/slips/blob/master/slip-0039.md
https://iancoleman.io/slip39/3. SLIP-39 https://github.com/satoshilabs/slips/blob/master/slip-0039.md
5. Aezeed https://github.com/bitcoinjs/aezeed
Калькулятор: https://guggero.github.io/cryptography-toolkit/#!/aezeedТаблица 1.
| Наименование | Блокчейны | Всего слов | Состав слов | seed-фразы, кол-во слов | Кошельки |
| BIP-39 | Большинство | 2048 | 12,15, 24 | Большинство | |
| Electrum v1 | BTC | 1626 | свои | 13 | Electrum |
| Polyseed | Monero | 2048 | BIP-39 | 16,14 old | Feather, Cake Wallet |
| SLIP-39 | Любые | 1024 | BIP-39 | 20,23,27,30,33 | |
| Aezeed | Lightning Network | 2048 | BIP-39 | 24 | BlueWallet |
4.2.Мнемоника, формируемая отдельными кошельками/блокчейнами (не BIP39)
1.Electrum v2. BTC (+форки LTC,DASH), используются 2048 слов BIP-39, генерация по своему алгоритму, с BIP-39 не совпадает, но может импортировать фразы BIP-39
2. Monero
Legacy (25 слов), MyMonero (13 слов), Polyseed (16 слов)
Feather использует Polyseed для сид-фраз из 16 слов. Версии до 2.0.0 использовали (устаревшую) библиотеку monero-seed для мнемоники из 14 слов.
https://github.com/monero-project/monero/blob/master/src/mnemonics/english_old.h
Рис.8 Связь между сид-фразами одного набора ключей и адреса Монеро.
"Калькуляторы":
3.Algorand https://developer.algorand.org/docs/get-details/accounts/#a-note-about-term-usage-in-these-docs (25 слов из BIP-39)
4. Экзотические малопопулярные кошельки и небольшие блокчейны. Например, Zana (рис. 5).4.3.Разное
1.Использование произвольных слов/текста в качестве сид-фраз. Современные brainwallet'ы с разными вариантами хеширования (криптографии)
2. Бэкапы и 2FA1.Использование произвольных слов/текста в качестве сид-фраз. Современные brainwallet'ы с разными вариантами хеширования (криптографии)
а. Algorand Secure Backup - 12 words BIP-39 + файл
б. Использование двухфакторной авторизации 2FA: PIN-CODE 12*4 букв +e-mail verification. Например, кошелек Muun (btc)
Намечается некая тенденция привязки 2фа и бэкапов к кошелькам => возрастает роль стилеров/логов
5.Мультичейн-кошельки с "мульти-сидами". Algorand & Monero
Постановка текущей задачи: решение проблемы вычисления приватных ключей (сид-фраз) блокчейнов Algorand и Monero в мультичейновых кошельках.
0. Во всех кошельках ниже используется сид-фраза: skin spot olympic dice column permit diagram ugly traffic gentle trend angle
1.Пусть мы имеем файлы со списком сид-фраз, которые нужно проверить. Очень вероятно, что они относятся к мнемоникам, сгенерированными популярными мультичейновыми кошельками — Trust Wallet, Exodus, Guarda, Atomic и др. (млн юзеров).
2. Кошельки (и блокчейны) Monero и Algorand не поддерживают ни формат сид-фраз (см.п.4.1-4.2), ни BIP-39, BIP-32, BIP44
Популярные криптокошельки показывают адреса, приватные ключи «нестандартных» блокчейнов, а некоторые кошельки генерируют и сид-фразы.
Популярные криптокошельки показывают адреса, приватные ключи «нестандартных» блокчейнов, а некоторые кошельки генерируют и сид-фразы.
Рис.9 Пример сид-фразы из блокчейна Алгоранд
Более того, разные кошельки конвертируют свои 12/24-словные мнемоники в разные адреса/приватники/мнемоники этих двух блокчейнов (нередко и для других криптовалют).
Результат работы программы (python):
Код:
BIP39 mnemonic: skin spot olympic dice column permit diagram ugly traffic gentle trend angle
Wallet:Exodus
Algorand private key: 7167c65cefaadb6e7777cd8b08c3f4c7297e4c1651c34d39537d84c1c86d82a5
Algorand mnemonic: until book purpose puzzle resemble sweet roof sniff badge around whip organ wisdom narrow master select claim erupt dirt blue muscle opinion clown absent nerve
Wallet:Atomic
Algorand private key: 67cb62c307b627a19937a3a8c7baf0c6aa9bfcf135a0f7cbcf61f29b13c6eb48
Algorand mnemonic: hollow menu ticket gather exhaust hair rubber permit vital twelve joke property dance left question parent leave dish couch sand cheese various elder able wing
Wallet:Coinomi, Trust Wallet
Algorand private key: 3080b44b9d1c3de2d9183c2af1893a8824eb33b5ef7c76ee3faf1cf929b915ef
Algorand mnemonic: alcohol spirit place six kick joy short despair census chief bubble embrace stone erupt laundry language solution zero fiscal mushroom fault hour judge abstract medal
Wallet:Leger
Algorand private key: b860fef09200fcae30745a33a0df433c530c78e78432d4776fd53763cc0bee5e
Algorand mnemonic: blade wet journey ankle way close pave foil all leader capable critic board task cheese crater whisper saddle turkey cricket occur load wash able parrot
Здесь 4 варианта мнемоник. И наверняка найдется и 5й, и 6й. Почему так происходит?
Во-первых, так проще разработчикам — использовать какой-то класс в коде, для KDF на базе криптографии конкретной эллиптической кривой (ECC) для всех случаев, где необязательно поддерживать классический BIP-44 (см.рис.6). Это истинно 100%.
А во-вторых (уже мое личное предположение), так проще привязать клиента( = =$). Что он сделает увидев нулевой баланс в другом кошельке, после переноса сид-фразы?...Останется где и был, от греха подальше - особенно если балансы раскинуты по многим токенам и отправлять их поштучно не хочется(%,$).
А во-вторых (уже мое личное предположение), так проще привязать клиента( = =$). Что он сделает увидев нулевой баланс в другом кошельке, после переноса сид-фразы?...Останется где и был, от греха подальше - особенно если балансы раскинуты по многим токенам и отправлять их поштучно не хочется(%,$).
Упрощенная схема мультикошелька
Рис.10 Уточнение схемы рис.6
Рис.10 Уточнение схемы рис.6
Приватные ключи разные, (см. формулу под схемой). Так как в каждом блокчейне вычисляются из хеш-функции, параметрами которой служат Key = chaincode (первый раз — правая половина master-seed), Data =паблик ключ, вычисляемый из приватного, и 32-битное число (индекс), включающее в себя как глубину в иерархии, так и индекс криптовалюты m/purpose'/coin_type'/account'/change/
Важно. Зная мастер-сид, 64 символа, программным образом можно получить приватники любой крипты кошелька, при этом не зная самой сид-фразы кошелька.
Вывод: библиотеке Алгоранда (открытой), включенной в состав мультичейнового кошелька, закрытый код кошелька может «скормить» в качестве приватного ключа любые 32 байта, полученные из общей исходной seed-фразы.
Практически все написанное об Алгоранде выше относится и к Monero (XMR) в мультивалютных кошельках.
Мне удалось подобрать кривые, получить код (питон) и потестировать его для нескольких популярных кошельков (Atomic, Coinomi, Exodus, Guarda) которые вычисляют из мнемоники BIP-39 соответствующую мнемонику (25 слов) Monero.
В контексте главной темы статьи — мы получили примеры, как из одной сид-фразы BIP39 на практике может быть получено не менее 8 рабочих вариантов мнемонических фраз не-BIP39, связанных с исходной, для двух блокчейнов.Вывод: библиотеке Алгоранда (открытой), включенной в состав мультичейнового кошелька, закрытый код кошелька может «скормить» в качестве приватного ключа любые 32 байта, полученные из общей исходной seed-фразы.
Практически все написанное об Алгоранде выше относится и к Monero (XMR) в мультивалютных кошельках.
Мне удалось подобрать кривые, получить код (питон) и потестировать его для нескольких популярных кошельков (Atomic, Coinomi, Exodus, Guarda) которые вычисляют из мнемоники BIP-39 соответствующую мнемонику (25 слов) Monero.
6. Получение новых сид-фраз путем анализа зависимостей
Давайте внимательно посмотрим на скриншот
Давайте внимательно посмотрим на скриншот
Рис.12 Алгоранд
Легко заметить, что приватный ключ Algorand — левая половина seed. То есть Master Priv_key всего нашего кошелька. И 25 слов — соответствующая приватному ключу мнемоника в Алгоранде. Да, в отличие от BIP-39, здесь мнемоника получается из приватного ключа. Однако, верно и обратное. Вот так
Рис.13 Сид-фраза либо генерируется из энтропии, либо получается из приватного ключа
Ниже простой код, с использованием официального SDK Algorand-a, иллюстрирующий эту схему .
Python:
import algosdk
import base64
from algosdk import encoding
from algosdk import mnemonic
import nacl
from nacl.signing import SigningKey
#генерируем случайное 32 байтное число (энтропия), считаем его приватным ключом
# Private key for producing digital signatures using the Ed25519 algorithm. - из подсказки-описания класса SigningKey
sk = SigningKey.generate()
print (bytes(sk).hex())
# вычисяем публичный ключ
vk = sk.verify_key
print (bytes(vk).hex())
# получаем адрес
addr = encoding.encode_address(vk.encode())
print (addr)
#формируем расширенный приватный ключ
print (bytes(sk.encode() + vk.encode()).hex())
private_key = base64.b64encode(sk.encode() + vk.encode()).decode()
print (private_key)
#Получаем мнемонику из приватного ключа
print (f"Mnemonika:{mnemonic.from_private_key(private_key)}")
А что это дает? Навскидку - приходит идея, что можно пойти «обратным ходом», снизу вверх. И первая (наивная) мысль — если заполучить 25 слов Алгоранда (из официального кошелька, из облака, логов и проч.), то можно же добраться и до мастер-сид (снизу-вверх) всего кошелька, со всеми его балансами(!). Но, увы, нет... Так как 32 символа из 64 мало, и без правой половины (chaincode) сделать ничего нельзя не имея расширенного публичного ключа.
Итак, речь о кошельке Atomic. Заходим в его настройки, смотрим приватные ключи всех coins и, удивляемся. Результат в схеме (подчеркну, не полный). Из нашего сида без какого-то бы ни было хеширования Атомик раздает приватный ключ встроенным библиотекам блокчейнов (как минимум, трем), напрямую.
Рис.14 Схема зависимостей от одного priv_key
То есть, если монеты этих трех криптовалют были изначально созданы в Атомике, то заполучив приватный ключ Polkadot (на стороне, не через сид мультикошелька)– можно получить приватники Алгоранда и Монеро из этого же кошелька, а заодно их сид-фразы (25 слов), не зная сид кошелька Атомик.
На практике это может выглядеть так:priv_keypolkadot → (seed XMR; seed ALGO)
Где приватный ключ polkadot, вообще говоря, — любой.
Отмечу, что импортировать приватный ключ из Атомика в кошелек polkadot.js.org легко. Сид-фразы мы при этом не получим (ECC sr25519, поле мнемоники останется пустым), но доступ ко всем богатствам парачейнов обеспечен (солидная система крипто-пирамид, кстати).
Рис. 15-1 Интерфейс веб-кошелька Polkadot, c импортированным приватным ключом
Первый адрес на скриншоте — тот что получен из нашей seed-фразы (отличается, ибо это уже хеш sr25519), а второй — из приватника Атомика, и здесь уже адреса с Атомиком совпадают.
При этом сид фразы (приватники, адреса) Монеро и Алгоранда могут показать баланс если они были созданы одновременно с Polkadot в Атомике. Так как заранее это, вообще говоря неизвестно, то получается что нужно проверять любой приватник polkadot на связь с Алгорандом и Монеро.
А вот с Монеро обратный ход так легко не получится. Скромная функция sc_reduce, частично преобразует исходный приватный ключ. В элемент заданного поля (условно — на кривой). При определенных условиях возможна обратимость (опускаю детали), но редко и требуются вычисления. Зато однозначно ломается анонимность XMR, если ее можно связать с другими криптовалютами холдера — виден вектор потенциального деанона.
Формально с сид-фразой Алгоранда можно сделать тоже самоеПри этом сид фразы (приватники, адреса) Монеро и Алгоранда могут показать баланс если они были созданы одновременно с Polkadot в Атомике. Так как заранее это, вообще говоря неизвестно, то получается что нужно проверять любой приватник polkadot на связь с Алгорандом и Монеро.
А вот с Монеро обратный ход так легко не получится. Скромная функция sc_reduce, частично преобразует исходный приватный ключ. В элемент заданного поля (условно — на кривой). При определенных условиях возможна обратимость (опускаю детали), но редко и требуются вычисления. Зато однозначно ломается анонимность XMR, если ее можно связать с другими криптовалютами холдера — виден вектор потенциального деанона.
seed ALGO → (seed XMR; priv_keypolkadot)
priv_keyALGOt → (seed XMR; priv_keypolkadot)
priv_keyALGOt → (seed XMR; priv_keypolkadot)
Но. С токеном Алгоранда в Атомике есть нюансы. Для того, чтобы сид фраза от Алго в Атомике где-то попалась (вам) вне кошелька, владелец кошелька должен ее получить для начала. А это, оказывается, проблематично.
Юзеры кошельки меняют часто (хочется быстрее, надежнее, меньше %, у которых есть моб. версия и тд и тп), комиссию же платить не хочется, хочется импортировать секрет.
В интерфейсе Атомика в разделе приватных ключей пользователь видит сид кошелька — 64 символа ( hex) у токена алгоранда, т. е. мастер-сид кошелька целиком. Но не видит мнемонику алгоранда из 25 слов, как в Exodus (рис.9)
С такой цифирью холдер далеко не уйдет, если захочет мигрировать, и прежде всего в официальный кошелек Алгоранда, ибо он (Pera Wallet) не поддерживает импорт приватных ключей.
Тогда куда? Например, Трастваллет откажет в импорте, пока не удалишь половину (предполагаем, что холдер= обыватель, который не захочет разбираться в длине ключа).
Перебрав разные кошельки, нашелся красивый, рабочий путь — импорт 64-символьного приватника в Guarda (ну очень дружелюбного). Так формируется цепочка импорта, если моделировать возможные действия холдера:
Atomic (прив_кей) —> Guarda (прив_кей + мнемоника 25 слов) —> Pera Wallet (25 слов)
Таким образом, если удастся слить приватник или сид-фразу Pera Wallet, то есть смысл проверить балансы на зависимых в Атомике криптовалютах:
seed ALGO → (seed XMR; priv_keypolkadot)
вероятность не самая маленькая, учитывая, что пользователей каждого из трех упомянутых кошельков — миллионы.
А что при таком раскладе в Guarda? Тоже интересненько. В отношении Guarda получаем схему:
Рис.16 Кошелек Guarda, импортированные аккаунты
При компрометации кошелька Guarda, если нашелся импортированный аккаунт Алгоранд из Атомика, увы/ура, мы получаем доступ ко всему кошельку Атомик, со всеми его валютами (эфир, биткойн и проч). Даже если пользователь вбил при импорте только приватный ключ Алгоранда. Так как Guarda любезно сохраняет и показывает все 64 символа master-seed Атомика, а не только те 32 символа, что нужны на самом деле (рис.17)
Рис.17 Токен Алгоранда в кошельке Guarda
И, кстати, делает это с чистой совестью — он и сид-фразу чужого кошелька сохранит (есть такая опция при импорте). Но холдер-то знает, что сид лучше приберечь, а вот приватник — штука надежная. Вообще говоря — да. Но не с Атомиком & Алгорандом. Холдер наверняка и не догадывается, что при импорте приватника вручает ключ от всего кошелька Атомик.
И да, кошельки Atomic и Guarda могут быть разделены в пространстве и времени (ноут, мобильник) — и не пострадать от стилера синхронно.
Вывод. Если в открытом Guarda находится два аккаунта Алгоранд (в логах это видно), есть смысл проверить тот, что импортирован (#2,#3,...) на «Атомик».
В сид-фразах это выглядит так:
(сид-фраза Guarda + пароль) → (сид-фраза Atomic) → (комплексный чекинг)
Если обобщить изложенное в п.6, то
- из-за нарушения безопасности криптокошельками создаются зависимости между сид-фразами разных блокчейнов и кошельков.Например, слитая сид-фраза Алгоранда из 25 слов кошелька Pera Wallet может показать сид-фразу Монеро из 16 слов (или приватный ключ), если их когда-то породил Атомик, а потом юзеры мигрировали в нативные или популярные кошельки блокчейнов.
Могу предположить, что большая часть отработки строится по такому принципу:
из исходной сид-фразы вычисляется только лишь 4 ( или 4+) варианта мнемоник Алгоранда (по 25 слов), хотя можно расширить вычисления по схеме рис.18. Добавить вычисление из приватного ключа мнемоники Алгоранда еще и вычисление сид-фраз Монеро(рис.18) или не добавить, окупится потеря своего и серверного времени - решать вам. Но в любом случае нужно знать что такие связи в принципе существуют и пренебрегать ими абсолютно всегда- чревато потерями.
Рис.18. Пример связи сид-фраз Алгоранда и Монеро
7. Расширение базы за счет устаревших сид-фраз
Рассмотрим на примере старых фраз Монеро и Электрума.
Рис.19 Старые версии кошельков Монеро, Электрума и разные форматы seed-фраз
Устаревшие ныне версии Монеро пользовались набором слов для сид-фраз от Электрума — также устаревшей (для Электрума) версии. Соответственно, старая сид-фраза из 24 слов, невалидная для BIP-39, может относится либо к Электруму (поддерживает старый формат), либо к Монеро -либо одновременно к обоим. Старые сид-фразы Монеро также поддерживаются кошельками Монеро.
seed ВАША → seed XMR → (seed_electrumBTC; seed_electrum lLTC, ….)
Верно и обратное (электрум - монеро).
8. Дополнения сид-фраз в виде иерархических списков (BIP-85)
Одно из предложений по улучшению блокчейна - BIP-85 (https://github.com/bitcoin/bips/blob/master/bip-0085.mediawiki) развивает идею генерации индексированных дочерних сид-фраз из любой исходной. По некоторым правилам
Пусть master seed = "skin spot olympic dice column permit diagram ugly traffic gentle trend angle"
Тогда, если выбран параметр длина = 12 слов (а можно еще 18 и 24), язык = англ., то
seed(0) = "total adapt must job economy target bamboo force park guess pulp layer"
seed(1) = "ecology blur visit pen foam mention wrap rival crazy mango mouse similar"
........................
seed(1000) = "churn worry utility boil end maple trip flag post guess raven enrich"
.................... и тд
Все отсюда https://iancoleman.io/bip39/#english, c выставленной опцией BIP85. Логика такого изобретения оправдывается распределением по функционалу сид-фраз и контролем за всеми дочерними мнемониками (рис).
Рис.20 Резоны использовать BIP-85
Иерархии нет, есть детерминированность, что означает восстановление дочерней фразы по индексу. И всего лишь. Ни мастер-сид, ни соседние фразы получить нельзя никак. Кошельков, которые бы поддерживали идею очень мало, но они есть. Как и есть энтузиасты BIP-85, судя по тредам на reddit и др. площадках .
Еще одно преимущество - в силу экзотичности отработчики на BIP-85 мнемонику обычно не проверяют. Вы будете в числе первых.
С "имплементацией" BIP85 в питон возникают проблемы, т.к. приходится опираться на чужие либы, подторможенные и проч. (решено)
9. ИТОГИ
Итак, у нас есть сид-фразы, из которых мы хотим извлечь как можно больше полезной информации. Что такое "стандартная проверка балансов"? Могу только предположить (я не знаю), что у профессиональных отработчиков софт должен опираться на зависимости, вроде таких:
где KDF - функция деривации ключей, применяемая для конкретного блокчейна, включающая в себя и путь деривации. То есть, скорее всего, у профессионалов речь идет уже о БД .
Как изъясняется товарищ с эксплойта, кодер, подаривший полупаблик с жирком ( за что отдельная благодарность) "я делаю просто: хуяк-хуяк, подставил сид в траст валлет, он все и показывает - и балансы токенов, и “стейкинг". Увы, метод работает не на 100%. Чтоб далеко (в Polkadot) не ходить, достаточно эфира - баланс с кошелька Атомика Траст Валлет не покажет (разный путь).
Что касается наших целей - вычислить дополнительные сид-фразы, связанные с полученными, то результат сведен в схему. В подзаголовках- примеры.
Рис.21 — Общая схема получения дополнительных сид-фраз
Некоторые пояснения к новым блокам схемы, кратенько
1.Немного о Tron. Можно представить ситуацию, когда формальная, простая проверка через API Trona покажет что на аккаунте нашей мнемоники — 0 (овнер), а на подчиненном кошельке (тоже сид у нас) — крипта есть, но ограничена каким-то овнером. Не знаю при проверке trx, все сопоставляют сид-фразы по зависимости аккаунтов или нет.
2.Пример сайдчейна NEO X: адрес EVM, но debank не увидит в принципе (токен GAS) и со стороны NEO N3 тоже проблемы чекинга.
3. 12+1=13
Видела советы как сгенерировать сид-фразу Монеро из BIP-39 по-своему. Записывайте рецепт (из социалки). Берем 12 слов (можно и 24) и начинаем в «калькуляторе» Монеро подставлять по очереди в качестве 13го (25-го) каждое из слов мнемоники, пока не получим валидную в Монеро сид-фразу (последнее контрольное слово всегда совпадает с каким-то из предыдущих слов мнемоники). Затем импортируем ее в MyMonero и радуемся. Впрочем, есть и автоматизация — попадались скрипты, написанные на эту тему.
Зачем так причудливо? Могу предположить, что 12 слов уже выбито..отчеканено, распечатано и попрятано по сейфам. А одно слово к 12 уже можно как-то и упомнить . Чудаков в целом вроде немного. Но не так чтобы и мало. Для 12/24 слов с интересным балансом наверное есть смысл сгенерировать таким способом мнемонику из 13/25 слов и может быть пойти по цепочке дальше (рис.19).
Отмечу, что сид-фраза созданная вот так, «вручную», отличается от сгенерированной любыми другими распространенными методами (правила монеро из энтропии, криптокошельки).
То есть я показываю способ как из любой сид-фразы получить особым образом сид-фразу Монеро (12+1, 24+1) и точно знаю, что кто-то (небольшой %) этим способом пользовался.
Общие выводы
- Итак, можно ли заработать на паблике новичку? Решать вам. Учитывая, что 99% этого материала отработчики знают и используют. А они ведь тоже этот самый паблик мониторят и... кстати, постоянно возмущаются, что выкладывается шлак. Парадокс?
- По чекингу сид-фраз, отданных сервисам, претензий на самом деле много. А подозрений, о проводках мимо кассы - еще больше.
Ну и также можно проверить эффективность сервисов на редких монетах (старых, блокчейнах и тд)
3. Для только начинающих - если хочется потренироваться, скачивайте архивы (не мои, из паблика):
- "супер-кошельки" - из тг канала (забыла какого, аккуратней: автовывод)
- файл с сид-фразами (как бы с транзакциями) - тг,
- этот же файл отчеканный ботом в тг ("бесплатный сервис", бгг... аккуратней!)
- архив с bip-85.
4. В приведенных примерах и схемах видно как из тех сид-фраз, что есть в наличии можно различными способами получить десятки новых. В сумме- новые миллионы фраз.
Конечно, нестандартные методы дадут в итоге намного меньшие суммы, чем распространенные. И вопрос рентабельности с учетом траты времени также актуален.
Но по мере возможности можно расширить чекинг существующих баз. А также углубиться в анализ в отдельных случаях.
Онлайн инструменты
- https://iancoleman.io/bip39/#english
- https://coinomi.github.io/tools/bip39/
- https://algorand.oortnet.com/
- https://xmr.llcoins.net/addresstests.html
- https://monerotech.info/Home/Seed
- https://hdwallet.online/dumps/all/BTC
- https://tomeko.net/online_tools/base64.php?lang=en
- https://guggero.github.io/cryptography-toolkit/#!/aezeed
- https://secretscan.org/PrivateKey_wif_to_hex
- https://online.visual-paradigm.com/
Часть II. Софт (чистка, уникализация и сортировка разными методами, бенчмарки, формирование антипаблика, генерация сид-фраз Algorand, фраз BIP-85 и проверка баланса оффлайн).
Часть III. Нестандартные решения (brainwallet, примеры находок кошельков, нетипичные методы генерация сид-фраз, идеи скам- и не-скам сервисов, задачки и загадки с балансами).
Если материал окажется вам полезным: 0xE8D5802d6285B1Ce9afcc0bF7646C041CDd5219c
За кадром. Рассмотрю любые коммерческие предложения по теме статьи.
Вложения
Последнее редактирование модератором:

