Nonce

Temps de lecture: 2 minuti

Un Nonce fait référence à un nombre ou une valeur qui ne peut être utilisé qu'une seule fois.

Les nonces sont souvent utilisés dans les protocoles d'authentification et dans fonctions de hachage cryptographiques. Dans le contexte de la technologie blockchain, un nonce fait référence à un nombre pseudo-aléatoire utilisé comme compteur lors du processus d'extraction.

Par exemple, les mineurs de Bitcoin doivent essayer de deviner un nonce valide tout en faisant plusieurs tentatives pour calculer un hachage de bloc qui répond à certaines exigences (c'est-à-dire commence par un certain nombre de zéros). Lors de la compétition pour miner un nouveau bloc, le premier mineur qui trouve un nonce qui aboutit à un hachage de bloc valide a le droit d'ajouter le bloc suivant dans la blockchain - et est récompensé pour le faire.

En d'autres termes, le processus d'extraction se compose de mineurs exécutant une myriade de fonctions de hachage avec de nombreuses valeurs nonce différentes jusqu'à ce qu'une sortie valide soit produite. Si la sortie de hachage d'un mineur tombe en dessous du seuil prédéterminé, le bloc est considéré comme valide et est ajouté à la blockchain. Si la sortie n'est pas valide, le mineur continue d'essayer avec différentes valeurs nonce. Lorsqu'un nouveau bloc est extrait et validé avec succès, le processus recommence.

Dans Bitcoin - et dans la plupart des systèmes de preuve de travail - le nonce n'est qu'un nombre aléatoire que les mineurs utilisent pour itérer la sortie de leurs calculs de hachage. Les mineurs utilisent une approche par essais et erreurs, où chaque calcul prend une nouvelle valeur nonce. Ils font cela parce que la probabilité de deviner avec précision un nonce valide est proche de zéro.

Le nombre moyen de tentatives de hachage est automatiquement ajusté par le protocole pour garantir que chaque nouveau bloc est généré - en moyenne - toutes les 10 minutes. Ce processus est connu sous le nom de ajustement de la difficulté et c'est ce qui détermine le seuil d'extraction (c'est-à-dire combien de zéros le hachage de bloc doit avoir pour être considéré comme valide). La difficulté d'extraction d'un nouveau bloc est liée à la quantité de puissance de hachage (taux de hachage ou hashrate) engagé dans un système blockchain. Plus la puissance de hachage dédiée au réseau est élevée, plus le seuil sera élevé, ce qui signifie que plus de puissance de calcul sera nécessaire pour être un mineur compétitif et performant. Inversement, si les mineurs décident d'arrêter l'exploitation minière, la difficulté sera ajustée et le seuil baissera, donc moins de puissance de calcul sera nécessaire pour miner, mais le protocole fera en sorte que la génération de blocs suive un calendrier de 10 minutes, peu importe.