¿Cómo se pueden verificar las transacciones sin la clave privada?

Tratando de entender su Bitcoin real aquí...

Entiendo que los bloques de transacciones se transmiten a la red y que los mineros verifican que el BC es 'prescindible' rastreando la cadena de bloques y siguiendo el historial de transacciones de la dirección de la billetera (o al menos supongo que así es como funciona).

Pero, ¿cómo se verifica realmente que la transacción de BC ha sido firmada por su propietario cuando los mineros no tienen acceso a la clave privada? En pocas palabras, ¿cómo puede llevarse a cabo la verificación sin procesar tanto las claves públicas como las privadas?

Probablemente estoy malinterpretando el cifrado PKI, pero (digamos) con SSH, la clave privada estaría en un servidor confiable y la verificación se realizaría en ese servidor. ¿Cómo puede funcionar eso en una red distribuida?

SSH utiliza criptografía de clave pública en dos contextos: los clientes que prueban al servidor que son quienes dicen ser y los servidores que prueban a los clientes que son quienes dicen ser. ¿Con cuál estás tratando de hacer una analogía?
@NickODell Estaba siendo un poco denso con esta analogía. Estaba olvidando que la clave privada nunca se envía al servidor; simplemente se usa para cifrar un mensaje bipartidista entre las máquinas.

Respuestas (2)

Las transacciones de Bitcoin no están encriptadas, están firmadas criptográficamente.

Puede usar un par de claves pública/privada de 2 maneras: (advertencia de simplificación masiva)

  • Cifrar un mensaje con una clave pública y luego descifrarlo con una clave privada
  • Firma un mensaje usando una clave privada y valida la firma con la clave pública

El segundo método es el que utiliza Bitcoin. Se coloca un mensaje en el libro mayor distribuido de que se han enviado bitcoins de X a Y (y normalmente Z), y firmado por la clave privada de X. X es la dirección de bitcoin de origen, Y es el destino y Z es la dirección de cambio .

Tal vez incluso tenga en cuenta que el algoritmo que Bitcoin utiliza para las firmas (ECDSA) ni siquiera se puede utilizar para el cifrado. Mucha gente piensa que firmar es "simplemente cifrar con la clave privada en lugar de la clave pública", pero eso solo funciona para RSA.

Bitcoin scriptSig lleva todo lo que necesita para satisfacer la scriptPubKey que grava una salida. Como tales, se les considera apátridas, es decir, autónomos.

Cada vez que se necesita verificar una firma, la clave pública se expone en el script, lo que proporciona a otros nodos lo que necesitan para validar la transacción.