¿Firmar un mensaje debilita la seguridad de la dirección?

¿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?

Hubo una edición sugerida en esta publicación para cambiar las instancias de "clave privada" a "clave pública" ya que, por supuesto, la clave privada nunca se revela. Rechacé la edición sugerida ya que abordar este malentendido es el punto principal de la respuesta, que entonces tendría mucho menos sentido.

Respuestas (1)

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.

Gracias por su respuesta. Supongo que dejaré pasar ese obsequio de Stellar Lumens que requiere un mensaje de firma. Mejor prevenir que lamentar.
Creo que "más vale prevenir que curar" aquí es engañoso. Los ataques basados ​​en conocer la clave pública son puramente teóricos y no conozco ninguna razón para pensar que se volverán prácticos en un futuro previsible. Sí, también podría evitar revelar la clave pública si no hay razón para hacerlo . Pero si, como en su caso, hay algo que ganar al hacerlo, entonces eso probablemente supere los riesgos insignificantes.
Si bien ECDSA técnicamente no tiene una prueba de seguridad, comúnmente se asume que a un atacante se le permite ver una cantidad arbitrariamente grande de firmas con una determinada clave, en los mensajes que elija, y aún así no podría obtener la clave privada o falsificarla de otro modo. una firma. Creo que esta respuesta es incorrecta por esa razón.
respuesta actualizada con respecto a los comentarios de Nate Eldredge y @PieterWuille.
De hecho, es casi imposible piratear un ataque para obtener la clave privada después de que se usa una dirección en una transacción, teóricamente hablando. Así como teóricamente hablando, es imposible tener una colisión, pero el proyecto Large Bitcoin Collider ha colisionado hasta ahora con más de 50 direcciones. Tanto por ser teórico que no funciona en la práctica. Entonces, ¿por qué la gente recomienda usar una nueva dirección con cada nueva transacción si el hackeo es imposible? Sugerir el uso de una nueva dirección con cada nueva transacción y decir que es imposible piratear la clave privada suena muy contradictorio.
LBC solo encontró claves que se generaron con generadores de números aleatorios rotos. La razón para no reutilizar las direcciones es, ante todo, la privacidad. En el improbable caso de una ruptura de la criptografía EC, puede ofrecer cierta protección adicional siempre que los mineros no tengan acceso a un medio para romper la EC.