Введение в технологию Блокчейн. Тимур Сергеевич Машнин
ключей и цифровых подписях, мы рассмотрели функцию, называемую generateKeys, которая генерирует открытый ключ (который действует как адрес) и секретный ключ.
В иерархическом кошельке генерация ключей работает по-другому.
Вместо того, чтобы генерировать единственный адрес, мы генерируем то, что будем называть информацией о генерации адреса, а вместо приватного ключа генерируем то, что мы будем называть информацией о генерации секретного ключа.
Учитывая информацию о генерации адреса, мы можем генерировать последовательность адресов: мы применяем функцию генерации адреса, которая принимает в качестве входных данных информацию о генерации адресов и любое целое число n и генерирует n-й адрес в последовательности.
Аналогичным образом мы можем генерировать последовательность приватных ключей с использованием информации о генерации секретного ключа.
Криптографическая магия заключается в том, что для каждого i, адрес и секретный ключ соответствуют друг другу, то есть i-й секретный ключ может использоваться для траты биткойнов с i-го адреса так же, как если бы пара была сформирована прежним способом.
Таким образом, теперь у нас есть последовательность пар ключей.
Другим важным криптографическим свойством здесь является безопасность: информация о генерации адресов не передает никакой информации о закрытых ключах.
Это означает, что безопасно предоставить информацию о генерации адресов кому угодно, и этот кто-угодно не сможет сгенерировать i-й ключ.
Теперь, не все существующие схемы цифровой подписи могут быть изменены для поддержки генерации иерархических ключей.
Но хорошей новостью является то, что схема цифровой подписи, используемая Bitcoin, ECDSA, поддерживает иерархическое генерирование ключей, что позволяет использовать этот трюк.
То есть, холодное хранилище может сгенерировать произвольное количество ключей, а горячее хранилище сгенерирует соответствующие адреса.
Холодное хранилище создает и сохраняет информацию о генерации секретного ключа и информацию о генерации адреса.
Оно создает одноразовую передачу информации о генерации адреса горячему хранилищу.
Горячее хранилище генерирует новый адрес последовательно каждый раз, когда оно хочет отправить монеты холодному хранилищу.
Когда холодное хранилище снова подключается в сеть, оно последовательно генерирует адреса и проверяет цепочку блоков для транзакций на эти адреса, пока не достигнет адреса, который не получил никаких монет.
Оно также может последовательно генерировать приватные ключи, если оно хочет отправить монеты обратно горячему хранилищу или потратить их другим способом.
Теперь давайте поговорим о различных способах хранения холодной информации – будь то один или несколько ключей, или хранение информации о генерации ключей.
Первый способ – хранить эту информацию на каком-либо устройстве и помещать это устройство в сейф.
Это может