Conception de contrat ingénieuse, voyez comment stETH distribue automatiquement les revenus au quotidien ?

Après que l’auteur ait converti sa petite quantité d’ETH en stETH, il a constaté que stETH se développait naturellement chaque jour et continuait à réaliser des bénéfices. Mais je ne vois aucune transaction sur mon compte, pourquoi ? Cet article vous présentera la conception ingénieuse qui se cache derrière et vous révélera le secret de la répartition des revenus.

Conception ingénieuse de contrat, voyez comment stETH distribue automatiquement les revenus au quotidien ?

1 stETH a déjà réalisé quelques gains ces derniers jours

Avant cela, commençons par présenter la logique qui sous-tend les revenus générés par stETH, qui constituent le pari d’Ethereum. Les lecteurs qui comprennent déjà cette partie du concept peuvent passer directement à la fin.

Conception ingénieuse de contrat, voyez comment stETH distribue automatiquement les revenus au quotidien ?

L'Ethereum original, comme Bitcoin, utilisait la preuve de travail (PoW) comme mécanisme de consensus. Cependant, en raison de la consommation d'énergie et d'autres considérations de développement de la sécurité et des performances du PoW, Ethereum démarrera à partir de septembre 2022. Commencez la mise à niveau vers la preuve de participation (PoS). ).

Ethereum, qui s'appuyait à l'origine sur l'exploitation minière de puissance de calcul pour attirer les mineurs et parvenir à un consensus, s'est transformé en s'appuyant sur chacun pour obtenir le droit de vote en promettant l'ETH et gagner des revenus grâce au vote, motivant ainsi tout le monde à parvenir à un consensus via PoS.

En jalonnant 32 ETH, vous pouvez rejoindre le réseau Ethereum et devenir un validateur, responsable du stockage des données, du traitement des transactions et de l'ajout de nouveaux blocs à la blockchain. Tant que vous exécutez la transaction, que vous la regroupez correctement dans un nouveau bloc et que vous vérifiez le travail des autres validateurs, vous recevrez des récompenses ETH, ce qui équivaut à vous permettre d'avoir un revenu relativement stable grâce au staking d'ETH.

Cependant, un tel engagement est encore trop gênant pour les utilisateurs ordinaires : après tout, il existe encore certains seuils pour 32 Ethereums et un ordinateur dédié pouvant accéder au réseau Ethereum 24h/24 et 7j/7. De plus, le staking d’ETH entraînera la perte de liquidité de cette partie de l’ETH. Il existe donc des Liquid Staking Derivatives (LSD), qui visent à résoudre les problèmes de seuil et de liquidité du staking traditionnel, permettant aux utilisateurs de s'engager pour moins de 32 ETH, et n'ont pas besoin de posséder eux-mêmes des nœuds, mais l'ETH est confié à un tiers. pour le gage et les jetons de gage correspondants (tels que le stETH du Lido ou le rETH de Rocket Pool). Ces jetons de liquidité peuvent être échangés, empruntés ou utilisés pour d'autres activités financières sur d'autres plateformes. De cette façon, les utilisateurs peuvent à la fois Il est plus facile de participer en jalonnement et obtenir des récompenses tout en conservant la flexibilité des fonds.

Conception ingénieuse de contrat, voyez comment stETH distribue automatiquement les revenus au quotidien ?

Par conséquent, la logique essentielle de stETH est de donner de l'ETH au Lido. Lido utilisera ces ETH pour participer au PoS d'Ethereum afin d'obtenir des revenus, et les utilisateurs recevront le stETH correspondant sous forme de bon. La prochaine étape consiste pour le Lido à distribuer les bénéfices à ces adresses avec stETH.

Nous pouvons voir que les revenus de stETH sont automatiquement mis à jour chaque jour. L'image ci-dessous est la situation des revenus de notre test, qui correspond au contenu lié à la vérification du portefeuille de cryptage qui peut être vérifié quotidiennement.

Conception ingénieuse de contrat, voyez comment stETH distribue automatiquement les revenus au quotidien ?

Mais à ce stade, je pense que les étudiants qui sont familiers avec le développement de contrats intelligents seront confus : avec si peu de revenus distribués chaque jour, ces revenus pourraient ne pas être suffisants pour payer le GAS.

En effet, si le Lido distribue les revenus selon la méthode la plus simple, il sera difficile de couvrir le coût du GAZ. De notre point de vue intuitif, il est inimaginable que GAS envoie des tokens à autant d’adresses.

Mais il est vrai que Lido a réalisé la croissance automatique des revenus stETH dans le portefeuille, et nous n'avons trouvé aucune transaction à cette adresse.

