EVM vs SmartWeave: A comprehensive guide for consenting developers (Part 1)

EVM vs SmartWeave : Un guide complet pour les développeurs consentants (Partie 1)

Pour les développeurs qui exercent leur métier dans l’environnement d’aujourd’hui à évolution rapide et indépendant de la blockchain, il est primordial de choisir la bonne approche pour l’exécution de contrats intelligents.

Dans cet article, je passerai en revue les informations d’identification d’EVM (Ethereum Virtual Machine) et SmartWeave comme deux options distinctes à considérer par les développeurs. Divulgation complète, nous allons plonger en profondeur ! Avant de commencer, voici un tableau comparatif pour vous donner une idée des deux environnements d’exécution :

Considérations clés pour l’utilisation d’EVM

EVM, initialement mis en œuvre par Ethereum, est désormais le choix pour la plupart des plates-formes de contrats intelligents, s’étendant à Avalanche, BNB Chain et L2 comme Arbitrum, Optimism, etc. L’utilisation d’EVM nécessite une connaissance de Solidity, qui peut être caractérisée comme la réponse de la blockchain à JavaScript. En tant que langage d’EVM, Solidity est devenu le langage de programmation de facto pour les contrats intelligents sur les réseaux distribués, ce qui en fait le langage informatique de référence pour les développeurs dans l’espace blockchain.

Bien que Solidity ait une structure et une syntaxe uniques qui peuvent s’avérer difficiles pour ceux qui envisagent de développer Web3, il continue d’attirer un afflux important de nouveaux apprenants. De plus, l’EVM dispose d’un vaste écosystème de ressources, d’outils, de matériel pédagogique et de développeurs enthousiastes.

Même si EVM est largement considéré comme le cadre de référence pour la création d’applications décentralisées, il a des paramètres de limitation stricts, avec lesquels les développeurs nouvellement découverts doivent apprendre à travailler. La capacité d’un développeur senior de Solidity à optimiser le code pour des limites de calcul rigoureuses (sous la forme de limites de gaz) les distingue des développeurs de type fraîchement sortis de l’académie. L’inconvénient de ce modèle est qu’il met énormément l’accent sur l’espace de bloc, qui peut devenir une installation extrêmement coûteuse.

De plus, l’exigence d’une synchronisation des calculs basée sur le consensus à chaque bloc ajoute une couche de complexité à la conception de l’EVM, agissant comme un obstacle important aux efforts de mise à l’échelle, en particulier compte tenu de l’évaluation séquentielle de toutes les interactions de contrat intelligent.

Une considération notable concerne le modèle de stockage unique au sein de la machine virtuelle Ethereum. Dans la plupart des langages de programmation, comprendre la représentation des données de bas niveau n’est pas crucial, mais Solidity s’écarte de cette norme. Compte tenu du coût important associé à l’accès au stockage sur les réseaux basés sur Ethereum, il est essentiel de bien comprendre la manière dont les types de données sont représentés. Le modèle de stockage mondial partagé sur tous les contrats, quelle que soit leur interaction, pose des défis.

La conception introduit des inefficacités, obligeant les contrats à parcourir des données superflues, ralentissant les temps de transaction et entraînant des coûts de calcul inutiles. Ces coûts contribuent à une charge financière accrue pour le stockage des données sur la plate-forme, affectant les développeurs et les utilisateurs. De plus, la nature partagée du stockage pourrait amplifier par inadvertance les erreurs de codage ou les vulnérabilités, entraînant des conséquences imprévues pour des contrats non liés et une augmentation potentielle des coûts de rectification.

Présentation de SmartWeave

De l’autre côté de l’allée, SmartWeave est un paradigme pour évaluer les états des contrats intelligents sur une couche de données immuable comme Arweave. La proposition de valeur distincte de SmartWeave a un potentiel considérable pour améliorer la création de dApps hautement efficaces pour une multitude de cas d’utilisation spécifiques – servant de cadre complémentaire pour combler le vide là où l’EVM échoue. Étant donné qu’une couche de données n’effectue pas de calcul arbitraire, elle place la responsabilité de l’évaluation de l’état actuel du contrat sur l’appelant à l’aide d’une « évaluation paresseuse ».

Pour évaluer « paresseux » l’état actuel d’un contrat, l’appelant vérifie et exécute toutes les interactions contractuelles (transactions Arweave) depuis la création du contrat jusqu’à aujourd’hui, reproduisant l’état actuel du contrat à partir de zéro.

Essentiellement, les contrats intelligents Arweave consistent en un ensemble ordonné d’actions (C, I, Ts), « C » étant la partie contenant le code du contrat, « I » étant la fraction contenant l’état initial et « T » étant un séquence de transactions qui interagissent avec le contrat. Lorsque le client évalue l’état, il utilise le code de C, l’état initial de I, et applique chaque transaction après (à condition qu’elle soit valide) en fonction du code du contrat. J’ai compris? Bien! Voici un aperçu visuel de l’architecture pour aider à cristalliser le concept :

