Pages:
Author

Topic: Electrum и BIP39 (Read 412 times)

legendary
Activity: 2408
Merit: 1834
Crypto for the Crypto Throne!
February 12, 2021, 06:59:40 PM
#40
Captain-Cryptory, некоторые ваши сообщения бывают полезными для меня, но некоторые, особенно в последнее время, буквально портят настроение - хамство, колхозная лексика...
Поставил вас в игнор на какое-то время, надеюсь это темп подписной на вас влияет. Так что сообщения ваши не увижу, разве что косвенно где-то в цитатах...

Да не злитесь особо, иногда бывает и вправду сложно из себя что то выжимать по поводу и без  Cheesy Ну а так то товарищ помню здесь шиллил какого то ливанского Сатоши, так что стоит ли удивляться. Куда кстати ливанец пропал? Помню он не мог подписать ключами Сатоши ничего, потому что потерял свой ноутбук ))
legendary
Activity: 1820
Merit: 1972
Crypto Swap Exchange
February 12, 2021, 04:41:49 AM
#39
Captain-Cryptory, некоторые ваши сообщения бывают полезными для меня, но некоторые, особенно в последнее время, буквально портят настроение - хамство, колхозная лексика...
Поставил вас в игнор на какое-то время, надеюсь это темп подписной на вас влияет. Так что сообщения ваши не увижу, разве что косвенно где-то в цитатах...
newbie
Activity: 23
Merit: 853
February 12, 2021, 03:47:36 AM
#37
что за квадратиками ( и функциями) всегда стоят микросхемы, которые  умеют различать буквы, только после их преобразования в байты.
блин ну это понятно, вы бы еще листинг функции привели в машинных кодах. Да, процессор понимает биты, даже что вы пишете тут - воспринимается всё в виде единиц и нолей. Но как это относится к данной теме?

Говоришь в машинных кодах, могу и в них , но врядли ли вы их поймете. Вопросы надо правильно ставить, а то спросили как кончита, которая бъет по клаве "bb bb bb bb bb bb bb bb bb bb bb bb" и спрашивает при этом что будет. вам и ответили, что эти ваши "bb bb bb bb bb bb bb bb bb bb bb bb"  преобразовываютс в байты и была дана блок схема того, что с ними в  дальнейшем происходит.

Но с другой стороны ты поступал правильно , действуя по схеме


Совет относительно   форума.

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

набежали действительно  всранные всезнайки  и получился годный всрач. Нашел ли ты в этом сраче для себя ответ не знаю.
newbie
Activity: 23
Merit: 853
February 11, 2021, 01:24:37 AM
#35
Тогда под обратным преобразованием будем понимать преобразование мнемоники (т.е одного случайного числа) в битовую строчку с использованием UTF-8 (а иными словами в другое случайное число). И в конечном итоге я прав.
Другими словами, будете называть прямое преобразование обратным. Чего не сделаешь, лишь бы остаться правым )? Не вижу смысла продолжать спор.


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



Та блок-схема которую я привел, правильная, и я отталкивался от нее. Ваша тоже правильная, но надо при этом  понимать, что за квадратиками ( и функциями) всегда стоят микросхемы, которые  умеют различать буквы, только после их преобразования в байты.
newbie
Activity: 23
Merit: 853
February 10, 2021, 05:24:31 PM
#33
Вы же припёрлись сюда

Епт. потише на поворотах, а то и я могу захерачить так,  что мало не покажется. Игорь аргументировано все объяснил , а ты "приперся" нахуя подконец разговора, так ничего и не понявши.
newbie
Activity: 23
Merit: 853
February 10, 2021, 05:10:41 PM
#31

К тому же, вы же не будете оспаривать факт, что мнемоника, сгенерированная в леджере, в любом BIP39-совместимом кошельке дает такие же ключи/адреса? Разве это было бы возможно, если бы они использовали разные входные переменные в PBKDF2?

А вот это сильный аргумент. Тогда под обратным преобразованием будем понимать преобразование мнемоники (т.е одного случайного числа) в битовую строчку с использованием UTF-8 (а иными словами в другое случайное число).

Мнемоника преобразуется в набор байтов (серилизация мнемоники) и  я воспринял это  как преобразование в исходную затравку. Получилось  "акела промахнулся".

Документ почитайте. Там математика описана не зависимо от того, как создается эта строка.
newbie
Activity: 23
Merit: 853
February 10, 2021, 04:45:35 PM
#29
Еще раз вам говорю, это не так, вы заблуждаетесь, никакого обратного преобразования не происходит.


Я исхожу из этого документа для Леджер https://ledger.readthedocs.io/en/latest/background/master_seed.html   и того документа, который приведен в моих предыдущих сообщениях. Там нигде не говорится, что аппаратно реализованная PBKDF2 обязана принимать в качестве аргумента мнемонику преобразованную  UTF-8 .  Аргументом PBKDF2  служит битовая строка и этой функции побоку  как она создается.  На вашем приведенном рисунке показано, что эта битовая строка равна "энтропии" и это правильно для Леджер.  Я не вижу логики в том, чтобы имея хорошее случайное число, пропускать его через UTF-8  и кормить результатом PBKDF2.

