Distintos mensajes de error en "Falló el indicador de verificación de secuencia de comandos obligatoria".

He estado jugando con transacciones sin procesar y transacciones firmadas y me he dado cuenta de que el error "Falló el indicador de verificación de secuencia de comandos obligatoria" se presenta en dos variaciones.

  1. el script falló en OP_EQUALVERIFY OP
  2. El script se evaluó sin errores pero finalizó con un elemento de pila superior falso/vacío.

Ahora, parece que se da el error número uno cada vez que intento enviar una transacción con el TXID o número de índice incorrecto. El segundo error puede aparecer cuando proporciono la firma incorrecta.

¿Pero no son ambos errores solo una variante de una falla en la ejecución de OP_EQUALVERIFY? ¿En qué paso de la evaluación se arroja cada error y qué podemos hacer con él?

Apreciaré mucho cualquier sugerencia que pueda tener. Realmente lucho aquí para diferenciar los dos.

Respuestas (2)

¿Pero no son ambos errores solo una variante de una falla en la ejecución de OP_EQUALVERIFY? ¿En qué paso de la evaluación se arroja cada error y qué podemos hacer con él?

No, son errores diferentes. Hay dos reglas que deben ser satisfechas aquí:

  1. El hash de la clave pública debe coincidir con un cierto valor. (Una falla aquí significa que tiene la clave incorrecta o no tiene ninguna clave).
  2. La firma debe ser válida para el mensaje y la clave pública. ( OP_CHECKSIGno genera un error inmediatamente. Devuelve 0, lo que hace que el script falle).

También hay otros errores de script. Consulte esta lista: https://github.com/bitcoin/bitcoin/blob/master/src/script/script_error.cpp

Estaba enfrentando el mismo problema mientras creaba una transacción sin procesar. Recibí el mensaje: obligatorio-script-verify-flag-failed

(Script failed an OP_EQUALVERIFY operation)

Me doy cuenta de que el problema detrás es que estoy firmando con una clave errónea que no estaba relacionada con la UTXO. Tuve que hacer una copia de seguridad de la clave vinculada a la dirección UTXO usando dumpprivkey y firmar con ella.