December 26, 2024

Самое полное руководство по seed-фразе от Menaskop

seed-фраза на практике. от menaskop

Введение. Супер-кратко

Итак, данный мануал разделён на 3 условные части:

  1. Подборка теории;
  2. Практический кейс получения сид-фразы из 12 слов;
  3. Рекомендации по работе с сид-фразой.

Дисклеймер

Повторю это не раз и, в том числе, - здесь: нет смысла писать ещё одно полное руководство по сидам, поэтому заголовок означает, что, если пойдёте последовательно по всем шагам, то к концу статьи сможете на практике разобраться, как работает сид. Если будет нужно копнуть глубже, скажем, в криптографию, - спокойно сделаете это сами.

То есть полнота здесь обсуждается в 2-х аспектах: 1) как наиболее полное практическое руководство от меня (а не кого-то иного); 2) как замкнутый цикл (полный то есть) шагов по работе с сид-фразой.

Теория сид-фразы

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

Итак, список:

  1. Начать рекомендую с этой статьи на medium, где предоставляется полное описание по сид-фразе для тех, кто только-только начал её осваивать:
    1. Узнаете дефиницию (определение) сид-фразы;
    2. Почему она состоит из 12-24 или другого количества слов;
    3. Пути развёртывания (семян) в популярных кошельках;
    4. И многое другое;
  2. Далее - изучите это видео, где рассказано, как руками “построить” сид-фразу и какие сервисы для этого использовать:
    1. Словарь из 2048 слов и зачем он нужен;
    2. Работа с бинарными данными;
    3. Конвертор данных и хэш-функции;
    4. Верификатор сид-фразы;
    5. И, конечно же, эксплорер;
  3. Наконец, можете подключиться к изучению тонкостей, скажем, к пониманию Seed & xPUB взаимодействию или устройству HD-кошельков.

(Проверьте себя в деле: почему 12 - это 128, а 18 - 192, тогда как 24 - это 256? Или ещё: почему 12-е слово важнее остальных?).

Конечно же, можно найти ещё что-то в канале t.me/web3news по запросам: seed или сид-фраза, но это бонус, а потому - идём дальше.

Практический кейс. Смотрим. Изучаем. Делаем.

Видео-кейс и таблица: как создать сид руками?

Ссылки:

  1. Видео: на 5 минут буквально, чтобы объяснить общие тейки - подробности см. ниже;
  2. Таблица: тоже предельно краткая, т.к. составлена утром 26-го декабря (в день выхода статьи) - сугубо для демонстрации.

Итак, заходим в таблицу и видим следующее:

Таблица. Общий разбор

Пояснения по вкладке F. (Формулы):

  • word 01-11: первые 11 слов, которые создаёте в случайном порядке: можете подкидывать монетку, можете просто записывать 0 и 1 в любой последовательности, главное, чтобы длина была каждый раз ровно 11 символов, например: 111 111 111 10 (пишем, конечно же, без пробелов: здесь они расставлены сугубо для наглядности);
  • pre.12: это оставшиеся 7 символов (почему так - см. в видео криптонита, которое рекомендовал выше: коротко 128 - (11*11)= 7), из которых позже получим 12-е слово;
  • w12(4): это оставшиеся 4 цифры 12-го слова, которые получим ниже с помощью сервиса cryptii.com;
  • hash & hash pre.12: резервные поля, оставленные для апдейта таблицы;
  • word 12: полное 12-е слово.

Остальные вкладки:

  • W. (Vocabulary + Vocabulary, т.к., возможно, добавлю словарь не на англ. языке, но позже): словарь из 2048 слов;
  • T.seed: итоговая seed-фраза (Тестовый сид), которую получаем;
  • Links: полезные сервисы.

Шаги по составлению сида

Итак, всё, что нам нужно, чтобы начать, это 11 случайных “слов”, записанных в виде последовательностей нуля (0) и единицы (1): 000 000 000 10 и в этом духе.

