Puedo leer en BIP0016 wiki la Especificación P2SH
Las transacciones que canjean estos puntos de salida de pago por secuencia de comandos solo se consideran estándar si la secuencia de comandos serializada, también conocida como redimirScript, es, en sí misma, uno de los otros tipos de transacciones estándar.
Las reglas para validar estos puntos de salida al retransmitir transacciones o considerarlas para su inclusión en un nuevo bloque son las siguientes:
La validación falla si hay otras operaciones además de las operaciones de "inserción de datos" en scriptSig. Se realiza una validación normal: se crea una pila inicial a partir de las firmas y el {script serializado}, se calcula el hash del script y la validación falla inmediatamente si no coincide con el hash en el punto de salida. {script serializado} se extrae de la pila inicial y la transacción se valida nuevamente utilizando la pila extraída y el script deserializado como scriptPubKey. Las reglas para validar estos puntos de salida al retransmitir transacciones o considerarlas para su inclusión en un nuevo bloque son las siguientes:
La validación falla si hay otras operaciones además de las operaciones de "inserción de datos" en scriptSig. Se realiza una validación normal: se crea una pila inicial a partir de las firmas y el {script serializado}, se calcula el hash del script y la validación falla inmediatamente si no coincide con el hash en el punto de salida. {script serializado} se extrae de la pila inicial y la transacción se valida nuevamente utilizando la pila extraída y el script deserializado como scriptPubKey. ...
Pero en el libro de Antonopoulos puedo leer
Antes de la versión 0.9.2 del cliente Bitcoin Core, Pay-to-Script-Hash estaba limitado a los tipos estándar de scripts de transacción de bitcoin, mediante la función isStandard(). Eso significa que el script de canje presentado en la transacción de gasto solo podría ser uno de los tipos estándar: P2PK, P2PKH o de naturaleza multifirma, excluyendo RETURN y P2SH en sí. A partir de la versión 0.9.2 del cliente Bitcoin Core, las transacciones P2SH pueden contener cualquier script válido, lo que hace que el estándar P2SH sea mucho más flexible y permite la experimentación con muchos tipos de transacciones novedosas y complejas.
Ahora, estoy usando 0.19.0 y puedo crear un script personalizado y confiar en él en mi entorno de registro. la pregunta es: ¿Puede el BIP0016 estar obsoleto? Y si es así, ¿dónde puedo ver qué BIP se volvió obsoleto?
En general, los cambios en las reglas de las políticas no se especifican en los BIP. Dependen de los clientes individuales de todos modos.
BIP16 no está obsoleto, aunque su descripción de las reglas de estandarización en Bitcoin Core ya está desactualizada. Sin embargo, sus reglas de consenso (es decir, lo que es válido en un bloque, no lo que se transmitirá como transacciones individuales) no se modificaron desde que se activó en 2012; cualquier otra cosa sería una bifurcación dura.
En lo que respecta a la política en Bitcoin Core, en la versión 0.10.0 (2014), la estandarización relajada para los gastos de P2SH, permite que cualquier script use hasta 15 comprobaciones de firma. Se realizaron varios cambios posteriores a la estandarización (incluidas todas las bifurcaciones blandas afectadas por el script (CLTV, CSV, Segwit) acompañadas de la realización de los gastos correspondientes estándar), pero ninguno tan fundamental.
Las reglas de estandarización actuales (Bitcoin Core v0.19.0) para los gastos P2SH incluyen:
monoUsuario
acceptnonstdtxn
en mi conf.pieter wuille
monoUsuario
monoUsuario
pieter wuille