¿Qué pasaría si creara una gran cantidad de transacciones grandes con un valor muy alto nLockTime
?
¿Algo me impediría llenar no solo los mineros, sino también los mempool de los nodos regulares ?
¿Los mineros abandonarían las transacciones con una tarifa de transacción irrazonablemente alta nLockTime
y baja?
¿Qué haría BitcoinCore?
No hay límite de tamaño para el mempool por lo que puedo encontrar. Podría ser posible inundarlo pero bastante difícil y costoso/lento. Veo dos enfoques:
A) tarifa mínima de retransmisión
Llevaría un tiempo generar tantas direcciones y tx y transmitirlos. También costaría al menos 3200BTC.
B) 0 txs de tarifa con una salida mínima de 0.01 para que aún se retransmitan
Mempool está bloqueado por un limitador de velocidad para tx gratis:
// Continuously rate-limit free transactions
// This mitigates 'penny-flooding' -- sending thousands of free transactions just to
// be annoying or make others' transactions take longer to confirm.
// Use an exponentially decaying ~10-minute window:
// -limitfreerelay unit is thousand-bytes-per-minute
// At default rate it would take over a month to fill 1GB
Entonces esto será al menos muy lento. También necesita tener 320 000 BTC para 8 GB. :)
Puede haber formas de agrandar artificialmente txs. Los clientes alternativos pueden hacer las cosas de manera diferente.
nLockTime
no se retransmitirán hasta que se alcance la altura del bloque antes de que se puedan incluir o hasta que se alcance la marca de tiempo en el nLockTime
. Por lo tanto, no es posible un ataque de inundación de mempool con transacciones bloqueadas.Las transacciones de Locktime que aún no son válidas no se retransmiten y posiblemente incluso se eliminen. Es responsabilidad del remitente y/o receptor almacenar las transacciones hasta que sean válidas y luego difundirlas.
Bitcoin Core no considerará válidas las transacciones con una nLockTime
fecha establecida o una altura de bloque en el futuro hasta que haya pasado la marca de tiempo o se haya alcanzado la altura de bloque antes de que sean válidas. Solo en este punto, los nodos completos los mantendrán en sus mempools y los reenviarán.
Por lo tanto, no es posible un ataque de inundación de mempool con transacciones bloqueadas.
muro