Получить их можно, повторюсь, разными способами:

  1. С помощью механизма rand из любого языка программирования;
  2. Подбрасыванием монеты;
  3. Выдумыванием;
  4. Иным способом.

Главное - выполнять базовые требования:

  1. "Слова" не должны повторяться;
  2. Они должны состоять только из 0 и 1;
  3. Они не должны быть короче и/или длинее 11 символов.

Это всё про вкладку “11 цифр (1 и 0)”: можно было бы назвать иначе, скажем, чисел, но здесь акцент сделан на цифре, чтобы ещё раз показать и подчеркнуть, что важен формат.

Далее идёт столбец "Формула (число)”, где с помощью стандартной функции таблиц DECIMAL(B2;2)+1 вычисляется число уже в десятичном формате: опять же, зачем нужно прибавлять единицу к DECIMAL(B2;2) - см. в видео криптонита, но коротко соль в том, что список слов начинается не с 0, а 1, поэтому 000 000 000 00 в итоге мы не найдём (это 0).

В столбце “Слова” с помощью другой стандартной функции VLOOKUP(C2; Woc.!A:B; 2; FALSE) - находим соответствие слова и порядкового номера его во вкладке №02 (Woc.): скажем, 1 => abandon, а 11 => access.

И, наконец, идёт столбец “Пров. 01” (Проверка №01), где проводится чекинг на то, что длина введённого вами числа в поля B2:B12 равна 11: если она равна 11 - всё ок и цвет будет зелёный, во всех остальных случаях - красный и надо будет ошибку исправить.

Конечно, можете усложнить проверку поля и, например, сделать верификацию, что введены только нули и единицы в поля B2:B12, но мне для опыта достаточно минимального функционала.

Как только получили нужные нам числа, остаётся найти 4 последние для 12-го числа. Для этого следуем алгоритму:

  1. Заходим на сайт: cryptii.com;
  2. Вводим из B14 полученную строку, в моём случае (см. скрин) это 11111111110101010100111000000000100000000111000011100010100000000110000000101000110000011111111110100001111110000000011110000001;
  3. Устанавливаем все флаги (чекбоксы), как показано в видео, а также на скрине ниже: первый столбец - Binary-Byte, во втором - Hash function-SHA256, в третьем - Binary-Bite;
  4. Получаем хеш (в моём случае: 00100111 11101111 00111000 10011001 10110101 00001010 00100001 11001000 00000010 10001011 01001101 11000011 00110101 11001010 00010000 10000101 01110101 11001010 11101000 10110110 11111110 01110111 10110100 10101001 11100011 00110011 00011010 01011101 11101111 11101101 01100011 00111111) и берём первые 4 цифры, в моём случае: 0010.

Вставляем её в B15 и получаем заветное 12 слово:

  • B18 - в двоичном формате (всё - через простые формулы);
  • С18 - в виде десятичного числа (от 1 до 2048);
  • D18 - в виде слова из словаря (вкладка Woc.).

Теперь ещё раз - со скринами и по тем же шагам. Заходим на cryptii.com:

сид-фраза на примере

Ставим всё, как показано на скрине и вставляем из B14: 11111111110101010100111000000000100000000111000011100010100000000110000000101000110000011111111110100001111110000000011110000001 (в вашем случае будет другая строка, конечно же) из ячейки B14 листа F.:

сид-фраза в таблице

Как только вставку произвели - получили хеш (в третьем столбце):

сид-фраза

В моём случае это 00100111 11101111 00111000 10011001 10110101 00001010 00100001 11001000 00000010 10001011 01001101 11000011 00110101 11001010 00010000 10000101 01110101 11001010 11101000 10110110 11111110 01110111 10110100 10101001 11100011 00110011 00011010 01011101 11101111 11101101 01100011 00111111.

Берём первые 4 цифры: 0010:

сид-фраза: ищем 12-е слово

Всё! Мы имеем в наличии 12-е число! В моём случае это 00000010010 (см. ячейку A18) и, соответственно, слов - across. На вкладке T.seed (тестовый сид) получили итоговую сид фразу:

