Glosario / Transacciones y comisiones
Transacción estándar
- ¿Qué es una transacción estándar?
- Una transacción estándar es la que los nodos corrientes aceptan retransmitir y mantener en sus mempools, un requisito más estricto que el de ser simplemente válida según las reglas de consenso.
Dos controles separados protegen la red. El consenso decide qué puede contener un bloque y solo puede cambiar mediante una bifurcación; las reglas de transacción estándar deciden qué retransmitirá su nodo a sus pares y cambian cada vez que sale una nueva versión. Una transacción que no supera el segundo control no es inválida, sino que no es bienvenida, y tiene que llegar a un minero por otra vía.
Cómo funciona
Las reglas de transacción estándar son una lista de comprobación que cada nodo aplica por su cuenta, y la versión de esa lista que usa Bitcoin Core vive en un único archivo de código fuente, src/policy/policy.cpp.
Las condiciones principales son estas. Todo script de bloqueo debe coincidir con una plantilla reconocida: "pay to public key hash", "pay to script hash", los tres tipos de testigo, multisig simple con no más de tres claves o una única salida portadora de datos. La transacción no puede superar las 400.000 unidades de peso, que son 100.000 bytes virtuales, la cuarta parte de un bloque lleno. Su versión debe estar dentro del rango aceptado. Su comisión debe alcanzar la comisión mínima de retransmisión, 1 satoshi por byte virtual de forma predeterminada. Ninguna salida puede ser menor que el límite de polvo, 546 satoshis para una salida heredada (legacy) y 294 para una SegWit nativa. Los scripts de desbloqueo solo pueden contener inserciones de datos, sin opcodes (códigos de operación).
Incumplir cualquiera de ellas hace que la llamada RPC sendrawtransaction devuelva un error concreto, que suele empezar por la palabra "non-mandatory-script-verify-flag" o "scriptpubkey", y la transacción nunca se propaga más allá del nodo al que se envió.
La capa de política existe porque la retransmisión es gratuita y los bloques no lo son. Cualquiera puede inundar la red con transacciones que nunca se minarán, así que los nodos se niegan a transportar formas que parecen abuso, que son caras de validar o que, siendo realistas, no pueden pagar lo que cuestan. La política es también el lugar donde los experimentos se mantienen fuera de la circulación general hasta que el ecosistema coincida en que son seguros, y por eso relajar una regla de política puede ser tan polémico como una bifurcación blanda (soft fork), pese a no requerir coordinación alguna.
Dónde aparece
La mayoría de la gente se encuentra con las reglas de transacción estándar en forma de mensaje de error, y las billeteras que lo provocan suelen estar haciendo algo inusual a propósito.
Intentar enviar una salida de 300 satoshis chocará con la regla de polvo. Construir un multisig grande como script simple, en lugar de dentro de "pay to script hash", chocará con la regla de las plantillas. Adjuntar más datos de los que permite la configuración de salidas portadoras de datos de un nodo chocará con ese límite. Los tres casos vuelven como un rechazo de su propio nodo antes de que nada llegue a la red.
No estándar no significa imposible, y ahora existe un mercado para sortearlo. El 2 de febrero de 2023, el pool de minería Luxor minó el bloque 774.628, que contenía una única transacción de 3,94 megabytes que ningún nodo habría retransmitido, enviada directamente al pool. Más tarde, en 2024, Marathon convirtió la misma idea en un producto llamado Slipstream, que acepta transacciones no estándar y de tamaño excesivo para incluirlas directamente. Si usted es un comprador corriente, nunca necesitará esto, y que le pidan usar un servicio así es un fuerte indicio de que pasa algo raro.
Transacción estándar frente a una transacción válida según el consenso
La validez según el consenso es aquello en lo que toda la red debe estar de acuerdo; las reglas de transacción estándar, aquello con lo que un nodo concreto elige ayudar. Una transacción puede ser válida según el consenso y no estándar, y en ese caso un minero puede incluirla y todos los nodos aceptarán el bloque resultante sin quejarse. Lo contrario no puede ocurrir: nada que rompa el consenso se retransmite nunca, porque de todos modos jamás podría minarse. Dicho de forma sencilla, las reglas de transacción estándar son un filtro en el camino hacia el minero, y el consenso es la regla que decide si la historia se ha extendido correctamente.