Le nouveau stockage de contrat intelligent illimité d'Algorand

Dec 03 2022
Comment allez-vous utiliser les box sur Algorand ?
Les développeurs avec qui je travaille disent parfois "tout est possible à construire". C'est un aspect passionnant du développement logiciel et l'une des principales raisons pour lesquelles les gens tombent amoureux de la programmation - cela vous permet de créer tout ce que vous pouvez imaginer.

Les développeurs avec qui je travaille disent parfois « tout est possible à construire ». C'est un aspect passionnant du développement logiciel et l'une des principales raisons pour lesquelles les gens tombent amoureux de la programmation - cela vous permet de créer tout ce que vous pouvez imaginer.

Malheureusement, les ingénieurs blockchain sont plus susceptibles de dire "tout est possible à construire...

…mais c'est difficile.
… mais c'est risqué.
… mais ça va coûter cher à faire fonctionner.

Les contrats intelligents dans la blockchain sont une technologie naissante. Ils remplissent leur objectif principal de permettre aux gens de créer des applications distribuées, mais cela reste un chemin difficile vers un véritable succès.

Pour ces raisons, de nombreuses applications supposées décentralisées dans la blockchain dépendent malheureusement de services hors chaîne pour une partie de leur mise en œuvre. La naissance du « Web 2.5 » plutôt que du « Web 3.0 », alors que le monde progresse progressivement vers une véritable décentralisation.

Chez Algorand, ce défi est une priorité, et chaque mise à jour de la machine virtuelle Algorand (AVM) sert les développeurs qui s'appuient sur notre blockchain. Notre objectif est de faciliter le développement d'applications sécurisées, performantes et entièrement décentralisées. Arrêt complet.

La version AVM 8

Notre dernière version de l'AVM ne fait pas exception. Nous avons introduit une nouvelle forme flexible de stockage pour les Smart Contracts : les box. Un Smart Contract peut créer autant de boîtes qu'il en a besoin, de la taille dont il a besoin (jusqu'à 32K), quand il en a besoin.

Par exemple, disons qu'Alice veut offrir un service oracle pour des prix symboliques. Elle crée un contrat intelligent que les utilisateurs peuvent appeler pour obtenir le prix actuel d'un jeton.

Compte tenu de l'ensemble en constante expansion de jetons disponibles sur Algorand, qu'ils soient natifs ou pontés, le contrat oracle d'Alice nécessitera une quantité croissante de stockage persistant au fil du temps.

Les boîtes sont la solution parfaite : le contrat intelligent d'Alice alloue une boîte par jeton suivi.

Lorsque CoolCoin est créé, une nouvelle boîte "CoolCoin" peut être créée par le contrat oracle. Cette boîte stockera le prix du CoolCoin. Cette valeur peut être lue et mise à jour par le contrat oracle d'Alice par la suite. Les utilisateurs qui veulent connaître le prix de CoolCoin appellent le contrat oracle pour obtenir le prix.

J'espère que cela semble aussi simple que ça. Les boîtes offrent un moyen direct d'implémenter une carte pour stocker toutes vos paires clé-valeur.

Avant les boîtes, les développeurs de Smart Contract qui avaient besoin de plus de stockage devaient recourir à des hacks comme la création d'applications ou de comptes factices juste pour pouvoir utiliser leur état, en gérant soigneusement les autorisations pour éviter d'introduire des vulnérabilités dans le processus.

Combien coûtent les boîtes ?

Bien sûr, le stockage numérique a un coût, et sur blockchain il est plus cher du fait de sa nature distribuée (et duplicative).

Un exemple illustratif simple : Alice et Bob viennent de se marier, et ils veulent stocker une petite photo de leur mariage sur la chaîne. Ils peuvent créer un contrat intelligent de gestion de stockage qui leur permet de créer une boîte et d'y stocker la photo. Ils peuvent saisir à nouveau le contrat intelligent sur l'un de leurs comptes afin qu'ils soient les seuls à pouvoir contrôler la boîte.

S'ils stockent la photo de taille maximale qu'ils peuvent (32K), cela leur coûtera environ 13 Algo, soit environ 3 à 4 $ au moment de la rédaction.

Le stockage Algorand est payé par une augmentation du solde minimum requis d'un compte . En d'autres termes, Alice doit conserver au moins 13 Algo dans son compte de contrat pour continuer à y stocker l'image. Si à l'avenir Alice et Bob divorcent et qu'Alice veut graver numériquement leur photo de mariage, elle peut la supprimer et libérer son 13 Algo pour d'autres usages.

Que pouvons-nous faire d'autre avec les boîtes ?

À peu près tout. Les boîtes présentent un paradigme si flexible et puissant qu'il est probable que la majorité des contrats intelligents utiliseront des boîtes à l'avenir.

Un exemple convaincant d'utilisation de la boîte est la protection contre la relecture pour les ponts. Les ponts cryptographiques sont une technologie puissante qui permet de transférer de la valeur à travers les chaînes de blocs, ce qui rend le monde de la cryptographie vraiment sans frontières. Cependant, en raison de la complexité de la gestion de plusieurs chaînes, les ponts doivent être soigneusement conçus pour ne pas être sujets à des piratages. Un type de piratage de pont est une attaque de relecture .

Une attaque par relecture se produit lorsqu'un attaquant soumet deux fois la même transaction. Le message en double semble correct, mais un seul d'entre eux devrait passer.

À un niveau élevé, un pont verrouille un actif sur la blockchain d'envoi et frappe un actif correspondant sur la blockchain de réception. Une attaque par relecture réussie sur un pont dupliquerait les actifs de frappe sur la blockchain de réception pour un seul actif verrouillé sur la blockchain d'envoi.

Pour se protéger contre les attaques par relecture, le contrat intelligent de frappe sur la blockchain de réception doit suivre chaque transaction qu'il a déjà traitée et vérifier toute nouvelle transaction par rapport à toutes les anciennes transactions pour s'assurer qu'il ne s'agit pas d'un doublon. Se souvenir de ce qui a déjà été exécuté va à l'encontre de l'attaque.

Le suivi de chaque transaction nécessite un stockage proportionnel au nombre de transactions traitées par un pont. Cela peut devenir un nombre énorme si le pont réussit. Les boîtes sont parfaitement adaptées aux besoins de stockage illimités comme celui-ci : Une boîte par transaction.

Un autre cas d'utilisation intéressant pour les boîtes est un système de gouvernance, tel qu'il est prévu d'être adopté par xBacked .

Supposons qu'un protocole soit contrôlé par un ensemble de gouverneurs qui peuvent proposer des mises à jour au vote de tous les gouverneurs. Il peut y avoir de nombreux gouverneurs, et un gouverneur individuel peut faire plusieurs propositions, il peut donc y avoir de nombreuses propositions actives à un moment donné.

Les données dans cette situation ne sont pas naturellement mappées à l'état local ou global. Il ne serait pas possible de stocker toutes les propositions dans l'état global d'une application, car celle-ci est de taille limitée. Il ne serait pas possible de stocker chaque proposition dans l'état local du proposant, puisqu'un proposant peut faire plusieurs propositions qui pourraient dépasser la taille de son état local.

Avec les boîtes, la solution semble assez simple : une boîte par proposition, par exemple « Anne's Do Good Proposal ». La boîte contient le verbiage de la proposition et les options de vote.

Mais où les votes eux-mêmes doivent-ils être stockés ? Le contrat doit indiquer qui a déjà voté pour s'assurer qu'il ne votera plus. Il peut ainsi créer une case par vote, par exemple « Le vote d'Alice pour la proposition Do Good d'Anne ». Ce serait une toute petite boîte, et il y en aurait beaucoup (autant qu'il y a de voix).

Sans boîtes, les développeurs auraient été obligés de faire des compromis, comme n'autoriser qu'un seul vote ouvert à la fois, de sorte que les informations correspondent à l'état global du contrat. Ces contraintes ne sont plus, et les possibilités techniques ouvertes par les box stimulent de nouvelles idées à travers l'écosystème.

Les boîtiers renforcent non seulement les dapps existantes en simplifiant leur architecture, mais permettent également de nouveaux cas d'utilisation et des opérations d'interopérabilité sécurisées. Les boîtes changent la donne pour Algorand. Le nombre de projets qui frappent sans relâche à ma porte pour me demander quand sortent les boîtes n'est que le dernier indicateur en date.

L'AVM a été conçu dès le départ en pensant au développement de contrats intelligents sécurisés et performants : swaps atomiques natifs, actifs, contrats intelligents - et désormais stockage illimité de contrats intelligents. L'AVM est devenue l'une des plateformes de contrats intelligents les plus puissantes et les plus polyvalentes du secteur.

Pour tous les détails techniques sur les box et leur utilisation, veuillez consulter l'article du portail des développeurs :https://developer.algorand.org/articles/smart-contract-storage-boxes/