итоговый сид

С полученной фразой: zone price lens abstract athlete dizzy level blouse zero average acid across идём на сервис ancoleman.io/bip39/#english и вставляем её там для проверки и видим, что фраза - валидна (главное - проверяйте на том языке, на котором делали фразу):

проверяем сид

Если же она НЕ валидна, то увидим следующее:

ошибка в сид-фразе

Из полученных адресов берём любой (листайте вниз - увидите примерно следующее), скажем 1LPs5KBD58upKbL3TPTuBJaWVeS4t8R4sS:

ищем кошелёк

И ищем его в блокчейне: blockchain.com/ru/explorer/search?search=1LPs5KBD58upKbL3TPTuBJaWVeS4t8R4sS

верификация кошелька из сид-фразы

Так получаем все адреса, которые "выходят" из приватников данной сид-фразы: подробней об этом - см. в статьях выше. (К слову, так мы с вами можем искать криптоклады).

Что ещё нужно знать теперь?

Самые короткие tips & tricks по seed-фразе

Не уходя далеко - перечислю t&t:

  1. Храните сид всегда хотя бы в 2-3, а лучше 3-5 резервных источниках: бумага, металл, зашифрованные флэшки - подойдут: главное - помните, что всё это не должно соприкасаться ни с оффлайном, ни с онлайном иначе, как через вас: тайники и искусство их создания, стеганография - вам в помощь. Скажем, можете использовать старый способ выделения фраз в книгах, как это делали разведчики ещё 100 лет назад. И да, интернет в этом случае - зло, wi-fi - тоже и даже блютуз.
  2. Записывая что-то на бумаге, делайте это не на языке территории хранения: в СНГ лучше писать на арабском (или хотя бы английском/китайском), скажем, а в ОАЭ - как раз украинский, казахский, русский языки, а тем более - грузинский, лучше. Конечно, частотный анализ всё расставит на места, но, во-первых, не всякий о нём знает, а тот, кто знает, тот не всякий: коротко - это убережёт вас от случайных воришек, но не профи (кейс с языком навахо в этом плане - ТОП);
  3. Старайтесь нигде не хранить фразу полностью: лучше (пример пока из 12 слов, но может быть любой) - ¼ хранить на эл. носителе (зашифровано), ¼ - на бумажном/металлическом, ¼ - в голове (или 2-3х, если есть, с кем разделить: потерю памяти никто не отменял); ¼ - где-то совсем не в очевидном месте (например, в потайном кирпиче);
  4. Там, где сид-фразу раскрываете: импорт в метамаск (хотя зачем это делать - большой вопрос для многих случаев и так точно не стоит делать с сидами из трезора и подобных аппаратных кошельков), взаимодействие с хардварными кошельками и прочее - необходимы максимальные меры безопасности: а) изучите все тонкости настройки ПО; б) если есть доп. шифрование, скажем, через pass-фразу, - применяйте его; в) и да, пароли всегда - не очевидны и сложны (более 14 разных символов - точно) для всех, кроме вас;
  5. Используйте для записи на бумаге простой карандаш и ручку, т.к. они по-разному и в разных условиях “выцветают”: если можете записать долговечными “невидимыми” чернилами - сделайте это;
  6. Верифицируйте источники, вещающие о безопасности, хотя бы дважды: вот один из примеров, зачем это делать: сделать это не всегда просто, но точно нужно;
  7. Учитесь различным мнемоническим и прочим механикам, т.к. совершенных способов хранения не существует;
  8. Обязательно сделайте всё описанное до того, как заработаете первые 100 DAI, т.к. самая большая беда в том, что люди сначала теряют деньги, а потом они становятся для них значимыми. Не верите? Вспомните эту или эту историю и поймёте, о чём речь;
  9. Изучайте новые (и старые) методы атак на изъятие сид-фраз на канале https://t.me/web3news по тегам “seed”, “seed-фраза”, “сид”, “сид-фраза”.

До!