Author

Topic: Как сделать экспорт ключа из кошелька бит (Read 2598 times)

Lis
sr. member
Activity: 293
Merit: 251
Spice must flow!
Могу сделать плагин

А разве у bitcoin-qt есть plugin API ?

А как так получается, что кошелек один, а адресов много?

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

Где в исходниках все это происходит ?

Вот пишут,
https://bitcointalksearch.org/topic/original-bitcoin-client-wallet-format-6167
что биткоин-кошелек, это база данных (BDB является нереляционной базой данных — она хранит пары ключ/значение как массивы байтов).
Quote
it may be that all he wants is something that dumps the internal berkeley db
structure of wallet.dat to a flat 'textual' file.
if so, you can just use db_dump:  http://doc.gnu-darwin.org/dumpload/utility.html
https://github.com/gavinandresen/bitcointools
https://github.com/gavinandresen/bitcointools/blob/master/wallet.py

Где-нибудь задокументированы (описано назначение и использование) ключи из пар ключ-значения этой БД?


про bitcoin-qt не знаю, ковырял только оф. клиент и его файлы в данном контексте это wallet.dat

добавление адреса происходит так, генерируется большое случайное число 256bit из него вычисляется открытый ключ 2x256bit, из открытого ключа путем хеширования и переводом хеша в base58 получаем адрес
т.е. адреса никак не связанны друг с другом независимы и спокойно могут мигрировать из кошелька в кошелек
legendary
Activity: 1386
Merit: 1000
Могу сделать плагин

А разве у bitcoin-qt есть plugin API ?

А как так получается, что кошелек один, а адресов много?

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

Где в исходниках все это происходит ?

Вот пишут,
https://bitcointalksearch.org/topic/original-bitcoin-client-wallet-format-6167
что биткоин-кошелек, это база данных (BDB является нереляционной базой данных — она хранит пары ключ/значение как массивы байтов).
Quote
it may be that all he wants is something that dumps the internal berkeley db
structure of wallet.dat to a flat 'textual' file.
if so, you can just use db_dump:  http://doc.gnu-darwin.org/dumpload/utility.html
https://github.com/gavinandresen/bitcointools
https://github.com/gavinandresen/bitcointools/blob/master/wallet.py

Где-нибудь задокументированы (описано назначение и использование) ключи из пар ключ-значения этой БД?

Lis
sr. member
Activity: 293
Merit: 251
Spice must flow!
адрес bitcoin это хеш открытого ключа

А как так получается, что кошелек один, а адресов много?
Кошелек это файл базы данных содержащая: ключи, транзакции и метки ключей.
legendary
Activity: 1386
Merit: 1000
адрес bitcoin это хеш открытого ключа

А как так получается, что кошелек один, а адресов много?
Lis
sr. member
Activity: 293
Merit: 251
Spice must flow!
Мне вообще непонятно, как ключи работают в bitcoin.

Насколько я понял, bitcoin линкуется с openssl,
там есть одна пара базовая пара ключей, которые храняться в кошельке
и эти ключи не RSA, а для эллиптической криптографии.

openssl, как я понимаю, в последних версиях эту эллиптическую криптографию поддерживает.

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

Уметь экспортировать ключи кошелька было бы полезно для разных применений,
например хочу сделать web-сервер, которому эти ключи установить, чтобы реализовать https

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

да bitcoin использует openssl для создания и использования ключи ECDSA c параметрами secp256k1 (если не ошибаюсь)
да адрес bitcoin это хеш открытого ключа

Могу сделать плагин который будет экспортировать ключ соответствующего адреса в PEM
legendary
Activity: 1386
Merit: 1000
т.е. нужен экспорт ключа в DER или/и PEM?

Мне вообще непонятно, как ключи работают в bitcoin.

Насколько я понял, bitcoin линкуется с openssl,
там есть одна пара базовая пара ключей, которые храняться в кошельке
и эти ключи не RSA, а для эллиптической криптографии.

openssl, как я понимаю, в последних версиях эту эллиптическую криптографию поддерживает.

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

Уметь экспортировать ключи кошелька было бы полезно для разных применений,
например хочу сделать web-сервер, которому эти ключи установить, чтобы реализовать https

Еще эти ключи пригодятся для переписки при помощи PGP,
ну и вот для WOT тоже хотелось бы использовать...
Lis
sr. member
Activity: 293
Merit: 251
Spice must flow!
Lis
sr. member
Activity: 293
Merit: 251
Spice must flow!
legendary
Activity: 1386
Merit: 1000
*коина в wot-otc?
Jump to: