bitbitbit777 Posted 23 Nov 2023, 20:27 Posted 23 Nov 2023, 20:27 Заметил, что некоторые кошельки предлагают одну SEED, а создают несколько адресов. Например, кошелëк Electrum Андроид создаëт сразу 20 адресов + 10 адресов сдачи (все bc1q) и добавляет новые адреса по мере совершения транзакций. Скорее всего, похожая ситуация в Bitcoin Wallet. Как это работает? После битов SEED вставляются ещë n битов, перебирая которые, получаются 2^n приватных ключей и адресов? Если да, то чему равно n? Я замечал, что некоторые генераторы действительно позволяли делать адреса с названиями вроде "m/44h/0h/0h/0/0".
Helber Posted 23 Nov 2023, 20:41 Posted 23 Nov 2023, 20:41 (edited) 16 минут назад, bitbitbit777 сказал: Как это работает? После битов SEED вставляются ещë n битов, перебирая которые, получаются 2^n приватных ключей и адресов? Выбираются разные пути деривации. На основе одного и того же сида можно сгенерить миллиарды, если не триллионы пар ключ-адрес 16 минут назад, bitbitbit777 сказал: Я замечал, что некоторые генераторы действительно позволяли делать адреса с названиями вроде "m/44h/0h/0h/0/0". Это не названия, это пути деривации https://iancoleman.io/bip39/ Сгенерите пустой сид и экспериментируйте Edited 23 Nov 2023, 20:44 by Helber 2
bitbitbit777 Posted 24 Nov 2023, 15:13 Author Posted 24 Nov 2023, 15:13 Здравствуйте. Есть проект на GitHub или просто описание такой функции? На вход: биты (байты) из файла или сам вводишь HEX или BIN число. Функция берёт первые N бит, добавляет хеш и получает SEED-фразу из 24 слов (264 бита, я так понимаю), приватный ключ, публичный адрес. Для bc1q соответственно последовательность адресов и возвратных адресов. Соответственно при одинаковом входе всегда одинаковый выход. Больше ничего не надо. Я понимаю, что есть проекты, генерирующие энтропию и делающие то же самое, но мне не это нужно.
polym0rph Posted 24 Nov 2023, 22:15 Posted 24 Nov 2023, 22:15 @bitbitbit777 Если интересно подробнее, стоит погуглить иерархически детерминированные кошельки, они же HD кошельки. В книге mastering ethereum Антонопулоса хорошо описано. Книга в свободном доступе гуглится. 1
polym0rph Posted 24 Nov 2023, 22:21 Posted 24 Nov 2023, 22:21 Это явно часть какого-то костыля, так что не думаю, что есть какое-то идеально подходящее решение. тем более непонятно, на каком языке оно нужно. И в криптографии очень не любят костыли, тут следует быть очень осторожным, банальное уменьшение энтропии при генерации может потом привести к очень серьезным последствиям. 1
крип90 Posted 25 Nov 2023, 09:46 Posted 25 Nov 2023, 09:46 элементарно, линейно рекурентный регистр. На входе N бит - на выходе M (сколько угодно бит). Выход превращаем в слова из известного списка. Стойкости - ноль 1
bitbitbit777 Posted 25 Nov 2023, 11:56 Author Posted 25 Nov 2023, 11:56 (edited) 14 часов назад, polym0rph сказал: Это явно часть какого-то костыля, так что не думаю, что есть какое-то идеально подходящее решение. тем более непонятно, на каком языке оно нужно. И в криптографии очень не любят костыли, тут следует быть очень осторожным, банальное уменьшение энтропии при генерации может потом привести к очень серьезным последствиям. Энтропию я беру на себя. Язык html или c++, но без груды нестандартных библиотек. Вот примеры такие нашëл, они дают PrivateKey (WIF), которым можно подписывать транзакции, но не SEED. https://secretscan.org/PrivateKeyWif https://gist.github.com/cloverstd/dceb82565ca2f2de0e84680be267a5cc https://www.ntcfinans.com.tr/visual-btc-generator.asp Вот ещë примерно, что искал, только интересно что-то с github: https://learnmeabitcoin.com/technical/mnemonic Edited 25 Nov 2023, 12:27 by bitbitbit777
polym0rph Posted 26 Nov 2023, 03:26 Posted 26 Nov 2023, 03:26 @bitbitbit777 PrivateKey не годится в такой постановке задачи. Из PrivateKey не сделать SEED. Это из SEED можно получить PrivateKey. Так что тут раскуривать BIP39 и делать самому SEED
bitbitbit777 Posted 26 Nov 2023, 09:32 Author Posted 26 Nov 2023, 09:32 6 часов назад, polym0rph сказал: @bitbitbit777 PrivateKey не годится в такой постановке задачи. Из PrivateKey не сделать SEED. Это из SEED можно получить PrivateKey. Так что тут раскуривать BIP39 и делать самому SEED Да, я, наверное, имел ввиду не PrivateKey, а случайный набор 256 бит. Но уже разорался.
Helber Posted 26 Nov 2023, 09:53 Posted 26 Nov 2023, 09:53 20 минут назад, bitbitbit777 сказал: Но уже разорался. Сдержаннее надо быть! 1
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now