• 0 Голоса
    1 Сообщения
    13 Просмотры

    Я пытаюсь сгенерировать адрес из мнемоники, это работает для tonkeeper, но не работает в Trust Wallet, не могли бы вы мне помочь, я перепробовал все возможные параметры из руководства.

    Оригинал вопроса

  • 0 Голоса
    2 Сообщения
    21 Просмотры

    Решено

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

    Я должен также отметить, что можно сгенерировать закрытый ключ без использования мнемонической фразы. Обычно используемые кошельки обычно не предоставляют такую функциональность (потому что вы не сможете создать резервную копию своего кошелька, написав где-нибудь эту фразу), но теоретически это возможно. Это позволит снизить вероятность столкновения (из 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⁹ лет.

  • 0 Голоса
    2 Сообщения
    65 Просмотры

    Решено

    В настоящее время популярные приложения TON wallet, такие как "TonKeeper" и "TONHUB", не поддерживают добавление ключевой фразы к начальной мнемонической фразе при создании или восстановлении кошелька.

    Это означает, что если вы разработаете приложение для кошелька, которое позволяет пользователям генерировать кошелек, используя мнемоническую начальную фразу и дополнительную кодовую фразу, пользователи могут не иметь возможности восстановить свои кошельки напрямую в TonKeeper или TONHUB.

    Тем не менее, вы все равно можете создать свое приложение-кошелек с функцией seed + passphrase и рекомендовать пользователям использовать ваше приложение-кошелек для восстановления своих кошельков, сгенерированных с помощью дополнительной ключевой фразы. Важно проинформировать пользователей об этом ограничении и проинструктировать их использовать ваше приложение для восстановления кошелька, поскольку использование только начальной фразы в других приложениях кошелька не приведет к правильному восстановлению их кошелька.

    Экосистема TON все еще относительно нова, и приложения для кошельков постоянно совершенствуются и добавляют новые функции. Возможно, что в будущем TonKeeper, TONHUB или другие приложения TON wallet могут добавить поддержку парольных фраз наряду с мнемоническими начальными значениями.

    До тех пор пользователям необходимо будет использовать ваше приложение wallet для целей восстановления, если они создали кошелек с исходным кодом + парольная фраза в вашем приложении.

  • 0 Голоса
    2 Сообщения
    258 Просмотры

    Решено

    В этом посте есть JS-код, который это делает, а также объяснения, как все это работает: https://ton-community.github.io/tutorials/01-wallet/

    Вы должны быть в состоянии получить адрес кошелька следующим образом:

    import { mnemonicToWalletKey } from "ton-crypto"; import { WalletContractV4 } from "ton"; async function main() { // open wallet v4 (notice the correct wallet version here) const mnemonic = "unfold sugar water ..."; // your 24 secret words (replace ... with the rest of the words) const key = await mnemonicToWalletKey(mnemonic.split(" ")); const wallet = WalletContractV4.create({ publicKey: key.publicKey, workchain: 0 }); // print wallet address console.log(wallet.address.toString({ testOnly: true })); } main();
  • 0 Голоса
    2 Сообщения
    17 Просмотры

    Решено

    **Да, мнемоническая фраза из 24 слов может соответствовать > неограниченному количеству адресов. ** ⭕️

    Эта фраза генерируется с использованием начального значения детерминированного кошелька и используется для получения нескольких пар открытых и закрытых ключей в соответствии со стандартом иерархического детерминированного кошелька BIP32 (HD wallet).

    **❗️ Важно отметить, что отношение между мнемонической фразой и соответствующими ей парами ключей является отношением "один ко многим", а не "многие ко многим". **

    Другими словами, каждая уникальная мнемоническая фраза из 24 слов генерирует уникальный набор пар ключей. Хотя из одной мнемонической фразы можно вывести несколько публичных адресов, каждый из этих публичных адресов может быть прослежен до одной и той же мнемонической фразы уникальным способом.❤️‍🔥