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:
txAtiene una sola salida gravada por10 OP_CSVlo que significa que esta salida solo se puede incluir en una transacción que se extrae 10 bloques después detxAse confirmatxBgasta 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:
txAtiene una sola salida gravada por10 OP_CSVlo que significa que esta salida solo se puede incluir en una transacción que se extrae 10 bloques después detxAse confirmatxBgasta 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!