Pages:
Author

Topic: Derivation path - простыми словами (Read 1245 times)

newbie
Activity: 23
Merit: 853
Quote
Если два слова поменять местами, то найти правильную последовательность несложно даже простым ручным перебором
В ручную врядли, вы тут более здравомыслящий прикиньте сколько возможно вариантов Smiley, для этого есть соответствующий софт.
Я формулу не помню, но чисто логически выглядит так:
Первое из 12 слов можно поменять с другим 11-ю способами, второе 10-ю, третье - 9-ю итд.
В итоге число вариантов равно 11+10+9+8+7+6+5+4+3+2+1 = 66, причем валидным (чтобы чексумма сошлась) будет в среднем только каждый 16-й сид.
Сид из 24 слов подобрать будет, естественно, сложнее. Там будет 276 вариантов, валидным будет в среднем каждый 128-й.
В общем, лучше час потратить, чем 30% отдавать. Вот если сделать несколько перестановок, то вручную уже будет трудно перебрать, да.

Надо подсчитать число сочетаний  из 12 по 2. И формула простая:

Ckn=n!/((n−k)!⋅k!)

при n=12, k=2 получаем

Ckn = 12!/((10!)*(2!)) = 66
legendary
Activity: 2436
Merit: 1849
Crypto for the Crypto Throne!
Вопрос: какое максимальное число комбинаций мне нужно перебрать, чтобы получить исходную комбинацию слов?

igor72 ответил на этот вопрос.

Да, в таком случае это размещение без повторений. Но выше вон об этом уже написали.
мне почему то показалось что обсуждается вариант когда слова помнишь, но забыл в каком они порядке все  Sad
full member
Activity: 343
Merit: 167
С расчетами у вас все верно, но тут еще нужно знать на каком адресе остался баланс чтобы знать с чем сравнивать, так как если вы активно пользовались кошельком то сдача будет далеко не на нулевом адресе. Также нужно знать исользовался bip32, bip44 или bip49. То есть такая задача посильна для вас, так вы в этом хорошо разбираетесь, но по той же причине в нее не попадете. А вот новички которые пытаются чтото запоминать, да еще менять местами слова, такую задачу сами не решат.
Тут не надо никаких специальных знаний. Новичок скорее всего будет восстанавливать в том же кошельке, в котором этот сид создавался, поэтому пути деривации будут правильные. Если баланс будет лежать на адресах за пределами gap limit(это еще надо постараться такое устроить), то да, его видно не будет, но должна быть видна история транзакций с "видимых" адресов. И вообще, главное, что валидных сидов будет мало (в среднем 4 для BIP39, а если электрумовский сид, то вообще 1), с несколькими сидами уже несложно будет разобраться самому (или с помощью форумов).
Quote
Поэтому и платят за свою тупость и самоувереность. Кроме того для безопасного хранения seed существуют другие надежные варианты, например схема шамира.
"Другие надежные" - вы забыли запятую между этими словами поставить, потому что вариант с перестановкой нескольких слов, как видно, совсем ненадежный.
Конечно валидных seed будет немного,в случае bip-39 для seed12 последнее слово может иметь 128 вариантов, для seed24 всего 8 слов из всего списка 2048, но полный список в данном случае не используется.
Бесплатно вам эту работу по перебору seed делать никто не будет, как и любую другую. А то что вы можете ее сделать сами, не означает что ее могут сделать все.
Насчет "Другие надежные варианты" я имел ввиду вариант с запоминанием seed. Про перестановку слов я даже не думал что это вариант, а только привел пример, что некоторые люди так делают.
Quote
Тут не надо никаких специальных знаний. Новичок скорее всего будет восстанавливать в том же кошельке, в котором этот сид создавался, поэтому пути деривации будут правильные.
Варианты бывают разные, я уже писал что могут упасть сервера и нужно восстанавливать на другом кошельке и без знания точных путей деривации ничего не выйдет.
legendary
Activity: 1848
Merit: 2033
Crypto Swap Exchange
С расчетами у вас все верно, но тут еще нужно знать на каком адресе остался баланс чтобы знать с чем сравнивать, так как если вы активно пользовались кошельком то сдача будет далеко не на нулевом адресе. Также нужно знать исользовался bip32, bip44 или bip49. То есть такая задача посильна для вас, так вы в этом хорошо разбираетесь, но по той же причине в нее не попадете. А вот новички которые пытаются чтото запоминать, да еще менять местами слова, такую задачу сами не решат.
Тут не надо никаких специальных знаний. Новичок скорее всего будет восстанавливать в том же кошельке, в котором этот сид создавался, поэтому пути деривации будут правильные. Если баланс будет лежать на адресах за пределами gap limit(это еще надо постараться такое устроить), то да, его видно не будет, но должна быть видна история транзакций с "видимых" адресов. И вообще, главное, что валидных сидов будет мало (в среднем 4 для BIP39, а если электрумовский сид, то вообще 1), с несколькими сидами уже несложно будет разобраться самому (или с помощью форумов).
Quote
Поэтому и платят за свою тупость и самоувереность. Кроме того для безопасного хранения seed существуют другие надежные варианты, например схема шамира.
"Другие надежные" - вы забыли запятую между этими словами поставить, потому что вариант с перестановкой нескольких слов, как видно, совсем ненадежный.
legendary
Activity: 2317
Merit: 2318
Или я что-то продолжаю не понимать, ну тоесть разговор был 2 на 2? Типа не помнишь сначала "handsome poetry ...." или "wind variety ...."

