Биткоин — адрес в аппаратном кошельке BitBox2

Чтобы повысить конфиденциальность своих пользователей, производитель аппаратных кошельков BitBox02 создает новый биткоин — адрес каждый раз, когда пользователь получаете транзакцию. Как кошелёк может создавать бесконечное количество биткоин — адресов, а пользователю нужно только один раз записать свою начальную фразу?

кошелёк BitBox2

Давайте объясним, что такое иерархические детерминированные кошельки и как они работают:

Получение биткоин — адреса

Начальная фраза

Все начинается с начальной фразы. Это «главный ключ» к вашему кошельку. Обычно она представлена списком из 12 — 24 слов. Переведённая с помощью специального алгоритма декодирования, она представляет собой строку, состоящую из множества единиц и нулей.

Для того чтобы убедиться, что такая же начальная фраза есть только у одного пользователя и ни у кого больше, необходимо, чтобы она была создана совершенно случайно. Это достигается путём использования большого количества случайностей (также называемых «энтропией»). Поскольку люди сравнительно плохо подбирают случайные слова, вы никогда не должны сами выбирать случайные слова из списка слов!

Теоретически, для создания начальной фразы достаточно подбросить монету 256 раз и записать либо единицу, либо ноль. Вероятность того, что кто — то «подбросит монету» точно так же, как и кто — то другой, составляет 1:2^256, или примерно 1:10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000.

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

Пример seed — фразы: resource plastic opinion divorce since play neglect domain park apart edge vague world mango slim over wreck icon artist pudding drill orphan camp fish
Фраза в двоичном виде: 10110111100 10100110000 10011011011 01000000000 11001001001 10100110010 10010100000 01000000111 10100000010 00001010010 01000110010 11110000101 11111101101 10000111001 11001011110 10011101111 11111110001 01110000010 00001101000 10101101001 01000010111 10011100110 00100000110 010

Путь вывода

Путь деривации позволяет нам применить стандартную «формулу» к нашему главному ключу для создания закрытого ключа. Вы можете думать об этом как о пути к папке на вашем компьютере!

Примером пути деривации биткоина для аппаратного кошелька BitBox02 является:

m/49’/0’/0’/0/0

Каждая часть пути представляет определенное использование:

m / purpose’ / coin_type’ / account’ / change / address_index

Если мы изменим этот путь деривации, то получим совершенно другой закрытый ключ. Современные кошельки увеличивают поле «address_index» постепенно, чтобы вывести серию приватных ключей. Это означает, что для получения закрытых ключей для наших первых 5 биткоин — адресов кошелек использует пути деривации:

m/49’/0’/0’/0/0
m/49’/0’/0’/0/1
m/49’/0’/0’/0/2
m/49’/0’/0’/0/3
m/49’/0’/0’/0/4

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

Пример: m/49’/0’/0’/0/0

Закрытый ключ

Закрытый ключ можно представить как ключ к одному из ваших индивидуальных биткоин — адресов. Он необходим для подписания транзакции с соответствующего биткоин — адреса.

Как следует из названия, вы не должны делиться этими ключами ни с кем. Так как же кошелёк превращается из закрытого ключа в биткойн — адрес?

аппаратный кошелёк BitBox2

Во — первых, кошелёк должен создать открытый ключ для вашего закрытого ключа.

Пример: L5UxSZahnxwzrNU3kv6gxatYcC3TXffv6sxQkebxUxYFxxdSmva1

Открытый ключ

Используя закрытый ключ, вы можете создать открытый ключ. Этим открытым ключом можно поделиться с кем угодно. Он позволяет владельцу доказать, что он владеет связанным с ним закрытым ключом.

Пример: 020be9666e50552e0f10c15fa0a7691197144313d30a61c9129ec40375748e28ed

Биткоин — адрес

Биткоин — адрес состоит из закодированного сценария публичного ключа (pubkey), который в большинстве случаев включает открытый ключ или хэш открытого ключа. Хеш открытого ключа получается путем применения хэш — функции к открытому ключу. Скрипт pubkey определяет, при каких условиях можно тратить монеты.

Этот адрес — то, на что другие могут отправлять биткоин.

Пример: bc1q6zjfr73jywxck3stj0rzl62ga94hyxgw9tfu8g

Подводя итог

Как объяснялось в этом посте, биткоин — адрес получается в несколько этапов из начальной фразы. Способ получения этих адресов всегда один и тот же (детерминированный). Такие типы кошельков обычно называют «иерархическими детерминированными» кошельками (HD-кошельками). Стандарты для этих кошельков определены в BIP32 и BIP39

Поскольку способ получения адресов каждый раз один и тот же, нам не нужно создавать резервные копии отдельных адресов, только семян!

Как часто я могу использовать биткойн — адрес?

Вы можете использовать биткоин — адрес так часто, как захотите. Из соображений конфиденциальности это не рекомендуется. Любой человек, получающий биткоин с этого адреса, может увидеть остаток средств на нем.

Должен ли я записывать путь деривации?

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

Нужно ли мне сохранять мои закрытые ключи?

Если вы используете современный кошелёк, который предоставляет вам резервную начальную фразу, вам нужно записать только начальную фразу. Закрытые ключи и адреса будут получены из вашей начальной фразы.

Оставить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *