Estudié muchos enlaces sobre bitcoin trxs y sobre la generación de scriptSig. Finalmente no pude entender cómo hacer esta parte.
por ejemplo leí estos enlaces:
¿Cuál es la relación entre scriptSig y scriptPubKey?
https://bitcoin.org/en/developer-guide#transactions
¿Cómo se crea un scriptsig para un nuevo tx sin formato?
¿Cómo crear la parte <sig> <PubK> en "scriptSig"?
http://www.righto.com/2014/02/bitcoins-hard-way-using-raw-bitcoin.html
https://en.bitcoin.it/wiki/Protocol_documentation#tx
https://en.bitcoin.it/wiki/Transacción
Descubrí que debo firmar una cosa, pero ¿qué es esa cosa?
exactamente y paso a paso ¿Qué debo armar para luego firmarlo?
especialmente si tuviera más de 1 entrada, ¿cómo hacer sigscript?
Tengo una biblioteca que hace la operación de firma por mí. sin embargo, no sé qué estructura debo usar para el mensaje que se va a firmar, especialmente cuando hay múltiples salidas.
Los datos a firmar se denominan Hash Preimage . Luego firmas el doble SHA256 de hash preimage, que tiene una longitud de 256 bits. Antes del hashing, los datos deben formarse como se muestra en esta respuesta . Si está firmando una transacción SegWit, el contenido de la preimagen cambia, como se define en BIP 143 .
Entonces puedes usar las fórmulas aquí , Eq. 2:
(x1, y1) = k × G(x, y) mod p
r = x1 mod n
k
es un número aleatorio, G
es el generador, p
es el módulo primo, etc.
Entonces,
s = (k^-1 (h(m) + d * r)) mod n
d
es la clave privada, h(m)
es el resultado doble SHA256. Ahora, puede usar r
, s
para crear la firma codificada en DER.
saeid ezzati
MCCCS
hashOutputs
.saeid ezzati
MCCCS
saeid ezzati