<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Amel In Tech</title>
    <description>The latest articles on DEV Community by Amel In Tech (@amel_in_tech).</description>
    <link>https://dev.to/amel_in_tech</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3856084%2F2f2f3bd7-df45-4046-9380-b16d1010446b.png</url>
      <title>DEV Community: Amel In Tech</title>
      <link>https://dev.to/amel_in_tech</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/amel_in_tech"/>
    <language>en</language>
    <item>
      <title>Bases de Python</title>
      <dc:creator>Amel In Tech</dc:creator>
      <pubDate>Sun, 21 Jun 2026 17:18:07 +0000</pubDate>
      <link>https://dev.to/amel_in_tech/bases-de-python-3i3d</link>
      <guid>https://dev.to/amel_in_tech/bases-de-python-3i3d</guid>
      <description>&lt;p&gt;Je commence à apprendre le Python et comme pour tous les langages que j’apprends je commence par les bases de la bases.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Extension&lt;/strong&gt; : &lt;code&gt;.py&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Type&lt;/strong&gt; : langage de programmation interprété, orienté objet et multi-paradigme.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Indentation&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Contrairement à certains langages, Python n’utilise pas les accolades &lt;code&gt;{}&lt;/code&gt; pour délimiter les blocs de code. En Python, c’est l’indentation qui définit les blocs.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Convention d’indentation officielle :&lt;/strong&gt; &lt;code&gt;4 espaces&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;age&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;=&lt;/span&gt;&lt;span class="mi"&gt;18&lt;/span&gt; &lt;span class="p"&gt;:&lt;/span&gt;
&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Majeur&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="k"&gt;else&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Mineur&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;age&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;=&lt;/span&gt; &lt;span class="mi"&gt;18&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Majeur&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Erreur&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;age&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;=&lt;/span&gt; &lt;span class="mi"&gt;18&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Majeur&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="k"&gt;else&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Mineur&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Bonnes pratiques Python
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Convention de nommage
&lt;/h3&gt;

&lt;p&gt;En Python, les conventions de nommage recommandées sont décrites dans le guide de style &lt;strong&gt;PEP 8&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;code&gt;snake_case&lt;/code&gt;&lt;/strong&gt; &lt;em&gt;(la plus utilisée)&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Utilisée pour :&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;variables&lt;/li&gt;
&lt;li&gt;fonctions&lt;/li&gt;
&lt;li&gt;méthodes&lt;/li&gt;
&lt;li&gt;fichiers
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;nom_utilisateur&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Alice&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;

&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;calculer_total&lt;/span&gt;&lt;span class="p"&gt;():&lt;/span&gt;
    &lt;span class="k"&gt;pass&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;&lt;code&gt;PascalCase&lt;/code&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Utilisée pour :&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;classes
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;UtilisateurPremium&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="k"&gt;pass&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;&lt;code&gt;UPPER_CASE&lt;/code&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Utilisée pour :&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;constantes
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;TAUX_TVA&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;20&lt;/span&gt;
&lt;span class="n"&gt;API_URL&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;https://api.exemple.com&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Tableau recapitulatif&lt;/strong&gt; &lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Convention&lt;/th&gt;
&lt;th&gt;Pour&lt;/th&gt;
&lt;th&gt;Exemple&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;&lt;code&gt;snake_case&lt;/code&gt;&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;• variables&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;• fonctions&lt;br&gt;
• méthodes&lt;br&gt;
• fichiers | ma_variable |&lt;br&gt;
| PascalCase | • classes | NomClasse |&lt;br&gt;
| MAJUSCULE | • constantes | CONSTANTE |&lt;/p&gt;
&lt;h4&gt;
  
  
  &lt;strong&gt;Commentaire&lt;/strong&gt;
&lt;/h4&gt;

&lt;p&gt;Les commentaires sont des annotations dans le code source qui sont ignorées lors de l’exécution du programme.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Deux formes courantes :&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;commentaire simple&lt;/em&gt;&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="c1"&gt;# commentaire monoligne
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;&lt;em&gt;docstring&lt;/em&gt;&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="sh"&gt;"""&lt;/span&gt;&lt;span class="s"&gt;
Doc d’un module, d’une fonction ou d’une classe.
&lt;/span&gt;&lt;span class="sh"&gt;"""&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Logs
&lt;/h3&gt;

&lt;p&gt;Méthode permettant d'afficher des données pour le débogage.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;print()&lt;/code&gt; = affichage simple dans la console&lt;br&gt;
&lt;/p&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;nom&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Alice&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Utilisateur :&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;nom&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;logging&lt;/code&gt; = journalisation plus professionnelle, avec des niveaux comme &lt;code&gt;DEBUG&lt;/code&gt;, &lt;code&gt;INFO&lt;/code&gt;, &lt;code&gt;WARNING&lt;/code&gt;, &lt;code&gt;ERROR&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Base de clean code
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Eviter le Code trop compact&lt;/strong&gt;
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="nf"&gt;if&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;condition&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Bonjour&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;condition&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Bonjour&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Utiliser des noms explicites
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;15&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;age_utilisateur&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;15&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Éviter les fonctions trop longues
&lt;/h3&gt;

&lt;p&gt;exemple simple mais plus adapter a de vraie longue fonction&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;calculer_total&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;prix&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;taxe&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="n"&gt;total&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;prix&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;taxe&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;total&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;calculer_total&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;prix&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;taxe&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;prix&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;taxe&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Respecter une seule responsabilité
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;afficher_message&lt;/span&gt;&lt;span class="p"&gt;():&lt;/span&gt;
    &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Bonjour&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  &lt;strong&gt;Exécution d’un programme Python&lt;/strong&gt; :
&lt;/h2&gt;

&lt;p&gt;Le code source est d’abord compilé en bytecode, puis ce bytecode est exécuté par la machine virtuelle Python. On appelle souvent l’ensemble de ce mécanisme l’interpréteur Python.&lt;/p&gt;

&lt;p&gt;Dans la pratique, au début, on peut retenir simplement : on écrit un fichier &lt;code&gt;.py&lt;/code&gt;, puis Python l’exécute.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F2zw04j7nkbaaso5f9js5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F2zw04j7nkbaaso5f9js5.png" alt=" " width="800" height="273"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Architecture de fichier
&lt;/h2&gt;

&lt;p&gt;Un fichier Python propre est souvent organisé comme ceci :&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;&lt;em&gt;Les imports&lt;/em&gt;&lt;/strong&gt;
→ modules / outils dont le programme a besoin&lt;/li&gt;
&lt;li&gt;Les constantes
→ valeurs fixes utilisées dans le programme&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;em&gt;Les fonctions&lt;/em&gt;&lt;/strong&gt;
→ blocs de code réutilisables&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;em&gt;La fonction main()&lt;/em&gt;&lt;/strong&gt;
→ lance main() seulement si le fichier est exécuté directement&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;em&gt;Le bloc if &lt;strong&gt;name&lt;/strong&gt; == "&lt;strong&gt;main&lt;/strong&gt;"&lt;/em&gt;&lt;/strong&gt;
→ point de lancement main() seulement si le fichier est exécuté directement
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="c1"&gt;# 1. Imports
&lt;/span&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;datetime&lt;/span&gt;

&lt;span class="c1"&gt;# 2. Constantes / variables globales
&lt;/span&gt;&lt;span class="n"&gt;NOM_APPLICATION&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Gestion utilisateur&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
&lt;span class="n"&gt;AGE_MINIMUM&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;18&lt;/span&gt;

&lt;span class="c1"&gt;# 3. Fonctions
&lt;/span&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;est_majeur&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;age&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;age&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;=&lt;/span&gt; &lt;span class="n"&gt;AGE_MINIMUM&lt;/span&gt;

&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;afficher_message_utilisateur&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;prenom&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;age&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="n"&gt;annee&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;datetime&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;datetime&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;now&lt;/span&gt;&lt;span class="p"&gt;().&lt;/span&gt;&lt;span class="n"&gt;year&lt;/span&gt;

    &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Application :&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;NOM_APPLICATION&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Année :&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;annee&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Prénom :&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;prenom&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Âge :&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;age&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

    &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="nf"&gt;est_majeur&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;age&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
        &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Statut : majeur&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="k"&gt;else&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Statut : mineur&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="c1"&gt;# 4. Programme principal
&lt;/span&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;main&lt;/span&gt;&lt;span class="p"&gt;():&lt;/span&gt;
    &lt;span class="n"&gt;prenom&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Alice&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
    &lt;span class="n"&gt;age&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;21&lt;/span&gt;

    &lt;span class="nf"&gt;afficher_message_utilisateur&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;prenom&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;age&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="c1"&gt;# 5. Point d’entrée du fichier
&lt;/span&gt;&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;__name__&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;__main__&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="nf"&gt;main&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Ma prochaine étape les Variable et la gestion de la mémoire en Python 😁&lt;/p&gt;

</description>
      <category>python</category>
      <category>programming</category>
      <category>learning</category>
    </item>
    <item>
      <title>Bonus : Règles du standard ERC-20</title>
      <dc:creator>Amel In Tech</dc:creator>
      <pubDate>Sun, 17 May 2026 16:35:00 +0000</pubDate>
      <link>https://dev.to/amel_in_tech/bonus-regles-du-standard-erc-20-edm</link>
      <guid>https://dev.to/amel_in_tech/bonus-regles-du-standard-erc-20-edm</guid>
      <description>&lt;p&gt;Un token ERC-20 est une &lt;strong&gt;valeur gérée par un smart contract&lt;/strong&gt; qui doit respecter un ensemble précis de &lt;strong&gt;règles fonctionnelles&lt;/strong&gt; afin d’être reconnu et utilisable par l’écosystème &lt;strong&gt;Ethereum&lt;/strong&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  Liste des Règles :
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Identifier le token :&lt;/strong&gt; Permet d’identifier clairement le token.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;&lt;em&gt;Rôle&lt;/em&gt;&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;Afficher correctement le token dans les wallets et interfaces.&lt;/li&gt;
&lt;li&gt;Distinguer un token d’un autre.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Fonctions associées&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;name()&lt;/code&gt; → nom lisible du token&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;symbol()&lt;/code&gt; → version courte du nom&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;decimals()&lt;/code&gt; → nombre de décimales utilisées&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;Aucune logique métier, uniquement de l’information.&lt;/em&gt;&lt;/p&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;/li&gt;

&lt;/ul&gt;




&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Connaître la quantité totale de tokens&lt;/strong&gt; (&lt;em&gt;total supply&lt;/em&gt;) &lt;strong&gt;:&lt;/strong&gt; Indique le nombre total de tokens qui existent pour un token donné.

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;&lt;em&gt;Rôle&lt;/em&gt;&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;Garantir la cohérence globale du token.&lt;/li&gt;
&lt;li&gt;Permettre l’audit et la transparence.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;strong&gt;&lt;em&gt;Fonction associée&lt;/em&gt;&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;totalSupply()&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;/li&gt;

&lt;/ul&gt;




&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Gérer les soldes :&lt;/strong&gt; Associe chaque adresse à un solde et permet de le consulter&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;&lt;em&gt;Rôle&lt;/em&gt;&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;Répondre à la question : « Qui possède combien de tokens ? »&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Fonction associée&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;balanceOf(address)&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;Fonction de lecture uniquement, aucun changement d’état.&lt;/em&gt;&lt;/p&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;/li&gt;

&lt;/ul&gt;




&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Transfert direct de tokens :&lt;/strong&gt; Permet d’envoyer des tokens d’une adresse vers une autre.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;&lt;em&gt;Rôle&lt;/em&gt;&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;Assurer la circulation des tokens.&lt;/li&gt;
&lt;li&gt;Empêcher les soldes négatifs.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Fonction associée&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;transfer(address to, uint256 amount)&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Ici le smart contract :&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;vérifie que l’expéditeur a un solde suffisant,&lt;/li&gt;
&lt;li&gt;met à jour les soldes dans l’état global.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;/li&gt;

&lt;/ul&gt;

&lt;/li&gt;

&lt;/ul&gt;




&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Autoriser un tiers à utiliser des tokens (allowance) :&lt;/strong&gt; permettre à un propriétaire de tokens &lt;strong&gt;d’autoriser un tiers (souvent un smart contract)&lt;/strong&gt; à utiliser une quantité limitée de ses tokens&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;&lt;em&gt;Rôle&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Permettre aux smart contracts, exchanges et applications DeFi d’agir pour l’utilisateur.&lt;/p&gt;

&lt;p&gt;💡&lt;em&gt;Les exchanges et les applications DeFi sont des smart contracts qui automatisent des opérations financières, et ils ont besoin d’autorisations pour utiliser les tokens des utilisateurs à leur place.&lt;/em&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Exchange&lt;/strong&gt; = échanger un token contre un autre&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;DeFi&lt;/strong&gt; = faire de la finance avec des smart contracts
&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;&lt;p&gt;Sans donner accès à la clé privée.&lt;/p&gt;&lt;/li&gt;

&lt;/ul&gt;

&lt;/li&gt;

&lt;li&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Fonction associée&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;approve(address spender, uint256 amount)&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;/li&gt;

&lt;/ul&gt;




&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Lire une autorisation&lt;/strong&gt; : Permet de consulter le montant qu’un tiers est autorisé à utiliser.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;&lt;em&gt;Rôle&lt;/em&gt;&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;Vérifier les autorisations accordées.&lt;/li&gt;
&lt;li&gt;Permettre aux wallets, explorateurs et applications décentralisées de lire et afficher les données du token.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Fonction associée&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;allowance(address owner, address spender)&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;Fonction de lecture.&lt;/em&gt;&lt;/p&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;/li&gt;

&lt;/ul&gt;




&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Transfert par un tiers autorisé :&lt;/strong&gt; Permet à un tiers autorisé de transférer des tokens pour le compte d’un autre utilisateur.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;&lt;em&gt;Rôle&lt;/em&gt;&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;Rendre possibles les échanges automatisés.&lt;/li&gt;
&lt;li&gt;Cœur du fonctionnement des exchanges et de la DeFi.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Fonction associée&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;transferFrom(address from, address to, uint256 amount)&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Ici le smart contract :&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;vérifie l’autorisation,&lt;/li&gt;
&lt;li&gt;met à jour les soldes,&lt;/li&gt;
&lt;li&gt;réduit l’autorisation restante.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;/li&gt;

&lt;/ul&gt;

&lt;/li&gt;

&lt;/ul&gt;




&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Traçabilité des actions&lt;/strong&gt; : Signale les actions importantes liées au token.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;&lt;em&gt;Rôle&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Permettre aux wallets et explorers de suivre l’activité.&lt;/p&gt;

&lt;p&gt;💡Un explorer est un site web qui permet de voir et vérifier tout ce qui est écrit sur une blockchain.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Rendre le token observable et transparent.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Événements associés&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;Transfer&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Approval&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;/li&gt;

&lt;/ul&gt;




&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Cohérence et sécurité globale&lt;/strong&gt; : Garantit que toutes les règles précédentes sont respectées en permanence.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Rôle&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Empêcher les incohérences.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;exemple : Alice possède 5 tokens, mais essaie d’en envoyer 10 à Bob.&lt;/em&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Garantir l’intégrité de l’état global.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;p&gt;Implémentation&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Vérifications internes dans toutes les fonctions du smart contract.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;/li&gt;

&lt;/ul&gt;




&lt;p&gt;En résumé, le standard BEP-20 définit comment un token est identifié, les soldes sont gérés, les tokens sont transférés, des tiers peuvent être autorisés, et comment ces actions sont rendues visibles à l’écosystème.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnexrpzkubv1cz2hynjra.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnexrpzkubv1cz2hynjra.png" alt=" " width="800" height="289"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>blockchain</category>
      <category>cryptocurrency</category>
      <category>ethereum</category>
      <category>web3</category>
    </item>
    <item>
      <title>Ethereum VS BNB Smart Chain (BSC)</title>
      <dc:creator>Amel In Tech</dc:creator>
      <pubDate>Sun, 17 May 2026 16:30:00 +0000</pubDate>
      <link>https://dev.to/amel_in_tech/ethereum-vs-bnb-smart-chain-bsc-29ed</link>
      <guid>https://dev.to/amel_in_tech/ethereum-vs-bnb-smart-chain-bsc-29ed</guid>
      <description>&lt;h1&gt;
  
  
  Blockchain Ethereum
&lt;/h1&gt;

&lt;p&gt;Ethereum est une blockchain publique conçue pour exécuter des smart contracts et des applications décentralisées.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;dApp = application qui fonctionne grâce à des smart contracts sur une blockchain, au lieu de fonctionner sur un serveur central.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Ethereum est la blockchain de référence sur laquelle le standard ERC-20 a été défini.&lt;/p&gt;




&lt;h2&gt;
  
  
  Le standard ERC-20 (sans code)
&lt;/h2&gt;

&lt;p&gt;ERC-20 est un ensemble de règles que doit respecter un smart contract pour être reconnu comme un token sur Ethereum.&lt;/p&gt;




&lt;h2&gt;
  
  
  ERC-20 ≠ token ERC-20
&lt;/h2&gt;

&lt;h3&gt;
  
  
  ERC-20 = un standard
&lt;/h3&gt;

&lt;p&gt;ERC-20 est une liste de règles.&lt;/p&gt;

&lt;p&gt;Il ne contient :&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;aucun token&lt;/li&gt;
&lt;li&gt;aucun solde&lt;/li&gt;
&lt;li&gt;aucun contrat déployé&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  Smart contract ERC-20
&lt;/h3&gt;

&lt;p&gt;Le smart contract :&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;stocke les valeurs&lt;/li&gt;
&lt;li&gt;applique les règles&lt;/li&gt;
&lt;li&gt;permet les transferts&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Le smart contract du token applique les règles via des fonctions.&lt;/p&gt;




&lt;h3&gt;
  
  
  Token ERC-20
&lt;/h3&gt;

&lt;p&gt;Par abus de langage, on parle souvent de “token ERC-20”.&lt;/p&gt;

&lt;p&gt;💡Distinction claire&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Standard ERC-20 → liste de règles&lt;/li&gt;
&lt;li&gt;Smart contract ERC-20 → smart contract respectant le standard&lt;/li&gt;
&lt;li&gt;Fonctions ERC-20 → implémentation technique des règles&lt;/li&gt;
&lt;li&gt;Token → valeur numérique associée à une adresse&lt;/li&gt;
&lt;li&gt;Token ERC-20 → valeur gérée par un smart contract ERC-20&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  Où sont stockés les soldes ?
&lt;/h3&gt;

&lt;p&gt;Dans un token ERC-20, les soldes sont stockés dans le storage (mémoire permanente) du smart contract, c’est-à-dire dans l’état global de la blockchain, à l’intérieur du compte smart contract.&lt;/p&gt;

&lt;p&gt;Techniquement, c’est une structure du type :&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;balances[address] = nombre
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;&lt;br&gt;
\&lt;/p&gt;

&lt;p&gt;Quand un wallet “affiche” tes tokens, il lit le storage du contrat (via des appels de lecture) et récupère le solde associé à ton adresse.&lt;/p&gt;




&lt;h1&gt;
  
  
  BNB Smart Chain
&lt;/h1&gt;

&lt;p&gt;BNB Smart Chain est une blockchain publique compatible Ethereum, conçue pour exécuter des smart contracts avec des frais faibles et des transactions rapides.&lt;/p&gt;

&lt;p&gt;Elle fait partie de l’écosystème BNB Chain.&lt;/p&gt;




&lt;h2&gt;
  
  
  BNB Chain ≠ BNB Beacon Chain ≠ BNB Smart Chain
&lt;/h2&gt;

&lt;h2&gt;
  
  
  BNB Chain
&lt;/h2&gt;

&lt;p&gt;Le nom de l’écosystème qui regroupe plusieurs blockchains.&lt;/p&gt;




