Что такое XPUB, YPUB, ZPUB в биткоине

расширенный публичный ключ

XPUB — это расширенный открытый ключ. Он является частью стандарта биткоина BIP32 (о чем ниже). Такой ключ можно рассматривать как «только для чтения». Он полностью показывает все транзакции, адреса и балансы в определенном кошельке, но не позволяет перемещать средства. Для осуществления переводов денег необходимы приватные ключи, а XPUB их не содержит.

BIP32 связан с иерархически детерминированным (HD) ключом, протокол позволяет создавать дочерние ключи из родительских ключей, выстраивая иерархию, дерево. Кошельки с такой функцией называются HD-кошельками.

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

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

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

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

Что такое YPUB?

YPUB то же самое, что XPUB, но символ «Y» обозначает, что этот расширенный открытый ключ принадлежит кошельку со стандартом BIP49 (SegWit).

Что такое ZPUB?

ZPUB, как и YPUB, обозначает расширенный открытый ключ для отдельного кошелька с активированным SegWit после внедрения BIP49. Но Z также означает, что этот кошелек не соответствует схеме обратной совместимости адресов. Такой вид ключа не получил большого распространения.

Безопасность

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

Для каждой операции с другой стороной используйте заново сгенерированный публичный ключ. Обычно создать его можно по такому пути: Управление Адресами > Создать Новый (но от кошелька к кошельку может различаться).

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