Allocation des ressources sur la blockchain EOS

in #eos6 years ago (edited)

Bonjour à tous,

Je m'intéresse depuis peu au développement de Smart Contracts sur les blockchains, je me suis tout d'abord intéressé au développement de ces derniers sur la plateforme Ethereum puis plus récemment sur la plateforme EOS.

Ethereum et EOS ont un but commun qui est la décentralisation des applications cependant elles tendent à atteindre ce but via des procédés différents, l'une des majeures différences étant le modèle économique appliqué aux Smart Contracts.

Sur Ethereum on interagi avec un Smart Contract en utilisant du GAS, le GAS est utilisé pour exécuter le contenu du Smart Contract et n'est pas quelque chose de gratuit de ce fait les personnes voulant interagir avec votre DAPP (Decentralized APPlication ou APPlication Décentralisée) se verront obligées d'avoir en leur possession de l'ETHer (ETH). Le coup en GAS pour exécuter une action dépend du contenu de la dite action, plus le code "écrira" sur la BlockChain et plus il vous faudra en dépenser. Ce modèle économique est loin d'être un modèle adapté pour les usages auxquels nous sommes habitués, enfin peut être qu'il l'est en fait... (à vous de voir, je ne donne pas mon avis sur la question...), pour faire simple l'utilisateur final paie à l'utilisation (sachant que les actions de lecture de la blockchain sont elles gratuites)

L'approche EOS est totalement différente, le modèle économique est à implémenter dans votre Smart Contract, vous pouvez décider si telle ou telle action devra être payée par l'utilisateur ou par le propriétaire du dit Smart Contract (vous donc) ou par quelqu'un d'autre (un généreux donateur dans la salle ?).
L'exécution d'un Smart Contract repose en fait sur l'utilisation de 3 ressources distinctes :

  • la bande passante (bandwidth)
  • le processeur (computation)
  • la mémoire vive (RAM)

Passons à l'explication de chaque ressource :

1) La bande passante (bandwidth)

La bande passante fonctionne de façon très similaire à Steem (n'oublions pas que Dan Larimer est l'ancien CTO de Steem...), plus vous avez de token EOS en votre possession et plus vous aurez de la bande passante allouée à votre compte. La majeure différence réside dans le fait que pour avoir de la bande passante il vous faut avoir des tokens EOS mais il vous faut aussi les stake c'est à dire que vous allez bloquer des tokens EOS dans un Smart Contract qui vous allouera de la bande passante, si votre stake représente 1% du total des EOS staked alors vous aurez 1% de la bande passante EOS disponible. Vous pouvez à tout moment récupérer l'intégralité des EOS bloqués cependant un délai de 3 jours est appliqué afin d'éviter que les personnes ne s'amusent à bloquer des EOS puis exécuter leur Smart Contract puis retirer leurs EOS dans la foulée.
Aussi le calcul de la bande passante utilisée se fait sur une moyenne de 3 jours et un peu comme le Steem Power sur Steem, d'autres comptes peuvent vous déléguer de la bande passante.

Voici les tarifs actuels :

prix en EOSprix en USD (1 EOS = 10.75 USD)
1 Byte0.000002190.000024
1 KB0.002247250.02416
1 MB2.3011840024.73773
1 GB2356.4124160025331.433472

2) Le processeur (computation)

L'utilisation processeur fonctionne de la même manière que la bande passante, l'unique différence est le Smart Contract utilisé.

Voici les tarifs actuels :

prix en EOSprix en USD (1 EOS = 10.75 USD)
1 micro seconde0.000011510.000124
1 milli seconde0.011505710.1236863825
1 seconde11.50571000123.6863825

3) La mémoire vive (RAM)

Cela vous semblait plutôt simple jusqu'ici ? Et bien c'est de l'histoire ancienne car nous allons maintenant aborder le sujet le plus fun concernant l'allocation des ressources sur EOS, la mémoire vive. Il faut savoir que pour qu'une BlockChain soit capable d'effectuer des tonnes de transactions par secondes cette dernière doit vivre dans la mémoire vive des producteurs de blocs cela rend donc la mémoire vive la ressource la plus critique dans l'exécution de la BlockChain. EOS ont décidé d'approcher ce sujet d'une manière assez particulière, la mémoire vive n'est pas quelque chose qu'il est facile d'upgrader indéfiniment et donc cela amène la notion de rareté dans l'équation, ils ont donc décidé de "tokeniser" la mémoire vive ("RAM") et de créér un marché sur lequel l'on peut se procurer et vendre ce "token".

Le prix de la RAM sur EOS suit un processus développée par Bancor et en fait ce ne sont pas les acheteurs/vendeurs qui dirigent le prix de la RAM mais une formule mathématique basés sur des éléments de la BlockChain en elle même.

La formule en question est la suivante (attention les yeux)(extraite du WhitePaper de Bancor - paragraphe 3.1 :

Price = Connector Balance / (Smart Token’s Outstanding supply × Connector Weight)

Essayons de décortiquer la formule tous ensemble (enfin je vais essayer de faire tout le boulot avec les infos que j'ai trouvé) :

Tout d'abord pour appliquer cette formule il nous faut récupérer certains éléments de la blockchain, notamment l'état du marché de la RAM, pour ce faire nous allons utiliser l'outils de commande en ligne EOS (CLEOS).

Ouvrez votre terminal de geek et entrez cette commande :
cleos -u http://nodes.get-scatter.com:80 get table eosio eosio rammarket

Vous obtiendrez alors un joli JSON :

{
  "rows": [{
      "supply": "10000000000.0000 RAMCORE",
      "base": {
        "balance": "67231493013 RAM",
        "weight": "0.50000000000000000"
      },
      "quote": {
        "balance": "1022135.4092 EOS",
        "weight": "0.50000000000000000"
      }
    }
  ],
  "more": false
}

Si l'on revient à notre formule, CONNECTOR réfère en fait à EOS et SMART TOKEN à RAM (ou RAMCORE, je n'ai pas compris pourquoi ils utilisaient deux noms d'asset différents...), on obtient donc :

  • Price = prix en EOS pour 1 OCTET (BYTE) de RAM
  • Connector Balance = balance de la demande en EOS
  • Smart Token’s Outstanding supply = balance de RAM disponible
  • Connector Weight = poids de la balance EOS

En remettant ça dans l'ordre on obtient :

prix EOS/BYTE = (1022135.4092 / (67231493013 x 0.5)) = 0.000030406446842 EOS/BYTE

prix en EOSprix en USD (1 EOS = 10.75 USD)
1 Byte0.0000304064468420.00033
1 KB0.0311362015662080.33471
1 MB31.883470403796992342.74731
1 GB32648.673693488119808350973.242205

En regardant la formule on s'aperçoit que moins la balance de RAM est importante et plus le prix du BYTE sera important cependant deux choses importantes sont à prendre en compte :

  • il faut savoir que la balance de RAM peut du jour au lendemain croître (en admettant que les producteurs de blocs upgrade leurs serveurs) ce qui en quelques temps pourra faire chuter le prix de la RAM
  • aussi si le prix venait à croitre de trop et qu'aucun upgrade de RAM n'ai lieu alors les producteurs de blocs pourront démarrer des side chains pour vendre de la RAM et donc ouvrir de nouveaux marchés d'échanges (je n'ai pas trouvé beaucoup de détails à ce sujet, les sidechains seront capables de communiquer avec le mainnet et donc les ressources que vous possédez sur la sidechain vous permettront de faire des transactions sur le mainnet)

Pour décourager la spéculation sur la RAM 1% des EOS que vous vendez / achetez sont détruits afin de lutter contre l'inflation.

Je voulais revenir quelques secondes sur l'élément de la formule qui s'appelle le Connector Weight, on voit que la BlockChain nous renvoie un poids de 50% (0.5) ce qui résulte en une évolution du prix qui va suivre cette courbe :

Connector Weight à 50% (image extraite du WhitePaper de Bancor)
Connector Weight à 50% (image extraite du WhitePaper de Bancor)

Dan Larimer cependant avait présenté une évolution avec un poids de 10% (0.1) ce qui permettrait d'avoir un prix de la RAM vrai très bas pendant une longue période

Screen Shot 2018-06-15 at 9.05.49 PM.png
Connector Weight à 10% (image extraite du WhitePaper de Bancor)

Quid de ce qui se passe réellement sur le mainnet ?

Une dernière chose, que ce soit de la bande passante réseau ou processeur, l'allocation que vous avez est une allocation minimum assurée c'est à dire que vous pourriez très bien avoir plus de ressources allouées lors d'une transaction si des ressources sont disponibles.

Voilà, ce n'est pas forcément simple de récolter des infos sur une BlockChain qui vient tout juste d'être mise en ligne et qui manque de documentation et d'information donc ne prenez pas tout ce que je viens de dire au pied de la lettre, il se peut que tout ceci évolue dans un futur proche !

Sort:  

La majeure différence réside dans le fait que pour avoir de la bande passante il vous faut avoir des tokens EOS mais il vous faut aussi les stake
C'est absolument pareil que sur Steem car sur Steem ce qui est pris en compte pour la bande passante c'est le steem power.

En tout cas merci pour cet excellent article sur EOS que je considère comme étant le plus projet crypto le plus fou mais également le plus prometteur. J'ai maintenant acquis de solides connaissances dans la blockchain (surtout grâce à un Steem qui est d'une telle complexité que lorsqu'on s'y intéresse nos connaissances blockchain grandissent et manière phénoménal) et je peux donc dire avec certitude que EOS est l'un des projets les complexes qui existent pour l'instant.

J'ai hâte de lire tes futiy articles sur le sujet car l'adoption de l'association d'une crypto comme ça la communication et la documentation seront des éléments clés.

Je crois en effet que si steem est incroyable complexe, EOS est encore d'un autre niveau.
J'espère juste que cette complexité ne se traduira pas par plus de vecteur d'attaque.

Effectivement il est fortement possible que des failles soient encore ouvertes dans le code EOS, espérons que la plupart des failles majeures soient fixées dans les prochains mois !

Je trouve ça fantastique que l'on est la chance de voir la naissance de ces projets, même Ethereum n'en est qu'à ses balbutiements, de grosses mises à jour sont à venir !

Merci pour l' article il met beaucoup de choses au clair ! ;-)

Congratulations @harpagon! You have completed some achievement on Steemit and have been rewarded with new badge(s) :

Award for the number of upvotes

Click on the badge to view your Board of Honor.
If you no longer want to receive notifications, reply to this comment with the word STOP

Do not miss the last post from @steemitboard!


Participate in the SteemitBoard World Cup Contest!
Collect World Cup badges and win free SBD
Support the Gold Sponsors of the contest: @good-karma and @lukestokes


Do you like SteemitBoard's project? Then Vote for its witness and get one more award!

Coin Marketplace

STEEM 0.18
TRX 0.15
JST 0.029
BTC 63607.88
ETH 2506.13
USDT 1.00
SBD 2.59