
Développeurs Web2, comment entrer dans Web3 ?
TechFlow SélectionTechFlow Sélection

Développeurs Web2, comment entrer dans Web3 ?
Appréhender les bases de la blockchain, explorer ses utilisations, puis choisir un domaine en fonction de ses propres intérêts pour approfondir ses connaissances.
Rédaction : Tiny Bear
IA et Web3 sont actuellement deux domaines parmi les rares considérés comme ayant un énorme potentiel. Les salaires dans le secteur du Web3 sont relativement élevés, avec de nombreux postes à distance et des opportunités d'emploi à l'échelle mondiale, ce qui attire beaucoup de développeurs Web2 vers le Web3.
La difficulté principale pour apprendre le développement Web3 réside probablement dans l'incertitude quant au point de départ. Après plus de dix ans de développement, le domaine du Web3 s'est considérablement élargi, avec de nombreuses composantes interdépendantes, ce qui crée de la confusion chez les développeurs débutants : par où commencer ? Quoi étudier exactement ?
J'ai moi-même intégré le Web3 en 2017, travaillant sur le développement de contrats intelligents, le plaidoyer technologique, tout en suivant continuellement l'évolution des technologies blockchain. Sur la base de ma compréhension globale du Web3, j'ai élaboré la feuille de route pédagogique ci-dessous, espérant aider chacun à y voir plus clair dans son apprentissage.
Cet article constitue une explication détaillée de cette feuille de route. La feuille de route est interactive[1] : lorsque vous rencontrez un terme inconnu, cliquez sur la petite flèche en haut à droite du terme pour afficher sa définition dans le volet droit.
Dans cette feuille de route, j'ai divisé l'apprentissage du Web3 en plusieurs étapes : comprendre les bases de la blockchain, explorer l'utilisation pratique de la blockchain, puis choisir une spécialisation selon ses intérêts.
Pour les nouveaux développeurs entrant dans le Web3, il est important de ne pas vouloir tout faire à la fois. Il vaut mieux faire des choix ciblés, se concentrer sur un domaine précis et approfondir ses connaissances. Cela permet d’éviter de se perdre et facilite la perception de sa propre progression.
Comprendre les bases de la blockchain
Les technologies sous-jacentes à la blockchain restent une extension des technologies informatiques traditionnelles. Pour développer dans le Web3, maîtriser les bases de données, les structures de données, les réseaux informatiques et les langages de programmation reste indispensable.
Cependant, le fonctionnement décentralisé de la blockchain peut sembler difficile à saisir au départ, car il ne s’agit pas uniquement d’un problème technique, mais aussi d’une idée sociale.
Aborder la question uniquement sous l’angle technique peut poser problème : pourquoi, par exemple, la quantité de BTC est-elle limitée à 21 millions ? On pourrait penser : « Les programmes peuvent toujours être modifiés, non ? »
Si vous êtes capable de répondre à cette question, cela signifie que vous avez déjà bien compris les fondamentaux de la blockchain (qu’est-ce qu’une blockchain et comment fonctionne-t-elle).
À quoi sert la blockchain ? Pourquoi est-elle utile ? Dans quels cas d’usage a-t-on besoin de la technologie blockchain ? Ce sont des questions dont la réponse s’approfondit progressivement avec le temps.
La technologie blockchain présente encore aujourd’hui de nombreux défis, mais globalement, elle renforce la souveraineté individuelle et rend la collaboration collective plus transparente.
J’ai rencontré de nombreux apprenants qui comparent constamment les avantages du Web2 aux faiblesses du Web3. Lorsque nous apprenons une nouvelle technologie, il est essentiel de garder un esprit ouvert afin d’en absorber pleinement les concepts.
Les changements apportés par la blockchain ne sont pas aussi immédiats que ceux de l’IA, ce qui conduit facilement à en sous-estimer la valeur.
Explorer l’utilisation de la blockchain
Une fois que vous avez acquis une connaissance de base de la blockchain, vous pouvez commencer à expérimenter des applications concrètes. Par exemple, utilisez un logiciel de portefeuille[2] pour créer votre propre compte. Si possible, détenez même une petite quantité de cryptomonnaie (il existe un certain seuil d’accès, bien qu’il soit possible d’utiliser des jetons de test. Toutefois, l’expérience avec de l’argent réel est différente).
Sentez le processus de signature lors de l’envoi d’une transaction, consultez un explorateur de blockchain, observez le processus de regroupement des transactions et de création de blocs.
Lors de l’utilisation, vous remarquerez les différences de vitesse entre les différentes blockchains. Cela vous permettra de comprendre les divers mécanismes de consensus et d’appréhender les compromis entre décentralisation, sécurité et efficacité.
Si cela vous intéresse, essayez également les échanges d’actifs sur un DEX, les transactions NFT ou encore la gouvernance DAO.
Par rapport au Web2, la différence clé des applications Web3 réside dans le fait que vos actifs vous appartiennent exclusivement (toute information pouvant être considérée comme un actif). Seul votre signature via votre clé privée vous permet d’en disposer ; personne ne peut vous les retirer. Une autre différence importante est que les applications Web3 sont généralement open source, et que tous participent de manière égale à des règles transparentes.
Si vous reconnaissez la valeur et la pertinence du Web3, envisagez d’y contribuer activement.
Choisir une orientation
Cet article aborde principalement les aspects techniques. Vous pouvez choisir entre une orientation recherche ou développement (bien qu’il existe aussi des rôles passionnants comme l’animation communautaire dans les projets Web3, hors sujet ici).
Si vous avez un bon bagage théorique ou académique, ou si vous aimez explorer de nouvelles idées, vous pouvez opter pour la recherche : cryptographie, algorithmes de consensus, solutions de mise à l’échelle, économie des jetons, etc. Cette voie implique souvent la lecture de nombreux articles scientifiques en anglais.
Le développement se divise en deux grandes catégories : le développement de chaînes (« chain development ») et le développement d’applications.
Développement de chaînes (Chain Development)
Le développement de chaînes exige davantage de compétences techniques et offre généralement de meilleurs salaires, bien que la demande soit moindre comparé au développement d’applications. Avec le temps, à mesure que les applications gagnent en popularité, la demande en développeurs d’applications augmentera, tandis que celle en développement de chaînes deviendra plus stable. De nouvelles opportunités pour créer de nouvelles chaînes seront rares. Ce domaine convient particulièrement aux développeurs passionnés par les couches basses.
Le développement de chaînes peut porter sur la création de nouvelles chaînes ou sur les chaînes de couche 2 (Layer 2) et couche 3 (Layer 3) destinées à la mise à l’échelle :
Créer une nouvelle chaîne signifie généralement développer une Layer 1. Voici les éléments à connaître :
-
Geth : implémentation en langage Go du nœud Ethereum, largement utilisée pour le développement et la personnalisation de chaînes compatibles EVM.
-
Reth : implémentation Ethereum en Rust, offrant une alternative haute performance pour les clients Ethereum.
-
Substrate : framework en Rust développé par Parity pour construire des blockchains personnalisées. Utilisé massivement dans l’écosystème Polkadot, mais aussi pour de nombreuses blockchains indépendantes.
-
Cosmos SDK : framework modulaire de développement de blockchains en Go. Toutes les nouvelles chaînes compatibles Cosmos sont basées sur Cosmos SDK.
-
D'autres chaînes utilisent aussi la machine virtuelle Move ou la machine virtuelle Solana.
Chaînes de mise à l’échelle Layer 2 ou chaînes applicatives Layer 3
En raison de la capacité limitée des chaînes principales — notamment Ethereum et Bitcoin — incapables de supporter un usage massif, l’idée des Layer 2 consiste à exécuter certaines transactions en dehors de la chaîne principale (sur une Layer 2), tandis que la Layer 1 se contente de vérifier ces exécutions. Les chaînes Layer 3 sont généralement des blockchains personnalisées pour des cas d’usage spécifiques. Les développeurs doivent connaître les éléments suivants :
-
OP Stack : framework Layer 2 développé par Optimism, le plus utilisé parmi les chaînes Layer 2 d’Ethereum.
-
Polygon CDK : kit d’outils de développement de chaînes créé par Polygon, permettant des extensions flexibles telles que Validium ou zkRollup.
-
StarkEx : solution de mise à l’échelle Layer 2 développée par StarkWare, utilisant la technologie ZKStark. D’autres solutions ZK similaires existent, comme ZK Stack, développé par Matter Labs (équipe derrière zkSync).
-
Arbitrum Stylus (évolution d’Arbitrum Nitro) et Arbitrum Orbit : solutions de mise à l’échelle Layer 2 et Layer 3 développées par l’équipe Arbitrum. Stylus permet une extension de la couche d’exécution supportant plusieurs langages de programmation.
Pour les développeurs de chaînes, il est également important de comprendre la notion de modularité. L'idée est de scinder une blockchain traditionnelle monolithique en plusieurs couches distinctes, chacune traitant un problème spécifique, voire assurée par des chaînes différentes. Ces quatre couches sont :
-
Couche d’exécution : responsable de l’exécution des contrats intelligents, similaire au module EVM d’Ethereum. Une Layer 2 représente en partie une couche d’exécution.
-
Couche de règlement : assure le règlement des transactions et garantit la sécurité des actifs et la validité des opérations.
-
Couche de consensus : module garantissant que les nœuds parviennent à un accord sur les transactions.
-
Disponibilité des données (DA) : couche assurant le stockage correct et l’accès aux données de la chaîne. Elle est cruciale dans les solutions de mise à l’échelle pour valider la validité des transactions Layer 2. Différentes solutions DA existent : EIP4844 utilisant des "Blobs" comme DA, AnyTrust, EigenDA, Avail DA, Celestia, NearDA, etc.
Un autre phénomène émergent est l’intégration progressive de preuves à connaissance nulle (ZKP) dans les blockchains. Par exemple, utiliser des ZKP pour prouver l’exécution des transactions (comme dans zkRollup, utilisé tant sur Layer 2 que potentiellement sur Layer 1), ou pour prouver l’état du stockage afin de permettre des clients légers ou sans état, améliorant ainsi la décentralisation. Certaines chaînes utilisent aussi les ZKP pour assurer des transactions privées.
Si vous choisissez le développement de chaînes, mon conseil aux débutants est d’apprendre Go, puis d’étudier Geth et OP Stack. Les autres frameworks peuvent être explorés selon vos besoins et centres d’intérêt.
Les solutions de mise à l’échelle décrites ci-dessus concernent surtout Ethereum. Récemment, plusieurs équipes ont commencé à travailler sur la mise à l’échelle de Bitcoin, suscitant un grand intérêt. Globalement, on distingue deux types : les canaux (étatiques) et les sidechains. Les premiers héritent d'une meilleure sécurité de Bitcoin, mais ont des capacités de programmation limitées. Des exemples notables incluent le réseau Lightning, combiné à des schémas de validation client comme RGB et RGB++. Les secondes offrent moins de sécurité héritée de Bitcoin (par exemple via MPC pour le cross-chain), mais permettent une extensibilité de programmation supérieure. Certaines solutions combinent les deux approches.
Le secteur de la mise à l’échelle sur Bitcoin est encore en phase exploratoire. Si vous êtes adepte de Bitcoin, suivez attentivement ces développements.
Développement d'applications
Si vous souhaitez vous orienter vers le développement d'applications, une compréhension profonde de la couche basse de la blockchain n’est pas nécessaire. En revanche, il est important de connaître les caractéristiques des différentes blockchains : performances, niveau de décentralisation.
Par exemple, pour développer des applications sociales ou des jeux, les exigences en matière de performance de la blockchain sous-jacente sont élevées. Pour des applications DeFi à haute valeur, la décentralisation peut être une priorité plus grande.
Il faut aussi prendre en compte le langage de développement pris en charge par la blockchain de base, ainsi que la vitalité de l’écosystème et le soutien apporté aux applications, car cela affecte directement la charge de travail de développement et le coût d’acquisition des utilisateurs.
Pour ceux qui cherchent un emploi, plus un écosystème est dynamique, plus il offre d’opportunités — mais aussi une concurrence accrue.
Choisir une blockchain adaptée est crucial pour le succès d’une application. La plupart des projets choisissent de se baser sur une blockchain ou une famille de blockchains. Certains, en particulier les infrastructures comme les portefeuilles, les ponts cross-chain ou les oracles de prix, doivent supporter de nombreuses blockchains.
Choisir son écosystème
Voici une comparaison rapide des principaux écosystèmes, à titre indicatif :
Bitcoin : dispose du plus grand consensus et volume de capitaux, mais ses capacités de script sont limitées. Peu d'applications peuvent être réalisées directement sur la chaîne Bitcoin. Beaucoup nécessitent des indexeurs ou des schémas de validation client. L’écosystème est encore immature, mais cela pourrait représenter davantage d’opportunités à long terme.
Écosystème EVM : inclut Ethereum et de nombreuses chaînes compatibles EVM (Tron est aussi inclus), ainsi que certains Layer 2 de Bitcoin. Ces chaînes partagent le même modèle de programmation, utilisent Solidity pour développer des contrats intelligents (programmes exécutés sur la chaîne). L’écosystème est riche, les outils de développement complets, et les ressources pédagogiques nombreuses.
Solana : a connu une croissance très forte l’année dernière, occupant la deuxième place en taille d’écosystème, bien que nettement derrière l’écosystème EVM. Solana se distingue par son débit élevé et ses frais de transaction bas. Les contrats sont développés en Rust, ce qui pose un seuil d’entrée plus élevé.
TON : soutenu par Telegram, qui possède une immense base d'utilisateurs, connaît une forte popularité récemment. TON offre aussi de hautes performances. Les contrats intelligents sont principalement écrits en Func. Toutefois, l’écosystème est jeune, les bibliothèques d’outils sont incomplètes, et les ressources de développement peu nombreuses.
Il existe d'autres écosystèmes comme Move (Sui / Aptos), Starknet, ICP, AO/AR, etc., chacun ayant ses atouts, mais attirant actuellement moins d’attention.
Cette description reflète l’état actuel des écosystèmes, qui évoluent constamment. Chaque écosystème a sa propre culture. Choisissez selon vos préférences.
Conseil aux débutants : commencez par l’écosystème EVM, qui offre de nombreuses ressources et une stabilité éprouvée.
Développement de contrats intelligents
Comparé au développement d’applications internet, le développement Web3 implique un changement majeur : une grande partie de la logique backend est désormais transférée dans des contrats intelligents exécutés sur la chaîne (une partie est aussi déplacée vers le frontend, voir section suivante), afin d’éliminer la dépendance aux serveurs centralisés.
Certaines applications Web3 n’impliquent pas de développement de contrats, comme les portefeuilles, les exchanges ou les services de données sur chaîne. Pour ces applications, il est essentiel de savoir interagir avec les contrats. Voir section suivante.
Dans l’écosystème EVM, le langage le plus courant pour les contrats intelligents est Solidity. Apprenez-le impérativement. Yul, langage d’assemblage pour contrats, peut être exploré si vous avez du temps.
Pour les écosystèmes Solana, TON, Move, etc., chaque chaîne a son propre langage de développement. Nous les présenterons séparément ultérieurement.
Pour le développement Solidity, l’IDE en ligne Remix est recommandé pour les débutants. Pour les projets professionnels, VS Code combiné à un framework de développement est préféré. Les frameworks facilitent la compilation, le déploiement et les tests. Foundry est le meilleur choix (tests plus simples), suivi de Hardhat.
Lors du développement de contrats, il est essentiel de connaître et d’utiliser les standards courants de jetons (Token/NFT), comme ERC20, ERC2612, ERC721, ERC1155. Réutiliser des composants existants est une bonne pratique. OpenZeppelin est une bibliothèque de contrats intelligents qui implémente ces standards, réduisant la charge de travail et améliorant la sécurité.
Lors du développement, respectez autant que possible les standards. Contrairement au Web2, où les programmes sont souvent appelés par soi-même, les contrats intelligents sont publics et accessibles à tous. Plus ils sont utilisés, plus leur valeur augmente. Suivre les standards facilite leur adoption par d’autres.
Développement avancé de contrats
Bien que Solidity soit simple à démarrer, devenir un excellent ingénieur de contrats requiert beaucoup d’apprentissage (et de pratique) : maîtriser les techniques d’optimisation pour réduire les frais de gaz, utiliser Create2 pour créer et prédire des adresses de contrat, comprendre les mécanismes d’appel et d’appel délégué, savoir mettre à jour un contrat, appliquer habilement les signatures hors ligne pour réduire les coûts utilisateur, utiliser des arbres de Merkle pour diminuer les coûts de stockage, connaître les vulnérabilités de sécurité courantes, comprendre les modes de gouvernance DAO, appréhender l’abstraction de compte, savoir utiliser des oracles pour récupérer des données hors chaîne, etc.
De plus, la finance décentralisée (DeFi) est actuellement l’un des principaux cas d’usage du Web3. Comprendre les concepts financiers courants, maîtriser le fonctionnement des protocoles DeFi populaires, et comprendre les prêts flash, ouvre de nombreuses opportunités.
Frontend et Backend des applications Web3
Le contrat intelligent joue le rôle du backend. Une application Web3 agréable nécessite aussi un frontend bien conçu. Dans le Web3, les utilisateurs gèrent eux-mêmes leurs actifs, donc le frontend doit interagir avec un portefeuille.
Le backend d’une application Web3 agit principalement comme une couche cache. Les données sur chaîne ne sont pas structurées comme dans une base de données, ce qui rend les requêtes peu pratiques. Un backend en cache améliore significativement l’expérience utilisateur.
Il existe désormais de nombreux fournisseurs spécialisés de données blockchain. Les données publiques sur chaîne constituent un véritable trésor. Si vous êtes intéressé par le big data, c’est aussi une excellente orientation.
Pour le développement frontend Web3, il faut connaître les méthodes d’intégration des portefeuilles : MetaMask, WalletConnect, Web3Modal, etc. L’interaction entre le frontend et la chaîne se fait via des bibliothèques comme Vim.sh, Ethers.js ou Web3.js, qui sont des enveloppes autour des services RPC des nœuds. Lors d’un appel, le frontend utilise l’URL du nœud RPC pour déterminer la chaîne cible, et l’ABI avec l’adresse du contrat pour identifier la fonction spécifique.
Le backend Web3 traite principalement les données, par exemple en analysant les blocs pour extraire les événements d’un contrat donné. L’interaction avec la chaîne est similaire au frontend, mais varie selon le langage backend. Les bibliothèques courantes sont : go-ethereum pour Go, Vim.sh ou Ethers.js pour Node.js. Familiarisez-vous bien avec celles-ci.
Bienvenue dans la communauté officielle TechFlow
Groupe Telegram :https://t.me/TechFlowDaily
Compte Twitter officiel :https://x.com/TechFlowPost
Compte Twitter anglais :https://x.com/BlockFlow_News












