Купить Tangem

Как создается приватный ключ в кошельках с seed-фразой и без неё

Author logo
Tangem
Post image

Обычно криптокошельки при создании генерируют seed-фразу, которую нужно запомнить или записать, чтобы потом иметь возможность восстановить доступ к активам. Но ведь Tangem Wallet работает без нее. Как это происходит и почему мы считаем, что seed-фраза не очень безопасна?

Для начала надо разобраться, что это вообще такое. Если максимально упростить, то получится примерно так: это мнемоническая фраза, в которой закодированы приватный и публичный ключи пользователя. А благодаря вычислительной магии из этого рандомного набора слов всегда будет генерироваться один и тот же набор ключей.

Криптодеревья

Для начала стоит сказать пару слов о самих криптокошельках. Подавляющее их большинство — это иерархические детерминированные кошельки (Hierarchical deterministic wallet, HD).

Криптокошелек представляет собой «дерево» приватных и публичных ключей, благодаря которым вы получаете доступ к своей криптовалюте в разных блокчейнах и можете ей управлять. Вырастает это дерево из энтропии — случайного числа, определенного генератором случайных чисел. Корневая система — это зерно (seed), ствол — пара расширенных ключей (приватный и публичный), а ветви  — это огромное множество пар ключей и адресов монет в блокчейнах.

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

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

Приватные и публичные ключи в HD криптокошельках с seed-фразой

Мнемоническая фраза (код) — это набор слов, сгенерированный из случайного числа, в свою очередь, определенного генератором случайных чисел. Именно ее, а не сам приватный ключ, в большинстве случаев используют для бэкапа (резервной копии ключа). Мнемоническую фразу обычно называют seed-фразой.

Как это работает

Итак, вы создаете криптокошелек. Что в этот момент происходит и как создается мнемоническая фраза?  

1. В первую очередь генератор случайных чисел генерирует энтропию.

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

2. Сгенерированная энтропия при помощи математических алгоритмов кодируется в цепочку слов из специального словаря. На выходе получается мнемоническая фраза.

3. Мнемоническая фраза преобразовывается в seed (не путайте с seed-фразой!). Seed — это преобразованная версия мнемонической фразы. Для преобразования используется хеш-функция.

Хеш-функция — это математический алгоритм, который сжимает данные любого размера в массив данных фиксированного размера. Входящие данные называются сообщением, а исходящие — хеш-суммой или просто хешем. Одна из главных особенностей хеш-функции состоит в том, что она однонаправленная, это значит, что из её результата (хеша) невозможно восстановить исходные данные. Еще одна важная для понимания деталь: когда входящие данные не меняются, хеш-сумма всегда будет одной и той же.

4. Из seed вычисляется мастер-ключ (extended master key). Это первый ключ, который вы получаете при преобразовании seed-фразы. Преобразование производится также при помощи хеш-функции.

5. Из мастер-ключа вычисляется расширенный приватный ключ (Xprv).

6. Из расширенного приватного ключа генерируется расширенный публичный ключ (Xpub).

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

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

Что плохого?

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

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

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

Конечно, можно зашифровать фразу, разделить на части, хранить их в разных местах или арендовать для seed-фразы ячейку в банке. Но многие ли так делают? Особенно новички в мире крипты.

Из всего этого можно сделать объективный и обоснованный вывод: seed-фраза в открытом виде — существенный изъян существующих криптопродуктов, серьезная прореха в безопасности современных криптовалютных кошельков.

Приватные и публичные ключи в криптокошельке Tangem Wallet без seed-фразы: как это работает

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

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

Ключ генерируется чипом карты, в нем же и хранится. Получить его не может никто. Ни тот, кто украдет карту, ни компания Tangem, ни даже сам пользователь. А в качестве резервной копии используется не мнемоническая фраза, а другие карты из комплекта Tangem Wallet (одна или две, в зависимости от того, какой вариант вы выбрали). При создании бэкапа между картами посредством смартфона устанавливается зашифрованный канал, по которому ключи передаются с одной карты на другую.

После завершения бэкапа ключей вы получаете две либо три идентичные копии кошелька — равнозначные карты с одинаковыми ключами и парольной защитой. Рекомендуем хранить их не вместе, а в нескольких надежных местах. Что-то случится с одной картой — берите вторую и пользуйтесь. Потеряете вторую — это уже опасно, бэкапа нет, в таком случае покупайте новый комплект Tangem Wallet и переводите свои криптоактивы на него.

Как пользоваться кошельком кошелек без seed-фразы? Все просто: 

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

А что если…

…Tangem закроется, сервер отключится, приложение пропадет из Google Play и AppStore? Ответ прост — ничего. Вы можете без проблем пользоваться криптокошельком Tangem Wallet. Подробнее читайте об этом в нашей статье «Как будет работать кошелек Tangem без компании Tangem» .  

Author logo
Авторы Tangem

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