formato de testigo bip143

en bip143 definen una firma de testigo. En el primer ejemplo hay un testigo desglosado

witness    00
               02 47304402203609e17b84f6a7d30c80bfa610b5b4542f32a8a0d5447a12fb1366d7f01cc44a0220573a954c4518331561406f90300e8f3358f51928d43c212a8caed02de67eebee01 21025476c2e83188368da1ff3e292e7acafcdb3566bb0ad253f62fc70f07aeee6357

este formato no parece estar definido en ninguna parte de este documento? mi pregunta es especificamente

  1. cual es la segunda pieza entera "21025476c2e83188368da1ff3e292e7acafcdb3566bb0ad253f62fc70f07aeee6357"
  2. la primera parte es la firma, pero ¿cuáles son los bytes adicionales en el frente y terminan específicamente en 0x47 y 0x01?
  3. ¡¿Lo más importante es que la firma es demasiado larga?! it is 70 bytes instead of 64. "304402203609e17b84f6a7d30c80bfa610b5b4542f32a8a0d5447a12fb1366d7f01cc44a0220573a954c4518331561406f90300e8f3358f51928d43c212a8caed02de67eebee" I was able to take the example private key, public key, and sighash and sign and verify so I know they are good, unless they aren't using SECP256k1 but that doesn't appear para ser especificado en cualquier lugar?

¡¡Muchas gracias por adelantado!!

Respuestas (1)

este formato no parece estar definido en ninguna parte de este documento?

El formato sigue el script estándar de Bitcoin. La principal diferencia entre la pila de testigos y el script tradicional de Bitcoin es que, en lugar de enviar cosas a la pila a través de un script, simplemente se proporciona la pila. Entonces, todas las codificaciones son como si fuera un script de Bitcoin.

cual es la segunda pieza entera "21025476c2e83188368da1ff3e292e7acafcdb3566bb0ad253f62fc70f07aeee6357"

Esa es la clave pública, antepuesta con su longitud.

la primera parte es la firma, pero ¿cuáles son los bytes adicionales en el frente y terminan específicamente en 0x47 y 0x01?

0x47es la longitud de la firma, incluido el byte adicional al final

0x01es un byte específico de Bitcoin llamado tipo sighash. Esto como una enumeración que indica qué datos deben incluirse en el mensaje que se codifica para la firma, también conocido como sighash.

¡¿Lo más importante es que la firma es demasiado larga?! es de 70 bytes en lugar de 64.

No, esta firma está codificada en DER , por lo que termina habiendo bytes adicionales para indicar el tipo y la longitud.

¡Usted es un erudito y un santo, señor! ¡Gracias de nuevo!