Qu'est-ce qu'une Signature digitale et comment fonctionne-t-elle?

Intermédiaire1/19/2024, 6:23:26 PM
Les blockchains utilisent des signatures digitales comme partie intégrante de leur processus de vérification décentralisé, créant ainsi un moyen sûr d'authentifier les processus sans exposer l'identité de l'utilisateur.

Introduction

Une signature numérique est un outil cryptographique utilisé dans des domaines tels que la cybersécurité, le commerce électronique et la distribution de logiciels. Ils fournissent une méthode pour vérifier l'origine et l'intégrité des messages numériques ou des documents.

Cependant, la technologie blockchain a popularisé l'utilisation de signatures numériques comme partie intégrante de son processus de vérification décentralisé et de transaction. Cet article examine de près le fonctionnement de la signature numérique, les différents algorithmes utilisés par les blockchains et leurs applications dans l'espace Web3.

Comprendre les signatures numériques

Source: CoinGeek

Une signature numérique est une technique cryptographique utilisée pour vérifier l'authenticité et l'intégrité des messages numériques, des documents ou des transactions. Les signatures numériques sont considérées comme plus sécurisées que les signatures électroniques.

Traditionnellement, les signatures garantissent que les accords sont juridiquement contraignants, valident les identités des parties impliquées et ont une acceptation définitive des termes du contrat. Les signatures numériques vont encore plus loin pour résoudre le problème de l'altération et de la contrefaçon, ce qui en fait une forme de signature plus sécurisée.

Fonctionnalités de la Signature numérique

Les principales caractéristiques d'une signature digitale sont :

  • Authentification : Une signature numérique prouve que le message a été envoyé par l'expéditeur prétendu en vérifiant le message avec les clés publiques de l'expéditeur.
  • Non-répudiation: Les signatures numériques utilisent les clés publiques de l'expéditeur pour décrypter la signature, si la vérification est réussie, l'expéditeur ne peut nier l'envoi du message.
  • Intégrité : La capacité de vérifier que la valeur de hachage/digeste prouve que les données n'ont pas été altérées en transit.

Cryptographie asymétrique

Source : WikiBooks

La cryptographie asymétrique est une méthode de chiffrement et de déchiffrement des données avec deux clés différentes, ce qui rend l'une des clés (c'est la clé publique) partagée ouvertement avec tout le monde. L'autre clé, appelée clé privée, est une clé confidentielle et sécurisée connue uniquement du signataire. Les données chiffrées avec l'une ne peuvent être déchiffrées qu'avec l'autre.

En cryptographie, une clé est souvent une chaîne de chiffres et de lettres, utilisée pour brouiller les données afin qu'elles semblent aléatoires. Cependant, toute personne possédant la clé adéquate pour décrypter les données peut les déchiffrer pour les ramener à leur forme originale.

Par exemple, supposons que nous prenions une image et que nous l'encryptons avec une clé; disons que la clé est 28j932d8kd8. Encryptée avec cette clé, notre image est vue comme "X5CSycg14=xJ". Cependant, en la déchiffrant avec la bonne clé, nous pouvons retrouver notre image.

Termes clés que vous devez comprendre

Hashage

Le hachage est le processus de conversion de données (textes, fichiers), une entrée de taille variable en une sortie de lettres et de chiffres de longueur fixe, en utilisant des fonctions de hachage. C'est un processus à sens unique, où les valeurs de hachage ne peuvent pas être inversées en entrée d'origine, mais le même morceau d'entrée générera toujours la même valeur de hachage.

Source: CyberHoot

Dans l'image ci-dessus, un morceau de texte (une énigme) passe à travers une fonction de hachage (SHA-256) et est converti en un hachage (une longueur fixe de chiffres et de lettres).

Qu'est-ce que les fonctions de hachage?

Un algorithme qui traite les données à signer, produisant une valeur de hachage de taille fixe. La fonction de hachage garantit que la signature reste d'une longueur fixe, quelle que soit la taille des données d'origine.

Valeur de hachage

La sortie finale de la fonction de hachage est la valeur de hachage, également appelée condensat, qui est unique à chaque entrée. La taille de la valeur de hachage varie de 32 bits à 256 bits, en fonction de la fonction de hachage utilisée. Les valeurs de hachage ne sont nécessaires que pour une seule utilisation dans des processus tels que l'authentification des données ou la création de signatures numériques. Par conséquent, une signature numérique est unique par transaction.

Comment fonctionnent les signatures numériques?