Допустим, Electrum при создании нового кошелька сгенерировал фразу:
Code:
stick kind robust unveil trigger milk series east salt fiscal broken hip

Я поменял два слова местами (kind и trigger). Получилась так:
Code:
stick trigger robust unveil kind milk series east salt fiscal broken hip

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

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

Вопрос: какое максимальное число комбинаций мне нужно перебрать, чтобы получить исходную комбинацию слов?

igor72 ответил на этот вопрос.
full member
Activity: 343
Merit: 167
Суть в том, что igor72 рассматривает другую задачу, когда есть последовательность слов и известно, что в ней два слова один раз поменяны местами:

Если два слова поменять местами, то найти правильную последовательность несложно даже простым ручным перебором.

Ну если два слова местами поменять, то формула тоже другая будет. ну как, два варианта:

ты или помнишь где у тебя может быть ошибка (например не помнишь сначала идет handsome а потом poetry или наоборот) то у тебя будет всего два варианта.

Или ты вообще не помнишь что и где, тогда мой вариант с полным перебором. В случае частичного "забывания", если ты помнишь первое, второе и третье слово (не обязательно в порядке следования) то будет тот же факториал, только условно там будет 9!

Или я что-то продолжаю не понимать, ну тоесть разговор был 2 на 2? Типа не помнишь сначала "handsome poetry ...." или "wind variety ...."

Так тогда тоже два варианта, пробуешь сид с первым вариантом а затем сид со вторым вариантом.

Ну или же объясните немного более расширенно.

Я его вообще не трогал.

Просто написал глупость, а я тебя поправил, на что ты вспетушился. Что уж, бывает.
Уже удалил свой пост, думаю конфликт исчерпан.
legendary
Activity: 2436
Merit: 1849
Crypto for the Crypto Throne!
Суть в том, что igor72 рассматривает другую задачу, когда есть последовательность слов и известно, что в ней два слова один раз поменяны местами:

Если два слова поменять местами, то найти правильную последовательность несложно даже простым ручным перебором.

Ну если два слова местами поменять, то формула тоже другая будет. ну как, два варианта:

ты или помнишь где у тебя может быть ошибка (например не помнишь сначала идет handsome а потом poetry или наоборот) то у тебя будет всего два варианта.

Или ты вообще не помнишь что и где, тогда мой вариант с полным перебором. В случае частичного "забывания", если ты помнишь первое, второе и третье слово (не обязательно в порядке следования) то будет тот же факториал, только условно там будет 9!

Или я что-то продолжаю не понимать, ну тоесть разговор был 2 на 2? Типа не помнишь сначала "handsome poetry ...." или "wind variety ...."

Так тогда тоже два варианта, пробуешь сид с первым вариантом а затем сид со вторым вариантом.

Ну или же объясните немного более расширенно.

Я его вообще не трогал.

Просто написал глупость, а я тебя поправил, на что ты вспетушился. Что уж, бывает.
full member
Activity: 343
Merit: 167
Вы зря ему чтото объясняете, судя по его аватарке он явно воевал под Донецком или Луганском и получил серьезную контузию головы.Sad

