Ключевые пулы и лучшие практики

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

  • Какое максимальное количество ключей/адресов можно создать для одного кошелька? Другими словами, какое максимальное значение можно безопасно указать для keypoolопции в bitcoin.conf?

  • Если я сгенерирую некоторые ключи, а bitcoind keypoolrefillзатем сгенерирую несколько новых адресов, а затем позвоню keypoolrefillснова, будут ли исходные адреса по-прежнему работать, и будет ли теперь мой закрытый ключ работать для всех адресов, которые я когда-либо создавал?

  • Есть ли способ определить, сколько ключей осталось в текущем пуле ключей?

  • В документации Биткойн говорится, что эта функция активно прекращается. Когда это произойдет и какой будет новая система?

    Этот тип кошелька постепенно прекращается, и его использование не рекомендуется из-за проблем с резервным копированием.

Ответы на любой из этих вопросов очень ценятся.


Гэвин Андресен (главный научный сотрудник Биткойн) сказал по этому поводу :

Сделайте резервную копию каждые 30 sendtoaddress или generatenewaddress, и все будет в порядке — у вас всегда должно быть не менее 3 резервных копий всех ваших ключей.

Если вы используете очень загруженный сервис, поэтому резервное копирование каждые 30 – это слишком часто, тогда запустите параметр -keypool=1000 и выполняйте резервное копирование как минимум каждые 300 отправок/генераций.

Новая система — иерархические детерминированные кошельки, BIP 32 .

Ответы (1)

Какое максимальное количество ключей/адресов можно создать для одного кошелька? Другими словами, какое максимальное значение можно безопасно указать для keypoolопции в bitcoin.conf?

Тип этого параметра int64_tтаков, что максимальное значение равно 2^(64-1)-1. На практике вы можете указать любое число, которое хотите, и это не должно привести к поломке программного обеспечения. Однако наличие большого количества ключей (сотни тысяч) приведет к очень большому кошельку и потенциально замедлит фазу загрузки кошелька.

Если я сгенерирую некоторые ключи, а bitcoind keypoolrefillзатем сгенерирую несколько новых адресов, а затем позвоню keypoolrefillснова, будут ли исходные адреса по-прежнему работать,

Да. Все хранится в кошельке и ключи никогда не удаляются.

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

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

Есть ли способ определить, сколько ключей осталось в текущем пуле ключей?

bitcoin-cli getwalletinfoсообщит вам, сколько ключей осталось в пуле ключей. Пул ключей автоматически пополняется, когда ваш кошелек разблокирован.

В документации Биткойн говорится, что эта функция активно прекращается. Когда это произойдет и какой будет новая система?

Эта система с пулом ключей все еще используется, и по-прежнему рекомендуется делать периодические резервные копии, поскольку кошелек содержит данные транзакций, которые не поддерживаются детерминированными кошельками. «Новая система» заключается в использовании иерархического детерминированного вывода BIP 32 вместо случайно сгенерированных закрытых ключей. Начальное число сначала генерируется случайным образом, а затем из него извлекаются все закрытые ключи. Это означает, что для резервного копирования всех ваших закрытых ключей необходима только одна резервная копия, но, как указано выше, по-прежнему рекомендуется периодическое резервное копирование.

Эта функция была добавлена ​​в Bitcoin Core в версии Bitcoin Core 0.13.0. Большинство других современных кошельков используют кошельки BIP 32 HD.