Description
Cet article propose un vision plus approfondie des Nonces, de la manière dont ils aident la Blockchain à maintenir l'ordre des Blocs tout en empêchant leur duplication.
Hypothèses faites
Cet article suppose que le lecteur comprend les informations contenues dans les articles suivants :
Résumé
Dans la plupart des blockchains, on distingue deux types de Nonces : le "Nonce de Compte" et le "Nonce de Preuve de Consensus". Le "Nonce de Compte" agit comme une file d'attente pour les transactions associées à l'adresse d'un portefeuille. Le premier bloc ajouté se voit attribuer un "Nonce de Compte" de 1, le second de 2, et ainsi de suite. En conservant un enregistrement des Nonces de compte, tout système interagissant avec la chaîne peut déterminer le prochain "Nonce de Compte" pour maintenir l'ordre.
Les Nonces de type "Preuve de Consensus" sont des nombres calculés pour créer le "Next Hash" souhaité à partir du bloc actuel. Une fois le "Nonce de Compte" déterminé, le "Hash Précédent" est enregistré, puis les transactions sont écrites. Un bloc nécessite un "Next Hash" pour que la chaîne puisse progresser. Comme le "Next Hash" doit commencer par une séquence spécifique, comme "0x0000", le seul moyen d'y parvenir est d'ajouter un nombre au bloc jusqu'à ce que le "Next Hash" généré satisfasse cette exigence. Ce nombre généré est appelé le "Nonce de Preuve de Consensus".
Lorsque les validateurs traitent les transactions de la Blockchain, ils effectuent souvent les calculs nécessaires pour déterminer le futur "Nonce" d'un bloc afin de l'ajouter à la chaîne. Les validateurs réussissant à déterminer le bloc suivant sont généralement récompensés par la crypto-monnaie de la Blockchain.
Les Nonces renforcent la sécurité des transactions en empêchant la duplication exacte d'une transaction pour une utilisation ultérieure, appelée "Attaque par Réexécution". Dans ce type d'attaque, une personne malveillante copie une transaction approuvée, en modifiant une partie à son avantage. Comme le "Nonce de Preuve de Consensus" doit être calculé pour être intégré à la chaîne, l'original doit être enregistré en premier.
La "Nonce de Compte" garantit également l'unicité de la transaction et l'impossibilité de la copier pour une soumission ultérieure. Il prévient également les transactions identiques ou simultanées, connues sous le nom de "Double Dépense", où un utilisateur peut tenter de renvoyer une transaction plusieurs fois pour dépenser plus que le montant qu'il possède dans son portefeuille. Chaque transaction ayant son propre "Nonce de Compte", la Blockchain n'acceptera qu'une seule transaction et rejettera les autres si elle détecte le même "Nonce" dans plusieurs transactions. Les "Nonce de Compte" assurent la sécurité en garantissant l'unicité, tandis que les "Nonce de Preuve de Consensus" signent les Hashs pour protéger les blocs contre les attaques de type "Replay Attack".