ChatGPT для Web 3.0 №02. Что такое seed-фраза?

preview_player
Показать описание

На этот вопрос он ответил следующим образом:

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

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

Из seed-фразы с помощью алгоритма BIP39 (Bitcoin Improvement Proposal 39) генерируется мнемонический код, состоящий из списка слов из стандартного списка. Затем мнемонический код используется для генерации иерархии приватных ключей и адресов с помощью стандартного алгоритма HD (Hierarchical Deterministic) Wallets.

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

Пример формирования приватного ключа из seed-фразы:
Предположим, что у нас есть seed-фраза: "lock ocean reason faith hurdle cruel blanket avoid drill scatter soda unlock".
Используя алгоритм BIP39, мы получаем из нее мнемонический код: "lock ocean reason faith hurdle cruel blanket avoid drill scatter soda unlock".

Мнемонический код преобразуется в бинарный seed с помощью алгоритма PBKDF2.

Из бинарного seed генерируется мастер-ключ с помощью алгоритма HMAC-SHA512.

Используя мастер-ключ, мы можем генерировать дочерние ключи в иерархии ключей с помощью алгоритма HD Wallets. Например, мы можем сгенерировать приватный ключ на базе мастер-ключа для Bitcoin с индексом 0: m/44'/0'/0'/0/0.

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

Пример формирования кошелька из приватного ключа:
Предположим, что у нас есть приватный ключ для Bitcoin: "KwDiDMpXf8fFzgyK1G5pVjD3qzVhbT9C9TtAVy2Rk1W7VJmQgPb7".
Используя алгоритм ECDSA, мы можем вычислить соответствующий публичный ключ.

Из публичного ключа можно вычислить Bitcoin-адрес с помощью алгоритма Base58Check.

Таким образом, мы получаем Bitcoin-кошелек, связанный с этим приватным ключом и соответствующим адресом.

Полезные ссылки:
Рекомендации по теме