Pour exécuter une signature numérique, vous auriez besoin des éléments suivants :

  1. Une paire de clés : La paire de clés se compose d'une paire de clés publique/privée. La clé privée est utilisée pour créer une signature, et la clé publique correspondante est utilisée pour vérifier la signature.

  2. Les données à signer : Le contenu ou le message que vous souhaitez signer. Il pourrait s'agir d'un document, d'une transaction ou de n'importe quelle donnée numérique.

  3. Fonction de hachage : Une fonction de hachage est appliquée aux données pour créer une valeur de hachage de taille fixe. Cette valeur de hachage est ensuite cryptée avec la clé privée pour générer la signature numérique.

  4. Algorithme de signature numérique : Un algorithme qui combine la clé privée avec les données à signer, impliquant généralement une fonction de hachage. Cet algorithme génère la signature numérique.

  5. Mécanisme de vérification : Toute personne souhaitant vérifier la signature numérique doit avoir accès à la clé publique et au même algorithme de signature numérique. La clé publique est utilisée pour décrypter la signature numérique et révéler la valeur de hachage, qui est ensuite comparée à la valeur de hachage calculée à partir des données originales.

Comment se combinent-ils pour que cela fonctionne?

Source : CamCert — L'expéditeur signe (chiffre) la valeur de hachage avec sa clé privée, et le destinataire vérifie l'authenticité du message en comparant les valeurs de hachage

Étape 1 : Créez une valeur de hachage/digest en faisant passer les données originales par une fonction de hachage

Étape 2 : Signer le condensat avec la clé privée de l'expéditeur pour créer un chiffrement.

Étape 3 : Envoyez le fichier chiffré au destinataire, qui peut le décrypter en utilisant la clé publique de l'expéditeur pour générer un condensé.

Étape 4: Après le déchiffrement, exécutez les données à travers la même fonction de hachage pour générer un digest équivalent.

Étape 5: Valider l'intégrité des données en comparant le nouveau hachage généré avec la valeur de hachage reçue avec les données. Une correspondance confirme l'intégrité des données.

Utilisons cette illustration d'un transfert de document entre Mark l'expéditeur et Karen le destinataire.

  1. Signature et envoi : Mark lance le processus en envoyant un document. Le document est passé par un algorithme de hachage, créant une valeur de hachage. Ce résumé est ensuite crypté avec la clé privée de Mark, finalisant la signature numérique ; une combinaison du document et de sa clé privée.
  2. Réception et vérification: Karen, le destinataire, utilise la clé publique de Mark pour décrypter la signature numérique, obtenant le digest original. Indépendamment, Karen applique le même algorithme de hachage au document reçu, générant un autre digest.
  3. Karen compare les deux empreintes : l'une provenant de la signature décryptée et l'autre générée de manière indépendante. S'ils correspondent, Karen est assurée de l'intégrité du document et de l'authenticité de l'expéditeur, Mark.

Algorithmes de signature utilisés dans les blockchains

Le choix des algorithmes de signatures numériques dépend de facteurs tels que les exigences en matière de sécurité, la taille de la clé et les considérations de performance. Chaque algorithme a ses forces et ses faiblesses, et son utilisation peut évoluer en fonction des avancées en cryptographie et des défis de sécurité émergents.

Cette section traite des algorithmes de signature numérique les plus couramment utilisés dans la technologie de la blockchain.

  1. ECDSA (Elliptic Curve Digital Signature Algorithm) : Cette méthode utilise des clés plus courtes et nécessite moins de ressources informatiques et utilise des "clés de cryptographie à courbes elliptiques" qui sont des groupes finis de points sur une courbe où certaines opérations sont facilement exécutées dans une direction mais difficiles dans la direction inverse. Pour la sécurité, l'ECDSA repose sur le problème du logarithme discret. Il s'agit de l'algorithme de signature le plus populaire utilisé dans la technologie de la chaîne de blocs.

  2. EdDSA (Edwards-curve Digital Signature Algorithm): Il s'agit d'un algorithme de signature numérique moderne et efficace basé sur la cryptographie à courbe elliptique. Il a été introduit pour répondre à certaines préoccupations et améliorer les performances par rapport à d'autres schémas de signature comme l'ECDSA. L'algorithme est conçu pour fournir une sécurité robuste avec des tailles de clé relativement petites, ce qui le rend bien adapté à diverses applications, y compris la technologie blockchain par exemple Cardano et Solana.

  3. L'algorithme de Schnorr : Une signature Schnorr est un type d'algorithme de signature numérique qui permet l'agrégation, c'est-à-dire que plusieurs signatures sur le même message peuvent être regroupées en une seule signature. Cette signature est non seulement plus efficace en termes d'espace, mais facilite également un processus de vérification plus efficace.
    Il s'avère efficace dans les scénarios impliquant plusieurs parties signant un message commun, comme autoriser une transaction à partir d'une adresse multi-signature (multisig). Dans de tels cas, chaque participant doit fournir sa clé publique et sa signature. Par conséquent, si trois parties ont l'intention de signer le même message, la preuve englobera trois clés publiques et trois signatures. Cela semble inefficace en termes de calcul et de stockage, car chaque nœud doit exécuter la fonction de vérification de la signature trois fois et stocker trois ensembles distincts de signatures et de clés publiques.
    L'algorithme de Schnorr produit simplement une signature valide pour la somme de leurs clés publiques. L'agrégation de clés peut réduire les frais de gaz et améliorer la scalabilité de la couche de base car les signatures provenant d'une transaction multi-signature occupent le même espace dans un bloc que les signatures provenant d'une transaction d'une seule partie.

  4. La signature BLS : L'algorithme cryptographique BLS (Boneh-Lynn-Shacham) est basé sur des appariements bilinéaires sur des groupes de courbes elliptiques. Il a été introduit par Dan Boneh, Ben Lynn et Hovav Shacham en 2001. L'accent principal de la cryptographie BLS est mis sur des schémas de signature efficaces et sécurisés qui prennent en charge des propriétés uniques comme l'agrégation. De plus, la signature BLS est utilisée sur Ethereum 2.0 et Chia.