Политика - в соседней палате. И заметьте, это вы здесь внезапно подняли срачегенерирующую тему. До этого всё было в рамках приличий.
Заметьте, он первый начал меня оскарблять и еще абсолютно безпочвено, или если он легенда, то ему все можно?
Вместо того чтобы самому все проверить, начинает спамить и разводить срач. Я его вообще не трогал. Кроме того мои посты несут какойто смысл и показывают, как новичкам не вляпатся в проблемы. А какую пользу несут его посты, кроме бесполезной демонстрации своих познаний в математических вычислениях от которых вообще нет пользы?
legendary
Activity: 2317
Merit: 2318
У тебя ошибка, причем довольно обыденная среди людей пытающихся в комбинаторику. Суть в том, что у тебя есть 12 слов, и ты не помнишь в какой они последовательности.

Суть в том, что igor72 рассматривает другую задачу, когда есть последовательность слов и известно, что в ней два слова один раз поменяны местами:

Если два слова поменять местами, то найти правильную последовательность несложно даже простым ручным перебором.
legendary
Activity: 2436
Merit: 1849
Crypto for the Crypto Throne!
Я формулу не помню, но чисто логически выглядит так:
Первое из 12 слов можно поменять с другим 11-ю способами, второе 10-ю, третье - 9-ю итд.
В итоге число вариантов равно 11+10+9+8+7+6+5+4+3+2+1 = 66, причем валидным (чтобы чексумма сошлась) будет в среднем только каждый 16-й сид.

У тебя ошибка, причем довольно обыденная среди людей пытающихся в комбинаторику. Суть в том, что у тебя есть 12 слов, и ты не помнишь в какой они последовательности.
Ты начинаешь правильно, только вот первое слово можно выбрать 12ю способами (так как множество состоит из 12 слов), второе 11ю и так далее, до 12го, которое можно выбрать только одним способом (то, что осталось). Но самая твоя ошибка не в этом, а в следующем:

Там не плюсуется, а умножается.
Тоесть, количество перестановок - 12! (12 * 11 * 10 * 9 * 8 * ..... * 1 )
Нативный пример: сколькими способами можно переставлять между собой три буквы: А, Б, В ?

Ответ: 3! = 6

Проверяем на пальцах:

А Б В

А В Б

Б А В

Б В А

В А Б

В Б А

Поэтому зная 12 слов но не зная их последовательность придется подключить некоторые вычислительные мощности: 12 ! = 480 миллионов вариантов. Учитывая что нам нужно не только перебирать (это будет быстро, за пару секунд в оффлайн режиме) а еще проверять балансы каждого сида, то в принципе пару дней времени может уйти (если предположить что парсер будет перебирать и проверять по 1000 сидов за секунду)

В случае 24х слов, мощности необходимые для разумного перебора уже будут точно не "некоторыми", придется подружиться c каким нибудь китайским майнером (Хотя если смотреть по одному сайту, то чтобы забрутить за разумное время массив размером 6 * 10^23, придется подключать все мощности АНБ)

С расчетами у вас все верно

