La blockchain pour les nuls 2 : Crypto-monnaies, portefeuilles et DApps

La blockchain pour les nuls 2 : Crypto-monnaies, portefeuilles et DApps

Vous appréciez notre travail......nous recrutons !

Ne ratez pas nos articles sur l'open source, le big data et les systèmes distribués, fréquence faible d’un email tous les deux mois.

Beaucoup de gens possèdent des crypto-monnaies aujourd’hui. Mais détenir quelques tokens sur un échange ne signifie pas interagir avec la blockchain. Les actifs que vous tradez ne sont que des nombres stockés dans la base de données de l’échange. Trader des actifs on-chain à grande vitesse serait très lent et très coûteux.

Pour déplacer vos crypto-monnaies vers la blockchain et interagir avec des applications décentralisées (DApps), vous devez créer un compte blockchain contrôlé par une clé privée et y envoyer vos actifs crypto.

Cet article vous présentera le concept de tokens, de comptes, de portefeuilles et de DApps (applications décentralisées). Il s’agit du deuxième d’une série de 3 articles qui se concentrent sur les fondamentaux techniques derrière la crypto :

Avis de non-responsabilité : ceci n’est pas un conseil financier.

Crypto-monnaies, coins et tokens

Une crypto-monnaie est une monnaie virtuelle qui n’a pas de forme physique. Contrairement aux monnaies fiduciaires (ex : le dollar ou l’euro), une crypto-monnaie peut être hard-capped : son émission s’arrêtera lorsqu’un plafond défini sera atteint (ex : il n’y aura jamais plus de 21 000 000 Bitcoins). Chaque crypto-monnaie a un symbole composé de quelques lettres, tout comme les actions :

  • BTC = Bitcoin ;
  • ETH = Ethereum ;
  • USDT = US Dollar Tether.

On peut distinguer 2 types de crypto-monnaies :

  • Les coins sont les monnaies natives des blockchains et partagent généralement le même nom (ex : Bitcoin, Ethereum, Solana). Ils servent à payer les frais de la blockchain (chaque transaction a un coût) et à récompenser les nœuds du réseau (mineurs ou validateurs, voir Blockchain pour les nuls 1 pour plus de détails).
  • Les tokens sont des monnaies construites sur des blockchains programmables (ex : Ethereum, Solana, Avalanche) et souvent liées à une DApp (voir ci-dessous) avec différents usages : récompenser les utilisateurs de DApps, participer à des ventes de tokens, etc.

Comptes, adresses, clés privées et portefeuilles

Compte = clé privée + clé publique + adresse

Sur la blockchain, les coins et tokens sont détenus par des comptes, chacun associé à une adresse.

Un compte est sécurisé grâce à la cryptographie asymétrique :

  • La clé privée donne le contrôle sur le compte : chaque transaction (ex : envoyer des Bitcoins à un autre compte) est signée à l’aide de la clé privée ;
  • La clé publique est utilisée par le réseau pour vérifier que les transactions ont été émises par le propriétaire du compte ;
  • L’adresse publique est nettement plus petite que les clés privées et publiques et est utilisée pour interagir facilement avec les comptes (ex : envoyer des tokens).

La clé privée est composée de 64 caractères hexadécimaux. Il y a 2256 clés publiques qui peuvent être générées, ce qui rend presque impossible l’accès à un compte existant (1 chance sur 1,55 quattuorvigintillion). Fait amusant cependant, chaque clé privée est consultable sur privatekeys.pw.

L’adresse du compte est générée à partir de la clé publique (grâce au hash Keccak-256), elle-même générée à partir de la clé privée (grâce à ECDSA). Mais grâce à la cryptographie, impossible d’aller dans l’autre sens et de retrouver la clé privée à partir de l’adresse !

# Algorithmic approximation of account creation
private_key = '0x272b77231156c432ece31f26ebd0a176616f7183f8c70ff0ac187b4d66e620ae'

public_key = ecdsa(private_key)
# public_key = 786c88e0574ddf02241ff749f1b0abff721497834bc89b0e1e38d60e80a9a93b51336cd3a4136e4a6a1873a650aedbf56aded98ed63f2d6160147774322d79f3

address = keccak_256(public_key)[:40]
# address = 0x29476cf95d62cdd6dc157bfa7d5332a0bc829493

Remarque : étant donné que les blockchains sont décentralisées, il n’existe pas de réinitialisation de mot de passe ou de 2FA ! La clé privée est le seul et unique moyen de contrôler un compte. Il est donc très important de la sécuriser.

Portefeuilles et seed phrase

Les portefeuilles sont des conteneurs logiciels ou matériels pour les clés privées qui permettent aux utilisateurs de soumettre des transactions sur la blockchain avec leurs comptes.

Portefeuilles HD, seed et mnemonic

Les portefeuilles crypto d’aujourd’hui sont des portefeuilles hiérarchiques déterministes (HD) qui permettent à un utilisateur d’accéder à plusieurs comptes à l’aide d’une seule clé : la seed. À partir de cette seed binaire, le portefeuille est capable de dériver plusieurs paires de clés de manière déterministe (via une fonction cryptographique). Cela signifie que tous les portefeuilles déterministes donneront accès aux mêmes comptes à partir de la même seed.

Exemple de seed binaire : 304a72b46b3090c97134a33040841d5afc577a6c7392cbc89e7daacb4cebfae7f05fd2178ec781164c0c36c79fb0c4766cc424807be9bbd27485473a6e483566.

Comme nous pouvons le voir, les seed binaires ne sont pas très lisibles pour l’homme : il est très difficile de se souvenir ou d’écrire une seed pour une réutilisation ultérieure sans erreur. C’est pourquoi des mnemonic seed phrases ont été conçues. Elles permettent de stocker la seed sous la forme d’une phrase de 12 ou 24 mots (seed binaire de 128 ou 256 bits) :

mnemonic = """
daughter  adult    chronic  estate   kiwi    river  helmet  hole
smoke     gallery  knock    awkward  opera   knock  arch    moon
improve   cigar    poem     monitor  prison  erode  rotate  energy
"""

binary_seed = seed_from_mnemonic(mnemonic)
# binary_seed = 304a72b46b3090c97134a33040841d5afc577a6c7392cbc89e7daacb4cebfae7f05fd2178ec781164c0c36c79fb0c4766cc424807be9bbd27485473a6e483566

Le portefeuille est alors capable de trouver la seed binaire et donc les clés privées à partir de la mnemonic seed phrase.

Portefeuilles software (hot)

Les portefeuilles software (ex : Metamask, XDEFI, Frame) sont généralement des extensions de navigateur ou des applications mobiles qui permettent d’interagir facilement avec la blockchain. Les clés privées de l’utilisateur sont stockées sur son appareil et protégées par un mot de passe.

Les meilleures pratiques de sécurité découragent fortement le stockage de grandes quantités de crypto-monnaies sur des portefeuilles software, car ils se trouvent sur des appareils connectés à Internet et sont potentiellement sujets à des exploits de bogues.

Portefeuilles hardware (cold)

Les portefeuilles hardware (ex : Ledger, Trezor) ne sont pas connectés à Internet. Les utilisateurs peuvent signer des transactions sans avoir à exposer leur seed/mnemonic sur un appareil non sécurisé (seules les signatures numériques sont envoyées via USB/Bluetooth). Ils s’appuient sur des micropuces hautement sécurisées pour garantir que personne ne puisse accéder aux clés sans le code PIN du portefeuille.

Lors de l’utilisation d’un portefeuille matériel, il est essentiel de stocker la mnemonic seed phrase hors ligne (au cas où le portefeuille serait perdu).

DApps

Une DApp (decentralized application) est une application qui s’appuie sur une blockchain programmable (ex : Ethereum, Solana, Avalanche) pour tout ou au moins les parties critiques de son backend. L’interface de la DApp (généralement un site Web) se connecte à des smart contracts et génère des transactions que l’utilisateur signe avec son portefeuille.

Smart contracts

Un smart contract est un programme déployé sur une blockchain composé :

  • D’un état (toutes les données nécessaires au fonctionnement de l’application) ;
  • D’un ensemble de fonctions déterministes pouvant être appelées par les utilisateurs via des transactions.

Les utilisateurs doivent payer des frais pour appeler des fonctions qui modifient l’état du smart contract, mais la lecture est gratuite.

Comme les comptes utilisateurs, un smart contract déployé a une adresse sur la blockchain, mais pas de clé privée : il ne peut pas initier de transactions, uniquement répondre aux appels d’entités externes.

Pour en savoir plus sur les avantages et les inconvénients des DApp, consultez Benefits/Drawbacks of DApp Development.

DeFi (Decentralized Finance)

En utilisant des smart contracts, il est possible de déployer des applications financières entièrement décentralisées et résistantes à la censure qui :

  • Ne peuvent pas être fermées directement par une seule entité (par exemple, un gouvernement ou une entreprise) ;
  • Peuvent être utilisées par n’importe qui, peu importe sa condition sociale, son casier judiciaire, etc.

Voici les différents types de DApps que l’on peut trouver dans le monde de la Finance décentralisée (DeFi) :

  • Les stablecoins sont des crypto-monnaies qui tentent de rattacher leur prix à un actif “réel” externe. Les plus utilisés sont liés à une monnaie fiduciaire, souvent le dollar américain (ex : USDT, USDC, DAI).
  • Les échanges décentralisés (DEX) permettent aux utilisateurs d’échanger des crypto-monnaies sans aucun intermédiaire. Contrairement à un échange centralisé (CEX) où toutes la liquidité est détenue par une seule entreprise, n’importe qui peut fournir de la liquidité à un DEX. Les DEX incitent les fournisseurs de liquidités en les payant avec leurs jetons (ex : Uniswap les récompenses avec des jetons UNI, SpookySwap avec des BOO).
  • Les plateformes de prêt (ex : Aave, Anchor) permettent aux utilisateurs d’emprunter des actifs après avoir déposé une garantie. Cela diffère du prêt à une banque car le montant que vous pouvez emprunter n’est pas basé sur votre salaire, votre âge, etc. mais sur le montant que vous avez déposé en garantie.
  • Les DApps de Yield Farming visent à offrir les meilleurs taux d’intérêt sur les crypto-actifs (ex : Convex, Yearn)
  • Les Launchpads (ex : DAO Maker, Avalaunch) permettent aux utilisateurs d’investir tôt dans des projets qui ne sont pas encore sortis. Cela est comparable à un financement participatif où les utilisateurs reçoivent des jetons en contrepartie de leur investissement.
  • Le Play-to-Earn (GameFi) (ex : Axie Infinity) est une sorte de jeu vidéo où les utilisateurs sont récompensés par des jetons lorsqu’ils jouent. Ces jetons peuvent ensuite être vendus contre de la monnaie fiduciaire.

À la date de rédaction, plus d’un dixième de toute la capitalisation boursière crypto (en dollars américains) est déposée sur les applications DeFi. Un bon site Web pour suivre les principaux DApps par blockchain est Defi Llama.

Conclusion

Vous savez maintenant comment les utilisateurs peuvent interagir avec les distributed ledgers à l’aide de portefeuilles et quels types d’applications sont déployées sur les blockchains programmables ! Dans le prochain article, je me concentrerai sur le vaste écosystème EVM, qui devient la norme de facto pour l’interface de programmation des blockchains.

Note : Cet article étant assez long, je ne parlerai pas des NFTs (Non-Fungible Tokens) !

Pour aller plus loin

Partagez cet article

Canada - Maroc - France

Nous sommes une équipe passionnée par l'Open Source, le Big Data et les technologies associées telles que le Cloud, le Data Engineering, la Data Science le DevOps…

Nous fournissons à nos clients un savoir faire reconnu sur la manière d'utiliser les technologies pour convertir leurs cas d'usage en projets exploités en production, sur la façon de réduire les coûts et d'accélérer les livraisons de nouvelles fonctionnalités.

Si vous appréciez la qualité de nos publications, nous vous invitons à nous contacter en vue de coopérer ensemble.

Support Ukrain