Почему повторное использование закрытых ключей биткойнов не одобряется? [дубликат]

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

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

Ответы (1)

Каждый закрытый ключ привязан к адресу. Закрытый ключ используется для создания соответствующего открытого ключа, и этот открытый ключ используется для создания адреса. Из-за того, что Биткойн поддерживает как сжатые, так и несжатые форматы открытого ключа, каждый закрытый ключ может фактически генерировать два разных адреса (однако на самом деле вы должны рассматривать их как один и тот же адрес, поскольку это просто разные кодировки одной и той же пары ключей).

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

Другая проблема — потенциал будущих криптографических уязвимостей. Когда вы тратите деньги с адреса, вы публично раскрываете часть открытого ключа пары ключей. Этот открытый ключ можно легко преобразовать либо в сжатую, либо в несжатую форму (в зависимости от того, какая она), и теперь можно связать другой адрес, который он генерирует. Это также открывает возможность того, что кто-то может попытаться получить закрытый ключ из открытого ключа. Хотя нет известных атак на шифр эллиптической кривой secp256k1, который использует Биткойн, адреса по-прежнему обеспечивают уровень защиты, даже если обнаружена уязвимость. Адреса генерируются из криптографических хэшей открытого ключа (с добавлением некоторой контрольной суммы для предотвращения опечаток при трате), поэтому невозможно получить дажеоткрытый ключ пары ключей с адреса. Как только вы потратите средства с этого адреса и раскроете открытый ключ, вас больше не будет волновать, взломает ли кто-то этот ключ. Вы не будете использовать его снова.

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

Таким образом, основная проблема, помимо аспекта конфиденциальности, заключается в раскрытии открытого ключа после совершения транзакции с использованием закрытого ключа?
Это, и действительно нет причин для повторного использования. Это ничего вам не даст.