SegWit está destinado a ser compatible con versiones anteriores. Cuando un bloque SigWit se transmite a un nodo que no es SegWit, la parte testigo se elimina. Si este es el caso, ¿no sería inválido ya que el nodo que no es SegWit no ve ningún testigo/firma en la entrada de la transacción?
Entonces, ¿ la salida se cambia a salida cualquiera puede gastar? Si es así, ¿qué impide que lo gaste alguien que no sea el destinatario previsto?
Entonces, ¿la salida se cambia a salida cualquiera puede gastar? Si es así, ¿qué impide que lo gaste alguien que no sea el destinatario previsto?
No, no se cambia.
Una salida de SegWit es cualquiera puede gastar desde la vista de los nodos antiguos . Esto significa que para ellos, se puede gastar legalmente sin firma.
Para los nuevos nodos , tiene un significado diferente y requiere un testigo (válido) para gastar. Los nodos que se preocupan por las salidas de SegWit hacen cumplir esta regla y no aceptarán una cadena de bloques que gaste sin dicho testigo.
Si es así, ¿qué impide que lo gaste alguien que no sea el destinatario previsto?
La mayoría de los nodos (los que se han actualizado) rechazarían esta transacción. Todos los mineros rechazarían esta transacción por temor a que su bloque (y la recompensa del bloque) fueran rechazados.
Sin embargo, puede bifurcarse en una cadena que gasta esos productos, si lo desea.
sinotrinidad
pieter wuille
sinotrinidad
pieter wuille
sinotrinidad
scriptPubKey
desde la salida UTXO, el antiguo nodo que no es SegWit aún necesitascriptSig
/witness en la entrada, que falta. Entonces tratará la transacción como inválida, ¿no? ¿SescriptPubKey
elimina de la salida, como el testigo de la entrada?pieter wuille
scriptPubKey
salidas de SegWit se pueden gastar usando un archivoscriptSig
. Sin embargo, para los nodos SegWit se requiere un testigo válido para gastar. Los nodos antiguos no saben ni se preocupan por los testigos, y aceptarán sin ninguna firma (esa es la definición de cualquiera puede gastar).sinotrinidad
pieter wuille