Nous avons trouvé le contrat du Lido et l'avons remonté à la méthode balanceOf du contrat :

Conception ingénieuse de contrat, voyez comment stETH distribue automatiquement les revenus au quotidien ?

balanceOf est une méthode conforme à la spécification ERC20, et le portefeuille utilise cette méthode pour obtenir le nombre de jetons dont dispose l'utilisateur.

On voit que la méthode getPooledEthByShares est appelée ici dans le contrat stETH. Le paramètre d'entrée de cette méthode est le mappage (adresse => uint256) des partages privés ;. Combien de stETH cela représente-t-il pour l’utilisateur ? Évidemment non, sinon les données de chaque adresse devraient être mises à jour quotidiennement.Bien qu'il soit possible de mettre à jour les jetons de toutes les adresses en une seule transaction en appelant simplement la méthode du contrat pour mettre à jour les actions, mais évidemment la consommation de GAZ C'est aussi pareil, énorme.

À présent, tout le monde doit avoir deviné comment le contrat est mis en œuvre. Continuons à examiner la méthode getPooledEthByShares.

Conception ingénieuse de contrat, voyez comment stETH distribue automatiquement les revenus au quotidien ?

Vous pouvez voir que le résultat final renvoyé est le montant shareAmount dans l'adresse multiplié par _getTotalPooledEther() et divisé par _getTotalShares.

_getTotalPooledEther représente la quantité totale de stETH (si stETH à ETH est de 1:1, cela représente également la quantité d'ETH qu'il y a), et _getTotalShares représente le nombre d'actions qu'il y a. De cette façon, la quantité de stETH que possède chaque adresse est calculée dynamiquement.

Par exemple, s'il y a désormais un total de 1 000 actions (Shares, qui est le nombre renvoyé par la méthode _getTotalShares), dont l'adresse A possède 100 actions (correspondant au shareAmount ci-dessus). Ces 1000 actions correspondent au montant restitué par 1000 stETH (c'est-à-dire _getTotalPooledEther). Alors d'après ce calcul, l'adresse A correspond à 100 stETH. Ensuite, Lido prend le total de 1 000 ETH à mettre en gage et obtient un revenu de 1 ETH. Après cela, la mise à jour correspondante _getTotalPooledEther est de 1 001, c'est-à-dire que le total initial de 1 000 stETH est passé à 1 001, puis l'adresse A nouvellement calculée a 100 \ * 1001/1000 = 100,1 stETH.

**Pour faire simple, si les actions détenues par chaque adresse restent inchangées et que le stETH correspondant aux actions augmente, alors le stETH augmentera naturellement lors du calcul. **

Continuons à regarder le code. La logique dans _getTotalPooledEther sera affectée par la méthode handleOracleReport, et cette méthode mettra à jour les données pertinentes dans le contrat. L'appel spécifique consiste à appeler régulièrement submitReportData via le contrat pour mettre à jour les données (submitReportData appellera le handleOracleReport du contrat Lido) :

Conception ingénieuse de contrat, voyez comment stETH distribue automatiquement les revenus au quotidien ?

Nous pouvons constater qu'il y a des appels pour mettre à jour chaque jour le contenu pertinent, c'est pourquoi, même si nous ne pouvons pas voir à notre adresse les transactions qui génèrent des revenus, le montant change toujours chaque jour.

Cela reflète en fait une caractéristique du contrat intelligent Ethereum ERC20, à savoir que le nombre de jetons détenus par ces contrats ERC20 n'est pas codé en dur dans l'adresse, mais renvoyé par la méthode du contrat, il peut donc y avoir des cas où le compte ne le fait pas. effectuer des transactions. Le nombre de jetons peut également changer. D'une part, cela rend le contrat ERC20 plus flexible, mais d'autre part, cela apporte également beaucoup de confusion à de nombreux amis qui ne connaissent pas le contrat. J'espère que cet article pourra aider tout le monde à mieux comprendre les contrats intelligents et à interagir avec des contrats intelligents de manière plus sûre.

De plus, même si vous pouvez obtenir des revenus de mise en jeu apparemment stables en promettant de l'ETH à stETH, il existe toujours des risques possibles. Cet article n'est qu'une référence de recherche technique pour le contrat de gage et ne constitue aucun conseil d'investissement.

De plus, nous avons déjà publié un article sur le « re-staking ». Les lecteurs intéressés peuvent continuer à lire pour en savoir plus.

Voir l'original
  • Récompense
  • Commentaire
  • Partager
Commentaire
0/400
Aucun commentaire
Trader les cryptos partout et à tout moment
Scan pour télécharger Gate.io app
Communauté
Français (Afrique)
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • ไทย
  • Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)