&lt;h2&gt;
  
  
  BNB Beacon Chain
&lt;/h2&gt;

&lt;p&gt;Blockchain dédiée à la gouvernance et au staking de BNB Chain, sans smart contracts complexes.&lt;/p&gt;

&lt;p&gt;💡 Le staking consiste à bloquer des tokens pour participer au fonctionnement et à la sécurité d’une blockchain.&lt;/p&gt;




&lt;h2&gt;
  
  
  BNB Smart Chain (BSC)
&lt;/h2&gt;

&lt;p&gt;BNB Smart Chain (BSC) est une blockchain publique compatible Ethereum, conçue pour exécuter des smart contracts et des tokens BEP-20, avec des transactions rapides et des frais faibles.&lt;/p&gt;

&lt;h3&gt;
  
  
  Compatible Ethereum car :
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;elle utilise la même machine virtuelle (EVM = Ethereum Virtual Machine)&lt;/li&gt;
&lt;li&gt;elle permet d’exécuter les mêmes smart contracts&lt;/li&gt;
&lt;li&gt;elle utilise le même langage (Solidity)&lt;/li&gt;
&lt;li&gt;elle utilise les mêmes outils :

&lt;ul&gt;
&lt;li&gt;Metamask&lt;/li&gt;
&lt;li&gt;Remix&lt;/li&gt;
&lt;li&gt;Hardhat&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;p&gt;Elle reprend également le même modèle de comptes qu’Ethereum.&lt;/p&gt;




&lt;h1&gt;
  
  
  Le standard BEP-20 (sans code)
&lt;/h1&gt;

&lt;p&gt;BEP-20 est un ensemble de règles que doit respecter un smart contract pour être reconnu comme un token sur BNB Smart Chain.&lt;/p&gt;




&lt;h2&gt;
  
  
  BEP-20 ≠ token BEP-20
&lt;/h2&gt;

&lt;h3&gt;
  
  
  BEP-20 = un standard
&lt;/h3&gt;

&lt;p&gt;BEP-20 définit un ensemble de règles sur la manière dont un token doit fonctionner.&lt;/p&gt;

&lt;p&gt;Il ne contient :&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;aucun token&lt;/li&gt;
&lt;li&gt;aucun solde&lt;/li&gt;
&lt;li&gt;aucun contrat déployé&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  Smart contract BEP-20
&lt;/h3&gt;

&lt;p&gt;Le programme qui :&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;stocke les valeurs&lt;/li&gt;
&lt;li&gt;applique les règles&lt;/li&gt;
&lt;li&gt;permet les transferts&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Le smart contract du token applique les règles via des fonctions.&lt;/p&gt;

&lt;p&gt;💡 Par abus de langage, on parle souvent de “token BEP-20”.&lt;/p&gt;




&lt;h2&gt;
  
  
  Token BEP-20
&lt;/h2&gt;

&lt;p&gt;Un token est une valeur numérique associée à une adresse.&lt;/p&gt;

&lt;p&gt;Un token BEP-20 n’est donc pas le smart contract lui-même.&lt;/p&gt;

&lt;p&gt;C’est une valeur dont les règles sont implémentées par un smart contract BEP-20 sur BNB Smart Chain.&lt;/p&gt;

&lt;p&gt;💡 Distinction claire&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Standard BEP-20 → liste de règles&lt;/li&gt;
&lt;li&gt;Smart contract BEP-20 → smart contract respectant le standard BEP-20&lt;/li&gt;
&lt;li&gt;Fonctions BEP-20 → implémentation technique des règles définies dans le standard BEP-20&lt;/li&gt;
&lt;li&gt;Token → valeur numérique associée à une adresse&lt;/li&gt;
&lt;li&gt;Token BEP-20 → valeur dont les règles sont implémentées par un smart contract BEP-20&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Règles du standard BEP-20
&lt;/h2&gt;

&lt;p&gt;Un token BEP-20 est une valeur gérée par un smart contract qui doit respecter un ensemble précis de règles fonctionnelles afin d’être reconnu et utilisable par l’écosystème BNB Smart Chain.&lt;/p&gt;

&lt;p&gt;Ces règles sont héritées du standard ERC-20 (Ethereum).&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>blockchain</category>
      <category>ethereum</category>
      <category>web3</category>
    </item>
    <item>
      <title>Tokens et standard (ERC-20 / BEP-20)</title>
      <dc:creator>Amel In Tech</dc:creator>
      <pubDate>Fri, 15 May 2026 16:35:00 +0000</pubDate>
      <link>https://dev.to/amel_in_tech/tokens-et-standard-erc-20-bep-20-4h1j</link>
      <guid>https://dev.to/amel_in_tech/tokens-et-standard-erc-20-bep-20-4h1j</guid>
      <description>&lt;p&gt;Sans standards, les interactions entre tokens, wallets et smart contracts seraient chaotiques, voire impossibles.&lt;/p&gt;

&lt;p&gt;C’est pour cela que &lt;strong&gt;chaque blockchain&lt;/strong&gt; met en place des &lt;strong&gt;standards de tokens&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Un &lt;strong&gt;standard de token&lt;/strong&gt; est une &lt;strong&gt;liste de règles obligatoires&lt;/strong&gt; que tous les tokens doivent respecter.&lt;/p&gt;

&lt;p&gt;Ils existent pour que :&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;les &lt;strong&gt;wallets&lt;/strong&gt;,&lt;/li&gt;
&lt;li&gt;les &lt;strong&gt;smart contracts&lt;/strong&gt;,&lt;/li&gt;
&lt;li&gt;les &lt;strong&gt;plateformes&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;puissent comprendre et utiliser les tokens de la même façon.&lt;/p&gt;

&lt;p&gt;Exemples de standards :&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;ERC-20&lt;/strong&gt; → standard de token fongible sur Ethereum&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;BEP-20&lt;/strong&gt; → même logique sur BNB Smart Chain&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;BEP-20 est &lt;strong&gt;compatible ERC-20&lt;/strong&gt;, mais sur une autre blockchain.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqg7ct90e70gh0jbzr7ic.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqg7ct90e70gh0jbzr7ic.png" alt=" " width="800" height="438"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>blockchain</category>
      <category>ethereum</category>
      <category>web3</category>
    </item>
    <item>
      <title>État global 3/3 :Les tokens &amp; smart contracts</title>
      <dc:creator>Amel In Tech</dc:creator>
      <pubDate>Fri, 15 May 2026 16:30:00 +0000</pubDate>
      <link>https://dev.to/amel_in_tech/etat-global-33-les-tokens-smart-contracts-e6h</link>
      <guid>https://dev.to/amel_in_tech/etat-global-33-les-tokens-smart-contracts-e6h</guid>
      <description>&lt;h3&gt;
  
  
  &lt;strong&gt;&lt;em&gt;Qu’est-ce qu’un token ?&lt;/em&gt;&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Un token est un nombre associé à une adresse, enregistré dans un smart contract sur la blockchain.&lt;/p&gt;

&lt;p&gt;💡 Ce n’est pas un objet, et ce n’est pas stocké dans le wallet.&lt;/p&gt;

&lt;p&gt;Un token est une information / une valeur qui sert à représenter quelque chose. De ce fait, il existe &lt;strong&gt;plusieurs grandes familles&lt;/strong&gt;, selon &lt;strong&gt;ce que le token représente, dont voici les 3 principaux :&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;&lt;em&gt;Tokens fongibles&lt;/em&gt;&lt;/strong&gt; : c’est un token interchangeable avec un autre du même type.&lt;br&gt;
Ils sont donc &lt;strong&gt;strictement&lt;/strong&gt; identiques entre eux.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;explication : Si Alice te donne &lt;strong&gt;1 token&lt;/strong&gt; et que Bob te donne &lt;strong&gt;1 token, les deux tokens sont les mêmes&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;exemple d’utilisation : argent, points, crédit&lt;/li&gt;
&lt;li&gt;standards : ERC-20 (Ethereum), BEP-20 (BSC)&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Tokens non fongibles&lt;/em&gt; (NFT)&lt;/strong&gt; : c’est un token unique et non interchangeable, chaque token est &lt;strong&gt;différent&lt;/strong&gt;.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;explication : Si Alice te donne &lt;strong&gt;1 NFT&lt;/strong&gt; et que Bob te donne &lt;strong&gt;1 NFT, les deux tokens ne sont pas équivalents&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;exemple d’utilisation : image, objet unique, certificat, propriété numérique&lt;/li&gt;
&lt;li&gt;standards : ERC-721, ERC-1155&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;p&gt;&lt;strong&gt;Tokens unitaires / utilitaires&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;explication : token qui donne le droit d’accéder à un service&lt;/li&gt;
&lt;li&gt;exemple d’utilisation : un jeton pour jouer, un crédit pour utiliser une application, …&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;p&gt;&lt;strong&gt;Tokens de gouvernance :&lt;/strong&gt; token qui donne le droit de voter.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;explication : sert à décider des règles d’un projet blockchain&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;💡 Plus tu as de tokens, plus ta voix compte&lt;/p&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;p&gt;💡 La différence est &lt;strong&gt;dans l’usage&lt;/strong&gt;, pas dans la technologie.&lt;/p&gt;

&lt;p&gt;⚠️ Ce ne sont PAS des types techniques exclusifs, un même token peut être fongible &lt;strong&gt;ET&lt;/strong&gt; de gouvernance ou fongible &lt;strong&gt;ET&lt;/strong&gt; utilitaire.&lt;/p&gt;




&lt;h3&gt;
  
  
  &lt;strong&gt;&lt;em&gt;Qu’est-ce qu’un smart contract ?&lt;/em&gt;&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Un smart contract est un programme stocké sur la blockchain, qui vit dans un compte smart contract et qui peut lire et modifier l’état global selon ses règles.&lt;/p&gt;

&lt;p&gt;Un &lt;strong&gt;smart contract&lt;/strong&gt;, c’est juste un &lt;strong&gt;programme&lt;/strong&gt;. Selon leur rôle, ils peuvent être très différents. Même si &lt;strong&gt;techniquement&lt;/strong&gt;, ce sont tous des comptes smart contracts stockés dans l’état global, il en existe différents types, dont voici quelques exemples :&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;contrat de &lt;strong&gt;token&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;contrat de &lt;strong&gt;finance (DeFi)&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;contrat de &lt;strong&gt;NFT&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Il ne fait rien tout seul, il agit uniquement quand un wallet l’appelle via une transaction.&lt;/p&gt;




&lt;h3&gt;
  
  
  &lt;strong&gt;&lt;em&gt;Qu’est-ce qu’un wallet ?&lt;/em&gt;&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Le wallet n’est PAS un porte-monnaie au sens physique.&lt;/p&gt;

&lt;p&gt;Un &lt;strong&gt;wallet&lt;/strong&gt; (portefeuille) est comme une &lt;strong&gt;adresse + des clés&lt;/strong&gt; sur la blockchain. Il permet de réaliser des transactions sur la blockchain, comme recevoir et envoyer des tokens, signer des transactions, interagir avec des smart contracts, etc.&lt;/p&gt;

&lt;p&gt;Un wallet contient :&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Adresse publique&lt;/strong&gt; → visible par tous (comme un IBAN bancaire) ex : &lt;code&gt;0x45FA...8CD&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Clé privée&lt;/strong&gt; → connue seulement du propriétaire du wallet (comme un mot de passe ultra-sensible à ne donner à personne).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;💡 Le wallet &lt;strong&gt;affiche&lt;/strong&gt; les tokens, mais &lt;strong&gt;ne les contient pas&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Le wallet permet d’agir, le smart contract applique les règles, et le token est une valeur enregistrée sur la blockchain.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Explication imagée&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;0x1234...abcd # Adresse publique d'Alice  
        : 10 # tokens
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frwiqt6hxe5gm9y0nsxx8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frwiqt6hxe5gm9y0nsxx8.png" alt=" " width="800" height="533"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h3&gt;
  
  
  Comment un smart contract garde la liste des soldes
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Un smart contract garde une table interne qui associe chaque adresse à un nombre.&lt;/strong&gt;&lt;br&gt;
Cela peut ressembler à un tableau ou une feuille Excel.&lt;/p&gt;

&lt;p&gt;À l’intérieur du smart contract de token, il y a une structure logique du type :&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;adresse → solde
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Par exemple :&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;0xAlice → 50  
0xBob   → 2
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Quand Alice “envoie” 10 tokens à Bob :&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Son wallet appelle le smart contract&lt;/li&gt;
&lt;li&gt;Le contrat vérifie :&lt;/li&gt;
&lt;/ol&gt;

&lt;ul&gt;
&lt;li&gt;qu’Alice a assez de tokens

&lt;ol&gt;
&lt;li&gt;Le contrat modifie ses données :
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;0xAlice → 40  
0xBob   → 12
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;👉 &lt;strong&gt;L’état global est mis à jour&lt;/strong&gt;, car les données du contrat ont changé.&lt;/p&gt;

&lt;p&gt;La liste (adresse → solde) fait partie de l’état global, une mémoire partagée de la blockchain.&lt;/p&gt;




&lt;h3&gt;
  
  
  Comment fonctionne un token ? “Envoyer un token”, en réalité
&lt;/h3&gt;

&lt;p&gt;Ce qui se passe VRAIMENT quand tu dis : “Alice envoie 10 tokens à Bob”&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Alice crée une transaction via son wallet qui envoie une demande au smart contract (cf 1) Création d’une transaction]&lt;/p&gt;

&lt;p&gt;💡 On n’envoie pas directement un token, on appelle une fonction du smart contract.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Le wallet signe la transaction avec la &lt;strong&gt;clé privée&lt;/strong&gt; d’Alice &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;La transaction est diffusée au réseau, vérifiée, puis placée en &lt;strong&gt;mempool&lt;/strong&gt; &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Quand la transaction est incluse dans un bloc, le producteur de bloc exécute le smart contract.&lt;br&gt;
Le contrat vérifie si Alice a 10 tokens ou plus.&lt;br&gt;&lt;br&gt;
Si oui, ses données sont mises à jour :&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Avant → Alice : 50 et Bob : 2&lt;/li&gt;
&lt;li&gt;Après → Alice : 40 et Bob : 12
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Validation, ajout à la chaîne, confirmations&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Envoyer un token, c’est appeler le smart contract du token pour qu’il mette à jour la liste des soldes (adresse → solde).&lt;/p&gt;




</description>
      <category>beginners</category>
      <category>blockchain</category>
      <category>cryptocurrency</category>
      <category>web3</category>
    </item>
    <item>
      <title>État global 2/3 : Les acteurs stockés dans l’état global</title>
      <dc:creator>Amel In Tech</dc:creator>
      <pubDate>Wed, 13 May 2026 16:30:00 +0000</pubDate>
      <link>https://dev.to/amel_in_tech/etat-global-24-les-acteurs-stockes-dans-letat-global-4oab</link>
      <guid>https://dev.to/amel_in_tech/etat-global-24-les-acteurs-stockes-dans-letat-global-4oab</guid>
      <description>&lt;h2&gt;
  
  
  &lt;strong&gt;Les comptes&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7psyp2yfn8fz65pe83pt.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7psyp2yfn8fz65pe83pt.png" alt=" " width="800" height="439"&gt;&lt;/a&gt;&lt;br&gt;
Tous les comptes vivent dans l’état global. Ce qui change, c’est qui les contrôle et ce qu’ils peuvent faire.&lt;/p&gt;

&lt;h3&gt;
  
  
  Compte wallet (EOA – Externally Owned Account)
&lt;/h3&gt;

&lt;p&gt;Un compte wallet (EOA) est un compte contrôlé par une clé privée, via un wallet (Metamask, Ledger, etc.).&lt;/p&gt;

&lt;p&gt;Il permet de signer des transactions, d’envoyer des tokens, et d’appeler des smart contracts.&lt;/p&gt;

&lt;p&gt;Il contient dans l’état global :&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;un solde (ETH, BNB, tokens),&lt;/li&gt;
&lt;li&gt;un nonce (compteur de transactions),&lt;/li&gt;
&lt;li&gt;pas de code.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Exemple : Le wallet d’Alice est un compte dans l’état global.&lt;/p&gt;




&lt;h3&gt;
  
  
  Compte smart contract
&lt;/h3&gt;

&lt;p&gt;Un &lt;strong&gt;compte smart contract&lt;/strong&gt; est un compte &lt;strong&gt;contrôlé par du code&lt;/strong&gt;, pas par une clé privée.&lt;/p&gt;

&lt;p&gt;Il permet d’exécuter automatiquement des règles, de créer / transférer des tokens et de modifier l’état global selon son code.&lt;/p&gt;

&lt;p&gt;Il contient (dans l’état global) :&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;un solde,&lt;/li&gt;
&lt;li&gt;des données internes (variables),&lt;/li&gt;
&lt;li&gt;du code (les règles du contrat).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;La différence entre un compte wallet et un compte smart contract est le mode de contrôle : l’un est contrôlé par une clé privée, l’autre par du code, mais tous deux existent dans l’état global.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fb4i3xxeemgu6otd7h774.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fb4i3xxeemgu6otd7h774.png" alt=" " width="800" height="395"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Différence essentielle
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Le wallet déclenche des actions.&lt;/li&gt;
&lt;li&gt;Le smart contract applique des règles.&lt;/li&gt;
&lt;li&gt;Les deux sont des comptes stockés dans l’état global.&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>beginners</category>
      <category>blockchain</category>
      <category>ethereum</category>
      <category>web3</category>
    </item>
    <item>
      <title>État global 1/3 : comment la blockchain sait "qui possède quoi" ?</title>
      <dc:creator>Amel In Tech</dc:creator>
      <pubDate>Mon, 11 May 2026 16:55:40 +0000</pubDate>
      <link>https://dev.to/amel_in_tech/etat-global-14-comment-la-blockchain-sait-qui-possede-quoi--2dfp</link>
      <guid>https://dev.to/amel_in_tech/etat-global-14-comment-la-blockchain-sait-qui-possede-quoi--2dfp</guid>
      <description>&lt;h2&gt;
  
  
  Qu’est-ce que l’état global ?
&lt;/h2&gt;

&lt;p&gt;La blockchain ne stocke pas seulement des transactions : elle maintient en permanence une grande mémoire partagée appelée l’état global (&lt;em&gt;global state&lt;/em&gt;).&lt;/p&gt;

&lt;p&gt;L’état global est la mémoire partagée d’une blockchain donnée (chaque blockchain possède son propre état global), à un instant T, et il est identique pour tous les nœuds du réseau.&lt;/p&gt;

&lt;h3&gt;
  
  
  Différence entre état global et transactions
&lt;/h3&gt;

&lt;p&gt;L’état global est le &lt;strong&gt;RÉSULTAT&lt;/strong&gt; de l’exécution des transactions, en clair :&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Les &lt;strong&gt;transactions&lt;/strong&gt; → l’historique (ce qui s’est passé)
Les transactions sont stockées dans les blocs de la blockchain.
Chaque bloc contient une liste de transactions ajoutées, des métadonnées et un lien vers le bloc précédent.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;💬 Exemple :&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Bloc 100 :
- Alice envoie 10 tokens à Bob
- Bob envoie 1 token à Charlie
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;⇒ Anlaogye : Transactions = le film 🎬&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;L’&lt;strong&gt;état global&lt;/strong&gt; → la situation actuelle (où on en est)
C’est une &lt;strong&gt;photo du résultat final&lt;/strong&gt; après l’exécution de toutes les transactions valides jusqu’à ce bloc.
L’état global sert de &lt;strong&gt;raccourci&lt;/strong&gt; et permet de dire : “Voilà où on en est maintenant”, sans tout recalculer depuis le début.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;⇒ État global = la dernière image du film 📸&lt;/p&gt;

&lt;h3&gt;
  
  
  Lien entre transactions et état global — résumé rapide
&lt;/h3&gt;

&lt;p&gt;Demande → transaction (= instruction) → création de bloc (liste de transactions) → exécution des transactions du bloc par les nœuds → modification de l’état global.&lt;/p&gt;

&lt;p&gt;💡 Chaque nouveau bloc fait passer la blockchain d’un état global à un autre.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fldhqgpxnyz4k6vd6hbp1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fldhqgpxnyz4k6vd6hbp1.png" alt=" " width="800" height="533"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Que contient l’état global ?
&lt;/h2&gt;

&lt;p&gt;L’état global est une liste de comptes avec, pour chacun :&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;son solde (&lt;em&gt;balance&lt;/em&gt;) : ce que le compte possède.

&lt;ul&gt;
&lt;li&gt;crypto native (ETH, BNB…) : stockée directement dans l’état global,&lt;/li&gt;
&lt;li&gt;tokens : stockés dans les données d’un smart contract, mais visibles via le wallet.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;p&gt;ses données (&lt;em&gt;data / storage&lt;/em&gt;) : informations stockées par un smart contract.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;nonce (compteur de transactions) : combien de transactions un wallet a déjà envoyées.
⚠️ Les wallets (EOA) ont un nonce, pas vraiment les smart contracts.&lt;/li&gt;
&lt;li&gt;états, règles internes, …
💡 Ces données vivent &lt;strong&gt;dans l’état global&lt;/strong&gt;, à l’intérieur du compte smart contract.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;p&gt;du code (uniquement pour les smart contracts).&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;règles, fonctions, logique métier&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;p&gt;Cette mémoire répond à une seule question :&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;« À l’instant T, qui possède quoi et dans quel état ? »&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5epm72psri5jpxu6try9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5epm72psri5jpxu6try9.png" alt=" " width="800" height="533"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Instant gammaire :  &lt;strong&gt;État global ou état global ?&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;État global : quand on parle du concept ou qu’on le définit.&lt;/p&gt;

&lt;p&gt;état global : quand on parle de l’objet concret, de son utilisation ou de son contenu.&lt;/p&gt;

</description>
      <category>architecture</category>
      <category>beginners</category>
      <category>blockchain</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Fonctionnement d’une blockchain 8/8 : Finalité &amp; confirmations</title>
      <dc:creator>Amel In Tech</dc:creator>
      <pubDate>Mon, 27 Apr 2026 07:49:52 +0000</pubDate>
      <link>https://dev.to/amel_in_tech/fonctionnement-dune-blockchain-88-finalite-confirmations-44h4</link>
      <guid>https://dev.to/amel_in_tech/fonctionnement-dune-blockchain-88-finalite-confirmations-44h4</guid>
      <description>&lt;p&gt;Quand la transaction est ajoutée dans un bloc, elle est visible dans la blockchain, mais on attend souvent plusieurs blocs supplémentaires pour être sûr qu’elle est définitive.&lt;/p&gt;

&lt;p&gt;→ Ce sont les “&lt;strong&gt;confirmations&lt;/strong&gt;”.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;💡 Exemple simple :&lt;/em&gt;&lt;br&gt;
Si une transaction est dans le bloc 100 et que la blockchain est rendue au bloc 105 → tu as 5 confirmations.&lt;/p&gt;

&lt;p&gt;Plus il y a de confirmations, plus la transaction est difficile à annuler.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fiv28pnuhg3d365510ohz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fiv28pnuhg3d365510ohz.png" alt=" " width="800" height="202"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>blockchain</category>
      <category>tutorial</category>
      <category>web3</category>
    </item>
    <item>
      <title>Fonctionnement d’une blockchain - Étape 7/8 : Propagation &amp; validation du bloc</title>
      <dc:creator>Amel In Tech</dc:creator>
      <pubDate>Sun, 26 Apr 2026 15:57:18 +0000</pubDate>
      <link>https://dev.to/amel_in_tech/fonctionnement-dune-blockchain-etape-78-propagation-validation-du-bloc-16np</link>
      <guid>https://dev.to/amel_in_tech/fonctionnement-dune-blockchain-etape-78-propagation-validation-du-bloc-16np</guid>
      <description>&lt;p&gt;À ce stade, un producteur de bloc (mineur &lt;br&gt;
PoW ou validateur PoS) a construit un bloc à partir de la mempool et a été choisi par le consensus (étape 6).&lt;/p&gt;

&lt;p&gt;Ce bloc n’est PAS encore officiel.&lt;/p&gt;

&lt;p&gt;Il doit maintenant être vérifié par tout le réseau via le processus suivant :&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Propagation du bloc (broadcast du bloc)&lt;/strong&gt;&lt;br&gt;
Le producteur de bloc envoie le bloc complet aux autres nœuds du réseau exactement comme une transaction est diffusée plus tôt.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Réception du bloc par les nœuds&lt;/strong&gt;&lt;br&gt;
Chaque nœud du réseau reçoit le bloc et vérifie lui-même, car la base dans la blockchain est qu’aucun nœud ne fait confiance au producteur du bloc, même s’il a “gagné”.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Vérifications effectuées par chaque nœud&lt;/strong&gt;&lt;br&gt;
a. Vérification des signatures&lt;br&gt;
b. Recalcul de la racine de Merkle&lt;br&gt;
c. Vérification du hash et du lien avec le bloc précédent&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. Décision du nœud : accepter ou rejeter le bloc&lt;/strong&gt;&lt;br&gt;
Après toutes ces vérifications, chaque nœud décide indépendamment :&lt;/p&gt;

&lt;p&gt;✅ Tout est correct → il accepte le bloc&lt;br&gt;
❌ Une seule erreur → il rejette le bloc&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;5. Ajout à la copie locale de la blockchain&lt;/strong&gt;&lt;br&gt;
Si le bloc est valide :&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;le nœud ajoute le bloc à SA copie de la blockchain&lt;/li&gt;
&lt;li&gt;il met à jour son état interne (soldes, tokens, etc.)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F06cu26720pv7kv3nqhqp.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F06cu26720pv7kv3nqhqp.jpeg" alt=" " width="800" height="533"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>blockchain</category>
      <category>distributedsystems</category>
      <category>tutorial</category>
      <category>web3</category>
    </item>
    <item>
      <title>Fonctionnement d’une blockchain - Étape 6/8 : Mécanisme de consensus</title>
      <dc:creator>Amel In Tech</dc:creator>
      <pubDate>Sat, 25 Apr 2026 14:17:49 +0000</pubDate>
      <link>https://dev.to/amel_in_tech/fonctionnement-dune-blockchain-etape-68-mecanisme-de-consensus-3igo</link>
      <guid>https://dev.to/amel_in_tech/fonctionnement-dune-blockchain-etape-68-mecanisme-de-consensus-3igo</guid>
      <description>&lt;p&gt;Quand plusieurs producteurs proposent des blocs, le réseau doit s’accorder sur quel bloc ajouter maintenant.&lt;/p&gt;

&lt;p&gt;C’est ce qu’on appelle le consensus : c’est un protocole qui permet à tous les nœuds d’être d’accord sans chef.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Preuve de travail&lt;/strong&gt; (PoW) : le bloc du mineur le plus rapide (et valide) est choisi.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Preuve d’enjeu&lt;/strong&gt; (PoS) : le bloc du validateur sélectionné est choisi, et d’autres validateurs confirment.&lt;/p&gt;

&lt;p&gt;Le consensus est ce qui garantit que :&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;tout le monde a la même version de la blockchain, &lt;/li&gt;
&lt;li&gt;aucun bloc frauduleux n’est ajouté.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2gj9db87bpy53gdcq2gp.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2gj9db87bpy53gdcq2gp.png" alt=" " width="800" height="533"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>blockchain</category>
      <category>distributedsystems</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Fonctionnement d’une blockchain - Étape 5/8 : Lien “maillon -&gt; maillon”</title>
      <dc:creator>Amel In Tech</dc:creator>
      <pubDate>Thu, 23 Apr 2026 05:51:45 +0000</pubDate>
      <link>https://dev.to/amel_in_tech/fonctionnement-dune-blockchain-etape-58-lien-maillon-maillon-55il</link>
      <guid>https://dev.to/amel_in_tech/fonctionnement-dune-blockchain-etape-58-lien-maillon-maillon-55il</guid>
      <description>&lt;p&gt;Chaque bloc &lt;strong&gt;pointe&lt;/strong&gt; (par hash) vers le &lt;strong&gt;bloc précédent&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Ce chaînage rend l’historique &lt;strong&gt;difficile à falsifier&lt;/strong&gt; car modifier un ancien bloc casserait tous les hashes suivants.&lt;/p&gt;

&lt;h3&gt;
  
  
  Qu’est-ce qu’un &lt;em&gt;hash&lt;/em&gt; ?
&lt;/h3&gt;

&lt;p&gt;Un &lt;strong&gt;hash&lt;/strong&gt; est une empreinte digitale unique créée à partir d’une information.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Une même donnée donne toujours le même hash
&lt;/li&gt;
&lt;li&gt;Une seule petite modification donne un hash complètement différent
&lt;/li&gt;
&lt;li&gt;Impossible de retrouver les données à partir du hash (fonction à sens unique)
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Chaque bloc contient :&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;son propre hash
&lt;/li&gt;
&lt;li&gt;le hash du bloc précédent c'est ce qui crée une &lt;strong&gt;chaîne incassable&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjld0ead4hanw6dnv2grl.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjld0ead4hanw6dnv2grl.png" alt=" " width="800" height="533"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Comment un hash est créé ?
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;On prend les données du bloc (transactions, date, racine Merkle, etc.)&lt;/li&gt;
&lt;li&gt;On les fait passer dans une &lt;strong&gt;fonction de hachage cryptographique&lt;/strong&gt; (ex : SHA-256 pour Bitcoin).&lt;/li&gt;
&lt;li&gt;On obtient une empreinte unique.&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>beginners</category>
      <category>blockchain</category>
      <category>computerscience</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Fonctionnement d’une blockchain - Étape 4/8 : Construction d’un bloc</title>
      <dc:creator>Amel In Tech</dc:creator>
      <pubDate>Wed, 22 Apr 2026 20:23:07 +0000</pubDate>
      <link>https://dev.to/amel_in_tech/fonctionnement-dune-blockchain-etape-48-construction-dun-bloc-5ckn</link>
      <guid>https://dev.to/amel_in_tech/fonctionnement-dune-blockchain-etape-48-construction-dun-bloc-5ckn</guid>
      <description>&lt;p&gt;Le producteur de bloc regroupe des transactions et construit un &lt;strong&gt;bloc&lt;/strong&gt; qui contient alors:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;une &lt;strong&gt;entête de bloc&lt;/strong&gt; (timestamp, référence au bloc précédent, &lt;em&gt;&lt;strong&gt;racine de Merkle&lt;/strong&gt;&lt;/em&gt;, etc.)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;liste des transactions&lt;/strong&gt; contenu dans ce bloc&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Qu’est-ce que la &lt;em&gt;racine de Merkle&lt;/em&gt; (Merkle Root)?
&lt;/h3&gt;

&lt;p&gt;La &lt;em&gt;racine de Merkle&lt;/em&gt; c'est une &lt;strong&gt;empreinte unique&lt;/strong&gt; générée à partir de toutes les transactions du bloc.&lt;/p&gt;

&lt;p&gt;Elle permet de vérifier faci&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;lement l’intégrité d’un bloc car si une seule transaction est changée ou supprimée, la racine change aussi, on sait alors qu’il y a eu falsification.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;Comment ça marche ?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Prenons un exemple simple avec 4 transactions : T1, T2, T3, T4&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;On calcule le &lt;strong&gt;hash&lt;/strong&gt; de chaque transaction :&lt;br&gt;
H1 = hash(T1), H2 = hash(T2), H3 = hash(T3), H4 = hash(T4)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;On regroupe les hash deux par deux et on les &lt;strong&gt;rehash&lt;/strong&gt; :&lt;br&gt;
H12 = hash(H1 + H2)&lt;br&gt;
H34 = hash(H3 + H4)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Enfin, on refait un hash avec ces deux résultats :&lt;br&gt;
&lt;strong&gt;Racine de Merkle = hash(H12 + H34)&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fm74nuf7q2kmid7m0trt3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fm74nuf7q2kmid7m0trt3.png" alt=" " width="800" height="413"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;source : geeksforgeeks.org/software-engineering/blockchain-merkle-trees/&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Ce dernier hash unique (la racine) &lt;strong&gt;représente tout le contenu du bloc&lt;/strong&gt;. Si une seule transaction change, le hash change → la racine change → le bloc est invalide.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Avantage&lt;/strong&gt; &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Vérification rapide :&lt;/strong&gt; On peut prouver qu’une transaction fait bien partie du bloc &lt;strong&gt;sans tout relire&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Sécurité :&lt;/strong&gt; Si une seule transaction change, la racine de Merkle change complètement ➜ impossible de tricher.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Stockage efficace :&lt;/strong&gt; On ne garde qu’un seul hash au lieu de toute la liste complète des transaction&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>algorithms</category>
      <category>blockchain</category>
      <category>computerscience</category>
      <category>tutorial</category>
    </item>
  </channel>
</rss>
