Tangem Wallet Pack of 2 - Secure Crypto Wallet - Trusted Cold Storage for Bitcoin, Ethereum, NFT's &

Tangem Wallet Pack of 2 - Secure Crypto Wallet - Trusted Cold Storage for Bitcoin, Ethereum, NFT's &
Key item features Ultimate Security: Generates a private key that remains on the card, safeguarding crypto and NFTs from hackers with EAL6+ certification and audited firmware. Versatile Compatibility: Manages over 13,000 tokens across 70+ blockchains, supporting DeFi, NFTs, and DeEx without wires, Bluetooth, or USB. Effortless Operation: Utilizes NFC for secure transactions via a mobile device and the Tangem app, enabling buying and selling crypto with various payment methods. Smart Backup: Features a second Tangem Wallet as a backup, eliminating the need for paper, pictures, or seed phrases for recovery. Durable Design: Boasts IP68 protection against environmental conditions, ensuring longevity and robust physical security. Comprehensive Support: Compatible with Bitcoin, Ethereum, Solana, XRP, USDT, and over 6,000 cryptocurrencies, integrating with dApps and WalletConnect.

LBANK

What prevents an arbitrarily high nSequence value when spending an OP_CSV output?

I have gone through the many related questions here on stack exchange and obviously read BIP68 and BIP112, but I still cannot seem to come to a clear answer for the following question: what is preventing a transaction that spends an output encumbered by OP_CSV from setting an arbitrarily high nSequence value?

Let's imagine the following scenario:

  • txA has a single output encumbered by 10 OP_CSV, meaning this output can only be included in a transaction that is mined 10 blocks after txA is confirmed
  • txB spends a single input, which is the one output created from txA

The function that performs the check is

template <class T>
bool GenericTransactionSignatureChecker<T>::CheckSequence(const CScriptNum& nSequence) const
{
    // Relative lock times are supported by comparing the passed
    // in operand to the sequence number of the input.
    const int64_t txToSequence = (int64_t)txTo->vin[nIn].nSequence;

    ...
    omitted logic
    ...

    // Now that we know we're comparing apples-to-apples, the
    // comparison is a simple numeric one.
    if (nSequenceMasked > txToSequenceMasked)
        return false;

    return true;
}

Why should the spending transaction not be able to set nSequence for the input in such a way that txToSequenceMasked is always higher than nSequenceMasked? What exactly is preventing this? I feel like I'm missing something obvious here.

Hopefully my question makes sense, thanks!



from Recent Questions - Bitcoin Stack Exchange https://ift.tt/nEXkSFw
via IFTTT

Popular posts from this blog

Crypto Exec Warns Tokenization Is Moving Faster Than Expected

Bitcoin Mining Could Be Strengthening The Ruble, Russian Central Bank Says

Nigerian SEC Partners With Police To Tackle Crypto Ponzi Schemes – Details