[решено] Возможно ли гипотетически получить доступ к кошелькам других людей с помощью грубой силы?
-
В TON (и других известных мне блокчейнах) мнемоника word - это как логин и пароль одновременно. Итак, если я правильно понимаю, технически ничто не мешает злоумышленнику пробовать случайные словосочетания в надежде завладеть кошельками других людей, но возможных комбинаций слишком много, так что эти попытки, вероятно, бесполезны.
Действительно, слова взяты из словаря на 2048 слов, так что количество возможных комбинаций из 24 слов безумно (2048 в степени 24, я полагаю?), и шансы найти мнемонику, которая содержит деньги, крайне малы. Так что я понимаю, что в практическом смысле беспокоиться, вероятно, не о чем. Но я хотел бы понять все теоретически, поэтому я хочу знать:
-
Правильно ли я понимаю, что новые мнемоники кошелька генерируются (псевдо) случайным образом, так что чисто гипотетически они могут столкнуться? Может кто-нибудь попробовать создать новый кошелек с помощью Tonkeeper, получить ту же мнемонику, что и у меня, и получить доступ к моему кошельку? Вероятно, такое ни с кем не случилось бы и за миллион лет, но существует ли такая возможность?
-
Если кто-то попытается применить грубую силу (испробовать как можно больше случайных мнемоник), чтобы завладеть существующими кошельками, какое количество мнемоник в секунду он мог бы проверить с помощью мощного сервера? И удвоит ли добавление второго сервера эту скорость? Существует ли какое-то ограничение на возможную скорость перебора и насколько она высока?
-
Правильно ли я понимаю, что нет никакой другой формы защиты, кроме мнемонической? Если бы у меня был аппаратный кошелек для Toncoins и я запер его в физическом сейфе, но кто-то грубо взломал другую мнемотехнику и нашел мой, они все равно смогли бы вывести мои средства?
-
-
Да, мнемоника - это единственное, что определяет закрытый ключ вашего кошелька. Если вы каким-то образом узнаете чью-то мнемоническую фразу, у вас будет полный доступ к их кошельку. Вот почему так важно сохранить эту фразу в секрете.
Я должен также отметить, что можно сгенерировать закрытый ключ без использования мнемонической фразы. Обычно используемые кошельки обычно не предоставляют такую функциональность (потому что вы не сможете создать резервную копию своего кошелька, написав где-нибудь эту фразу), но теоретически это возможно. Это позволит снизить вероятность столкновения (из 1 в ≈ 20482⁴ 3⋅10⁷⁹ как вы правильно сказали, с 1 в ≈ 2⁵12 101⁵⁴), но не полностью ликвидировать ее. Поскольку кошельки генерируются независимо, реального способа предотвратить столкновение в теоретическом смысле не существует.
Вам также может быть интересен инструмент под названием "vaniton". По сути, он реализует метод грубой силы, но вместо того, чтобы пытаться найти точные ключи (что неосуществимо), он просто выполняет поиск мнемонических фраз, которые будут выдавать адреса, подходящие для поиска (т.е. содержащие, например, некоторые предопределенные подстроки).
Теперь перейдем к вашим вопросам:
- Чисто гипотетически – да, столкновения возможны. 2. Оценить точную скорость сложно, потому что это действительно зависит от аппаратного обеспечения. На моем компьютере бенчмарк vaniton показал скорость 13,7 адресов в секунду. Добавление большего количества серверов пропорционально увеличило бы скорость атаки методом перебора. Опять же, если мы говорим чисто теоретически, то нет ограничений на потенциальную скорость атаки (но на самом деле даже использование всех доступных на Земле вычислительных мощностей не сильно поможет). 3. Да, это верно.
Я хотел бы еще раз подчеркнуть: хотя все эти утверждения верны в теории, перебрать 3 из 10 фраз в любом практическом смысле невозможно (независимо от того, сколько серверов вы используете). Например, если бы у вас был доступ к 1 миллиарду серверов, каждому из них все равно нужно было бы проверить примерно 3⋅10⁷⁰ фраз, что по-прежнему является астрономически огромным числом. Даже если предположить, что скорость составляет 3 миллиона фраз в секунду (на каждом сервере), это займет 10⁶⁴ секунд или около 3⋅10⁵⁶ лет (это 56-значное число). Для сравнения, текущий возраст Вселенной составляет "всего" 1,37⋅10⁹ лет.