Если вы докажите мне, сославшись на официальную документацию Леджер, что там используется кодировка UTF для преобразования первоначальной  затравки, я с вами  соглашусь. А пока остаюсь при своем мнении.
newbie
Activity: 23
Merit: 853
February 10, 2021, 02:06:25 PM
#26
Потому что так написано в BIP39.

 Grin Напомнило ответ студента, которого спросили почему небо голубое, и он ответил, что так было  написано в букваре.



Нахер  было спрашивать,если устраивает то что написано? Вроде вам посты набивать себе незачем.



Уже из приведенной вами картинки видно, что на вход поступает случайное число (названное там энтропией, хотя это и не правильно, читайте что такое энтропия https://bitcointalksearch.org/topic/--5221171) которое разбито для выпускников боткинариума на слова и служат для них SEED фразой. Когда эти выпускники  вводят ее в  леджер для востановления своих ключей, происходит обратное преобразование в то же самое случайное число, и это случайное число служит мастер ключом. Это для вам для простоты как работает железо без дополнительного 25-го слова.



А при чем тут обсуждение генерации случайных чисел, если речь шла об алгоритме получения сида из мнемонической фразы и пассфразы? Grin  


СИД это есть случайное число или вы с этим не согласны?  Документ, на который я ссылаюсь, и описывает как получить такой сид исходя из мнемонической фразы и пассфразы и я сослался на него потому что первоначальный вопрос был

Такой вопрос - как генерируется мастер ключ в таком случае, если я буду использовать seed из 12 слов, которые придумаю я сам, которых не будет в словаре?

В этом документе все есть. Читайте и разбирайтесь. Он относится не только к Леджер.


newbie
Activity: 23
Merit: 853
February 10, 2021, 01:56:05 PM
#24
Почему?

А почему нет?

А что это за документ, а главное - почему вы на него опираетесь? У нас есть документ BIP39, от него и отталкиваемся.

Да причем тут BIP 39. Документ регламентирует как должно работать железо, которое претендует на генерацию случайных чисел,  а не как получается мнемоническая фраза из случайного числа согласно алгоритму  BIP 39 .
newbie
Activity: 9
Merit: 2
February 11, 2021, 06:12:13 AM
#23
что за квадратиками ( и функциями) всегда стоят микросхемы, которые  умеют различать буквы, только после их преобразования в байты.
блин ну это понятно, вы бы еще листинг функции привели в машинных кодах. Да, процессор понимает биты, даже что вы пишете тут - воспринимается всё в виде единиц и нолей. Но как это относится к данной теме?
legendary
Activity: 1820
Merit: 1972
Crypto Swap Exchange
February 11, 2021, 01:17:21 AM
#22
Тогда под обратным преобразованием будем понимать преобразование мнемоники (т.е одного случайного числа) в битовую строчку с использованием UTF-8 (а иными словами в другое случайное число). И в конечном итоге я прав.
Другими словами, будете называть прямое преобразование обратным. Чего не сделаешь, лишь бы остаться правым )? Не вижу смысла продолжать спор.
legendary
Activity: 2310
Merit: 2295
February 10, 2021, 05:18:03 PM
#21
Если вы докажите мне, сославшись на официальную документацию Леджер, что там используется кодировка UTF для преобразования первоначальной  затравки, я с вами  соглашусь. А пока остаюсь при своем мнении.

Если вы не заметили, мы тут с самого первого сообщения, обсуждаем BIP39 и особенности его реализации в кошельке Electrum. Вы же припёрлись сюда с Леджером и требуете что-то вам доказать по этому кошельку, который тут вообще не обсуждался. С хрена ли?

С другой стороны, в документе на который вы кинули ссылку, указано следующее:
Quote
Ledger uses a standard called BIP 39 for the generation and interpretation of the master seed on all of our devices. BIP 39 is an industry standard used by many other hierarchical deterministic wallets.
, где прямо в тексте размещена ссылка на описание стандарта BIP39. Какие ещё вам доказательства нужны?
 
legendary
Activity: 1820
Merit: 1972
Crypto Swap Exchange
February 10, 2021, 05:06:56 PM
#20
Я исхожу из этого документа для Леджер https://ledger.readthedocs.io/en/latest/background/master_seed.html   и того документа, который приведен в моих предыдущих сообщениях. Там нигде не говорится, что аппаратно реализованная PBKDF2 принимает в качестве аргумента мнемонику преобразованную  UTF-8 .
Там написано: "Ledger uses a standard called BIP 39 for the generation and interpretation of the master seed on all of our devices", этого более чем достаточно.

