¿Firmar un mensaje (sin realizar ninguna transacción en $) revelará la clave privada de la cadena de bloques de la misma manera o similar que la clave privada se revela en la cadena de bloques cuando realiza una transacción en $?
El punto es que hacer una transacción debilita un poco la seguridad de la dirección porque la clave privada se revela a la cadena de bloques. Esa es una de las razones por las que se usa cambio/nueva dirección con cada transacción.
Pero, ¿qué hay de simplemente firmar un mensaje? ¿Eso también debilitará un poco la seguridad de la dirección?
El cifrado de clave pública/privada requiere que la clave privada nunca se revele; el propietario debe mantenerla en secreto.
La firma de mensajes y transacciones se realiza con la clave privada y se verifica con la clave pública asociada. Entonces, la clave privada nunca se revela a la cadena de bloques . Tenga en cuenta que la clave pública aquí se refiere a la clave pública ECC completa, y no a una dirección de Bitcoin, que es una representación transformada y cifrada de la clave pública. La clave pública solo se puede derivar de una dirección de Bitcoin si los algoritmos hash SHA256 y ripeMD-160 alguna vez se rompen. Esta pregunta explora el desafío.
Para responder a su pregunta: Sí, cada nueva firma producida por una clave privada puede acercar a un atacante, que ya conoce la clave pública asociada, a descubrir la clave privada.
Los comentarios a esta respuesta han informado una posición actualizada:
Aunque no existe una seguridad comprobable para ECDSA, comúnmente se asume que, incluso con el conocimiento de múltiples firmas producidas por una clave en particular, un atacante no tendrá mayores probabilidades de obtener la clave privada asociada o de falsificar su firma.
Es una tarea casi imposible descubrir una clave privada de Bitcoin a partir de su clave pública. Una respuesta a esta pregunta ilustra matemáticamente el desafío.
Algunas personas aconsejan una actitud de "más vale prevenir que lamentar": que las claves públicas no deben revelarse, siempre que sea posible. Sin embargo, la precaución no debe desalentar la utilidad práctica, como se señala en los comentarios a continuación.
La mejor práctica, como usted dice, es cambiar las claves con frecuencia y preferiblemente usar una nueva dirección para cada transacción de recepción. Si desea que alguien pueda verificar una firma, por supuesto, necesitará su clave pública.
Que yo sepa, el único tipo de transacción de Bitcoin que revela claves públicas es Pay-To-Public-Key-Hash (P2PKH), que contiene la clave pública completa en su script.
muro