EOS est une infrastructure blockchain permettant à n'importe qui de déployer des applications décentralisées. Le logiciel EOSIO donne accès à trois types de ressources : la puissance de calcul (CPU), la bande passante, et la mémoire vive (RAM).
Les utilisateurs finaux d'EOS n'ont pas à payer de frais pour effectuer des transactions sur la blockchain, mais un développeur qui veut déployer une application décentralisée doit payer pour les ressources informatiques dont il a besoin. La mémoire vive est nécessaire pour stocker les informations de compte, et en particulier pour stocker les états des contrats. Nous devons garder à l'esprit que la RAM est l'un des principaux facteurs qui permettent à EOS de traiter un volume de transactions très élevé par seconde : si ces données étaient stockées sur disque, le temps d'accès au disque limiterait le débit.
Chaque nœud complet d'EOS dispose d'une quantité de RAM dédiée au stockage des données de cette infrastructure de smart contracts. La quantité de RAM donnée par chaque nœud complet est codée dans le logiciel. La RAM est actuellement une ressource rare sur EOS, puisqu'elle est limitée aujourd'hui à 64 Go. Il est donc nécessaire de l'allouer de manière optimale.
Le Bancor Relay facilite la découverte des prix et fournit de la liquidité sur le marché de la RAM d'EOS, en permettant aux utilisateurs d'acheter et de vendre de la RAM pour des tokens EOS à des prix de marché préalablement établis. Le Bancor Relay peut être vu typiquement comme l'algorithme du market maker de la RAM. Les prix sont déterminés par les paramètres suivants : la provision en RAM disponible, le solde du connecteur (en EOS) et le poids du connecteur (le rapport entre la valeur totale de la RAM et le solde du connecteur).
Nous n'entrerons pas dans les détails ici, mais la formule de tarification de Bancor est détaillée dans le whitepaper de Bancor.
Le problème avec cet algorithme, utilisé dans un marché rare comme celui de la RAM sur EOS, est que les thésauriseurs peuvent faire croître le prix à l'infini pour de faibles coûts.
Les traders, d'un autre côté, ne se soucient pas vraiment de l'allocation des ressources ou du juste prix : ils souhaitent seulement faire de l'argent, et en spéculant sur la demande future en RAM lorsque l'écosystème EOS sera largement utilisé, ils poussent les prix à la hausse.
Au moment de la rédaction du présent article, le coût de la RAM est d'environ 0,18 EOS par kilooctet. C'est mieux que le pic à 0,9 EOS/ko qui est arrivé début juillet, mais c'est toujours très coûteux si vous voulez déployer une DApp à grande échelle ou faire un airdrop sur tous les comptes EOS.
La RAM semble très chère pour l'utilisateur moyen, mais il n'a à payer cette allocation qu'une seule fois, lors de la création d'un compte. Pour le moment, un compte a besoin de 4 ko de RAM, mais le contrat système sera bientôt mis à jour pour abaisser ce montant à 1,5 ko. Après le paiement initial pour l'allocation de RAM, tous les frais de transaction sont gratuits : payer moins de 10 dollars pour créer un compte permettant d'effectuer un grand nombre de transactions sans frais n'est pas très coûteux.
Du point de vue des développeurs, cependant, il devient très coûteux de déployer une application décentralisée qui sera largement utilisée. De plus, de nombreux comptes créés ne seront pas utilisés : cela représente un gaspillage d'argent pour le développeur.
L'une des promesses d'EOS est l'inclusion financière à grande échelle. Mais qui peut se permettre ces coûts dans un pays pauvre où le coût de création de compte est équivalent à un revenu hebdomadaire ?
Les prix de la RAM ont bien sûr un impact très important sur les coûts des airdrops. Le coût d'un airdrop sur tous les comptes EOS est de l'ordre de 10 000 EOS, ce qui représente beaucoup d'argent. Mais est-ce une mauvaise chose ? Nous pouvons supposer que si les coûts sont très bas, le réseau EOS sera spammé avec des projets et des tokens qui n'ont aucune signification ou aucune valeur. Mais d'un autre côté, si les coûts sont trop élevés, les airdrops, qui sont une part essentielle du business model et du marketing d'EOS, deviendront pratiquement impossibles. Comme solution, nous pourrions faire payer les coût de l'allocation de RAM par les utilisateurs, ou laisser les BPs fournir des services de création de compte.
Le problème avec le marché de la RAM est que vous ne pouvez qu'acheter ou vendre de la RAM. Si les utilisateurs avaient la possibilité de la louer, cela atténuerait les problèmes mentionnés ci-dessus. Il s'agit d'une proposition appuyée par de nombreux producteurs de blocs. Comme LiquidEOS l'a mentionné, imaginez un marché immobilier où vous ne pouvez qu'acheter ou vendre des maisons, sans aucune possibilité de les louer : il y aurait beaucoup de maisons vides sur le marché, détenues uniquement par des spéculateurs qui font monter artificiellement les prix. Une solution potentielle est de s'assurer que l'utilisation des ressources est aussi élevée que possible, mais sans porter atteinte aux principes du marché libre. Une proposition pourrait être d'établir une sorte d'impôt foncier, ce qui ferait de la RAM un mauvais investissement à long terme.
Une autre question repose sur le fait qu'il n'y a que très peu de coûts associés à la spéculation. En autorisant la spéculation sur une ressource finie et utile, les spéculateurs devraient payer des frais pour les décourager d'acheter la RAM à l'avance, en pensant que les développeurs en auront besoin à l'avenir et paieront un prix plus élevé pour accéder à ces ressources. La communauté EOS devrait choisir ce qu'il faut faire avec les frais perçus par l'allocation de RAM. Cependant, payer directement la RAM sur EOS à partir du compte de l'utilisateur n'est pas une solution qui s'accorde avec les principes d'EOS.
EOSIO RAM Market & Bancor Algorithm
Pour résoudre le problème de RAM, nous devons créer un environnement qui décourage fortement la spéculation. Plusieurs solutions ont été proposées par les producteurs de blocs EOS et les membres de la communauté. Il y a deux domaines principaux d'amélioration :
Une autre solution pourrait être de donner leur propre place de marché aux spéculateurs, afin qu'ils échangent la RAM sur une plateforme. Cette dernière pourrait lister plusieurs paires de trading sur la RAM, et l'on pourrait y acheter et vendre de la RAM aussi facilement que des tokens. Cela abaisserait la barrière à l'entrée, mais augmenterait la volatilité des prix.
L'idée est de disposer d'un système de location de RAM sans frais, transparent et automatique, qui permet aux utilisateurs de passer des données "froides" à "chaudes" en fonction de leurs besoins et de leurs ressources. Ce qui est très intéressant avec ce concept, c'est que même avec la limite actuelle de 64 Go de RAM, moins de 10 To d'espace disque seraient suffisants pour stocker plus d'un milliard de données de comptes.
Comme mentionné par Greymass, l'augmentation de la RAM physique peut être dangereuse, car cela affecte tous les nœuds du réseau, et pas seulement les producteurs de blocs. Cela pourrait élever considérablement la barrière à l'entrée pour les nouveaux nœuds, en raison des spécifications techniques très élevées qui sont nécessaires.
Greymass suggère de séparer les données vives des données persistantes. L'idée est d'avoir un système où "la persistance est garantie, mais la vivacité ne l'est pas" : les données non utilisées passeront de la RAM physique au disque.
En supposant que l'utilisateur soit capable de payer le carburant pour la location, ce dernier pourra être bon marché si peu de baux sont en cours, ou coûteux lorsque les baux en cours approchent la capacité en RAM du système. Toutefois, comme les baux expireront, un utilisateur peut choisir d'attendre si les prix sont prohibitifs pour son cas d'usage.Avec l'automatisation, la location ne serait possible que si l'utilisateur est en mesure de payer. Les données passeraient automatiquement de la RAM au disque et du disque à la RAM en fonction de l'activité de l'utilisateur et des jetons EOS mis en jeu.
Il serait encore rentable de spéculer un peu sur les prix de location de RAM, mais ce serait beaucoup moins dommageable pour l'accessibilité de cette ressource :
Le marché du crédit-bail peut contenir de légères spéculations - un utilisateur pourrait spéculer qu'il est préférable d'acquérir un bail maintenant, s'il prévoit de l'utiliser bientôt et que le prix augmentera bientôt (puisque les baux eux-mêmes peuvent encore utiliser l'algorithme de Bancor pour déterminer le bon prix pour un bail donné). Cependant, ne pas utiliser un bail n'est qu'une perte de temps pour un vrai spéculateur, car il n'y a plus de concept de vente. Vous acquérez simplement le droit d'utiliser la "vivacité" de la RAM pour vos données pendant un certain temps.Les répercussions sur le rendement pourraient être atténuées en interdisant aux transactions de mettre à jour leurs données pendant un certain temps, selon la taille des données.
Pour plus de détails, lisez cet excellent article de Greymass :
La fonction de la production de RAM est uniquement de fournir au réseau suffisamment de ressources pour qu'il puisse se développer de manière durable. Contrairement à l'offre collatérale, qui peut augmenter et diminuer en fonction des besoins en mémoire en raison de l'inflation et de la déflation, la production de RAM ne peut et ne devrait augmenter que pour des raisons évidentes liées à l'utilisation de l'espace.
En tant que telle, nous soutenons fermement la proposition de Greymass pour un marché de la location de la RAM.
Le débat n'est pas terminé, et nous sommes sûrs que la communauté EOS se mettra d'accord sur une solution pour résoudre ce problème qui pourrait être très dommageable pour l'inclusion financière dans notre crypto-écosystème naissant. Stay tuned !