transactions : Quelqu'un peut-il expliquer nLockTime ?


Le temps de verrouillage est un champ de transaction qui peut être utilisé pour empêcher qu’une transaction non finale soit incluse dans la blockchain jusqu’à un moment donné dans le futur.

Une transaction est définitive si les numéros de séquence de chaque entrée de la transaction sont définis au maximum 0xffffffff. Le temps de verrouillage est inactif sur les transactions finales.

Si au moins un numéro de séquence dans la transaction est 0xffffffffe (MAX-1) ou inférieur, la transaction n’est pas définitive et le temps de verrouillage sera appliqué selon les règles de consensus suivantes  :

transactions : Quelqu'un peut-il expliquer nLockTime ?

Si le temps de verrouillage est inférieur à 500 000 000, le temps de verrouillage est interprété comme une hauteur de bloc. Le temps de verrouillage définit la plus grande hauteur de bloc qui ne peut pas inclure la transaction. La transaction peut être incluse dans n’importe quel bloc dont la hauteur est supérieure à son temps de verrouillage.

Exemple  : Une transaction non finale a un temps de verrouillage de 800 000. La transaction est invalide jusqu’au bloc 800 000 mais peut être incluse dans le bloc 800 001 ou dans tout bloc ultérieur.

Si le temps de verrouillage est d’au moins 500 000 000, le temps de verrouillage est interprété comme une heure Unix (secondes depuis 00 :00 :00 UTC le 1er janvier 1970). Une transaction peut être incluse dans un bloc si le MedianTimePast à l’horodatage du bloc précédent est supérieur au temps de verrouillage. Le MedianTimePast fait référence à l’horodatage médian des onze derniers blocs.

Exemple  : Une transaction non finale a un temps de verrouillage de 1 702 483 200 (c’est-à-dire 2023-12-13T16 :00 :00). Le bloc 821023 (voir tableau ci-dessous) est le premier bloc avec un horodatage plus grand que ce temps de verrouillage, mais seulement après avoir trouvé un bloc où cet horodatage est l’élément médian des onze horodatages de blocs les plus récents (y compris le nouveau bloc), la transaction peut être inclus dans le bloc suivant. La transaction considérée est valide pour être incluse dans le bloc 821029 ou ultérieur, car l’horodatage du bloc 821023 est l’élément médian des horodatages des blocs 821018 à 821028 (tous deux inclus).

Hauteur Horodatage MTP Peut inclure Tx 821031 2023-12-13 17 :45 :16 2023-12-13 17 :01 :24 oui 821030 2023-12-13 17 :35 :38 2023-12-13 16 :49 :14 oui 821029 2023-12-13 17 :35 :24 2023-12-13 16 :19 :05

Oui

821028 2023-12-13 17 :33 :46

2023-12-13 16 :02 :03

non 821027 2023-12-13 17 :21 :32 2023-12-13 15 :56 :00 non 821026 2023-12-13 17 :01 :24 2023-12-13 15 :41 :28 non 821025 2023-12- 13 16 :49 :14 2023-12-13 15 :29 :58 non 821024 2023-12-13 16 :19 :05 2023-12-13 15 :24 :19 non 821023

2023-12-13 16 :02 :03

2023-12-13 15 :18 :50 non 821022 2023-12-13 15 :56 :00 2023-12-13 15 :10 :06 non 821021 2023-12-13 15 :41 :28 2023-12-13 15 :04 :59 non 821020 2023-12-13 15 :29 :58 2023-12-13 14 :59 :44 non 821019 2023-12-13 15 :24 :19 2023-12-13 14 :51 :59 non 821018 2023-12-13 15 :18 :50 2023-12-13 14 :28 :53 non 821017 2023-12-13 15 :10 :06 2023-12-13 14 :25 :51 non 821016 2023-12-13 15 :04 :59 2023-12-13 14 :21 :23 non

Étant donné que les horodatages sont uniquement limités à être supérieurs au MTP du bloc précédent et inférieurs à 2 heures dans le futur de l’heure réseau du bloc d’évaluation, une séquence triée des horodatages peut ne pas nécessairement avoir le même ordre que les hauteurs des blocs correspondants.