Определенно  Grin
Тебе то точно числа только на бумажку записывать, а лучше деньги в банке хранить. Не том, который в Швейцарии, а в той, которая рядом с банкой квашенной капусты и кислых помидоров  Grin
full member
Activity: 343
Merit: 167
Quote
Если два слова поменять местами, то найти правильную последовательность несложно даже простым ручным перебором
В ручную врядли, вы тут более здравомыслящий прикиньте сколько возможно вариантов Smiley, для этого есть соответствующий софт.
Я формулу не помню, но чисто логически выглядит так:
Первое из 12 слов можно поменять с другим 11-ю способами, второе 10-ю, третье - 9-ю итд.
В итоге число вариантов равно 11+10+9+8+7+6+5+4+3+2+1 = 66, причем валидным (чтобы чексумма сошлась) будет в среднем только каждый 16-й сид.
Сид из 24 слов подобрать будет, естественно, сложнее. Там будет 276 вариантов, валидным будет в среднем каждый 128-й.
В общем, лучше час потратить, чем 30% отдавать. Вот если сделать несколько перестановок, то вручную уже будет трудно перебрать, да.
С расчетами у вас все верно, но тут еще нужно знать на каком адресе остался баланс чтобы знать с чем сравнивать, так как если вы активно пользовались кошельком то сдача будет далеко не на нулевом адресе. Также нужно знать исользовался bip32, bip44 или bip49. То есть такая задача посильна для вас, так вы в этом хорошо разбираетесь, но по той же причине в нее не попадете. А вот новички которые пытаются чтото запоминать, да еще менять местами слова, такую задачу сами не решат. Поэтому и платят за свою тупость и самоувереность. Кроме того для безопасного хранения seed существуют другие надежные варианты, например схема шамира.
legendary
Activity: 1848
Merit: 2033
Crypto Swap Exchange
Quote
Если два слова поменять местами, то найти правильную последовательность несложно даже простым ручным перебором
В ручную врядли, вы тут более здравомыслящий прикиньте сколько возможно вариантов Smiley, для этого есть соответствующий софт.
Я формулу не помню, но чисто логически выглядит так:
Первое из 12 слов можно поменять с другим 11-ю способами, второе 10-ю, третье - 9-ю итд.
В итоге число вариантов равно 11+10+9+8+7+6+5+4+3+2+1 = 66, причем валидным (чтобы чексумма сошлась) будет в среднем только каждый 16-й сид.
Сид из 24 слов подобрать будет, естественно, сложнее. Там будет 276 вариантов, валидным будет в среднем каждый 256-й.
В общем, лучше час потратить, чем 30% отдавать. Вот если сделать несколько перестановок, то вручную уже будет трудно перебрать, да.
full member
Activity: 343
Merit: 167
Но, без постоянного повторения, через месяц я такую фразу благополучно забываю.
Что и требовалось доказать! Для примера, у меня знакомый сисадмин выучил на память ключ активации windows и вводит его по памяти, так что такое тоже реально.
Quote
Если два слова поменять местами, то найти правильную последовательность несложно даже простым ручным перебором
В ручную врядли, да и зачем? Вы тут более здравомыслящий прикиньте сколько возможно вариантов Smiley, для этого есть соответствующий софт.
legendary
Activity: 1848
Merit: 2033
Crypto Swap Exchange
Если ты перепутаеш местами хоть пару слов - твои деньги пропали. Лично знаю людей, которые в качестве защиты записывали на бумагу seed и специально меняли местами несколько слов, а затем бегали по форумам с просьбой восстановить средства и платили до 30% за восстановление, так как не могли вспомнить что и счем они меняли местами.
Если два слова поменять местами, то найти правильную последовательность несложно даже простым ручным перебором.
Quote
Только на первый взгляд кажется, что запомнить 12 слов легче, но так как они логически не связаны, то для мозга одинаково сложно запомнить эти 12 слов или 16 байт.
Я с этим могу согласиться только для случаев, когда мнемоническая фраза на каком-то совсем незнакомом языке. Лично мне несложно запомнить 12 английских, известных мне слов (да и 24 запоминал), в отличие от не очень длинной последовательности цифр (32 цифры - это уже очень длинная для меня). Но, без постоянного повторения, через месяц я такую фразу благополучно забываю. Поэтому я с вами солидарен - фразу нужно обязательно записывать. И даже лучше не запоминать параллельно, чтобы под гипнозом или во сне невозможно было выдать ).
full member
Activity: 343
Merit: 167
Запоминать нужно не только слова, а и точную их последовательность. Поэтому на практике эта задача маловыполнимая, если конечно вы не обладаете феноменальной памятью. Запомнить seed из 12 слов, это тоже самое что выучить 128 битный ключ.

Ты какую то глупость написал. Я то конечно понимаю, у каждого разный интеллектуальный потенциал, но сравнивать 12 (та даже 24 слова) со 64 знаками (256 битный ключ, которыми они все в основном и являются) это конечно нечто. Та даже блин возьмем 128 бит энтропии, или 16 байт, или 32 знака. И запомнить 12 слов. Ага, одинаково.

У тебя даже подписи то нет, зачем спамить если можно сначала осмыслить то, что пишешь?
Спамиш сдесь ты и если у тебя больше мерита, то это еще не показывает уровень твоего интелектуального уровня. Попробуй сгенерировать кошельком 12 слов и запомнить их с утра, затем пойти позаниматься своими делами, пообщаться с друзьями и вечером взять бумажку записать то что запомнил и сравнить с оригиналом. Если ты перепутаеш местами хоть пару слов - твои деньги пропали. Лично знаю людей, которые в качестве защиты записывали на бумагу seed и специально меняли местами несколько слов, а затем бегали по форумам с просьбой восстановить средства и платили до 30% за восстановление, так как не могли вспомнить что и счем они меняли местами.
Теперь немного теории: seed из 12 слов имеет аналог 128 битного ключа + 4 бита контрольной суммы и для более удобочитаемой записии записывается в системе счисления с индексом 2048, имеется 2048 уникальных слов каждое длиной 11 бит, что в суме и дает 132 бита (128+4). Только на первый взгляд кажется, что запомнить 12 слов легче, но так как они логически не связаны, то для мозга одинаково сложно запомнить эти 12 слов или 16 байт.
legendary
Activity: 2450
Merit: 4415
🔐BitcoinMessage.Tools🔑
Ты какую то глупость написал. Я то конечно понимаю, у каждого разный интеллектуальный потенциал, но сравнивать 12 (та даже 24 слова) со 64 знаками (256 битный ключ, которыми они все в основном и являются) это конечно нечто. Та даже блин возьмем 128 бит энтропии, или 16 байт, или 32 знака. И запомнить 12 слов. Ага, одинаково.

