
En apprenant la Blockchain et tout cet écosystème en général, j’ai eu beaucoup de questions auxquelles je n’ai pas trouvé de réponses très rapidement. Avec autant de termes et de jargon utilisés, il était difficile de comprendre certains concepts même lorsque c’était très facile pour d’autres. Dans cet article, je vise à expliquer certains de ces termes. Plongez dedans !
Commençons par peindre un tableau !
Un système décentralisé est, comme le terme l’indique, décentralisé et non centralisé. Notre article sur le grand livre numérique (joindre le lien) a expliqué comment chaque nœud transporte une copie du grand livre. Cela signifie que chaque nœud de cette Blockchain conserve les mêmes données. Alors disons que l’ordinateur portable d’Alice a cette copie de la chaîne. Maintenant, Bob veut créer un bébé Crypto Kitty. Quelque part sur cette chaîne se trouve l’appel de fonction que Bob doit exécuter pour générer ce Kitty.
Vous pouvez imaginer que les contrats intelligents Blockchain sont un énorme terrain de blocs Tetris.
L’image ci-dessus peut être considérée comme un contrat intelligent qui réside dans l’adresse indiquée. Chaque bloc ici est une fonction et a une structure particulière (déterminée par les paramètres et le nom de la fonction). Compte tenu de l’adresse de ce contrat intelligent et de la structure (communément appelée ABI), Bob peut appeler la fonction et l’exécuter.
Bob diffuse son exécution de fonction sous forme de transaction à tous les nœuds présents sur la chaîne. Les nœuds mineurs reçoivent maintenant cette transaction et essaient d’exploiter le prochain bloc contenant cette transaction. Alice ici peut être l’un des deux types de nœuds. Alice pourrait essayer d’exploiter ce bloc et d’obtenir des récompenses (crypto-monnaie) en guise d’incitation. Ou, elle pourrait essayer de participer à cette Blockchain avec une copie de toute cette chaîne sur son ordinateur portable (ce qui est également tout aussi important). Alors, en quelques mots :
- La transaction sort vers tous les nœuds.
- Les nœuds mineurs se mettent au travail.
- le miné le bloc est à nouveau diffusé à tous les nœuds.
- Les nœuds non mineurs enregistrent ce bloc. Les nœuds mineurs enregistrent également ce bloc et essaient maintenant de commencer à extraire le bloc suivant.
Maintenant, vous pensez peut-être aux conséquences de cela. Chaque transaction effectuée par chaque personne sur cette Blockchain est enregistrée. Cette copie complète est également présente dans chaque nœud de la Blockchain. Donc, comme vous pouvez le comprendre, il faut être très prudent pour décider ce qui sera stocké dans la Blockchain. De plus, on ne peut pas créer une fonction qui consomme beaucoup de ressources de calcul. Cela pourrait potentiellement bloquer tout le fonctionnement du réseau Blockchain. Il y a donc une limite à chacune de ces valeurs.
Un contrat intelligent a ces deux éléments principaux, les états/variables et les fonctions. Les états stockent des valeurs et les fonctions effectuent des opérations sur ces valeurs. Les contrats intelligents stockent les variables et leurs valeurs dans un format clé-valeur. Il y a exactement 2²⁵⁶ de clés uniques disponibles dans un contrat intelligent. Chacun stocke 32 octets (2⁵). Par conséquent, un contrat peut stocker (2²⁵⁶ * 2⁵) octets qui sont 2²⁶¹ octets. Il peut y avoir d’autres problèmes, comme une collision de hachage avant que l’on puisse atteindre ce niveau de stockage.
L’exécution d’une fonction sur la blockchain Ethereum ou toute autre blockchain avec des contrats intelligents signifie que vous devez utiliser les ressources informatiques de quelqu’un d’autre. Comme vous le savez très bien, rien dans ce monde n’est gratuit 😄. Chaque fois que vous souhaitez exécuter une transaction sur la Blockchain, vous devez payer des frais de transaction minimes. Le travail d’un mineur consiste à extraire la transaction envoyée dans un bloc donné. Bob paiera au mineur une petite redevance pour le faire. Mais si la transaction exécute une fonction qui peut s’exécuter dans une boucle infinie, Bob gaspille complètement les ressources des mineurs. Par conséquent, il y a deux concepts principaux introduits ici: Limite de gaz et Frais de gaz.
Pour faire fonctionner une voiture, vous avez besoin d’essence. Vous payez X dollars à la station-service pour obtenir Y quantité d’essence qui parcourt votre véhicule sur une certaine distance. De même, lorsque vous exécutez une transaction, vous dites au mineur que vous êtes prêt à payer des frais de gaz X pour effectuer un montant Y de calculs. Deux cas peuvent se produire ici. La limite que vous définissez est supérieure ou inférieure à ce qui était requis.
Lorsque la limite est supérieure, le montant restant est remboursé sur votre compte. Mais si la limite est inférieure, la transaction est annulée et vous perdez toujours tout l’argent que vous avez dépensé.
Par exemple, pour exécuter une simple transaction d’envoi d’argent d’Alice à Bob, il faut un minimum de 21 000 unités de gaz. Si Alice décide de payer 200 gwei (Giga Wei), les frais des mineurs dépensés pour cette transaction sont de 21 000 * 200 = 4 200 000 gwei ou 0,0042 ETH (chaque gwei est égal à 0,000000001 ETH/10^-9 ETH). Donc, si Alice veut payer 1 ETH à Bob, elle doit dépenser 1,0042 ETH. 0,0042 ETH ici est le prix total du gaz ou, en termes courants, la redevance des mineurs.
Nous avons parlé de la façon dont Bob envoie une transaction au contrat intelligent Ethereum. Mais comment Bob s’y prend-il ?
Arrive Web3 !
Web3 est la passerelle à travers laquelle on interagit avec les nœuds. Vous avez peut-être entendu parler de Metamask. Metamask fournit aux utilisateurs une interface pour interagir avec les nœuds Ethereum. Interroger des données, exécuter des fonctions, envoyer de l’Ether à d’autres comptes, Metamask peut faire tout cela et bien plus encore. Metamask agit également comme un compte de portefeuille via lequel vous pouvez stocker vos crypto-monnaies. Comme Metamask, il existe d’innombrables applications disponibles pour aider les utilisateurs quotidiens comme nous à interagir avec les nœuds Blockchain.
En résumé, nous avons appris comment :
- Les nœuds sont responsables de la sélection des transactions et de leur extraction en blocs.
- Les nœuds stockent toutes les données sur la Blockchain. Toutes les données sont ouvertes à tous pour vérification. C’est ce qui donne à Blockchain la sécurité que nous connaissons tous.
- Nous avons vu ce que sont les frais d’un mineur et pourquoi chaque transaction sur la Blockchain l’exige.
- Nous avons également vu ce qu’est Web3 et comment il nous aide à interagir avec les nœuds de la Blockchain.
Quelques liens pour aller plus loin :
- Ethereum EVM illustré
- Gaz et frais
- Comptes, transactions, gaz et limites de gaz de bloc dans Ethereum
- Contrat de taille de stockage interne
- Estimation des coûts de Smart Contract
Cet article a été initialement publié dans le blog blockchainiseasy.github.io.
https://blockchainiseasy.github.io/Web3-and-node/
Rejoignez Coinmonks Telegram Channel et Youtube Channel pour en savoir plus sur le trading et l’investissement crypto