Иерархически детерминированные (HD) кошельки

Данное словосочетание в заголовке статьи должно быть, звучит непонятно, но разобраться в нём не составит большого труда. Слово «детерминированный» означает «определённый заранее». А иерархия подразумевает подчинение вышестоящей сущности. Если вы технарь, то знакомы с таким понятием как «Демон Лапласа». Он представляет собой сущность, способную предсказать любое будущее или прошлое состояние системы, зная лишь настоящее расположение всех составляющих её частиц

Так вот, работа HD-кошельков (Hierarchical Deterministic) биткоина похожа на этого демона. Зная начальный приватный ключ, можно восстановить всю цепочку адресов, связанных с ним. Как вы знаете, каждому приватому соответствует свой публичный ключ. Ранее приватные ключи не были связаны друг с другом. Следовательно, в целях безопасности нужно было создавать копию wallet.dat после каждой исходящей транзакции (ведь сдача приходит на новый адрес) или каждого нового создания публичного ключа, что очень неудобно.

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

Сразу оговоримся, что в стандартном функционале Bitcoin Core её задать нельзя, и мастер-ключ формируется без вашего участия (как обычный приватный ключ). Чтобы сделать это самому, потребуется надстройка в виде кошелька Armory. С его помощью задаём последовательность слов. Из наиболее известных кошельков эту функцию также поддерживают Electrum, Trezor, BitGo, Green Address и Mycelium.

Теперь вам вообще не понадобится ни файл wallet.dat, ни записанные на бумаге длинные комбинации цифр и букв прив-кея. Достаточно помнить наизусть SEED-фразу, и ваши биткоины всегда будут при вас, а воспользоваться ими можно будет везде, где есть интернет. Такое решение хранения монет называется «brain wallet» или «кошелёк в голове».

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