Avertissement : Cet article a été traduit de sa langue originale pour votre commodité. Bien que nous nous efforcions d'être précis, il peut y avoir de légères erreurs ou différences d'interprétation. Pour une représentation la plus exacte et véritable, veuillez consulter la publication originale, disponible ici. Nous apprécions votre compréhension et vous encourageons à consulter la source originale pour des informations détaillées.
Principaux enseignements :
Les prédicats dans la FuelVM sont des programmes d'autorisation sans état qui répondent à une simple question oui/non pour savoir si une transaction est autorisée, tandis que les scripts sont des programmes d'exécution éphémères qui effectuent des opérations complexes et disparaissent ensuite.
FuelVM combine le modèle UTXO de Bitcoin avec des prédicats “sans état” pour permettre un traitement véritablement parallèle des transactions, ce qui améliore considérablement le débit et l'efficacité. Cette combinaison permet de débloquer des transactions plus complexes que celles que Bitcoin pourrait prendre en charge, tandis que l'intégration avec les contrats intelligents permet de construire des dApps de type Ethereum sur Fuel avec des performances supérieures.
Contrairement aux contrats intelligents traditionnels, les scripts de FuelVM s'exécutent une fois et disparaissent, réduisant le gonflement de l'état tout en permettant l'orchestration de transactions complexes avec des garanties atomiques.
En traitant tous les actifs comme des citoyens de première classe dans le protocole plutôt que comme des entrées de contrat intelligent, Fuel élimine les flux de travail d'approbation et simplifie les transferts d'actifs.
Le modèle UTXO avec vérification basée sur les prédictions permet de traiter simultanément plusieurs transactions sur les cœurs de CPU disponibles, s'affranchissant ainsi des limites séquentielles des blockchains traditionnelles.
Les opérations complexes en plusieurs étapes (comme les échanges multi-sauts et le yield farming) peuvent être exécutées de manière atomique en une seule transaction sans approbation intermédiaire, ce qui simplifie radicalement l'expérience des utilisateurs de DeFi.
Fuel a ouvert la voie à une approche révolutionnaire de l'architecture de la blockchain en centrant sa conception sur trois composants essentiels : les prédicats, les scripts et les contrats. En séparant les contrôles de sécurité (prédicats) de l'orchestration des transactions (scripts) et de la gestion des états (contrats), Fuel a créé des possibilités qui n'existent tout simplement pas dans les systèmes de blockchain traditionnels. Contrairement aux scripts, qui sont éphémères et sans état, seuls les contrats peuvent effectuer des changements d'état persistants dans la FuelVM. Cette séparation nette des préoccupations permet un traitement plus efficace tout en maintenant la programmabilité complète nécessaire pour les applications complexes.
Alors que les blockchains actuelles sont confrontées à des frais d'essence élevés, à des confirmations lentes et à des expériences utilisateur complexes, l'architecture de Fuel s'attaque à ces goulets d'étranglement grâce au traitement parallèle des transactions dans la FuelVM. Les prédicats vérifient les transactions avant qu'elles n'atteignent la chaîne, tandis que les scripts orchestrent l'exécution des transactions après approbation préalable. Les scripts eux-mêmes ne modifient pas l'état directement, mais ils peuvent appeler des contrats qui gèrent le stockage persistant et les changements d'état.
Cette puissante combinaison permet de finaliser les transactions en quelques millisecondes au lieu de quelques minutes. Elle réduit considérablement les frais d'essence et permet aux contrats intelligents de se composer comme des blocs LEGO plutôt que d'être en concurrence pour l'espace linéaire des blocs.
Si vous avez déjà attendu sur une chaîne encombrée tout en jonglant avec plusieurs signatures, vous connaissez la douleur. C'est précisément là que les prédicats et les scripts de FuelVM interviennent.
Les prédicats gèrent les autorisations de dépenses en agissant comme des « clés privées remplacées par des contrôles logiques ». Ils permettent des transferts de fonds si certaines conditions sont remplies plutôt que de faire confiance aveuglément aux signatures traditionnelles.
Les scripts sont des programmes éphémères et ponctuels qui orchestrent des opérations multi-contrats en une seule transaction, sans surcharge ni complexité supplémentaire.
Imaginez un système où :
Les transactions de plus de 10 000 dollars nécessitent l'approbation des 3/5 du conseil d'administration
Les petites transactions sont approuvées automatiquement et instantanément
Pas de frais supplémentaires pour les "checks" à signatures multiples
Dans un système traditionnel, cela nécessiterait de multiples transactions, une logique de contrat intelligent complexe et des frais d'essence élevés. Avec Fuel, un prédicat vérifie simplement « Avons-nous suffisamment d'approbations ? » tandis qu'un script exécute le transfert final.
Le modèle UTXO de FuelVM et le paradigme des transactions
FuelVM utilise un modèle UTXO (Unspent Transaction Output) au lieu d'un modèle basé sur les comptes, ce qui est crucial pour comprendre comment les prédicats et les scripts fonctionnent ensemble.
UTXO vs. "Accounts models” :
Account model (Ethereum) : Comme un compte bancaire avec un solde unique qui augmente ou diminue.
Modèle UTXO (FuelVM) : Comme de l'argent physique où chaque « pièce » est une unité distincte qui ne peut être dépensée qu'une seule fois.
Cette fondation UTXO permet :
Le traitement parallèle : plusieurs transactions peuvent être validées simultanément sans partage de l'état d'équilibre.
Intégration directe des prédicats : les conditions de dépenses s'attachent directement aux résultats plutôt qu'aux états globaux des comptes.
Traditional System:
Transaction 1 -> Wait -> Transaction 2 -> Wait -> Transaction 3
FuelVM's UTXO System:
Transaction 1 ----→
Transaction 2 ----→ All processing simultaneously
Transaction 3 ----→
Cette architecture permet aux prédicats de vérifier des UTXO spécifiques tandis que les scripts orchestrent des transactions complexes en créant de nouvelles UTXO avec des conditions personnalisées, ce qui rend l'ensemble du système plus efficace et plus modulaire.
Prédicats : programmes d'autorisation "sans état"
Si vous oubliez tout ce qui concerne les prédicats, rappelez-vous qu'il s'agit de validateurs éphémères qui répondent à une seule question oui/non, « Cette dépense est-elle autorisée ? », et à pas grand-chose d'autre. Ils ne stockent aucune donnée et disparaissent dès qu'ils ont accompli leur tâche. Ce minimalisme est précisément la raison pour laquelle ils sont si flexibles et légers.
Absence totale d'état : les prédicats ne conservent aucun état persistant, ce qui élimine la surcharge de stockage.
Comportement déterministe : les prédicats sont évalués uniquement en fonction du contenu de la transaction (entrées, sorties et hachages de scripts). Leur comportement est donc totalement prévisible et vérifiable.
Sécurité au moment de la compilation : comme les prédicats sont écrits dans Sway, le compilateur peut détecter les vulnérabilités courantes comme les attaques de réentrance au moment de la compilation.
Pensez à un prédicat comme à une robuste « déclaration si » basée sur le code, qui contrôle vos fonds. Par exemple, « Ne dépensez que si au moins 3 des 5 clés publiques désignées fournissent une signature ». Cette vérification est sans état et facile à raisonner. Une fois vérifiée, la transaction peut avoir lieu.
Alors que les prédicats gèrent l'autorisation des transactions par le biais d'une vérification sans état, les blockchains doivent faire plus qu'une simple vérification. Elles doivent également exécuter des opérations complexes. C'est là qu'interviennent les scripts, qui offrent une approche unique de l'exécution sur la chaîne.
Contrairement aux contrats intelligents persistants, les scripts sont des programmes éphémères qui s'exécutent une fois par transaction et disparaissent ensuite, ne laissant derrière eux que leurs reçus d'exécution. Les scripts peuvent :
Lire et modifier le stockage des contrats
Faire des appels à plusieurs contrats
Effectuer des calculs complexes en utilisant l'état de la blockchain
Orchestrer des opérations en plusieurs étapes
Voyons comment cela fonctionne en pratique avec une opération DeFi complexe telle qu'un swap multi-sauts combiné à un yield farming :
En une seule transaction, vous pourriez vouloir effectuer un échange multi-sauts entre deux DEX différents, déposer les tokens résultants dans un pool de farming, puis (en supposant que le rendement atteigne votre seuil) terminer par la mise à jour de votre système de suivi personnel. Avec l'approche monolithique d'Ethereum, cela peut rapidement se transformer en de multiples étapes et de multiples approbations.
Avec Fuel :
Un prédicat dit : « Vous êtes autorisé à dépenser ces actifs, confirmés par votre logique prédéterminée. »
Ensuite, un script orchestre les appels de chaîne réels - échange du jeton A contre B sur DEX #1, puis échange de B contre C sur DEX #2, dépôt de C dans l'agrégateur de rendement, confirmation des rendements, retour en arrière si les conditions échouent.
Tout cela se passe de manière "atomique". Si les rendements de l'agrégateur sont médiocres, si l'échange échoue ou si le pool n'a pas l'air bon, tout revient en arrière sans aucun effet secondaire. L'ensemble de la transaction peut être annulée sans laisser de traces de changements d'état persistants. Il n'y a aucune possibilité de rester bloqué dans un état à moitié achevé. Par ailleurs, vous ne payez les frais qu'une seule fois et vous n'avez pas besoin d'approbations multiples.
Lorsque les UTXO et les prédicats fonctionnent ensemble, ils permettent un véritable traitement parallèle des transactions. Contrairement aux blockchains traditionnelles où les opérations doivent attendre leur tour pour accéder à l'état partagé, les prédicats FuelVM peuvent vérifier différentes UTXO indépendamment et simultanément.
La combinaison de scripts et de prédicats crée de puissantes capacités de regroupement atomique. Un script peut orchestrer des opérations complexes en plusieurs étapes (comme notre exemple d'échange multi-sauts) tandis que les prédicats garantissent que toutes les conditions de dépenses sont remplies, le tout en une seule transaction.
Cela permet de mettre en place des fonctionnalités auparavant complexes, comme le parrainage de l'essence. Par exemple, pour permettre aux nouveaux utilisateurs de monnayer (mint) des NFT gratuitement, un prédicat peut conserver des jetons pour le paiement de l'essence pendant qu'un script fait fonctionner la monnayeuse de NFT. Si le prédicat vérifie que l'utilisateur remplit les conditions requises, tout se passe en une seule transaction transparente.
Le modèle d'actifs de Fuel complète l'architecture prédicat-script en traitant tous les actifs comme des citoyens de première classe dans le protocole. Chaque actif a un AssetId unique et existe en tant que « pièces » discrètes dans le modèle UTXO.
Cela présente deux avantages essentiels :
Des transferts plus simples : les transferts d'actifs deviennent des opérations UTXO directes sans étapes d'approbation distinctes.
Une sécurité accrue : la propriété est liée sans ambiguïté à des UTXO spécifiques, ce qui complète parfaitement les contrôles de sécurité basés sur des prédictions.
L'architecture de prédicats et de scripts de FuelVM représente une refonte fondamentale du traitement des transactions de la blockchain. En séparant l'autorisation (prédicats) de l'exécution (scripts) et en s'appuyant sur une fondation UTXO, Fuel permet un traitement parallèle, des transactions atomiques et une gestion simplifiée des actifs que les blockchains traditionnelles peinent à atteindre.
Cette architecture ouvre de nouvelles possibilités aux développeurs pour construire des protocoles DeFi plus rapides et plus efficaces, des plateformes NFT et des applications cross-chain avec des expériences utilisateur considérablement améliorées.
Pour plus de détails, consultez le Fuel Book.