This article has been translated from English to Spanish.

En esta lección, vamos a aprender cómo funciona realmente una firma digital en Bitcoin y otras criptomonedas.

Para llegar a este punto, primero hemos tenido que aprender varios conceptos técnicos, ya que son los «bloques de construcción» necesarios para crear una firma digital:

Si NO estás familiarizado con estos conceptos, se explicaron de forma sencilla en lecciones anteriores. Explora los enlaces anteriores para obtener más información.

¿Cómo se crea una firma digital?

Veamos cómo se crea una firma digital paso a paso:

  1. Cuando quieres enviar bitcoins, tu monedero crea un mensaje de transacción. Este mensaje contiene información como la cantidad de bitcoins que deseas enviar y la dirección del destinatario.
  2. Este mensaje se ejecuta a través de una función hash.
  3. La función hash produce un resultado conocido como«hash del mensaje» o simplemente«hash».
  4. Este hash de mensajese cifra con tu clave privada.
  5. El hash del mensaje cifrado se convierte enla «firma digital».

Aquí tienes un diagrama de flujo de este proceso:

How a Digital Signature is Created

Así que al final de este proceso, tu cartera ha creado dos «elementos»:

  1. Mensaje de transacción
  2. Firma digital (un hash cifrado del mensaje de transacción)

En este punto, todavía no se ha enviado nada a la red Bitcoin.

Por si no te has dado cuenta, el mensaje de transacción en sí es necesario como «ingrediente» para crear la firma digital.

Así que no solo usas tu clave privada para crear una firma digital... usas tu clave privada Y el hash del mensaje de transacción.

Esto significa que no puedes usar esta firma digital para otra transacción. Si intentaras usar esta firma digital en una segunda transacción, sería rechazada por la red Bitcoin porque la firma digital se basa únicamente en los datos de la primera transacción.

Cada firma digital es única para una transacción específica.

¿Cómo se verifica una firma digital?

Para gastar bitcoins de una dirección de Bitcoin concreta, hay que demostrar la «propiedad» (o conocimiento) de la clave privada que está emparejada con la clave pública asociada a esa dirección.

Pero quieres hacerlo sin tener que revelar tu clave privada.

Una firma digital es algo que puedes usar para PROBAR que conoces la clave privada que está conectada a una clave pública, sin tener que revelar la clave privada real.

Veamos cómo funciona:

  1. Cuando inicias una transacción de Bitcoin, el software de tu monedero proporciona tres «elementos» a la red Bitcoin: el mensaje de transacción original, la firma digital y tu clave pública (que está vinculada a la dirección donde se almacena actualmente el bitcoin que deseas enviar).
  2. Una vez que un nodo de Bitcoin recibe estos «elementos», los separará.
  3. Tomará el mensaje de transacción original y lo ejecutará a través de la misma función hash que utilizaste anteriormente. (Todo el software de Bitcoin utiliza la misma función hash). En cuanto a la firma digital, utilizará la clave pública que proporcionaste para descifrarla.
  4. A continuación, se compararán ambos hashes.
  5. ¿Coinciden exactamente ambos hashes?
  6. Si ambos hash coinciden, esto demuestra que eres el verdadero propietario del bitcoin que deseas enviar.

Aquí tienes un diagrama de flujo de este proceso:

How a Digital Signature is Verified

Hay dos cosas que señalar aquí:

1. Ser capaz de descifrar con la clave pública demuestra la identidad del remitente.

En el paso 3, una vez que un nodo es capaz de descifrar la firma digital, esto prueba tu «identidad».

Recuerda que, dado que una clave privada y una clave pública están vinculadas matemáticamente, si eres capaz de descifrar un mensaje con mi clave pública, eso significa que yo lo cifré con mi clave privada.

Si no pudiste descifrar el mensaje, significa que fue cifrado con la clave privada de otra persona. Y eso significa que el mensaje no vino de mí.

2. Los hashes que coinciden exactamente demuestran que el mensaje no ha sido alterado.

En el paso 6, al comprobar que ambos hashes coincidan exactamente, se garantiza que el mensaje original no ha sido alterado.

Esto es importante saberlo porque, a diferencia de la firma digital, que está cifrada, el mensaje de transacción original está en texto plano porque todas las transacciones de Bitcoin son públicas para que todos las vean.

Recuerda que cualquier cambio, por pequeño que sea, produciría un hash totalmente diferente. Así que si alguien interceptara el mensaje de transacción original de camino a un nodo y lo modificara (por ejemplo, para enviar el bitcoin a su dirección en su lugar), cuando el mensaje pasara por la función hash, produciría un hash totalmente diferente al de la firma digital.

De forma similar a como una firma manuscrita vincula a una persona con un documento específico, una «firma digital» que utilizacriptografía... criptográficamente... vincula la identidad con un mensaje específico.

Resumen

Ahora que entiendes cómo se crea una firma digital y cómo se verifica, aquí tienes una visión general de lo que significa realmente «firmar» una transacción y cómo se utiliza la «firma digital» del remitente para verificar la propiedad de los bitcoins que desea enviar:

Digital Signature Process