
Explorer la compression de NFT sur Solana
L’une des avancées récentes dans l’univers des cryptomonnaies est l’apparition des actifs numériques, plus couramment appelés jetons non fongibles ou NFT. Les NFT permettent de détenir des actifs numériques résistants à la censure, comme des œuvres d’art, des objets de jeu ou des billets, tout en favorisant des économies pair-à-pair dynamiques autour de ces actifs. On pourrait même affirmer que les NFT sont la deuxième grande application à avoir trouvé son adéquation produit-marché (PMF) dans l’univers des cryptomonnaies, après la monnaie numérique.
Cependant, les NFT présentent aussi des défis.
Sur Solana en particulier, le coût de stockage de ces actifs en chaîne constitue un défi majeur. Si Solana bénéficie de frais de transaction très faibles, il en va autrement des frais de stockage. Pour que les actifs numériques deviennent véritablement omniprésents dans le monde numérique, leur stockage doit être aussi abordable que possible. C’est là qu’intervient la compression de NFT sur Solana.
La compression de NFT ouvre la voie à une nouvelle génération d’applications basées sur les cryptomonnaies en permettant aux développeurs et aux créateurs de créer de grandes quantités de NFT à un coût nettement inférieur. Imaginez un MMORPG dans lequel les objets du jeu sont des NFT échangeables et où l’économie du jeu s’intègre parfaitement au reste de l’économie mondiale. Ces jeux contiendraient naturellement des millions, voire des milliards d’objets, dont la création coûterait une fortune sur une blockchain comme Ethereum. La compression de NFT rend cela possible sur Solana, dès aujourd’hui.
Pour mesurer toute la puissance de cette technologie, prenons un exemple : Polygon, une solution de mise à l’échelle pour Ethereum, facture actuellement environ 0,05 USD pour créer un NFT. Il en coûterait donc environ 50 millions de dollars pour créer un milliard de NFT sur Polygon.
Sur Solana, avec la compression, le coût est d’environ 0,0000005 SOL par NFT, soit environ 11 000 USD pour un milliard de NFT à l’heure où nous écrivons ces lignes. Cela représente ~50 millions de dollars de moins, soit environ trois ordres de grandeur. Voilà toute la puissance de la compression.
Mais comment fonctionne la compression ? Découvrons-le.
La compression de NFT permet aux développeurs et aux créateurs de stocker l’essentiel des données des NFT dans le registre, ce qui coûte bien moins cher que le stockage en chaîne, tout en enregistrant l’empreinte numérique de ces données sur la blockchain Solana sous la forme d’un arbre de Merkle. Si les données de l’indexeur sont altérées de quelque manière que ce soit, leur empreinte numérique ne correspondra plus à celle enregistrée en chaîne, ce qui garantit l’intégrité des données.
Fonctionnement des NFT sur Solana (facultatif)
Avant de nous pencher sur la compression, voyons d’abord comment fonctionnent les NFT sur Solana. Si vous connaissez déjà bien les NFT sur Solana, vous pouvez passer directement à la section suivante.
Les tokens sur Solana utilisent deux types de comptes : les comptes de mint et les comptes de token. Le compte de mint contient les informations globales sur un token, comme son offre totale. Le compte de token associe le token à un autre compte utilisateur.
Par exemple, si l’utilisateur A reçoit 1 500 USDC, son compte de token USDC, dérivé de son compte utilisateur principal, stockera ces tokens. Ce processus s’applique à tous les tokens. Si je souhaite envoyer 100 USDT à l’utilisateur A, le programme de transfert commencera par dériver son compte de token USDT s’il n’existe pas, ou le recherchera s’il existe déjà.
C’est un peu comme si votre portefeuille physique principal contenait plusieurs pochettes, une pour chaque devise. Vous rangez les euros dans l’une, les dollars dans une autre, et ainsi de suite, mais le portefeuille principal vous appartient, à vous, l’utilisateur.
Sur Solana, les NFT sont des tokens dont l’offre est limitée à une seule unité, c’est-à-dire qu’il n’en existe qu’un seul exemplaire. Metaplex a également lancé le Token Metadata Program, qui associe un compte de métadonnées au NFT. Ce compte contient notamment le nom, le symbole, la collection et, bien sûr, l’image du NFT. Il s’agit d’un sujet complexe à part entière, que nous n’approfondirons donc pas ici.
Principes de la compression
La compression vise à réduire la quantité de données stockées en chaîne. Pour cela, les données, par exemple les métadonnées d’une image, sont stockées dans des arbres de Merkle sur le registre Solana, tandis que les racines sont enregistrées en chaîne.
Les indexeurs maintiennent l’état actuel de l’arbre de Merkle en traitant toutes les transactions qui le concernent. Les utilisateurs peuvent récupérer rapidement leurs données auprès de l’indexeur. La racine en chaîne garantit la validité et la sécurité des interactions avec les programmes. Les utilisateurs peuvent aussi comparer les données de l’indexeur à la racine en chaîne pour vérifier qu’elles sont à jour et valides.
D’accord, allons moins vite : qu’est-ce qu’un arbre de Merkle ?
Un arbre de Merkle est une structure de données qui permet de vérifier rapidement et efficacement l’intégrité de grandes quantités de données. Pour cela, il divise les données en éléments plus petits, appelés « feuilles », puis regroupe ces feuilles en « nœuds » de plus en plus grands.
Chaque nœud de l’arbre représente le hash de ses nœuds enfants. Le nœud parent combine ensuite les hash de ses nœuds enfants pour créer son propre hash unique. Ce processus se répète jusqu’à ce que toutes les feuilles soient regroupées en un seul hash au sommet de l’arbre, appelé « hash racine ». Ce hash racine permet de vérifier que toutes les données de l’arbre sont complètes et n’ont pas été modifiées, sans avoir à contrôler chaque feuille individuellement.
La compression sur Solana repose sur le programme de compression de comptes. Ce programme permet aux développeurs de créer un compte d’arbre de Merkle qui stocke le hash racine. Ils peuvent ensuite ajouter de nouvelles feuilles ou remplacer celles qui existent déjà. Tout remplacement de feuille nécessite un « chemin de preuve », c’est-à-dire le plus petit sous-ensemble de l’arbre contenant la feuille et tous les nœuds requis pour calculer le hash racine. Le programme de compression compare la preuve au hash racine afin de vérifier la validité des données. Cette opération est nécessaire, car le contenu réel de l’arbre n’est pas stocké en chaîne.
En résumé, le programme de compression permet aux développeurs de créer des arbres de Merkle et d’ajouter ou de mettre à jour des éléments dans ces arbres. L’historique de l’arbre est disponible dans le registre Solana, puisque chaque action est effectuée au moyen de transactions Solana. L’arbre complet peut être reconstruit en rejouant son historique si un indexeur ou un fournisseur RPC tombe en panne, ou si le développeur souhaite changer de fournisseur.
Enfin, la racine de l’arbre est stockée en chaîne afin d’assurer la vérification et la sécurité des données. L’ensemble de ce système évite d’avoir à stocker l’état en chaîne, ce qui réduit les coûts et « compresse » efficacement les données.
Une inquiétude fréquente des développeurs au sujet de la compression est la suivante : « Que se passe-t-il si le fournisseur RPC dont je dépends est compromis ou cesse ses activités ? Est-ce que tout est perdu ? » La réponse est non ! Puisque toutes les transactions restent stockées sur la chaîne elle-même, n’importe qui peut les rejouer afin de reconstituer l’état actuel de la chaîne. Vous pouvez considérer les fournisseurs RPC comme un « cache » qui facilite l’accès à l’état actuel.
Compression de NFT
La compression de NFT repose sur un programme appelé Bubblegum. Bubblegum utilise le programme de compression pour stocker chaque NFT dans un arbre de Merkle, supprimant ainsi la nécessité de créer des comptes de mint, de token et de métadonnées. C’est ce qui rend les NFT compressés si peu coûteux !
Créer un NFT compressé consiste simplement à ajouter un nouvel élément à l’arbre de Merkle. Chaque élément ajouté contient des informations telles que le nom du NFT, sa collection, son propriétaire et bien plus encore. En plus de la création, Bubblegum propose également les méthodes suivantes :
- Transfer
- Burn
- Delegate, CancelDelegate
- Burn
- Redeem, CancelRedeem
- Decompress
- VerifyCreator, SetAndVerifyCreator
- VerifyCollection, SetAndVerifyCollection
Nous avons également ajouté de la documentation pour vous aider à prendre en main ces méthodes, disponible ici.
Lecture des NFT compressés
Le moyen le plus simple de lire des NFT compressés consiste à utiliser l’API Digital Asset Standard (DAS), une spécification et un système open source qui fournissent une interface unifiée pour interroger les tokens. Ce système repose sur un indexeur qui traite toutes les transactions Bubblegum et stocke les arbres de Merkle. L’API permet également aux utilisateurs de rechercher des NFT par créateur, collection et propriétaire. Oui, vous avez bien lu. L’API DAS ne fonctionne pas uniquement avec les NFT compressés, mais aussi avec les NFT Solana classiques ! Vous pouvez donc récupérer des listes de mint en chaîne ou consulter tous les NFT détenus par un utilisateur ou un programme en un seul appel API, à une vitesse fulgurante.
Là encore, nous avons rédigé une documentation sur cette API et même fourni un exemple de code pour vous aider à démarrer, disponible ici.
Cas d’usage de la compression
À l’heure où nous écrivons cet article, la compression n’est disponible que depuis quelques semaines, mais des cas d’usage remarquables sont déjà en cours de développement. En voici quelques exemples :
- Dialect utilise la compression de NFT pour ses packs de stickers dans les conversations
- Helium utilise la compression de NFT pour représenter ses Helium Hotspots
- Crossmint utilise la compression de NFT pour distribuer des tokens à des centaines de milliers de personnes et propose une API de création que vous pouvez tester
- Drip Haus utilise la compression de NFT pour effectuer des distributions massives
- Render envisage de migrer vers Solana afin de profiter de la compression de NFT pour tokeniser des graphes de scène complets destinés au rendu GPU
Commencez à bâtir l’avenir des actifs numériques
Vous avez hâte de travailler avec des NFT compressés ? Vous pouvez commencer à développer avec Helius dès aujourd’hui ! Helius prend en charge la compression de NFT et fournit l’API DAS sur Devnet comme sur Mainnet. Vous pouvez générer gratuitement une clé API ici, sans saisir d’adresse e-mail ni d’informations de carte bancaire : connectez simplement votre portefeuille Solana. Vous ne savez pas encore comment créer un NFT compressé ? Consultez notre dépôt open source Compression Examples. Nous avons hâte de découvrir ce que vous allez créer !
Articles associés
Abonnez-vous à Helius
Suivez les dernières actualités du développement sur Solana et recevez une notification à chaque publication