Blockchains, leur algorithme de hachage et algorithme de signature

  1. Bitcoin (BTC):
    Algorithme de hachage: SHA-256
    Algorithme de signature numérique: ECDSA, Schnoor (Bifurcation logicielle TapRoot)

  2. Ethereum (ETH):
    Algorithme de hachage: Keccak
    Algorithme de signature numérique: ECDSA

  3. Litecoin (LTC):
    Algorithme de hachage: Scrypt
    Algorithme de signature numérique: ECDSA

  4. Ripple (XRP):
    Algorithme de hachage: SHA-256
    Algorithme de signature numérique: ECDSA

  5. Cardano (ADA):
    Algorithme de hachage : Keccak
    Algorithme de signature numérique : EdDSA (Edwards-curve Digital Signature Algorithm)

  6. Polkadot (DOT) :
    Algorithme de hachage : Blake2
    Algorithme de signature numérique: EdDSA

  7. Tezos (XTZ) :
    Algorithme de hachage: Blake2b
    Algorithme de signature numérique: EdDSA

  8. Chaîne BNB (BNB):
    Algorithme de hachage : Keccak (utilisé pour les jetons BEP-2)
    Algorithme de signature numérique: ECDSA

Comment Bitcoin utilise les signatures digitales

Bitcoin utilise l'algorithme de signature numérique sur courbe elliptique (ECDSA) pour générer une signature unique pour chaque transaction. Cependant, avec les avancées récentes, l'algorithme de Schnorr a été introduit à travers la mise à jour logicielle TapRoot. Cet algorithme, connu pour son efficacité en termes d'efficacité de stockage et de vitesse de vérification, peut améliorer la scalabilité de Bitcoin jusqu'à 30%, avec sa fonction d'agrégation de transactions.

)

Source: TimesofIndia — Seules les transactions signées peuvent être propagées et validées par les nœuds du réseau

Le mécanisme de base des transactions Bitcoin implique une série d'étapes qui inclut l'utilisation de signatures digitales.

Voici un aperçu :

  1. L'expéditeur décide d'effectuer une transaction bitcoin, cela pourrait impliquer l'envoi de bitcoins à un autre utilisateur ou à plusieurs utilisateurs.
  2. L'expéditeur crée un message de transaction contenant des détails clés, tels que l'adresse du portefeuille du destinataire, le montant de BTC envoyé, les frais associés et l'origine du bitcoin (sorties de transaction non dépensées ou UTXO) utilisé comme entrées pour la transaction.
  3. L'expéditeur signe le message de transaction avec sa clé privée en utilisant l'algorithme de signature numérique à courbe elliptique (ECDSA). Cette signature numérique prouve que la transaction a été autorisée par le véritable propriétaire de l'adresse d'envoi.
  4. Le message de transaction est haché en utilisant le SHA-256 (algorithme de hachage sécurisé sur 256 bits) puis est à nouveau haché en utilisant le RIPEMD-160 (Race Integrity Primitives Evaluation Message Digest sur 160 bits). Ce processus génère un hachage de longueur fixe, communément appelé l'ID de transaction ou hachage.
  5. La transaction signée est diffusée sur le réseau Bitcoin, où elle devient visible pour tous les nœuds (ordinateurs participant au réseau Bitcoin). Les nœuds du réseau, y compris les mineurs, vérifient la validité de la transaction. Cette vérification comprend la vérification de la signature numérique pour s'assurer qu'elle correspond à la clé publique de l'expéditeur et que les entrées (UTXOs) utilisées dans la transaction ne sont pas dépensées et valides.
  6. Les transactions valides sont collectées par les mineurs, qui rivalisent pour résoudre un problème mathématique complexe (preuve de travail). Le premier mineur à résoudre le problème ajoute un bloc contenant les transactions vérifiées à la blockchain.
  7. Le nouveau bloc ajouté est diffusé sur le réseau, et les autres nœuds vérifient la preuve de travail et la validité des transactions dans le bloc. Une fois un consensus atteint, le bloc est considéré comme confirmé, et la transaction est enregistrée de manière permanente dans la blockchain.
  8. Le solde du portefeuille du destinataire est mis à jour pour refléter les bitcoins reçus, et le solde du portefeuille de l'expéditeur est ajusté pour tenir compte des UTXO dépensés.