К тому же, вы же не будете оспаривать факт, что мнемоника, сгенерированная в леджере, в любом BIP39-совместимом кошельке дает такие же ключи/адреса? Разве это было бы возможно, если бы они использовали разные входные переменные в PBKDF2?
legendary
Activity: 1820
Merit: 1972
Crypto Swap Exchange
February 10, 2021, 03:42:08 PM
#19
Потому что так написано в BIP39.

 Grin Напомнило ответ студента, которого спросили почему небо голубое, и он ответил, что так было  написано в букваре.
Мне не важно, что он вам напомнил, ответ был содержательным в отличие от вашего "а почему нет?".
Quote
Нахер  было спрашивать,если устраивает то что написано? Вроде вам посты набивать себе незачем.
Мне ничего не надо, я ни о чем не спрашиваю, просто указываю на ваше заблуждение.
Quote
Когда эти выпускники  вводят ее в  леджер для востановления своих ключей, происходит обратное преобразование в то же самое случайное число, и это случайное число служит мастер ключом.
Еще раз вам говорю, это не так, вы заблуждаетесь, никакого обратного преобразования не происходит. Прочитайте BIP39, вот вам конкретная цитата оттуда: "To create a binary seed from the mnemonic, we use the PBKDF2 function with a mnemonic sentence (in UTF-8 NFKD) used as the password and the string "mnemonic" + passphrase (again in UTF-8 NFKD) used as the salt. The iteration count is set to 2048 and HMAC-SHA512 is used as the pseudo-random function. The length of the derived key is 512 bits (= 64 bytes).

This seed can be later used to generate deterministic wallets using BIP-0032 or similar methods. "
newbie
Activity: 9
Merit: 2
February 10, 2021, 02:07:27 PM
#18
Не понимаю, зачем дискутировать, если есть исходник, и там черно-по белому написано, как оно работает. Числа в функцию PBKDF2 не передаются, передается текст. Смысл спора?
legendary
Activity: 1820
Merit: 1972
Crypto Swap Exchange
February 10, 2021, 02:02:57 PM
#17
Да причем тут BIP 39. Документ регламентирует как должно работать железо, которое претендует на генерацию случайных чисел,  а не как получается мнемоническая фраза из случайного числа согласно алгоритму  BIP 39 .
А при чем тут обсуждение генерации случайных чисел, если речь шла об алгоритме получения сида из мнемонической фразы и пассфразы? Grin  

Почему?

А почему нет?
Хороший ответ на вопрос )). Потому что так написано в BIP39.
newbie
Activity: 9
Merit: 2
February 10, 2021, 01:54:20 PM
#16

Устроит для 25  го слова но не устроит для сид фразы.
в исходнике сид кодируется в utf-8, перед добавлением в функцию, или это по вашему число кодируется? Smiley
legendary
Activity: 1820
Merit: 1972
Crypto Swap Exchange
February 10, 2021, 01:48:07 PM
#15
На картинке да, потому что так легче для человеческого мозга, но в железе нет . Ключи текст не воспринимают, они понимают только 0 (открытое состояние) или 1 (закрытое состояние).
Хорошо, текст в виде последовательности байт (или бит, если вам так угодно) кодировки UTF-8. Так вас устраивает? Где тут обратное преобразование в случайное число?

Устроит для 25  го слова но не устроит для сид фразы.
Почему?

Quote
Ну я как то исходил из этого документа  https://csrc.nist.gov/CSRC/media/Publications/sp/800-90a/rev-1/final/documents/sp800-90a_r1_draft_november2014_ver.pdf
может NIST и не прав. Вам наверное виднее.
А что это за документ, а главное - почему вы на него опираетесь? У нас есть документ BIP39, от него и отталкиваемся.
legendary
Activity: 1820
Merit: 1972
Crypto Swap Exchange
February 10, 2021, 01:40:37 PM
#14
На картинке да, потому что так легче для человеческого мозга, но в железе нет . Ключи текст не воспринимают, они понимают только 0 (открытое состояние) или 1 (закрытое состояние).
Хорошо, текст в виде последовательности байт (или бит, если вам так угодно) кодировки UTF-8. Так вас устраивает? Где тут обратное преобразование в случайное число?
newbie
Activity: 9
Merit: 2
February 10, 2021, 01:34:57 PM
#13


Когда вы  вводите свою mnemonic phrase, например 12 слов, они сначала преобразуются в random_number которое поступает на вход обозначенный "пассворд" у вас на картинке. На второй вход поступает Nonce , на третий - обычный текст (25-е слово). У меня в блоксхеме последние два входа разнесены, у вас объедены но это не важно. Дальше все это многократно  хешеруется функцией PBKDF2.  
функция принимает 4 параметра. Какие 3 входа? В качестве пароля выступает mnemonic, в качестве соли - "electrum" + passphrase, что можно видеть из кода:

Code:
return hashlib.pbkdf2_hmac('sha512', mnemonic.encode('utf-8'), b'electrum' + passphrase.encode('utf-8'), iterations = PBKDF2_ROUNDS)
Pages:
Jump to: