Я читал BIP32 и более или менее понимаю его.
Может кто-нибудь объяснить мне, как будто мне 5 лет, в чем разница между дочерним ключом и закаленным дочерним ключом?
Я пытаюсь добавить генерацию HD-кошелька в сервис, который я создаю. Я должен быть полностью проинформирован об этом, прежде чем заниматься этим. Не волнуйтесь , я буду использовать Bitcore , поэтому не буду напрямую заниматься криптографией.
По сути, усиленный дочерний ключ вычисляется с помощью hash(parent private key + index)
, тогда как незащищенный дочерний ключ вычисляется с помощью hash(parent public key + index)
.
Итак, какие практические последствия это имеет?
С помощью расширенного открытого ключа вы можете получить незащищенные дочерние открытые ключи. Это полезно в ситуациях, когда вы хотите принимать платежи, не имея возможности сразу их потратить. Например, если у вас есть веб-сайт, продающий носки из альпаки, ваш сервер может использовать расширенный открытый ключ для приема платежей без потери всех ваших денег в случае взлома. Так что это причина, по которой вы можете использовать незащищенную деривацию.
С помощью расширенного закрытого ключа вы также можете получить защищенные ключи.
Однако незащищенные открытые ключи слабее, когда у злоумышленника есть 1) расширенный открытый ключ и 2) один из незащищенных закрытых ключей, который был получен из него. В этом случае злоумышленник может разработать закрытый ключ расширенного открытого ключа и, следовательно, получить все ключи, которые могут быть получены из него, защищенные и незащищенные.
Итак, что ваше приложение должно использовать по умолчанию?
Вам следует использовать незащищенные ключи и отключить возможность экспорта закрытых ключей, если это позволит злоумышленнику скомпрометировать другие ключи в кошельке. Даже если злоумышленник завладеет одним из закрытых ключей, в ситуациях, когда у злоумышленника нет доступа к расширенному открытому ключу, незащищенный эквивалентен усиленной безопасности. На мой взгляд, возможности незащищенных ключей перевешивают дополнительную безопасность защищенных ключей.
Однако, если вам не нужны функции незащищенных ключей, вам следует использовать защищенные ключи, поскольку они более безопасны.
Баз
Питер Уилле
Майя Виктор
Питер Уилле
Джейван