¿Cómo funcionan las firmas digitales?

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 “ladrillos” 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 paso a paso cómo es una firma digital:

  1. Cuando quieres enviar bitcoin, 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 un función hash.
  3. La función hash produce una salida conocida como “hash del mensaje” o simplemente “hash“.
  4. Este hash de mensaje es entonces encriptado con su clave privada.
  5. En encriptado se convierte en el “firma digital“.

He aquí un diagrama de flujo de este proceso:

Cómo se crea una firma digital

Así que al final de este proceso, su cartera ha creado dos “artículos”:

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

Por el momento, todavía no se ha enviado nada a la red Bitcoin.

Por si no te has dado cuenta, el propio mensaje de transacción es necesario como “ingrediente” para crear la firma digital.

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

Esto significa que no puede utilizar esta firma digital para otra transacción. Si intentara utilizar 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 concreta.

¿Cómo se verifica una firma digital?

Con el fin de gastar bitcoins desde una dirección Bitcoin concreta, hay que demostrar la “propiedad” (o el conocimiento) de la clave privada asociada a la clave pública asociado a ese dirección.

Pero quieres hacer esto sin tener que revelar su clave privada.

firma digital es algo que puede utilizar para PRUEBE que conoce la clave privada que está conectada a una clave pública, sin tener que revelar la clave privada real.

Veamos si esto funciona:

  1. Cuando usted inicia una transacción Bitcoin, el software de su monedero proporciona en realidad tres “elementos” a la red Bitcoin: el original mensaje de transacción, El firma digital, y su clave pública (que está vinculada a la dirección en la que se almacena actualmente el bitcoin que desea enviar).
  2. Una vez que un nodo Bitcoin recibe estos “artículos”, los separará.
  3. Tomará el mensaje original de la transacción y lo ejecutará a través de la misma función hash que usted utilizó anteriormente. (Todo el software de Bitcoin utiliza la misma función hash.) En cuanto a la firma digital, utilizará la clave pública que usted proporcionó para descifrarla.
  4. A continuación, se compararán ambos hashes.
  5. ¿Ambos hashes coinciden exactamente?
  6. Si ambos hashes coinciden, esto demuestra que usted es el propietario real del bitcoin que desea enviar.

He aquí un diagrama de flujo de este proceso:

Cómo se verifica una firma digital

Aquí hay que señalar dos cosas:

1. Poder 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 demuestra 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 público significa que lo he cifrado con mi privado llave.

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

2. Los hash que coinciden exactamente prueban que el mensaje no ha sido alterado.

En el paso 6, la comprobación de que ambos hashes coinciden exactamente garantiza que el mensaje original no se ha alterado.

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

Recuerda, cualquier pequeño cambio produciría un hash totalmente diferente. Así que si alguien interceptara el mensaje original de la transacción en su camino hacia un nodo y lo modificara (como 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.

Al igual que una firma manuscrita vincula a una persona con un documento concreto, una “firma digital” que utiliza criptografía....criptográficamente….vincula la identidad a un mensaje específico.

Resumen

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

Proceso de firma digital