nLockTime est la première fonction de verrouillage de temps que Bitcoin possédait depuis sa création et conçue par Satoshi Nakamoto, comme un moyen d'autoriser des transactions planifiées et déclenchées par des paramètres de temps dans le protocole Bitcoin.
Ul'une des propriétés les plus intéressantes qu'il possède Bitcoin sont verrouillage horaire ou timelock comme l' nLockTime. Ce type de fonctionnalité permet aux utilisateurs de définir le moment exact où une transaction peut être validée et confirmée sur le réseau. Une qualité qui transforme Bitcoin en monnaie numérique programmable. Par exemple, en mettant en œuvre contrats intelligents ou contrats intelligents. Tout cela est possible grâce au fait que Bitcoin dispose d'un puissant langage de programmation appelé Script Bitcoin.
Donc nous devons nLockTime est un verrou temporel absolu au niveau de la transaction. Cela permet de définir le moment à partir duquel une transaction peut être validée et incluse dans un bloc valide du blockchain. C'est-à- nLockTime spécifie l'heure à partir de laquelle une transaction peut être validée et validée.
Ce type de verrouillage horaire est essentiel à la mise en œuvre de transactions programmables dans le système Bitcoin. Cela permet qu'une fois les conditions établies dans un contrat définies et remplies, les transactions puissent être exécutées automatiquement et sans intermédiaires.
De même, nLockTime est le seul verrou horaire présent depuis la mise en œuvre du client Bitcoin d'origine, le Bitcoin Core. Par conséquent, ce champ est inclus dans chaque transaction. Cependant, dans les clients et portefeuilles Bitcoin, le champ nLockTime est prédéterminé avec la valeur 0. Donc, si ce champ n'est pas modifié, les transactions peuvent être incluses dans n'importe quel bloc valide de la blockchain.
Comment fonctionne nLockTime?
Le verrou de temps nLockTime définit un intervalle de temps minimum pour qu'une transaction soit validée et incluse dans un bloc. Par conséquent, cette fonction est implémentée et utilisée afin d'éviter l'extraction d'une transaction avant que l'heure spécifiée dans le verrou établi ne soit atteinte. Et sinon, le réseau invalide simplement ladite transaction en évitant son traitement.
Dans le client Bitcoin d'origine, ce verrou permettait uniquement de définir les conditions de verrouillage en fonction de la hauteur du bloc. Par conséquent, les nœuds de réseau ne pouvaient pas inclure les transactions avec nLockTime tant que la hauteur de bloc minimale établie dans le verrou n'était pas atteinte.
Plus tard, nLockTime a été ajusté afin que les conditions de verrouillage basées sur le temps puissent être appliquées aux transactions Bitcoin. Qui fonctionnent actuellement sur la base une demi-heure et pas dans le propre horodatage du bloc. Ainsi, nLockTime nécessite alors qu'un intervalle de temps défini s'écoule ou qu'une certaine hauteur de bloc soit atteinte avant que la transaction puisse être validée.
Pour sa part, dans nLockTime, le verrou est affiché sous la forme d'un entier 32 bits, où:
- Si nLockTime est inférieur à 500.000.000 XNUMX XNUMX, il est compris comme un verrouillage horaire basé sur une hauteur de bloc. Où, seulement une fois que cette hauteur de bloc est atteinte ou dépassée, la transaction peut être confirmée dans un bloc valide.
- Si nLockTime est supérieur à 500.000.000 XNUMX XNUMX, il est compris comme un verrouillage horaire basé sur le temps, qui sera mesuré en Heure UNIX. Où, seulement une fois que cet horodatage est égalé ou dépassé, la transaction peut être confirmée dans un bloc valide.
En outre, nLockTime permet à une transaction d'être verrouillée pendant jusqu'à 9.500 2.106 ans lorsqu'il s'agit d'un verrou temporel basé sur la hauteur du bloc. Alors que pour les verrous basés sur un intervalle de temps, nLockTime peut définir un verrou sur l'un pendant jusqu'à XNUMX ans.
Implémentation de NLockTime
Comme nLockTime ne permettra qu'une transaction soit extraite et ajoutée à un bloc valide une fois qu'une hauteur ou un temps de bloc défini est atteint ou dépassé, ce verrou est utilisé pour définir et planifier des transactions qui ne seront confirmées que dans le futur. Il est donc largement utile pour créer des contrats intelligents.
La particularité de nLockTime permet que si l'une des parties impliquées dans le contrat ne se conforme pas, les transactions planifiées peuvent être changées ou modifiées, avant que le temps limité ne soit écoulé ou que la hauteur de bloc ne soit atteinte et que les transactions ne soient exécutées. En cas d'éventualité, de défaut ou simplement si l'une des parties décide de changer d'avis, une nouvelle transaction sans blocage peut être établie pour invalider la transaction qui a le temps de blocage. Tant que les mêmes sorties utilisées comme entrées dans la transaction avec le verrou nLockTime défini sont utilisées comme entrées.
Ainsi, la nouvelle transaction créée, puisqu'elle n'a pas de temps de blocage établi, sera validée et confirmée dans l'un des blocs suivants immédiatement après sa création.
Contrats intelligents ou canaux de paiement sans confiance
D'autre part, grâce à nLockTime, vous pouvez créer canaux de paiement Ils ne nécessitent ni confiance ni tiers. Par exemple, si un adresse multi-signature 2/2 dans lequel des bitcoins sont déposés pour effectuer des paiements progressivement à l'une des parties impliquées, les deux parties auront la possession d'une des clés d'adresse.
L'utilisateur A, avant de déposer des bitcoins à l'adresse multi-signature avec laquelle l'utilisateur B sera payé, peut configurer une transaction nLockTime à une certaine hauteur de bloc ou définir un horodatage.
L'utilisateur A aura donc la possession de l'une des clés, et l'utilisateur B aura la possession de l'autre clé de l'adresse. Ainsi, l'utilisateur A peut signer une transaction lorsqu'il souhaite effectuer un paiement à l'utilisateur B; placer les bitcoins dans une prise qui nécessite la signature des deux parties (utilisateurs A et utilisateur B), mais ne les transmet pas au réseau. Au moyen du hachage de cette première transaction, l'utilisateur B crée une deuxième transaction qui passe la première et renvoie les bitcoins à l'utilisateur A via l'adresse multi-signature. À ce stade, comme les deux parties doivent signer, la transaction ne peut pas être complétée. Aucune des parties ne peut donc dépenser les bitcoins.
Comme le champ nLockTime est défini avec une hauteur de bloc ou un horodatage, la transaction peut être retournée à l'utilisateur A. Cela au cas où les conditions du contrat ne sont pas remplies et la transaction n'est pas signée par les deux parties comme requis. Par conséquent, le dépôt effectué peut être récupéré, une fois le blocage défini écoulé, si l'autre partie impliquée ne se conforme pas aux travaux ou agit de manière erronée.
Que savez-vous, cryptonuta?
NLockTime est-il le moyen le plus simple de verrouiller le temps Bitcoin?VRAI!
nLockTime est la première et la plus élémentaire forme de verrouillage temporel dans Bitcoin et une fonctionnalité conçue par Satoshi Nakamoto lui-même.
nLockTime et CLTV En quoi sont-ils différents?
Dans Bitcoin, il existe plusieurs formes de blocage de temps ou de timelocks. Ces opérations permettent à Bitcoin d'avoir des transactions ou des opérations qui peuvent être planifiées. Et cela peut être par rapport à une unité de temps (décrite comme un horodatage) ou à une certaine hauteur de bloc (activation avec hauteur de bloc). Grâce à eux, un TX peut être envoyé et il ne peut être validé qu'une fois la condition de temps ou de hauteur spécifiée atteinte.
Un exemple de cet utilitaire pourrait être que Maria souhaite envoyer un paiement à Daniel. Mais ledit paiement ne peut être effectué que 15 heures après l'émission de la transaction. Pour ce faire, María émet la transaction en utilisant la fonction nLockTime. Cela garantit que la transaction ne peut être traitée que 15 heures après son émission. Assez utile pour dire la vérité.
Mais que faire si nous devons effectuer des opérations plus complexes? Eh bien dans ce cas, nLockTime ne nous permet pas de faire des choses plus complexes. Donc, pour sauver cette situation, les développeurs Bitcoin ont créé CLTV ou CheckLockTimeVerify. Cette OP_CODE ou code opération vous permet d'utiliser la valeur de nLockTime (le bloc de temps ou la valeur de bloc) et d'ajouter une planification supplémentaire. C'est-à-dire, CLTV nous permet d'ajouter une série de conditions supplémentaires qui doivent être remplies pour que la transaction soit validée. CLTV peut même modifier ces conditions si les conditions initiales ne sont pas remplies, permettant ainsi de débloquer le paiement dans d'autres conditions déjà programmées.
Un exemple clair de l'utilisation de CLTV est un fonds bitcoin protégé par une adresse multi-signature. Si lesdits fonds ne sont pas mobilisés dans un certain délai, la CLTV pourra modifier les conditions de déblocage desdits fonds. Nous pouvons donc convertir une adresse multi-signature 2 sur 3 en une adresse multi-signature 1 sur 3. Avec laquelle seule une signature valide suffirait pour pouvoir accéder auxdits fonds.