Comprendre les comptes externes vs contrats intelligents

Table of contents
Qui fait quoi sur Ethereum ?
Quand tu arrives dans le monde Ethereum, une des premières choses qui semble toute simple… mais qui est en fait fondamentale, c’est la distinction entre :
Les comptes externes (Externally Owned Accounts - EOAs)
Les comptes de contrats intelligents (Smart Contracts)
Au début, tu te dis : “C’est quoi la différence ? Ils ont tous une adresse, non ?”
Oui.
Mais… c’est comme dire qu’un humain et un robot ont tous les deux des bras : ça ne veut pas dire qu’ils s’en servent de la même manière 😅
👉 Si tu débarques ici sans avoir lu le 1er article "Pourquoi Ethereum et pas seulement Bitcoin ?", je te conseille de faire un saut rapide là-bas pour comprendre pourquoi Ethereum permet bien plus que du simple transfert d’argent.
👤 1. Les comptes externes – Toi, moi, ton wallet
Un compte externe est contrôlé par une clé privée. En gros, c’est ce que tu utilises quand tu te connectes avec MetaMask, Ledger ou Trust Wallet.
🔑 Ce qu’il faut savoir :
Il a une paire de clés (publique et privée)
Il peut envoyer des transactions
Il initie l’action sur la blockchain (un smart contract ne peut jamais initier quelque chose par lui-même)
Il a un solde d’ETH
💡 Ce type de compte, c’est TOI. C’est l’utilisateur humain qui agit.
🤖 2. Les contrats intelligents ; Les robots du monde Ethereum
Un compte de contrat est un programme déployé sur la blockchain. Il a aussi une adresse (comme les comptes externes), mais ne possède pas de clé privée.
C’est-à-dire ?
Il ne peut pas initier de transaction
Il réagit seulement quand un compte externe (ou un autre contrat) l'appelle
Son comportement est défini dans un code (écrit en général en Solidity)
Il peut gérer un solde, émettre des tokens, interagir avec d'autres contrats…
💡 Le contrat est passif. Il attend qu'on l'appelle pour s'exécuter.
🧩 Petit exemple de la vie réelle
Imagine un distributeur automatique de snacks :
Toi (compte externe) : tu as de la monnaie (ETH), tu décides de prendre un Kit-Kat (NFT).
Le distributeur (contrat intelligent) : il ne fait rien tant que tu ne mets pas une pièce. Mais dès que tu interagis, il suit une logique :
Si tu paies le bon montant
Il te donne ce que tu veux (le snack)
Et garde la monnaie (ou la redistribue à un autre)
Personne ne touche au distributeur pendant cette action. Il agit comme prévu par son programme interne.
C’est ça, un smart contract : un automate sur blockchain, sans émotion mais d’une loyauté extrême 😄
⚔️ Différences clés entre les deux types de comptes
Aspect | Compte Externe (EOA) | Smart Contract |
Contrôle | Clé privée (humain) | Code Solidity (développeur) |
Peut initier une transaction ? | ✅ Oui | ❌ Non |
Possède une clé privée ? | ✅ Oui | ❌ Non |
Peut interagir avec d'autres ? | ✅ Oui | ✅ Oui |
Peut contenir de l’ETH ? | ✅ Oui | ✅ Oui |
Autonomie | Active | Réactive |
Cas pratiques pour mieux comprendre :
Acheter un NFT : Tu (EOA) appelles un smart contract (le marketplace) qui t’envoie un NFT.
Déployer un token : Tu (EOA) envoies un contrat sur la blockchain. Ce contrat devient une entité indépendante.
Créer une DAO : Un contrat intelligent gère les votes. Toi, via ton compte, tu votes et proposes.
⚠️ Attention : Un contrat n’a pas d’intelligence “humaine”. Il ne peut pas réfléchir ou prendre des décisions imprévues. Tout doit être codé en avance, avec des garde-fous.
Et les failles là-dedans ?
Tu comprends maintenant que les smart contracts n’ont pas de clé privée, donc ils ne peuvent pas se protéger comme toi avec un mot de passe.
Mais s’ils sont mal écrits… ils peuvent être attaqués.
Un contrat ne peut pas “comprendre” s’il se fait manipuler – il exécute froidement ce qu’on lui dit, tant que ça respecte sa logique.
Exemple : en 2016, la fameuse DAO s’est faite siphonner 60 millions de dollars à cause d’une logique de retrait mal pensée. Et le contrat a suivi les règles… jusqu’à la catastrophe.
🔧 Et pour les développeurs Web2 alors ?
Tu as l’habitude de manipuler des fonctions JS, des appels API, des objets. Ici aussi, tu interagis avec des objets (les contrats), via Ethers.js ou Web3.js.
Mais la logique de déclenchement vient TOUJOURS d’un compte externe, même si tu enchaînes plusieurs appels dans une seule transaction.
👉 Si tu viens du monde Web2, tu vas adorer l’article suivant qui t’explique ce qu’il faut absolument savoir avant de te lancer :
🔗 Ethereum pour les développeurs Web2 – Ce qu’il faut savoir
🔁 Tu veux revoir la base ?
Si tu sens que tu as besoin de poser à nouveau les fondations pour comprendre pourquoi Ethereum est spécial et complémentaire à Bitcoin, fonce lire le premier article :
Et toi, tu savais qu’il y avait deux types de comptes sur Ethereum ?
Est-ce que tu as déjà déployé un contrat ? Ou interagi avec un ?
🎤 Partage ton expérience avec nous sur Twitter : @DeWeb2aWeb3
💬 Dis-nous ce que tu as appris
🔁 Partage cet article avec d’autres curieux francophones
🧠 Et propose-nous des idées d’articles ou de mini-guides à venir !
Subscribe to my newsletter
Read articles from Daniel Kambale directly inside your inbox. Subscribe to the newsletter, and don't miss out.
Written by

Daniel Kambale
Daniel Kambale
Hello! I’m Daniel, a Web3 developer specializing in Solidity and smart contract development. My journey in the blockchain space is driven by a vision of a fully decentralized world, where technology empowers individuals and transforms industries. As a Web3 ambassador , I’m committed to fostering growth and innovation in this space, helping to shape a future that values transparency and security. Fluent in both English and French, I enjoy connecting with diverse communities and sharing my insights across languages. This is why you’ll find some of my articles in French, while others are in Swahili, as I believe knowledge should be accessible to all. I use my Hashnode blog to document my learning process, explore decentralized solutions, and share practical tutorials on Web3 development. Whether it's diving deep into Solidity, discussing the latest in blockchain, or exploring new tools, I’m passionate about contributing to a decentralized future and connecting with others who share this vision. Let’s build the future together!