He pasado por las muchas preguntas relacionadas aquí en Stack Alternate y obviamente leí BIP68 y BIP112, pero aún así no puedo llegar a una respuesta clara para la siguiente pregunta: qué está evitando una transacción que gasta una salida gravada por OP_CSV
desde establecer un arbitrariamente alto nSequence
¿valor?
Imaginemos el siguiente escenario:
txA
tiene una sola salida gravada por10 OP_CSV
lo que significa que esta salida solo se puede incluir en una transacción que se extrae 10 bloques después detxA
se confirmatxB
gasta una sola entrada, que es la única salida creadatxA
La función que realiza la verificación es
template
bool GenericTransactionSignatureChecker::CheckSequence(const CScriptNum& nSequence) const
{
// Relative lock occasions are supported by evaluating the handed
// in operand to the sequence variety of the enter.
const int64_t txToSequence = (int64_t)txTo->vin(nIn).nSequence;
...
omitted logic
...
// Now that we all know we're evaluating apples-to-apples, the
// comparability is a straightforward numeric one.
if (nSequenceMasked > txToSequenceMasked)
return false;
return true;
}
¿Por qué debería la transacción de gasto? no poder establecer nSequence
para la entrada de tal manera que txToSequenceMasked
siempre es más alto que nSequenceMasked
? ¿Qué está evitando exactamente esto? Siento que me estoy perdiendo algo obvio aquí.
Ojalá mi pregunta tenga sentido, ¡gracias!
He pasado por las muchas preguntas relacionadas aquí en Stack Alternate y obviamente leí BIP68 y BIP112, pero aún así no puedo llegar a una respuesta clara para la siguiente pregunta: qué está evitando una transacción que gasta una salida gravada por OP_CSV
desde establecer un arbitrariamente alto nSequence
¿valor?
Imaginemos el siguiente escenario:
txA
tiene una sola salida gravada por10 OP_CSV
lo que significa que esta salida solo se puede incluir en una transacción que se extrae 10 bloques después detxA
se confirmatxB
gasta una sola entrada, que es la única salida creadatxA
La función que realiza la verificación es
template
bool GenericTransactionSignatureChecker::CheckSequence(const CScriptNum& nSequence) const
{
// Relative lock occasions are supported by evaluating the handed
// in operand to the sequence variety of the enter.
const int64_t txToSequence = (int64_t)txTo->vin(nIn).nSequence;
...
omitted logic
...
// Now that we all know we're evaluating apples-to-apples, the
// comparability is a straightforward numeric one.
if (nSequenceMasked > txToSequenceMasked)
return false;
return true;
}
¿Por qué debería la transacción de gasto? no poder establecer nSequence
para la entrada de tal manera que txToSequenceMasked
siempre es más alto que nSequenceMasked
? ¿Qué está evitando exactamente esto? Siento que me estoy perdiendo algo obvio aquí.
Ojalá mi pregunta tenga sentido, ¡gracias!