Представьте, что Ана пользуется биткоин-кошельком.

Сегодня она получает платеж на один адрес.... Завтра получает еще один платеж, но приложение показывает ей другой адрес.... А когда ей понадобится третий, программа может создать еще один.

ТРИ РАЗНЫХ АДРЕСА, НО ВСЕ ОНИ УПРАВЛЯЮТСЯ ОДНИМ И ТЕМ ЖЕ КОШЕЛЬКОМ....

Значит ли это, что Ане нужны три разные сид-фразы? .... НЕТ...

И вот здесь происходит нечто удивительное...

КАК ОДНА-ЕДИНСТВЕННАЯ СИД-ФРАЗА МОЖЕТ ПОРОДИТЬ СТОЛЬКО КЛЮЧЕЙ И АДРЕСОВ?

Ответ — в HD-КОШЕЛЬКАХ, также известных как иерархические детерминированные кошельки.

Их работа в основном определена стандартом под названием BIP32.

ЧТО ЗНАЧИТ «ДЕТЕРМИНИРОВАННЫЙ»?

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

Это принципиально важно.

Ведь HD-кошельку не нужно каждый раз генерировать совершенно новые случайные данные, чтобы получить ещё один ключ.

ОН МОЖЕТ ВЫЧИСЛЯТЬ РАЗНЫЕ КЛЮЧИ ПО ЗАДАННЫМ МАТЕМАТИЧЕСКИМ ПРАВИЛАМ.

Давайте посмотрим, как это работает на самом деле...

ЧТО ПРОГРАММА ДЕЛАЕТ С СИДОМ?

В предыдущем разделе мы узнали, что с помощью слов восстановления и BIP39 можно получить криптографический сид.

На основе этого сида программа может применить BIP32.

Сначала она вычисляет мастер-ключ и дополнительные данные, называемые chain code, или кодом цепочки.

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

Это не второй пароль и не ещё одна фраза, которую Ана должна придумать... Программа вычисляет её автоматически.

А КАК ГЕНЕРИРУЮТСЯ ОСТАЛЬНЫЕ КЛЮЧИ?

Вот здесь начинается самое интересное.

BIP32 позволяет получать производные ключи в соответствии с упорядоченной структурой.

Представим, что приложение работает с определённой последовательностью ключей.

Чтобы получить первый ключ, оно использует индекс 0.

Чтобы получить второй — индекс 1.

Чтобы получить третий — индекс 2.

Каждый индекс участвует в вычислении и позволяет получить отдельный ключ.

ЭТО НЕ КОПИИ ОДНОГО И ТОГО ЖЕ ПРИВАТНОГО КЛЮЧА. ЭТО РАЗНЫЕ КЛЮЧИ, ПОЛУЧЕННЫЕ С ПОМОЩЬЮ ВОСПРОИЗВОДИМОЙ ПРОЦЕДУРЫ.

Ане не нужно выполнять никаких математических операций... Кошелек сделает всё сам.

ПОЧЕМУ ОНИ НАЗЫВАЮТСЯ ИЕРАРХИЧЕСКИМИ КОШЕЛЬКАМИ?

Потому что производные ключи не обязательно выстраиваются в одну последовательность.

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

Вся эта структура формируется по заданным правилам.

Поэтому мы и говорим об ИЕРАРХИЧЕСКОЙ И ДЕТЕРМИНИРОВАННОЙ структуре.

А КАК ВСЁ ЭТО СВЯЗАНО С АДРЕСАМИ БИТКОИНА?

У каждого приватного ключа есть соответствующий публичный ключ.

HD-кошелек может получать множество пар ключей.

Используя публичные ключи и соответствующие процедуры, он может создавать разные адреса для получения BTC.

Поэтому Ана может использовать множество адресов в рамках одного кошелька.

ОДИН СИД МОЖЕТ СТАТЬ ОТПРАВНОЙ ТОЧКОЙ ДЛЯ ПОЛУЧЕНИЯ МНОЖЕСТВА КЛЮЧЕЙ И АДРЕСОВ.

Но теперь возникает важный вопрос.

КАК КОШЕЛЕК УЗНАЁТ, КАКОЙ ИЗ ЭТИХ КЛЮЧЕЙ ЕМУ НУЖНО ВЫЧИСЛИТЬ?

С ПОМОЩЬЮ ПУТИ ДЕРИВАЦИИ.

Это название может показаться сложным, но функция у него вполне конкретная.

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

Можно представить это так: чтобы получить определённый ключ, приложению нужно знать сид-фразу и точный путь, которому нужно следовать.

Если этот путь изменится, можно получить другой ключ.

И ПОЧЕМУ ЭТО ТАК ВАЖНО?

Потому что это объясняет, как кошелек может восстановить свои ключи после восстановления из резервной копии.

Если программа использует тот же сид, те же пути и те же правила, она снова вычислит те же ключи.

Ей не нужно восстанавливать отдельную копию каждого из них.

ОНА ПОЛУЧАЕТ ИХ ЗАНОВО, ВЫПОЛНЯЯ ТЕ ЖЕ ВЫЧИСЛЕНИЯ.

Но внимание...

Это не означает, что любое приложение автоматически покажет те же адреса, если просто ввести слова.

Также должны совпадать дополнительная парольная фраза, если она использовалась, а также правила деривации и построения адресов.

Кроме того, приложению может понадобиться запросить соответствующие операции, чтобы снова показать средства.

Итак... ЧТО МЫ УЗНАЛИ?

BIP39 позволяет получить сид из слов восстановления.

BIP32 позволяет использовать сид для построения иерархической структуры ключей.

А эта структура позволяет упорядоченно и воспроизводимо получать множество ключей.

HD-КОШЕЛЬКУ НЕ НУЖНА НОВАЯ СИД-ФРАЗА ДЛЯ КАЖДОГО АДРЕСА...

Итак...

Теперь мы поняли, как программа может получать разные приватные ключи и соответствующие им публичные ключи.

Но нам ещё кое-что предстоит узнать.

КАК ПУБЛИЧНЫЙ КЛЮЧ ПРЕВРАЩАЕТСЯ В АДРЕС БИТКОИНА, КОТОРЫМ МЫ МОЖЕМ ПОДЕЛИТЬСЯ, ЧТОБЫ ПОЛУЧИТЬ СРЕДСТВА?

Об этом — в следующем разделе...

$BTC $ETH $BNB

#Bitcoin #HDWallet #BIP32 #criptografía