Applications des signatures digitales dans Web3

Maintenant que nous comprenons le fonctionnement et l'importance des signatures. Mettons en avant les applications pratiques des signatures digitales dans la sécurisation des transactions, l'authentification des identités et la garantie de l'intégrité des données dans l'écosystème Web3.

Authentification de transaction

Prenons par exemple, Alice souhaite transférer de l'Ethereum à Bob. Elle signe la transaction avec sa clé privée, générant une signature numérique. Le réseau Ethereum vérifie la signature en utilisant la clé publique d'Alice, garantissant que la transaction est autorisée par elle. Ceci est également applicable au transfert de propriété d'un NFT, car il est enregistré sur la blockchain avec une transaction signée, assurant la légitimité du changement de propriété.

Exécution des contrats intelligents

Les contrats intelligents sont conçus pour interagir avec les signatures et peuvent exécuter des transactions lors de la vérification. Par exemple, dans une plateforme de prêt décentralisée, un utilisateur lance une demande de prêt. La demande déclenche l'exécution d'un contrat intelligent. L'utilisateur signe la transaction avec sa clé privée, et le contrat intelligent vérifie la signature pour exécuter l'accord de prêt.

Identité et authentification décentralisées

Un utilisateur se connecte à une application décentralisée (dApp) en utilisant son identité blockchain, par exemple son adresse Ethereum. La dApp demande un message signé de l'utilisateur (clé privée), servant de preuve de propriété. La signature digitale authentifie l'identité de l'utilisateur.

Cela peut aussi être un moyen facile d'intégrer de nouveaux utilisateurs Web3, car ils n'ont pas besoin de créer un compte et de stocker un autre mot de passe, les utilisateurs peuvent masquer leur identité et n'ont pas nécessairement à révéler des détails privés comme leur adresse e-mail.

Intégrité des données et non-répudiation des NFT

Un artiste signe un fichier d'art numérique avec sa clé privée avant de le mettre en circulation en tant que NFT. La signature numérique garantit l'intégrité de l'œuvre d'art, et l'artiste ne peut pas nier ultérieurement sa paternité.

Systèmes de vote

Sur une plateforme de vote décentralisée, les électeurs expriment leur vote en signant leurs choix avec leurs clés privées. Les signatures digitales authentifient les votes et garantissent à chaque électeur la possibilité de vérifier leur contribution. Cette application est utilisée dans les votes de gouvernance et les votes de protocole de consensus.

Interopérabilité entre chaînes

Un utilisateur transfère un jeton d'une blockchain à une autre en utilisant un protocole de pont. L'utilisateur signe une transaction sur la chaîne source, et la chaîne de destination vérifie la signature, permettant le transfert inter-chaîne.

Défis et tendances futures

Le défi des attaques quantiques

Les signatures digitales restent l'un des moyens infaillibles d'authentification sur la blockchain. Cependant, le développement d'ordinateurs quantiques à grande échelle posera une menace pour la sécurité des blockchains, car les algorithmes cryptographiques peuvent être rapidement déchiffrés par des ordinateurs quantiques.

Les ordinateurs quantiques peuvent traiter des tâches à des vitesses incroyables, accomplissant en quelques secondes ce qui prendrait des heures aux ordinateurs traditionnels, les mauvais acteurs peuvent utiliser un ordinateur quantique pour mener des attaques quantiques qui pourraient compromettre l'ensemble d'une blockchain.

Cependant, ils peuvent être évités par des signatures post-quantiques, qui sont déjà en développement, bien qu'elles occuperaient un plus grand espace de stockage sur la blockchain.

Conclusion

Les signatures numériques vérifient l'authenticité et l'intégrité des données, basées sur les principes de la cryptographie asymétrique et du hachage. Cela fonctionne en utilisant la clé privée de l'expéditeur pour authentifier la forme hachée des données, et le destinataire vérifie avec la clé publique de l'expéditeur. Les algorithmes cryptographiques les plus couramment utilisés par les blockchains sont les signatures ECDSA, EdDSA, Schnoor et BLS.

De plus, l'utilisation de signatures digitales est principalement applicable dans l'authentification des transactions, l'exécution des contrats intelligents, les votes de gouvernance, les transferts inter-chaînes et l'intégrité des données des NFT.

Autor: Paul
Traductor: Sonia
Revisor(es): Piccolo、Edward、Ashley He
* La información no pretende ser ni constituye un consejo financiero ni ninguna otra recomendación de ningún tipo ofrecida o respaldada por Gate.io.
* Este artículo no se puede reproducir, transmitir ni copiar sin hacer referencia a Gate.io. La contravención es una infracción de la Ley de derechos de autor y puede estar sujeta a acciones legales.

Qu'est-ce qu'une Signature digitale et comment fonctionne-t-elle?

Intermédiaire1/19/2024, 6:23:26 PM
Les blockchains utilisent des signatures digitales comme partie intégrante de leur processus de vérification décentralisé, créant ainsi un moyen sûr d'authentifier les processus sans exposer l'identité de l'utilisateur.

Introduction

Une signature numérique est un outil cryptographique utilisé dans des domaines tels que la cybersécurité, le commerce électronique et la distribution de logiciels. Ils fournissent une méthode pour vérifier l'origine et l'intégrité des messages numériques ou des documents.

Cependant, la technologie blockchain a popularisé l'utilisation de signatures numériques comme partie intégrante de son processus de vérification décentralisé et de transaction. Cet article examine de près le fonctionnement de la signature numérique, les différents algorithmes utilisés par les blockchains et leurs applications dans l'espace Web3.

Comprendre les signatures numériques

Source: CoinGeek

Une signature numérique est une technique cryptographique utilisée pour vérifier l'authenticité et l'intégrité des messages numériques, des documents ou des transactions. Les signatures numériques sont considérées comme plus sécurisées que les signatures électroniques.

Traditionnellement, les signatures garantissent que les accords sont juridiquement contraignants, valident les identités des parties impliquées et ont une acceptation définitive des termes du contrat. Les signatures numériques vont encore plus loin pour résoudre le problème de l'altération et de la contrefaçon, ce qui en fait une forme de signature plus sécurisée.

Fonctionnalités de la Signature numérique

Les principales caractéristiques d'une signature digitale sont :

  • Authentification : Une signature numérique prouve que le message a été envoyé par l'expéditeur prétendu en vérifiant le message avec les clés publiques de l'expéditeur.
  • Non-répudiation: Les signatures numériques utilisent les clés publiques de l'expéditeur pour décrypter la signature, si la vérification est réussie, l'expéditeur ne peut nier l'envoi du message.
  • Intégrité : La capacité de vérifier que la valeur de hachage/digeste prouve que les données n'ont pas été altérées en transit.

Cryptographie asymétrique

Source : WikiBooks

La cryptographie asymétrique est une méthode de chiffrement et de déchiffrement des données avec deux clés différentes, ce qui rend l'une des clés (c'est la clé publique) partagée ouvertement avec tout le monde. L'autre clé, appelée clé privée, est une clé confidentielle et sécurisée connue uniquement du signataire. Les données chiffrées avec l'une ne peuvent être déchiffrées qu'avec l'autre.

En cryptographie, une clé est souvent une chaîne de chiffres et de lettres, utilisée pour brouiller les données afin qu'elles semblent aléatoires. Cependant, toute personne possédant la clé adéquate pour décrypter les données peut les déchiffrer pour les ramener à leur forme originale.

Par exemple, supposons que nous prenions une image et que nous l'encryptons avec une clé; disons que la clé est 28j932d8kd8. Encryptée avec cette clé, notre image est vue comme "X5CSycg14=xJ". Cependant, en la déchiffrant avec la bonne clé, nous pouvons retrouver notre image.

Termes clés que vous devez comprendre

Hashage

Le hachage est le processus de conversion de données (textes, fichiers), une entrée de taille variable en une sortie de lettres et de chiffres de longueur fixe, en utilisant des fonctions de hachage. C'est un processus à sens unique, où les valeurs de hachage ne peuvent pas être inversées en entrée d'origine, mais le même morceau d'entrée générera toujours la même valeur de hachage.

Source: CyberHoot

Dans l'image ci-dessus, un morceau de texte (une énigme) passe à travers une fonction de hachage (SHA-256) et est converti en un hachage (une longueur fixe de chiffres et de lettres).

Qu'est-ce que les fonctions de hachage?

Un algorithme qui traite les données à signer, produisant une valeur de hachage de taille fixe. La fonction de hachage garantit que la signature reste d'une longueur fixe, quelle que soit la taille des données d'origine.

Valeur de hachage

La sortie finale de la fonction de hachage est la valeur de hachage, également appelée condensat, qui est unique à chaque entrée. La taille de la valeur de hachage varie de 32 bits à 256 bits, en fonction de la fonction de hachage utilisée. Les valeurs de hachage ne sont nécessaires que pour une seule utilisation dans des processus tels que l'authentification des données ou la création de signatures numériques. Par conséquent, une signature numérique est unique par transaction.

Comment fonctionnent les signatures numériques?

