130 / 691CSV

CHECKSEQUENCEVERIFY

CSV impõe um bloqueio relativo para uma entrada específica. A demora depende da confirmação da saída gasta, não da criação da carteira ou da assinatura da transação.

Segundo BIP 112, OP_CHECKSEQUENCEVERIFY verifica o argumento do script contra nSequence da entrada. BIP 68 depois impõe a idade correspondente da saída; são verificações ligadas, não pagamento automático.

CSV restringe nSequence da entrada gasta. Não mede sozinho a idade UTXO; BIP 68 usa o histórico de confirmação para impedir inclusão precoce. [BIP 112 — OP_CHECKSEQUENCEVERIFY] [BIP 68 — Relative lock-time]

Para argumento comum sem sinalizador de desativação, CSV exige versão de transação pelo menos 2 e bit 31 de nSequence desligado. Argumento negativo ou sequence incompatível causa falha. [BIP 112 — OP_CHECKSEQUENCEVERIFY] [Bitcoin Core v29.0 — Script interpreter]

O bit 22 distingue blocos e tempo. Ligado, a unidade equivale a 512 segundos; tempo é codificado em passos de 512 segundos. Tipos de argumento e nSequence devem coincidir. [BIP 68 — Relative lock-time]

Os 16 bits inferiores codificam a demora com máscara 0x0000ffff. CSV compara esse intervalo e o tipo, não a ordem dos números nSequence inteiros sem máscara. [BIP 68 — Relative lock-time] [Bitcoin Core v29.0 — Script interpreter]

Se a saída confirma em H = 900000 e a demora é 10 blocos, a primeira altura candidata é H + 10 = 900010. Nove blocos não bastam; a contagem não garante minutos exatos. [BIP 68 — Relative lock-time] [Bitcoin Core v29.0 — Transaction sequence locks]

A origem temporal é Median Time Past do bloco anterior à confirmação da saída. Compara-se ao MTP antes do bloco candidato; código 2 significa pelo menos 1024 segundos entre medianas, não relógios locais. [BIP 68 — Relative lock-time] [Bitcoin Core v29.0 — Transaction sequence locks]

Demora zero não acrescenta espera, mas CSV comum mantém outras verificações. Se o argumento não negativo ativa seu próprio bit 31, CSV age como NOP; esse argumento não impõe bloqueio relativo. [BIP 112 — OP_CHECKSEQUENCEVERIFY] [Bitcoin Core v29.0 — Script interpreter]

Cada entrada tem confirmação e sequence próprios; todos os bloqueios aplicáveis devem ser satisfeitos. Reorganização pode mudar a confirmação inicial, portanto elegibilidade anterior não é irreversível. [BIP 68 — Relative lock-time] [Bitcoin Core v29.0 — Transaction sequence locks]

CSV deixa o argumento na pilha, frequentemente seguido por OP_DROP. Assinaturas e outros ramos determinam autorização; tempo não restaura chave perdida nem exclui caminho alternativo antecipado. [BIP 112 — OP_CHECKSEQUENCEVERIFY] [Bitcoin Developer Reference — Transactions]

BIP 112 introduziu CSV substituindo OP_NOP3 junto com BIP 68/113. Após a demora ainda é preciso entregar e confirmar a transação; taxas, disponibilidade de dados e estado da cadeia continuam importantes. [BIP 112 — OP_CHECKSEQUENCEVERIFY] [Bitcoin Core 0.12.1 — BIP 68/112/113 release notes]

Para ter uma visão mais completa, leia este verbete junto com CHECKLOCKTIMEVERIFY, Bitcoin Script opcode, Timelock, Bitcoin Script. Também há referências a este verbete em Confirmação, Timelock, HTLC, Bitcoin Script opcode.

DOC · 001BIP 112 — OP_CHECKSEQUENCEVERIFYEspecificação ↗DOC · 002BIP 68 — Relative lock-timeEspecificação ↗DOC · 003Bitcoin Core v29.0 — Script interpreterDocumentação ↗DOC · 004Bitcoin Core v29.0 — Transaction sequence locksDocumentação ↗DOC · 005Bitcoin Developer Reference — TransactionsDocumentação ↗DOC · 006Bitcoin Core 0.12.1 — BIP 68/112/113 release notesDocumentação ↗
Fontes em primeiro lugar · Não é recomendação de investimento