У тебя даже подписи то нет, зачем спамить если можно сначала осмыслить то, что пишешь?
Не будь так суров к джуниору, он просто набрался информации из каких-то источников, но сформулировать своими словами не удалось. Он имел в виду, что лучше всего сид-фразу копировать на какой-то дополнительный носитель, потому что возможности человеческой памяти ограничены, да и склероз может неожиданно нагрянуть. Так что лучше не рисковать, чтобы слова пытататься запомнить, пусть они и хуман-ридабл. А про генерацию паролей тоже верно, лучше из головы ничего не выдумывать, а использовать всякие менеджеры паролей и нагенерировать, что-то креативнее, чем qwerty54321.
legendary
Activity: 2436
Merit: 1849
Crypto for the Crypto Throne!
Запоминать нужно не только слова, а и точную их последовательность. Поэтому на практике эта задача маловыполнимая, если конечно вы не обладаете феноменальной памятью. Запомнить seed из 12 слов, это тоже самое что выучить 128 битный ключ.

Ты неправ. Я то конечно понимаю, у каждого разный интеллектуальный потенциал, но сравнивать 12 (та даже 24 слова) со 64 знаками (256 битный ключ, которыми они все в основном и являются) это конечно нечто. Та даже блин возьмем 128 бит энтропии, или 16 байт, или 32 знака. И запомнить 12 слов. Ага, одинаково.
full member
Activity: 343
Merit: 167
Seed фразы намного удобнее для запоминания человеческому мозгу, чем огромное число приватного ключа. Неудивительно, что был придуман этот способ запароливания кошельков, потому что обычный приватник наизусть не выучишь, а seed фразу при желании запомнить легко и можно получать доступ к своим средствам откуда угодно, не нося с собой флэшку с приватником, которая может быть скомпрометирована.
Запоминать нужно не только слова, а и точную их последовательность. Поэтому на практике эта задача маловыполнимая, если конечно вы не обладаете феноменальной памятью. Запомнить seed из 12 слов, это тоже самое что выучить 128 битный ключ. Если вы сами попытаетесь создать свой seed котрый будет иметь цепочку слов имеющий логический смысл, то он будет моментально взломан. На этом погорело достаточно много людей, так же как и на brain wallet.
sr. member
Activity: 994
Merit: 260
Seed фразы намного удобнее для запоминания человеческому мозгу, чем огромное число приватного ключа. Неудивительно, что был придуман этот способ запароливания кошельков, потому что обычный приватник наизусть не выучишь, а seed фразу при желании запомнить легко и можно получать доступ к своим средствам откуда угодно, не нося с собой флэшку с приватником, которая может быть скомпрометирована.
full member
Activity: 343
Merit: 167
Пример m/44'/0'/1'/0. Апостроф после цифры обозначает, что на данной ветке используются hardened ключи, этот апостроф как бы заменяет +231. То есть m/44'/0'/1'/0 можно записать как m/44+231/0+231/1+231/0 или m/2147483692/2147483648/2147483649/0 - эти пути дадут одинаковые ключи.

Здесь кстати интересный момент, если что, поправьте.
Если считать грубо, то вот что получается 232 (purpose) * 232 (coin type) * 232 (account) * 232 (change) * 232 (index)

Как видим, получается число 232*32*32*32*32 - 21606 тоесть максимальное количество адресов из хэшфункции RIPEMD-160.
По такой логике получается что одним сидом в теории можно покрыть весь диапазон адресов. Но так как purpose и coin type это у нас конкретные числа для конкретного блокчейна ( ну или пара чисел) то выходит что один сид покрывает - 1 * 1* 232 * 232 * 232 тоесть, 296 ключей.

Если ошибся, то извиняйте, немного заспанный. Буду благодарен любой критике.
Небольшая поправка: значение "change" обычно может принимать только 2 значения (0 внешние и 1 внутрение адреса). Так что теоретически ключей может быть еще меньше - 265
Pages:
Jump to: