Ослабляет ли подписание сообщения безопасность адреса?

Будет ли подписание сообщения (без выполнения какой-либо $-транзакции) раскрывать закрытый ключ для блокчейна точно так же/подобно тому, как закрытый ключ раскрывается для блокчейна, когда вы выполняете $-транзакцию?

Дело в том, что выполнение транзакции немного ослабляет безопасность адреса, потому что закрытый ключ раскрывается в блокчейне. Это одна из причин, по которой смена/новый адрес используется при каждой транзакции.

А как насчет того, чтобы просто подписать сообщение? Будет ли это немного ослаблять безопасность адреса?

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

Ответы (1)

Шифрование с открытым/закрытым ключом требует, чтобы закрытый ключ никогда не раскрывался — владелец должен держать его в секрете.

Подписание сообщений и транзакций выполняется закрытым ключом и проверяется соответствующим открытым ключом. Таким образом, закрытый ключ никогда не раскрывается блокчейну . Обратите внимание, что открытый ключ здесь относится к полному открытому ключу ECC, а не к биткойн-адресу, который представляет собой хэшированное и преобразованное представление открытого ключа. Открытый ключ может быть получен из биткойн-адреса только в том случае, если алгоритмы хэширования SHA256 иripMD-160 когда-либо будут взломаны. Этот вопрос исследует проблему.

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

Комментарии к этому ответу сообщили об обновленной позиции:

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

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

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

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

Насколько мне известно, единственный тип биткойн-транзакций, который раскрывает открытые ключи, — это Pay-To-Public-Key-Hash (P2PKH), который содержит полный открытый ключ в своем скрипте.

Спасибо за ваш ответ. Думаю, я пропущу эту раздачу Stellar Lumens, которая требует подписания сообщения. Лучше перестраховаться, чем сожалеть.
Я думаю, что «лучше перестраховаться, чем сожалеть» здесь вводит в заблуждение. Атаки, основанные на знании открытого ключа, носят чисто теоретический характер, и я не знаю причин полагать, что они станут практическими в обозримом будущем. Да, вы могли бы также не раскрывать открытый ключ, если для этого нет причин . Но если, как в вашем случае, этим можно что-то выиграть, то это, вероятно, перевешивает незначительные риски.
Хотя технически ECDSA не имеет доказательств безопасности, обычно предполагается, что злоумышленнику разрешено видеть произвольно большое количество подписей с определенным ключом в сообщениях, которые он выбирает, и он все равно не сможет получить закрытый ключ или иным образом подделать подпись. Я считаю, что этот ответ неверен по этой причине.
ответ обновлен с учетом комментариев Нейта Элдреджа и @PieterWuille.
Действительно, теоретически практически невозможно взломать закрытый ключ после того, как адрес используется в транзакции. Точно так же, как теоретически, коллизия невозможна, но проект Большого биткойн-коллайдера уже столкнул более 50 адресов. Так много теоретического, что не работает на практике. Так почему же люди рекомендуют использовать новый адрес при каждой новой транзакции, если взлом невозможен? Предлагать использовать новый адрес с каждой новой транзакцией, говоря о невозможности взлома закрытого ключа, звучит очень противоречиво.
LBC нашел только те ключи, которые были сгенерированы неисправными генераторами случайных чисел. Причина отказа от повторного использования адресов — прежде всего конфиденциальность. В маловероятном случае крипто-взлома EC он может обеспечить некоторую дополнительную защиту, если у майнеров нет доступа к средствам взлома EC.