Files
tokenizer/docs/pedagogie/02-web3-comprendre.md
2026-09-30 09:30:26 +02:00

243 lines
13 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Web3 — définition et concepts (pour le projet Tokenizer)
> Document **pédagogique** (dépôt de travail). Le sujet Tokenizer indique seulement : *« This document is a Web3 related exercise »* — ce texte complète cette mention avant de coder.
---
## 1. Qu’est-ce que le Web3 ?
**Web3** (ou **Web 3.0**) désigne une **vision** d’Internet où les utilisateurs interagissent avec des **services numériques** en s’appuyant sur des **réseaux décentralisés** (souvent des **blockchains**), plutôt que sur des **plateformes centralisées** seules (serveurs d’une entreprise, comptes verrouillés chez un opérateur).
En pratique, quand on dit « projet Web3 » à l’école ou en entreprise, on parle souvent de :
- des **smart contracts** (programmes exécutés sur une chaîne) ;
- des **tokens** (actifs numériques définis par ces contrats) ;
- des **portefeuilles** (*wallets*) qui signent des transactions avec des **clés cryptographiques** ;
- des **applications décentralisées** (**DApps**) qui lisent/écrivent l’état on-chain via des bibliothèques (ethers.js, web3.js, etc.).
Le Web3 n’est **pas** un protocole unique ni un fichier de norme ISO : c’est un **ensemble d’idées et de technologies** dont l’emballage marketing varie. Pour Tokenizer, l’angle utile est **technique** : tu crées un **token sur une blockchain publique** — c’est un brique classique de l’écosystème Web3.
---
## 2. Web1, Web2, Web3 — repères historiques (simplifiés)
| Génération | Image courante | Qui « possède » les données / la logique ? | Exemples |
|------------|----------------|--------------------------------------------|----------|
| **Web1** (~1990–2000) | Pages **lecture seule** | Éditeurs de sites, hébergeurs | Pages HTML statiques, premiers forums |
| **Web2** (~2000–aujourd’hui) | **Lecture + écriture** sociale, apps riches | **Plateformes** (GAFAM, SaaS) : tes données et règles chez elles | Réseaux sociaux, Google Docs, API 42 hébergée par 42 |
| **Web3** (depuis ~2017, terme popularisé) | **Lecture + écriture + propriété** d’actifs / règles on-chain | **Réseau** + contrats : l’état partagé est sur la chaîne ; l’utilisateur garde souvent sa **clé** | Tokens, DeFi, NFT, DApps |
Ces frontières sont **floues** : le Web2 n’a pas disparu ; la plupart des DApps ont encore un **site web classique** (Web2) qui parle à la blockchain (Web3).
**Lien Tokenizer :** tu ne construis pas tout un site décentralisé ; tu fabriques l’**actif** (token BEP-20) que d’autres apps Web3 pourraient utiliser plus tard.
---
## 3. Idées centrales du Web3 (vocabulaire)
### 3.1 Décentralisation
Plusieurs machines (nœuds) maintiennent une **copie** (ou une vue) du même registre. Personne ne peut, à lui seul, « effacer » une transaction validée selon les règles du protocole — contrairement à une base SQL sur un serveur unique.
- **Nuance :** « décentralisé » ≠ « parfaitement égalitaire ». Miners/validateurs, fondations, bridges peuvent concentrer du pouvoir. Il faut rester **critique**.
### 3.2 Blockchain
Chaîne de **blocs** liés par empreintes cryptographiques ; chaque bloc contient des **transactions** (ou des exécutions de contrats). Consensus (PoS, PoA, etc.) définit qui peut proposer le bloc suivant.
- **BNB Chain** (sujet Tokenizer) est une de ces chaînes, orientée **smart contracts** et volume d’usage.
### 3.3 Smart contract
Programme déployé à une **adresse** sur la chaîne. Une fois publié, son code est (en principe) **immuable** sauf si le contrat prévoit une mise à jour ou un proxy. Les utilisateurs l’appellent en envoyant des **transactions**.
- **Ton projet :** le token est un smart contract (souvent basé sur le standard **BEP-20**).
### 3.4 Token
Actif numérique défini par un contrat : soldes par adresse, transferts, parfois mint/burn. Un token peut représenter une **unité de compte** (style monnaie), des **parts**, ou un rôle dans un protocole — selon ce que **tu documentes**.
- **Contrainte 42 :** le **nom** doit contenir `42` ; le ticker et l’usage sont à toi (dans le cadre du sujet).
### 3.5 Wallet (portefeuille)
Logiciel ou matériel qui gère une **paire de clés** :
- **Adresse publique** (ex. `0xabc…`) — identifiant pour recevoir ;
- **Clé privée** — secret qui **signe** les transactions (ne jamais la committer dans Git).
Sur testnet, le wallet contient des **tBNB** (gas) et tes tokens après déploiement / transfer.
### 3.6 DApp (Decentralized Application)
Application dont une partie critique repose sur des contrats on-chain (échanges, votes, tokens). Souvent : front web ou mobile + bibliothèque Web3 + RPC vers un nœud.
- Tokenizer **n’exige pas** une DApp complète ; le token est la brique de base.
### 3.7 Gas
Frais payés dans la **monnaie native** de la chaîne (BNB sur BSC, ETH sur Ethereum) pour exécuter une transaction. Sur **testnet**, cette monnaie n’a **pas de valeur réelle** — le sujet insiste : pas d’argent réel pour le projet.
### 3.8 Explorateur de blocs (BscScan, etc.)
Site qui indexe chaîne : adresses, transactions, code vérifié du contrat. Obligatoire pour **prouver** le déploiement et le ticker en soutenance.
---
## 4. Web3 et « crypto » — ne pas confondre
| Terme | Sens |
|-------|------|
| **Cryptographie** | Mathématiques (signatures, hash) — **fondation** technique de la blockchain |
| **Crypto-actif / « crypto »** (langage courant) | Tokens échangeables, souvent spéculatifs — **contexte économique** |
| **Web3** | Mouvement produit / dev autour d’apps et actifs on-chain |
Le projet Tokenizer est un exercice **d’ingénierie** (contrat, déploiement, sécurité, documentation), pas une recommandation d’investissement. Le partenariat **BNB Chain** situe l’exercice dans un **écosystème** réel, tout en utilisant le **testnet** pour éviter le risque financier.
---
## 5. Architecture mentale : où se place ton token ?
```mermaid
flowchart LR
subgraph web2 [Couche familière Web2]
User[Utilisateur]
Browser[Navigateur / IDE / Git]
end
subgraph web3 [Couche Web3]
Wallet[Wallet]
RPC[Réseau RPC]
Chain[Blockchain publique]
SC[Smart contract Token BEP-20]
Explorer[Explorateur BscScan]
end
User --> Browser
User --> Wallet
Wallet --> RPC
RPC --> Chain
Chain --> SC
SC --> Explorer
Browser --> Explorer
```
1. Tu **écris** le contrat en local (`code/`).
2. Tu **déploies** via un script (`deployment/`) — transaction signée par ton wallet test.
3. Le contrat vit à une **adresse** sur la chaîne.
4. Tout le monde peut **lire** l’état via l’explorateur ; les détenteurs de tokens **transfèrent** via leurs wallets.
---
## 6. Standards : pourquoi BEP-20 / ERC-20 ?
Les blockchains compatibles **EVM** (Ethereum, BSC, etc.) partagent souvent le même modèle de contrat. **ERC-20** (Ethereum) et **BEP-20** (BSC) décrivent les mêmes idées : `balanceOf`, `transfer`, `approve`, `allowance`, événements `Transfer`, etc.
Les wallets et explorateurs savent afficher un token **s’il respecte** ce standard. C’est pour cela que le sujet exige de respecter le standard de ta chaîne.
---
## 7. Sécurité — angle Web3 (rappel sujet)
Le Web3 déplace une partie des risques vers **le code** et **les clés** :
| Risque | Exemple |
|--------|---------|
| Clé privée exposée | Drain du wallet |
| `owner` trop puissant | Mint illimité, vol de confiance |
| Bug de contrat | Fonds ou tokens bloqués / volés |
| Mauvaise doc | Utilisateurs qui ne comprennent pas les privilèges |
Tokenizer te demande explicitement de réfléchir à **ownership** et **privilèges** et de le montrer en **démo minimale** + **revue de code**.
---
## 8. Ce que le Web3 t’apporte dans *ce* projet (résumé)
| Concept Web3 | Dans Tokenizer |
|--------------|----------------|
| Blockchain publique | Déploiement testnet + adresse dans README |
| Smart contract | `code/` — token |
| Token standard | BEP-20 (recommandé) |
| Wallet + gas | tBNB via faucet |
| Transparence | Explorer + verify |
| Gouvernance minimale | Owner, éventuel bonus multisig |
Pour aller plus loin sur les **compétences** visées : [01-apports-pedagogiques.md](01-apports-pedagogiques.md).
Pour passer à l’action : [guide-realisation.md](guide-realisation.md).
---
## 9. Lectures utiles (hors 42)
- [Ethereum.org — Introduction](https://ethereum.org/fr/developers/docs/intro-to-ethereum/) (concepts transférables à BSC)
- [BNB Chain — documentation développeurs](https://www.bnbchain.org/en/developers)
- [OpenZeppelin — ERC20](https://docs.openzeppelin.com/contracts/5.x/erc20)
---
## 10. BNB, BNB Chain et Binance (partenaire du sujet)
Le chapitre I du sujet parle de **BNB Chain** et du faucet **tBNB**. Le sigle **BNB** prête souvent à confusion avec **Binance** : voici une cartographie claire pour Tokenizer.
### 10.1 Trois sens différents de « BNB »
| Sens | Explication |
|------|-------------|
| **BNB Chain** | Le **réseau blockchain** (smart contracts, tokens, DApps). Nom marketing actuel : *Build N Build* — c’est ce que le PDF cite en partenariat avec 42. |
| **BNB (l’actif)** | La **monnaie native** de cette chaîne : tu la dépenses en **gas** pour déployer un contrat ou envoyer une transaction. |
| **tBNB** | Même rôle sur le **testnet** : BNB de **test**, **sans valeur réelle** — obtenu via le [faucet](https://www.bnbchain.org/en/testnet-faucet) du sujet. |
Ton token du projet (BEP-20) est un **autre** contrat : ce n’est pas le BNB natif, mais il vit sur la **même chaîne** et les transferts de ton token consomment aussi du gas payé en (t)BNB.
### 10.2 Rapport avec Binance
**Oui, il y a un lien historique et économique**, mais **BNB Chain n’est pas « l’application Binance »** au sens du site d’échange.
| Élément | Rôle |
|---------|------|
| **Binance** | Entreprise fondée en 2017, connue surtout comme **plateforme d’échange** centralisée (ordres, carnets, comptes utilisateurs). |
| **Origine du token BNB** | Lancé par l’écosystème Binance ; le nom venait souvent de **Binance Coin** à l’époque. |
| **Binance Smart Chain (BSC)** | Lancée en 2020 : chaîne **compatible EVM** (proche d’Ethereum) pour des contrats moins chers / rapides que le mainnet ETH de l’époque. |
| **Rebranding BNB Chain** | La chaîne et la marque ont été regroupées sous **BNB Chain** (*Build N Build*) : communication orientée **réseau pour développeurs**, pas seulement exchange. |
En soutenance, une formulation honnête et suffisante :
> « Le sujet est en partenariat avec **BNB Chain**. BNB est la monnaie native de ce réseau ; l’écosystème est lié historiquement à **Binance**, mais mon projet tourne sur le **testnet public** avec **tBNB** — je n’utilise pas de fonds réels ni le compte trading Binance. »
### 10.3 Noms que tu peux croiser (glossaire)
| Abréviation | Signification | Utile pour Tokenizer |
|-------------|---------------|----------------------|
| **BSC** | *Binance Smart Chain* — ancien nom courant de la chaîne | Encore utilisé dans les tutos (MetaMask « BSC Testnet ») |
| **BNB Smart Chain** | Formulation intermédiaire | Même famille que BSC / BNB Chain |
| **BEP-20** | Standard des **tokens** sur BNB Chain | **Obligatoire** à respecter (équivalent ERC-20) |
| **BEP-2** | Ancien format sur une autre brique (Binance Chain legacy) | **Pas** le standard de ton exercice type ERC-20/BEP-20 |
| **BscScan** | Explorateur de blocs pour BSC / BNB Chain | Où publier l’adresse du contrat après déploiement |
| **chainId 97** | Identifiant du **BSC Testnet** | À mentionner dans le README école avec l’adresse |
### 10.4 Ce dont tu as besoin (et ce dont tu n’as pas besoin)
| Besoin | Pourquoi |
|--------|----------|
| **Wallet** (MetaMask, Rabby, etc.) | Adresse + signature des transactions de déploiement |
| **RPC testnet** | Connexion Hardhat / Remix à la chaîne de test |
| **tBNB** (faucet) | Payer le gas du deploy et des démos |
| **Compte Binance / KYC** | **Non requis** pour le projet tel que décrit dans le sujet |
Le **mainnet** BNB (vrai BNB avec valeur marché) n’est **pas** demandé ; le sujet insiste sur les **test chains**.
### 10.5 Lien avec le chapitre I du PDF
Le partenariat **42 × BNB Chain** explique :
- les statistiques d’usage (volume, DApps) dans le préambule ;
- le lien vers [bnbchain.org](https://www.bnbchain.org/) (Figure I.1) ;
- le **faucet** pour développer sans argent réel.
Ce n’impose pas juridiquement BSC en une phrase « tu dois utiliser BSC », mais c’est la piste **la plus alignée** avec le sujet (BEP-20, tBNB, BscScan). Une autre chaîne EVM reste possible si tu **justifies** tes choix dans le README école.
→ Rappel dans le sujet traduit : [Chapitre I — BNB, Binance et BNB Chain](../sujets/tokenizer.md#bnb-binance-et-bnb-chain).
---
*Dernière révision : ajout section BNB / Binance — à compléter si tu choisis une chaîne non-EVM (peu courant pour ce sujet).*