Algoritmo de firma de transacción

Como sé, el algoritmo de firma digital ECDSA estándar devuelve dos valores (según este artículo o Wikipedia), pero los servicios de inserción de transacciones o API, como este , requieren una cadena como firma. ¿Alguien puede explicar qué es esa cadena y cómo puedo obtenerla con esos valores? ¿Es posible con OpenSSL? ¡Muchos gracias!

Respuestas (1)

El esquema de firma digital ECDSA devuelve dos valores. Para ser específicos, se devuelven los valores X e Y calculados en la curva elíptica.

En Bitcoin, la firma está codificada en DER, que se representa como una cadena que contiene los valores X e Y y también algunos datos de encabezado. Pero tanto X como Y se pueden extraer fácilmente al leer la cadena de izquierda a derecha.

De hecho, el protocolo Bitcoin utiliza más información que solo la relativa a los valores X e Y. Por ejemplo, se especifica el tamaño de la firma codificada DER, pero también se utiliza el llamado tipo de firma para definir para qué parte de la transacción se calculó la firma.

Eche un vistazo aquí en la sección "Firma de la transacción" para ver exactamente cómo funciona. En la tabla, verá cómo se utiliza una firma calculada en un scriptSig.

Los detalles relacionados con la codificación DER se discutieron aquí .