Pour exécuter une signature numérique, vous auriez besoin des éléments suivants :

  1. Une paire de clés : La paire de clés se compose d'une paire de clés publique/privée. La clé privée est utilisée pour créer une signature, et la clé publique correspondante est utilisée pour vérifier la signature.

  2. Les données à signer : Le contenu ou le message que vous souhaitez signer. Il pourrait s'agir d'un document, d'une transaction ou de n'importe quelle donnée numérique.

  3. Fonction de hachage : Une fonction de hachage est appliquée aux données pour créer une valeur de hachage de taille fixe. Cette valeur de hachage est ensuite cryptée avec la clé privée pour générer la signature numérique.

  4. Algorithme de signature numérique : Un algorithme qui combine la clé privée avec les données à signer, impliquant généralement une fonction de hachage. Cet algorithme génère la signature numérique.

  5. Mécanisme de vérification : Toute personne souhaitant vérifier la signature numérique doit avoir accès à la clé publique et au même algorithme de signature numérique. La clé publique est utilisée pour décrypter la signature numérique et révéler la valeur de hachage, qui est ensuite comparée à la valeur de hachage calculée à partir des données originales.

Comment se combinent-ils pour que cela fonctionne?

Source : CamCert — L'expéditeur signe (chiffre) la valeur de hachage avec sa clé privée, et le destinataire vérifie l'authenticité du message en comparant les valeurs de hachage

Étape 1 : Créez une valeur de hachage/digest en faisant passer les données originales par une fonction de hachage

Étape 2 : Signer le condensat avec la clé privée de l'expéditeur pour créer un chiffrement.

Étape 3 : Envoyez le fichier chiffré au destinataire, qui peut le décrypter en utilisant la clé publique de l'expéditeur pour générer un condensé.

Étape 4: Après le déchiffrement, exécutez les données à travers la même fonction de hachage pour générer un digest équivalent.

Étape 5: Valider l'intégrité des données en comparant le nouveau hachage généré avec la valeur de hachage reçue avec les données. Une correspondance confirme l'intégrité des données.

Utilisons cette illustration d'un transfert de document entre Mark l'expéditeur et Karen le destinataire.

  1. Signature et envoi : Mark lance le processus en envoyant un document. Le document est passé par un algorithme de hachage, créant une valeur de hachage. Ce résumé est ensuite crypté avec la clé privée de Mark, finalisant la signature numérique ; une combinaison du document et de sa clé privée.
  2. Réception et vérification: Karen, le destinataire, utilise la clé publique de Mark pour décrypter la signature numérique, obtenant le digest original. Indépendamment, Karen applique le même algorithme de hachage au document reçu, générant un autre digest.
  3. Karen compare les deux empreintes : l'une provenant de la signature décryptée et l'autre générée de manière indépendante. S'ils correspondent, Karen est assurée de l'intégrité du document et de l'authenticité de l'expéditeur, Mark.

Algorithmes de signature utilisés dans les blockchains

Le choix des algorithmes de signatures numériques dépend de facteurs tels que les exigences en matière de sécurité, la taille de la clé et les considérations de performance. Chaque algorithme a ses forces et ses faiblesses, et son utilisation peut évoluer en fonction des avancées en cryptographie et des défis de sécurité émergents.

Cette section traite des algorithmes de signature numérique les plus couramment utilisés dans la technologie de la blockchain.

  1. ECDSA (Elliptic Curve Digital Signature Algorithm) : Cette méthode utilise des clés plus courtes et nécessite moins de ressources informatiques et utilise des "clés de cryptographie à courbes elliptiques" qui sont des groupes finis de points sur une courbe où certaines opérations sont facilement exécutées dans une direction mais difficiles dans la direction inverse. Pour la sécurité, l'ECDSA repose sur le problème du logarithme discret. Il s'agit de l'algorithme de signature le plus populaire utilisé dans la technologie de la chaîne de blocs.

  2. EdDSA (Edwards-curve Digital Signature Algorithm): Il s'agit d'un algorithme de signature numérique moderne et efficace basé sur la cryptographie à courbe elliptique. Il a été introduit pour répondre à certaines préoccupations et améliorer les performances par rapport à d'autres schémas de signature comme l'ECDSA. L'algorithme est conçu pour fournir une sécurité robuste avec des tailles de clé relativement petites, ce qui le rend bien adapté à diverses applications, y compris la technologie blockchain par exemple Cardano et Solana.

  3. L'algorithme de Schnorr : Une signature Schnorr est un type d'algorithme de signature numérique qui permet l'agrégation, c'est-à-dire que plusieurs signatures sur le même message peuvent être regroupées en une seule signature. Cette signature est non seulement plus efficace en termes d'espace, mais facilite également un processus de vérification plus efficace.
    Il s'avère efficace dans les scénarios impliquant plusieurs parties signant un message commun, comme autoriser une transaction à partir d'une adresse multi-signature (multisig). Dans de tels cas, chaque participant doit fournir sa clé publique et sa signature. Par conséquent, si trois parties ont l'intention de signer le même message, la preuve englobera trois clés publiques et trois signatures. Cela semble inefficace en termes de calcul et de stockage, car chaque nœud doit exécuter la fonction de vérification de la signature trois fois et stocker trois ensembles distincts de signatures et de clés publiques.
    L'algorithme de Schnorr produit simplement une signature valide pour la somme de leurs clés publiques. L'agrégation de clés peut réduire les frais de gaz et améliorer la scalabilité de la couche de base car les signatures provenant d'une transaction multi-signature occupent le même espace dans un bloc que les signatures provenant d'une transaction d'une seule partie.

  4. La signature BLS : L'algorithme cryptographique BLS (Boneh-Lynn-Shacham) est basé sur des appariements bilinéaires sur des groupes de courbes elliptiques. Il a été introduit par Dan Boneh, Ben Lynn et Hovav Shacham en 2001. L'accent principal de la cryptographie BLS est mis sur des schémas de signature efficaces et sécurisés qui prennent en charge des propriétés uniques comme l'agrégation. De plus, la signature BLS est utilisée sur Ethereum 2.0 et Chia.

