Durante la ejecución de Bitcoin Script, ¿cuál es el significado de la verificación de la firma en la pila?

Durante la ejecución del script, es decir, ScriptSig + ScriptPub, el último paso es la verificación de la firma con la clave pública proporcionada por el destinatario. ¿Cómo funciona esto y cuál es la importancia de verificar dos entidades que pertenecen al mismo usuario?

Respuestas (1)

Cómo funciona esto

Bitcoin utiliza el algoritmo de firma digital de curva elíptica . El algoritmo se describe en Wikipedia (enlazado). Bitcoin usa específicamente la curva elíptica secp256k1.

¿Cuál es el significado de verificar dos entidades que pertenecen al mismo usuario?

No hay dos entidades.

La firma prueba que el propietario de la clave privada que corresponde a la clave pública creó la firma sobre un mensaje determinado. En el caso de Bitcoin, el mensaje es el hash de la transacción (excluyendo las propias firmas porque aún no existen). Esto garantiza que la persona que gasta el producto pueda hacerlo y garantiza la integridad de la transacción de gasto en sí.

Está bien, pero según tengo entendido, tanto la firma como la clave pública son proporcionadas por la misma dirección. Entonces, ¿cómo puede ser a prueba de tontos?
El scriptPubKey de la salida que se gasta especifica que la clave pública debe tener un hash especificado por scriptPubKey.
¿Puede por favor elaborar? Soy un principiante en Blockchain y Bitcoin.
Cada entrada debe hacer referencia a la salida de una transacción anterior de la que gasta. Esa salida contiene un script de salida que se llama scriptPubKey. Ese scriptPubKey se combina con el script de entrada, scriptSig, y se ejecuta como un programa. La scriptPubKey generalmente especifica el hash de la clave pública que puede gastar la salida de la transacción. La persona que gasta esa salida no tiene control sobre scriptPubKey; lo proporciona la persona que crea la salida.
Un mensaje similar y un enlace al libro de Andreas, porque explicar aquí todas las cosas desperdiciaría el espacio... bitcoin.stackexchange.com/questions/69062/…