К основному содержимому

Основы безопасности мнемоники

Обновлено более 3 нед. назад

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

Вот несколько примеров и объяснений этого крайне маловероятного сценария.

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

Создание мнемоники:

Используя процедуру нормализации, описанную в BIP-39, кошелек автоматически генерирует мнемонику. Кошелек начинает с источника энтропии, затем добавляет контрольную сумму перед сопоставлением случайных чисел со списком слов:
1. Создайте случайное число от 128 до 256 бит.
2. Используйте контрольную сумму этого случайного числа в качестве первых нескольких бит хэша SHA256 (первые четыре бита берутся из 12-битных вспомогательных битов).
3. В конце случайной последовательности добавьте контрольную сумму.
4. Разделите последовательность на 11-битные части.
5. Каждое число, составляющее 11-битный компонент, соответствует словарю, который уже содержит 2048 слов.
6. Мнемоника — это получившаяся последовательность слогов.

И когда вводится неправильное слово, как в следующем примере (неправильно введена только первая позиция).

Кошелек генерирует мнемонику: ribbon voice frame black oppose galaxy divide either tube maximum tired obvious

Хэш SHA256: 00101011 11111111

mceclip3.png

Искусственно введенная ошибочная мнемоника: rib voice frame black oppose galaxy divide either tube maximum tired obvious

Хэш SHA256:00101011 11101010

mceclip4.png

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

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

Если дать простое объяснение с точки зрения вероятности: сначала выбираем случайное слово в качестве последнего слова мнемоники, а затем случайным образом выбираем другие 11 слов мнемоники, когда слово мнемоники составляет 12 бит, мы можем найти набор правильных слов 16 раз, в то время как 24-битное вспомогательное слово — 256 раз.

Поэтому «ввести ошибочное слово и получить рабочую мнемонику» является обычным явлением, но это не означает, что безопасность мнемоники неточна.

Мнемоники иногда путают с "brain wallets" (мнемоническими кошельками), хотя это не одно и то же.

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

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

Это означает, что то, что BIP39-совместимая мнемоника прошла искусственное тестирование, не означает, что использование сгенерированной кошельком мнемоники небезопасно; два типа мнемоник различаются по безопасности; сгенерированная кошельком мнемоника более случайна (т.е. более безопасна), тогда как brain wallet (с неправильной мнемоникой) менее вероятно будет случайно сгенерирован и использован.

Кошелек генерирует истинно случайные числа с использованием криптографически безопасных методов (например, аппаратного ГСЧ), поэтому качество случайности не может быть гарантировано обычным выбором мнемоники пользователем.

Нашли ответ на свой вопрос?