Хочу уточнить вот этот момент (может и кому полезно будет) как я помню, для BIP39 энтропия == мнемоническая фраза. Ну тоесть мнемоника это просто выражение этой энтропии в понятном для человека виде, тоесть, можно ли заменить вот так или я опять что-то путаю?
Я немного интересовался вопросом о процессе генерации сидов из мнемоники и мнемоники из энтропии. Энтропия и мнемоника - это не взаимозаменяемые понятия, потому что процесс генерации мнемоники проходит несколько этапов.
Как известно, в BIP-39 используется энтропия размером от 128 до 256 бит. Энтропию проще всего представить в двоичном коде с последовательностью 0 и 1, полученных случайным образом, например подкидыванием монеты (орел-это единица, решка-это ноль). Если подкинуть монету 128 раз, то мы получим число длиной в 128 бит.
Далее из этого большого числа нам нужно вычислить контрольную сумму. Для этого используется определенная хеш-функция (SHA256), вычисляется хеш длиной 256 бит, после чего берутся первые несколько бит от этого хеша. Это и будет контрольной суммой для данной энтропии. Количество бит для контрольной суммы вычислить довольно просто: на каждые 32 бита энтропии приходится по одному биту контрольной суммы, то есть для 128 битной энтропии мы берем 4 бита от найденной ранее хеш-суммы.
Теперь у нас есть два числа: одно огромное в 128 бит - энтропия, и одно маленькое в 4 бита - контрольная сумма. Далее маленькое число добавляется в конец большого, точно не помню как называется эта операция, что-то типа 5+6=56. Из двух числе получается одно число размером 132 бита (128+4).
Эта последовательность в 132 бита разбивается на части размером 11 бит каждая. Эти части являются индексами, определяющими, какое именно слово из словаря BIP39 брать. При переводе этих двоичных чисел в десятичные, получаем числа от 0 до 2047 - это и будут порядковые номера, определяющие слово. Наша последовательность будет содержать 12 слов, в последнем слове будет содержаться контрольная сумма.
Процесс генерации сидов из мнемоники осуществляется с помощью функции формирования ключей, в которой используется некий генератор псевдорандома, в качестве аргументов используется мнемоническая фраза и мнемоническая фраза+пароль. На выходе получаем бинарное число размером 512 бит - это бинарный сид.