Lectura del BIP:
https://github.com/bitcoin/bips/blob/master/bip-0142.mediawiki
Veo que el scriptPubKey en una transacción que financia un canje de segwit es el mismo que un P2PKH normal pero simplemente se antepone con OP_0
.
¿Es este código de operación lo que les dice a los clientes más antiguos que el Tx es "cualquiera puede gastar", lo que significa que no habrá datos de firma en el Tx de canje?
Por supuesto, los nodos actualizados sabrán buscar el scriptSig real en los datos testigo para verificar el Tx. Pero, ¿cómo engaña esto OP_0
a los nodos antiguos para que ignoren el scriptSig en el Tx de redención?
No está anteponiendo un script con OP_0. Es un envío de datos que contiene el hash del programa testigo, precedido por OP_0.
Los nodos antiguos evaluarán esto como un script que simplemente inserta dos elementos de datos en la pila (un 0 y un hash). Obviamente, todos pueden gastarlo, ya que el requisito es tener un elemento distinto de cero como último elemento en la pila.
cabeza de alfiler
pieter wuille
cabeza de alfiler
pieter wuille
cabeza de alfiler
pieter wuille
simone bronzini
pieter wuille
(flags & SCRIPT_VERIFY_CLEANSTACK) != 0
condicional, que solo se establece para verificar la estandarización, no el consenso. Entonces, si bien los clientes antiguos no transmitirían tales transacciones, son absolutamente válidas dentro de un bloque.