Explicación técnica exhaustiva de firma y verificación.

Me disculpo por una pregunta tan novata y me avergüenzo de no haber entendido esto todavía, pero parece que no puedo juntar todas las piezas. He leído todas las preguntas que puedo encontrar sobre el tema, el artículo de Satoshi y bitcointalk.

¿Cómo se firma exactamente una transacción?

¿Cómo se verifica exactamente una transacción? Simplemente no puedo entender cómo se puede confirmar que las transacciones seguras firmadas con claves privadas que presumiblemente son desconocidas para todos los demás son válidas y correctas sin conocer realmente la clave privada en sí. Por favor, muéstrame en detalle cómo funciona esto.

Sé que esto parece un engaño, pero he leído todas las preguntas relacionadas y simplemente no puedo llegar a ese momento "ah, ja" que lo pone todo junto.

¿Estás buscando una explicación que involucre código?
@ColinDean ¡Gracias por mirar a Colin Dean! ¡Los segmentos de código de Bitcoin o cualquier otro alt válido serían perfectos! ¡Muchas gracias de antemano!

Respuestas (1)

Esto debería ayudarlo a comenzar con la verificación de clave pública: ** Firma digital

En esencia, la dirección de bitcoin es la clave pública. Se crea un hash de la transacción y este valor luego se cifra utilizando la clave privada que solo conoce el propietario de la dirección de bitcoin. Cualquiera puede usar la clave pública (la dirección de bitcoin) para descifrar este valor hash y determinar que la transacción no se ha modificado creando un hash de la transacción y luego comparándolo con el valor descifrado. Esto tiene un doble propósito: protege contra la modificación de la transacción y prueba que el creador de la transacción tiene acceso a la clave privada de la dirección de bitcoin.

¡Gracias, ScripterRon! He visto ese vínculo y me siento bastante cómodo con los diversos esquemas de encriptación, pero lo que falla es el descifrado, la verificación de la transacción. ¿No es necesaria la clave privada? Lo mejor que puedo comprobar por mí mismo, es que la verificación de transacciones no descifra por completo, sino que simplemente descifra hasta cierto nivel de certeza según la dificultad. ¿Es eso correcto? Si es así o no, ¿podría proporcionar más detalles al respecto? ¡Muchas gracias por toda su ayuda hoy!
Cifras los datos con la clave pública y los descifras con la clave privada. Los datos cifrados no se pueden leer y solo el propietario de la clave privada puede verlos. Firma los datos con la clave privada y los verifica con la clave pública. Los datos en sí no están encriptados y todavía se pueden leer. Lo que está encriptado es un hash de los datos. Las transacciones en el bloque no están encriptadas y cualquiera puede verlas. La dificultad de la red se refiere a la cantidad de ceros iniciales en el hash del bloque y no está relacionada con las firmas de transacciones.
¡Muchas gracias ScripterRon por decirlo claramente! Finalmente encontré el código, me aclaré la cabeza y volví a leer su enlace y otros sobre encriptación. Cifrar con la clave privada, descifrar con la clave pública. DUH!