16 de ago. de 2021

NLockTime, enviando Bitcoin para o futuro.

Entendendo o que é Block Time?

O tempo de bloco (aka Block Time), no contexto da cripto moeda, é uma medida do tempo que leva para produzir um novo bloco, ou arquivo de dados, em uma rede blockchain.

É o tempo que leva para validar a existência de um novo lote de tokens. Por exemplo, se você está minerando bitcoins, é hora de validar novos bitcoins.

Teoricamente, cada rede tem seu próprio tempo de bloco definido. Por exemplo, o tempo de bloco da rede Bitcoin é de cerca de 10 minutos, enquanto o tempo de bloqueio da rede Ethereum é de cerca de 13 segundos.

Compreendendo o "nLockTime" do protocolo Bitcoin

nLockTime é um parâmetro de uma transação, que, se alguma entrada indicar isso (por ter nSequence diferente de UINT_MAX, valor máximo permitido em uma variável inteira não sinalizada), exige um tempo mínimo (especificado em tempo UNIX ou altura de bloco), antes do qual a transação não pode ser aceita em um bloco. Se todas as entradas em uma transação tiverem nSequence igual a UINT_MAX, então nLockTime será ignorado.

Se nLockTime <500.000.000: Especifica o número do bloco após o qual esta transação pode ser incluída em um bloco.

De outra forma: Especifica o carimbo de data / hora UNIX após o qual esta transação pode ser incluída em um bloco.

Observe que, desde a adoção do BIP 113, o nLockTime baseado em tempo é comparado ao tempo mediano de 11 blocos passado (o carimbo de data / hora mediano dos 11 blocos anteriores ao bloco em que a transação é extraída), e não o tempo do bloco em si. O tempo médio passado tende a atrasar o tempo Unix atual em cerca de uma hora (mais ou menos), mas ao contrário do tempo de bloco, ele aumenta monotonicamente.

Cancelando a transação enviada com nLockTime ativado.

Para retransmissão da transação (leia-se também Cancelando um transação) o "nLockTime" deve ser MENOR OU IGUAL a altura do bloco atual se ele for baseado em bloco ou MENOR OU IGUAL o tempo médio atual passado, se baseado em tempo. Isso garante que a transação possa ser incluída no próximo bloco e obviamente invalidando a transição anterior.

Exemplos de uso:

  • Em Cold Wallets pode ser usado para enviar cripto moedas de tempos em tempos para uma carteira "quente" (Hot Wallet), sem a necessidade de interferência de outra pessoa ou terceiro.
  • Isso implica também em enviar para carteiras de herdeiros em caso de sua falta, falecimento ou invalidez cerebral.
  • Prova de propriedade (Proof of Owner), neste caso em alguma transação que seja necessário, provar a existência e propriedade de Bitcoins em uma carteira, exemplo típico seria uma venda para alguém que deseja que você prove a sua propriedade sobre as moedas sem ter que ficar enviando "Satoshis como prova".
 


Nenhum comentário:

Postar um comentário