Blockchains, leur algorithme de hachage et algorithme de signature

  1. Bitcoin (BTC):
    Algorithme de hachage: SHA-256
    Algorithme de signature numérique: ECDSA, Schnoor (Bifurcation logicielle TapRoot)

  2. Ethereum (ETH):
    Algorithme de hachage: Keccak
    Algorithme de signature numérique: ECDSA

  3. Litecoin (LTC):
    Algorithme de hachage: Scrypt
    Algorithme de signature numérique: ECDSA

  4. Ripple (XRP):
    Algorithme de hachage: SHA-256
    Algorithme de signature numérique: ECDSA

  5. Cardano (ADA):
    Algorithme de hachage : Keccak
    Algorithme de signature numérique : EdDSA (Edwards-curve Digital Signature Algorithm)

  6. Polkadot (DOT) :
    Algorithme de hachage : Blake2
    Algorithme de signature numérique: EdDSA

  7. Tezos (XTZ) :
    Algorithme de hachage: Blake2b
    Algorithme de signature numérique: EdDSA

  8. Chaîne BNB (BNB):
    Algorithme de hachage : Keccak (utilisé pour les jetons BEP-2)
    Algorithme de signature numérique: ECDSA

Comment Bitcoin utilise les signatures digitales

Bitcoin utilise l'algorithme de signature numérique sur courbe elliptique (ECDSA) pour générer une signature unique pour chaque transaction. Cependant, avec les avancées récentes, l'algorithme de Schnorr a été introduit à travers la mise à jour logicielle TapRoot. Cet algorithme, connu pour son efficacité en termes d'efficacité de stockage et de vitesse de vérification, peut améliorer la scalabilité de Bitcoin jusqu'à 30%, avec sa fonction d'agrégation de transactions.

)

Source: TimesofIndia — Seules les transactions signées peuvent être propagées et validées par les nœuds du réseau

Le mécanisme de base des transactions Bitcoin implique une série d'étapes qui inclut l'utilisation de signatures digitales.

Voici un aperçu :

  1. L'expéditeur décide d'effectuer une transaction bitcoin, cela pourrait impliquer l'envoi de bitcoins à un autre utilisateur ou à plusieurs utilisateurs.
  2. L'expéditeur crée un message de transaction contenant des détails clés, tels que l'adresse du portefeuille du destinataire, le montant de BTC envoyé, les frais associés et l'origine du bitcoin (sorties de transaction non dépensées ou UTXO) utilisé comme entrées pour la transaction.
  3. L'expéditeur signe le message de transaction avec sa clé privée en utilisant l'algorithme de signature numérique à courbe elliptique (ECDSA). Cette signature numérique prouve que la transaction a été autorisée par le véritable propriétaire de l'adresse d'envoi.
  4. Le message de transaction est haché en utilisant le SHA-256 (algorithme de hachage sécurisé sur 256 bits) puis est à nouveau haché en utilisant le RIPEMD-160 (Race Integrity Primitives Evaluation Message Digest sur 160 bits). Ce processus génère un hachage de longueur fixe, communément appelé l'ID de transaction ou hachage.
  5. La transaction signée est diffusée sur le réseau Bitcoin, où elle devient visible pour tous les nœuds (ordinateurs participant au réseau Bitcoin). Les nœuds du réseau, y compris les mineurs, vérifient la validité de la transaction. Cette vérification comprend la vérification de la signature numérique pour s'assurer qu'elle correspond à la clé publique de l'expéditeur et que les entrées (UTXOs) utilisées dans la transaction ne sont pas dépensées et valides.
  6. Les transactions valides sont collectées par les mineurs, qui rivalisent pour résoudre un problème mathématique complexe (preuve de travail). Le premier mineur à résoudre le problème ajoute un bloc contenant les transactions vérifiées à la blockchain.
  7. Le nouveau bloc ajouté est diffusé sur le réseau, et les autres nœuds vérifient la preuve de travail et la validité des transactions dans le bloc. Une fois un consensus atteint, le bloc est considéré comme confirmé, et la transaction est enregistrée de manière permanente dans la blockchain.
  8. Le solde du portefeuille du destinataire est mis à jour pour refléter les bitcoins reçus, et le solde du portefeuille de l'expéditeur est ajusté pour tenir compte des UTXO dépensés.

