¿Está bien encadenar múltiples transacciones no confirmadas?

¿Está bien encadenar y transmitir múltiples transacciones no confirmadas?
Por ejemplo: tengo dos UTXO confirmados UC1y UC2. Usando ambos como entradas, luego creo y transmito la transacción T1, que genera UT1. Luego, usando UT1y otro UTXO confirmado, UC3creo y transmito T2, que genera UT2. Hago un seguimiento del último UTXO no confirmado de las transacciones que construí y sigo construyendo y transmitiendo otros nuevos.

En segundo lugar, ¿se extraerán las transacciones encadenadas en el mismo bloque?

Respuestas (2)

En principio, esto funcionará, pero Bitcoin Core limita por defecto tales cadenas: una transacción no ingresará al mempool de un nodo de Bitcoin Core si tiene más de 25 ancestros o más de 25 descendientes.

Hay desventajas en las largas cadenas de transacciones frente a las tarifas oscilantes. En primer lugar, si las tasas de interés aumentan, no puede simplemente cancelar una sola transacción más urgente: tendría que cancelarla junto con todos sus antecesores. En segundo lugar, el encadenamiento de transacciones es algo incompatible con RBF—tocar cualquiera de las transacciones anteriores rompe todas las transacciones posteriores porque sus entradas dejan de existir y tiene que pagar suficientes tarifas para reemplazar las tarifas de todas las transacciones descendientes para ser admitido en el mempool. En tercer lugar, si el mempool de un nodo se queda sin espacio, primero eliminará las transacciones con tarifas bajas. Si se descarta una de sus transacciones anteriores, toda la cadena que la sigue será inadmisible para los mempools (predeterminados) hasta que obtengamos algo como retransmisión de paquetes, o el mempool se relaje a un nivel en el que la transacción pueda retransmitirse.

Las formas de evitar esto son llevar siempre las transacciones principales a la tarifa objetivo de las transacciones de seguimiento (que no es trivial de calcular y puede generar un pago excesivo en el caso de dos hijos a los mismos antepasados), o tener siempre exactamente una salida desde la que encadenas.

En el caso de que tenga suficiente volumen de transacciones para garantizar el encadenamiento de transacciones, le recomendaría que utilice el procesamiento por lotes de pagos.: retrase los retiros (u otros pagos) por unos minutos, pero luego haga múltiples en una sola transacción. El procesamiento por lotes de pagos tiene una huella de peso de bloque mucho más pequeña por pago (y, por lo tanto, tarifas más bajas por pago), hace que la administración de UTXO sea mucho más fácil, porque necesita menos entradas por pago, tiene menos fondos en tránsito porque solo crea una única salida de cambio por lote en lugar de por pago, y tal vez pueda renunciar por completo al uso de entradas no confirmadas, lo que le permite usar RBF y CPFP para aumentar las transacciones cuando se retrasan, incluso cuando las inicia con tarifas mucho más bajas. Además, si bien el encadenamiento de transacciones comenzaría a fallar debido a los límites en el tamaño de los ancestros, el procesamiento por lotes de pagos se vuelve más eficiente con un mayor volumen.

En segundo lugar, ¿se extraerán las transacciones encadenadas en el mismo bloque?

Sí, si la transacción secundaria paga una tarifa más alta que sus antepasados, es probable que se elijan como un paquete en función de la tarifa descendiente. Si las transacciones posteriores pagan la misma tarifa o una tarifa más baja, se puede incluir a un padre sin hijos.

¡Muchas gracias por la explicación detallada! La agrupación de pagos tiene mucho sentido. Luego puedo esperar a que se confirme la transacción y usar su UTXO confirmado como entrada. ¿Hay alguna limitación para la cantidad máxima de entradas o salidas a las que debo prestar atención?
Las transacciones pueden tener cientos de entradas y salidas. En su mayoría, están limitados por el límite de peso de transacción estándar de 400 000 unidades de peso (lo que permite más de 1400 entradas P2WPKH o más de 2000 salidas). Agregué un enlace a una publicación de blog sobre procesamiento por lotes con más consideraciones y detalles.

El problema del doble gasto es una de las principales preocupaciones de cualquier desarrollador de criptomonedas. Esto se refiere a la ocurrencia de una persona que gasta un saldo de criptomonedas más de una vez, lo que resulta en una discrepancia entre el registro de gastos y la cantidad de criptomoneda disponible, así como también la forma en que se distribuye. y verifique dos veces su seguridad también. Referencia: https://learncrypto.com/knowledge-base/basics/cryptocurrency-scarcity-trust-in-modern-money