SmartWeave est une architecture visant à créer un moteur de sous-traitance intelligent fiable, rapide et prêt pour la production sur Arweave. Son implémentation la plus populaire, Warp Contracts, est axée sur la réalisation de cet objectif précis. Warp est souvent décrit comme des « contrats SmartWeave sur les stéroïdes » en raison de sa capacité à surmonter certains des obstacles les plus importants associés à la mise en œuvre par défaut du protocole SmartWeave.

Ces obstacles incluent le manque de mise en cache qui entraîne de faibles performances, l’absence d’une passerelle de transaction SmartWeave fiable et l’incapacité d’assurer la sécurité et le déterminisme des contrats. En plus de sa fonction principale, le SDK Warp comprend une couche de mise en cache finement réglée qui améliore considérablement l’efficacité de l’évaluation paresseuse.

La pile comprend également des méthodes de déploiement et de maintenance conviviales, des plug-ins personnalisables qui permettent aux utilisateurs d’étendre le SDK dans la direction de leur choix, un explorateur de contrats intelligent dédié, un ensemble de nœuds pour l’externalisation de l’exécution et plusieurs autres fonctionnalités essentielles. L’équipe principale de Warp a créé une gamme de plug-ins propriétaires, notamment des outils EVM portables, la prise en charge du portefeuille EVM, la prise en charge native d’EtherJS dans l’environnement SmartWeave, etc. À partir de maintenant, Warp prend en charge les langages JavaScript/TypeScript et WASM avec le support de Rust.

Distinguer EVM de SmartWeave Architecture

La sécurité de l’EVM est intrinsèquement liée à la technologie consensuelle de sa blockchain sous-jacente. De même, SmartWeave dépend également de la sécurité et de la finalité finale de la blockchain d’Arweave, qui est obtenue en incluant des blocs finalisés à l’aide du protocole SPoRa (Succinct Proofs of Random Access).

De par sa structure de conception, EVM implémente le marché des frais dans le protocole de base. Le système de frais de marché utilise un mécanisme d’enchères au premier prix pour déterminer les frais de transaction, où le plus offrant voit sa transaction traitée en premier. Les défis associés à la mise à l’échelle du réseau deviennent particulièrement apparents pendant les périodes de forte demande, comme le montre la conception du marché mondial des frais de la machine virtuelle Ethereum.

Par exemple, lorsqu’un contrat individuel connaît une activité considérable, comme une menthe NFT très attendue, il affecte par inadvertance tous les utilisateurs du réseau en augmentant les coûts de transaction, même pour ceux qui ne sont pas directement impliqués dans l’activité à forte demande.

Arweave propose une approche alternative au marché des frais traditionnels en utilisant un pool de récompenses unique et une racine merkle pour toutes les données, appelée la dotation. L’ajout de nouvelles données au système met à jour l’arborescence Merkle et ajoute des jetons $AR au pool de récompenses sans entraîner d’augmentation de la surcharge de calcul. Pour résoudre le goulot d’étranglement du traitement des paiements pour le stockage des données, Arweave utilise un système de bundles récursifs pour régler plusieurs transactions en un seul paiement sur le réseau.

À terme, cela pourrait conduire à des arborescences d’une profondeur infinie permettant d’ingérer toutes les données Web en une seule transaction, éliminant ainsi le besoin de marchés payants. Le système de transaction d’Arweave permet aux utilisateurs d’exécuter des transactions sans frais d’inclusion de bloc, ce qui fait que les coûts de stockage sont la seule dépense pour l’exécution des transactions, quelle que soit la demande.

SmartWeave est un ensemble séquencé de transactions Arweave qui bénéficient de l’absence d’un marché de frais pour l’inclusion de blocs de transactions. Cette propriété unique permet des données de transaction illimitées sans frais supplémentaires au-delà des coûts de stockage. De plus, la conception ouverte de SmartWeave permet aux développeurs d’écrire la logique dans n’importe quel langage de programmation, offrant une alternative rafraîchissante à la base de code Solidity souvent rigide.

La partie 2 arrivera demain, couvrant:

  • Exécution paresseuse : une perspective alternative
  • Évaluation de la pertinence de l’EVM et de SmartWeave
  • Adaptation au marché de SmartWeave

Article invité par : Jakub Wojciechowski, PDG et fondateur de Warp Contracts et RedStone

Le post EVM vs SmartWeave : Un guide complet pour les développeurs consentants (Partie 1) est apparu en premier sur CryptoSlate.