Bitcoin Forum

Local => Кодеры => Topic started by: ArsenShnurkov on October 13, 2011, 04:15:03 PM



Title: Как сделать экспорт ключа из кошелька бит
Post by: ArsenShnurkov on October 13, 2011, 04:15:03 PM
*коина в wot-otc?


Title: Re: Как сделать экспорт ключа из кошелька бит
Post by: Lis on October 14, 2011, 08:14:58 AM
*коина в wot-otc?
FTW wot-otc?


Title: Re: Как сделать экспорт ключа из кошелька бит
Post by: ArsenShnurkov on October 14, 2011, 08:35:55 AM
FTW wot-otc?

http://trust.bitcoin-otc.com


Title: Re: Как сделать экспорт ключа из кошелька бит
Post by: Lis on October 14, 2011, 08:48:54 AM
FTW wot-otc?

http://trust.bitcoin-otc.com
т.е. нужен экспорт ключа в DER или/и PEM?


Title: Re: Как сделать экспорт ключа из кошелька бит
Post by: ArsenShnurkov on October 14, 2011, 09:30:51 AM
т.е. нужен экспорт ключа в DER или/и PEM?

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

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

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

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

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

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


Title: Re: Как сделать экспорт ключа из кошелька бит
Post by: Lis on October 14, 2011, 09:40:13 AM
Мне вообще непонятно, как ключи работают в bitcoin.

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

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

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

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

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

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

Могу сделать плагин который будет экспортировать ключ соответствующего адреса в PEM


Title: Re: Как сделать экспорт ключа из кошелька бит
Post by: ArsenShnurkov on October 14, 2011, 11:05:37 AM
адрес bitcoin это хеш открытого ключа

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


Title: Re: Как сделать экспорт ключа из кошелька бит
Post by: Lis on October 14, 2011, 11:14:24 AM
адрес bitcoin это хеш открытого ключа

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


Title: Re: Как сделать экспорт ключа из кошелька бит
Post by: ArsenShnurkov on October 14, 2011, 11:25:25 AM
Могу сделать плагин

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

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

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

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

Вот пишут,
https://bitcointalk.org/index.php?topic=6167.0
что биткоин-кошелек, это база данных (BDB (http://ru.wikipedia.org/wiki/Berkeley_DB) является нереляционной базой данных — она хранит пары ключ/значение как массивы байтов).
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

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



Title: Re: Как сделать экспорт ключа из кошелька бит
Post by: Lis on October 14, 2011, 01:11:20 PM
Могу сделать плагин

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

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

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

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

Вот пишут,
https://bitcointalk.org/index.php?topic=6167.0
что биткоин-кошелек, это база данных (BDB (http://ru.wikipedia.org/wiki/Berkeley_DB) является нереляционной базой данных — она хранит пары ключ/значение как массивы байтов).
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 получаем адрес
т.е. адреса никак не связанны друг с другом независимы и спокойно могут мигрировать из кошелька в кошелек