Applications des signatures digitales dans Web3

Maintenant que nous comprenons le fonctionnement et l'importance des signatures. Mettons en avant les applications pratiques des signatures digitales dans la sécurisation des transactions, l'authentification des identités et la garantie de l'intégrité des données dans l'écosystème Web3.

Authentification de transaction

Prenons par exemple, Alice souhaite transférer de l'Ethereum à Bob. Elle signe la transaction avec sa clé privée, générant une signature numérique. Le réseau Ethereum vérifie la signature en utilisant la clé publique d'Alice, garantissant que la transaction est autorisée par elle. Ceci est également applicable au transfert de propriété d'un NFT, car il est enregistré sur la blockchain avec une transaction signée, assurant la légitimité du changement de propriété.

Exécution des contrats intelligents

Les contrats intelligents sont conçus pour interagir avec les signatures et peuvent exécuter des transactions lors de la vérification. Par exemple, dans une plateforme de prêt décentralisée, un utilisateur lance une demande de prêt. La demande déclenche l'exécution d'un contrat intelligent. L'utilisateur signe la transaction avec sa clé privée, et le contrat intelligent vérifie la signature pour exécuter l'accord de prêt.

Identité et authentification décentralisées

Un utilisateur se connecte à une application décentralisée (dApp) en utilisant son identité blockchain, par exemple son adresse Ethereum. La dApp demande un message signé de l'utilisateur (clé privée), servant de preuve de propriété. La signature digitale authentifie l'identité de l'utilisateur.

Cela peut aussi être un moyen facile d'intégrer de nouveaux utilisateurs Web3, car ils n'ont pas besoin de créer un compte et de stocker un autre mot de passe, les utilisateurs peuvent masquer leur identité et n'ont pas nécessairement à révéler des détails privés comme leur adresse e-mail.

Intégrité des données et non-répudiation des NFT

Un artiste signe un fichier d'art numérique avec sa clé privée avant de le mettre en circulation en tant que NFT. La signature numérique garantit l'intégrité de l'œuvre d'art, et l'artiste ne peut pas nier ultérieurement sa paternité.

Systèmes de vote

Sur une plateforme de vote décentralisée, les électeurs expriment leur vote en signant leurs choix avec leurs clés privées. Les signatures digitales authentifient les votes et garantissent à chaque électeur la possibilité de vérifier leur contribution. Cette application est utilisée dans les votes de gouvernance et les votes de protocole de consensus.

Interopérabilité entre chaînes

Un utilisateur transfère un jeton d'une blockchain à une autre en utilisant un protocole de pont. L'utilisateur signe une transaction sur la chaîne source, et la chaîne de destination vérifie la signature, permettant le transfert inter-chaîne.

Défis et tendances futures

Le défi des attaques quantiques

Les signatures digitales restent l'un des moyens infaillibles d'authentification sur la blockchain. Cependant, le développement d'ordinateurs quantiques à grande échelle posera une menace pour la sécurité des blockchains, car les algorithmes cryptographiques peuvent être rapidement déchiffrés par des ordinateurs quantiques.

Les ordinateurs quantiques peuvent traiter des tâches à des vitesses incroyables, accomplissant en quelques secondes ce qui prendrait des heures aux ordinateurs traditionnels, les mauvais acteurs peuvent utiliser un ordinateur quantique pour mener des attaques quantiques qui pourraient compromettre l'ensemble d'une blockchain.

Cependant, ils peuvent être évités par des signatures post-quantiques, qui sont déjà en développement, bien qu'elles occuperaient un plus grand espace de stockage sur la blockchain.

Conclusion

Les signatures numériques vérifient l'authenticité et l'intégrité des données, basées sur les principes de la cryptographie asymétrique et du hachage. Cela fonctionne en utilisant la clé privée de l'expéditeur pour authentifier la forme hachée des données, et le destinataire vérifie avec la clé publique de l'expéditeur. Les algorithmes cryptographiques les plus couramment utilisés par les blockchains sont les signatures ECDSA, EdDSA, Schnoor et BLS.

De plus, l'utilisation de signatures digitales est principalement applicable dans l'authentification des transactions, l'exécution des contrats intelligents, les votes de gouvernance, les transferts inter-chaînes et l'intégrité des données des NFT.

Autor: Paul
Traductor: Sonia
Revisor(es): Piccolo、Edward、Ashley He
* La información no pretende ser ni constituye un consejo financiero ni ninguna otra recomendación de ningún tipo ofrecida o respaldada por Gate.io.
* Este artículo no se puede reproducir, transmitir ni copiar sin hacer referencia a Gate.io. La contravención es una infracción de la Ley de derechos de autor y puede estar sujeta a acciones legales.
Empieza ahora
¡Registrarse y recibe un bono de
$100
!