Interprétez le design astucieux de stETH

Intermédiaire3/22/2024, 10:01:35 PM
La logique fondamentale de stETH est de déposer de l'ETH dans Lido. Lido utilise cet ETH pour participer au PoS (Preuve d'enjeu) d'Ethereum afin de gagner des récompenses, et les utilisateurs reçoivent du stETH correspondant comme preuve de leur participation. Par la suite, Lido distribue les récompenses aux adresses détenant du stETH.

Titre transféré : Conception de contrat intelligente : voyez comment stETH distribue automatiquement les profits quotidiennement ? Laissez votre ETH participer au jalonnement pour gagner un intérêt stable.

L'auteur a converti une petite quantité d'Ether (ETH) en Ether stable (stETH) et a constaté que la quantité de stETH augmentait naturellement chaque jour, générant des bénéfices continus. Cependant, il n'y avait pas d'enregistrements de transaction visibles dans le compte. Pourquoi ? Cet article explorera le design astucieux derrière cela et révélera le secret de la distribution des bénéfices.

1 stETH a généré des bénéfices après quelques jours.

Avant de plonger dans la façon dont stETH génère des profits, permettez-moi d'abord de vous présenter la logique qui se cache derrière, à savoir le staking sur Ethereum. Les lecteurs qui sont déjà familiers avec ce concept peuvent passer à la suite.

Initialement, Ethereum, comme Bitcoin, utilisait la preuve de travail (PoW) comme mécanisme de consensus. Cependant, en raison de préoccupations concernant la consommation d'énergie, la sécurité et la scalabilité, Ethereum est passé à la preuve d'enjeu (PoS) en septembre 2022.

Auparavant dépendant de la puissance de minage pour parvenir à un consensus, Ethereum repose désormais sur les participants qui misent de l'ETH pour obtenir des droits de vote et gagner des récompenses par le vote. Cela incite au consensus grâce à la preuve d'enjeu (PoS).

En misant 32 ETH, on peut rejoindre le réseau Ethereum en tant que validateur, responsable de stocker des données, traiter des transactions et ajouter de nouveaux blocs à la blockchain. Les validateurs reçoivent des récompenses en ETH pour empaqueter correctement les transactions dans de nouveaux blocs et vérifier le travail d'autres validateurs, permettant des rendements relativement stables grâce à la mise en jeu.

Cependant, le staking traditionnel est contraignant pour les utilisateurs ordinaires, car il nécessite 32 ETH et un ordinateur dédié avec un accès ininterrompu au réseau Ethereum. De plus, le staking de l'ETH bloque la liquidité. D'où l'émergence des produits dérivés de staking liquide (LSD), visant à résoudre les obstacles et les problèmes de liquidité du staking traditionnel. Le LSD permet aux utilisateurs de miser moins de 32 ETH et de déléguer leur ETH à des fournisseurs de staking tiers, recevant en échange des jetons de staking correspondants (comme le stETH de Lido ou le rETH de Rocket Pool). Ces jetons liquides peuvent être échangés, empruntés ou utilisés pour d'autres activités financières sur différentes plateformes, permettant aux utilisateurs de participer au staking de manière plus pratique tout en maintenant la liquidité.

Ainsi, la logique fondamentale derrière stETH est que les utilisateurs fournissent leur ETH à Lido, qui utilise ensuite ces ETH pour participer au PoS d'Ethereum afin de générer des profits. En retour, les utilisateurs reçoivent stETH comme preuve de leur mise. Ensuite, Lido distribue les profits aux adresses détenant du stETH.

Nous pouvons observer que les bénéfices de stETH sont mis à jour automatiquement chaque jour. Le graphique suivant illustre la situation des bénéfices que nous avons testée, et les utilisateurs peuvent vérifier le contenu pertinent de leurs portefeuilles cryptés quotidiennement.

À ce stade, ceux qui sont familiers avec le développement de contrats intelligents pourraient se demander : avec de si petits profits quotidiens, est-ce même suffisant pour couvrir les frais de gaz ?

En effet, si Lido devait distribuer des bénéfices en utilisant la méthode la plus simple, il aurait probablement du mal à couvrir le coût du gaz. Envoyer des jetons à un si grand nombre d'adresses nécessiterait des frais de gaz importants, ce qui pourrait ne pas être réalisable.

Cependant, Lido a réussi à réaliser une croissance automatique des bénéfices dans les avoirs en stETH au sein des portefeuilles sans aucune transaction apparente. Comment est-ce possible ?

Nous avons trouvé le contrat de Lido à https://etherscan.io/token/0xae7ab96520de3a18e5e111b5eaab095312d7fe84et a suivi la méthode balanceOf dans le contrat.

La méthode balanceOf est conforme à la norme ERC20 et est utilisée par les portefeuilles pour récupérer le montant de jetons possédé par un utilisateur.

Dans le contrat stETH, nous voyons qu'il appelle la méthode getPooledEthByShares. Cette méthode prend la mise en correspondance (adresse => uint256) des parts privées en entrée. Cela représente-t-il combien de stETH un utilisateur possède ? Clairement non, car mettre à jour les données pour chaque adresse chaque jour serait impraticable. Bien que la mise à jour des parts dans une seule transaction puisse y parvenir, la consommation de gaz resterait importante.

À ce stade, beaucoup d'entre vous ont peut-être deviné comment fonctionne le contrat. Continuons à examiner la méthode getPooledEthByShares.

On peut observer que le résultat final est obtenu en multipliant le sharesAmount à l'adresse par _getTotalPooledEther() et en divisant par _getTotalShares.

_getTotalPooledEther représente le montant total de stETH (qui, si le stETH est arrimé à l'ETH selon un ratio de 1:1, représente également le montant total d'ETH), tandis que _getTotalShares représente le nombre total de parts. Avec ce calcul, le montant de stETH possédé par chaque adresse est déterminé dynamiquement.

Par exemple, s'il y a un total de 1000 actions, avec l'adresse A possédant 100 actions (comme représenté par sharesAmount), et le stETH total est de 1000 (comme retourné par _getTotalPooledEther), alors selon ce calcul, l'adresse A posséderait 100 stETH.

Maintenant, si Lido mise au total 1000 ETH et gagne 1 ETH de bénéfice, en mettant à jour _getTotalPooledEther à 1001, cela signifie que le total de stETH passe de 1000 à 1001. Par conséquent, le nouveau calcul pour l'adresse A serait de 100 * 1001 / 1000 = 100,1 stETH.

En termes plus simples, alors que les actions détenues par chaque adresse restent constantes, les stETH correspondant à ces actions augmentent. Ainsi, lorsqu'ils sont recalculés, les avoirs en stETH augmentent naturellement.

En continuant avec le code, la logique à l'intérieur de _getTotalPooledEther est influencée par la méthode handleOracleReport, qui met à jour les données pertinentes à l'intérieur du contrat. Cette méthode est appelée périodiquement, et l'invocation spécifique se produit à travers le contrat àhttps://etherscan.io/address/0x852deD011285fe67063a08005c71a85690503Cee, qui appelle périodiquement submitReportData pour mettre à jour les données (submitReportData appelle internalement handleOracleReport dans le contrat Lido):

Nous pouvons voir qu'il y a des appels quotidiens pour mettre à jour le contenu pertinent, ce qui explique pourquoi, même si nous ne pouvons pas voir de transaction distribuant des profits à notre adresse, le solde change tous les jours.

Cela illustre une caractéristique des contrats intelligents Ethereum ERC20 : le montant des jetons détenus par les adresses n'est pas codé en dur mais retourné par les méthodes du contrat. Par conséquent, il est possible que le solde en jetons d'une adresse change même sans aucune transaction. Bien que cette flexibilité rende les contrats ERC20 plus polyvalents, elle peut également être déroutante pour ceux qui ne sont pas familiers avec les contrats. J'espère que cet article aidera les lecteurs à mieux comprendre les contrats intelligents et à interagir avec eux de manière plus sûre et plus intelligente.

De plus, bien que le staking de l'ETH pour obtenir du stETH semble offrir des récompenses de staking stables, il existe encore des risques potentiels. Cet article constitue une exploration technique des contrats de staking et ne doit pas être interprété comme un conseil en investissement.

Déclaration :

  1. Cet article est reproduit à partir de [Gate.io]Équipe ZAN,Titre original "Conception de contrat ingénieuse, voyez comment stETH distribue automatiquement les revenus quotidiennement ? Laissez votre ETH participer au staking pour obtenir un intérêt stable", Droits d'auteur appartiennent à l'auteur original[Équipe ZAN], si vous avez des objections à la reproduction, veuillez contacter le Porte Apprendrel'équipe, et l'équipe le traitera dès que possible selon les procédures pertinentes.

  2. Avertissement : Les points de vue et opinions exprimés dans cet article ne représentent que les opinions personnelles de l'auteur et ne constituent pas un conseil en investissement.

  3. Les autres versions linguistiques de l'article sont traduites par l'équipe Gate Learn et ne sont pas mentionnées dans Gate.io) , l'article traduit ne peut être reproduit, distribué ou plagié.

Compartilhar

Conteúdo

Interprétez le design astucieux de stETH

Intermédiaire3/22/2024, 10:01:35 PM
La logique fondamentale de stETH est de déposer de l'ETH dans Lido. Lido utilise cet ETH pour participer au PoS (Preuve d'enjeu) d'Ethereum afin de gagner des récompenses, et les utilisateurs reçoivent du stETH correspondant comme preuve de leur participation. Par la suite, Lido distribue les récompenses aux adresses détenant du stETH.

Titre transféré : Conception de contrat intelligente : voyez comment stETH distribue automatiquement les profits quotidiennement ? Laissez votre ETH participer au jalonnement pour gagner un intérêt stable.

L'auteur a converti une petite quantité d'Ether (ETH) en Ether stable (stETH) et a constaté que la quantité de stETH augmentait naturellement chaque jour, générant des bénéfices continus. Cependant, il n'y avait pas d'enregistrements de transaction visibles dans le compte. Pourquoi ? Cet article explorera le design astucieux derrière cela et révélera le secret de la distribution des bénéfices.

1 stETH a généré des bénéfices après quelques jours.

Avant de plonger dans la façon dont stETH génère des profits, permettez-moi d'abord de vous présenter la logique qui se cache derrière, à savoir le staking sur Ethereum. Les lecteurs qui sont déjà familiers avec ce concept peuvent passer à la suite.

Initialement, Ethereum, comme Bitcoin, utilisait la preuve de travail (PoW) comme mécanisme de consensus. Cependant, en raison de préoccupations concernant la consommation d'énergie, la sécurité et la scalabilité, Ethereum est passé à la preuve d'enjeu (PoS) en septembre 2022.

Auparavant dépendant de la puissance de minage pour parvenir à un consensus, Ethereum repose désormais sur les participants qui misent de l'ETH pour obtenir des droits de vote et gagner des récompenses par le vote. Cela incite au consensus grâce à la preuve d'enjeu (PoS).

En misant 32 ETH, on peut rejoindre le réseau Ethereum en tant que validateur, responsable de stocker des données, traiter des transactions et ajouter de nouveaux blocs à la blockchain. Les validateurs reçoivent des récompenses en ETH pour empaqueter correctement les transactions dans de nouveaux blocs et vérifier le travail d'autres validateurs, permettant des rendements relativement stables grâce à la mise en jeu.

Cependant, le staking traditionnel est contraignant pour les utilisateurs ordinaires, car il nécessite 32 ETH et un ordinateur dédié avec un accès ininterrompu au réseau Ethereum. De plus, le staking de l'ETH bloque la liquidité. D'où l'émergence des produits dérivés de staking liquide (LSD), visant à résoudre les obstacles et les problèmes de liquidité du staking traditionnel. Le LSD permet aux utilisateurs de miser moins de 32 ETH et de déléguer leur ETH à des fournisseurs de staking tiers, recevant en échange des jetons de staking correspondants (comme le stETH de Lido ou le rETH de Rocket Pool). Ces jetons liquides peuvent être échangés, empruntés ou utilisés pour d'autres activités financières sur différentes plateformes, permettant aux utilisateurs de participer au staking de manière plus pratique tout en maintenant la liquidité.

Ainsi, la logique fondamentale derrière stETH est que les utilisateurs fournissent leur ETH à Lido, qui utilise ensuite ces ETH pour participer au PoS d'Ethereum afin de générer des profits. En retour, les utilisateurs reçoivent stETH comme preuve de leur mise. Ensuite, Lido distribue les profits aux adresses détenant du stETH.

Nous pouvons observer que les bénéfices de stETH sont mis à jour automatiquement chaque jour. Le graphique suivant illustre la situation des bénéfices que nous avons testée, et les utilisateurs peuvent vérifier le contenu pertinent de leurs portefeuilles cryptés quotidiennement.

À ce stade, ceux qui sont familiers avec le développement de contrats intelligents pourraient se demander : avec de si petits profits quotidiens, est-ce même suffisant pour couvrir les frais de gaz ?

En effet, si Lido devait distribuer des bénéfices en utilisant la méthode la plus simple, il aurait probablement du mal à couvrir le coût du gaz. Envoyer des jetons à un si grand nombre d'adresses nécessiterait des frais de gaz importants, ce qui pourrait ne pas être réalisable.

Cependant, Lido a réussi à réaliser une croissance automatique des bénéfices dans les avoirs en stETH au sein des portefeuilles sans aucune transaction apparente. Comment est-ce possible ?

Nous avons trouvé le contrat de Lido à https://etherscan.io/token/0xae7ab96520de3a18e5e111b5eaab095312d7fe84et a suivi la méthode balanceOf dans le contrat.

La méthode balanceOf est conforme à la norme ERC20 et est utilisée par les portefeuilles pour récupérer le montant de jetons possédé par un utilisateur.

Dans le contrat stETH, nous voyons qu'il appelle la méthode getPooledEthByShares. Cette méthode prend la mise en correspondance (adresse => uint256) des parts privées en entrée. Cela représente-t-il combien de stETH un utilisateur possède ? Clairement non, car mettre à jour les données pour chaque adresse chaque jour serait impraticable. Bien que la mise à jour des parts dans une seule transaction puisse y parvenir, la consommation de gaz resterait importante.

À ce stade, beaucoup d'entre vous ont peut-être deviné comment fonctionne le contrat. Continuons à examiner la méthode getPooledEthByShares.

On peut observer que le résultat final est obtenu en multipliant le sharesAmount à l'adresse par _getTotalPooledEther() et en divisant par _getTotalShares.

_getTotalPooledEther représente le montant total de stETH (qui, si le stETH est arrimé à l'ETH selon un ratio de 1:1, représente également le montant total d'ETH), tandis que _getTotalShares représente le nombre total de parts. Avec ce calcul, le montant de stETH possédé par chaque adresse est déterminé dynamiquement.

Par exemple, s'il y a un total de 1000 actions, avec l'adresse A possédant 100 actions (comme représenté par sharesAmount), et le stETH total est de 1000 (comme retourné par _getTotalPooledEther), alors selon ce calcul, l'adresse A posséderait 100 stETH.

Maintenant, si Lido mise au total 1000 ETH et gagne 1 ETH de bénéfice, en mettant à jour _getTotalPooledEther à 1001, cela signifie que le total de stETH passe de 1000 à 1001. Par conséquent, le nouveau calcul pour l'adresse A serait de 100 * 1001 / 1000 = 100,1 stETH.

En termes plus simples, alors que les actions détenues par chaque adresse restent constantes, les stETH correspondant à ces actions augmentent. Ainsi, lorsqu'ils sont recalculés, les avoirs en stETH augmentent naturellement.

En continuant avec le code, la logique à l'intérieur de _getTotalPooledEther est influencée par la méthode handleOracleReport, qui met à jour les données pertinentes à l'intérieur du contrat. Cette méthode est appelée périodiquement, et l'invocation spécifique se produit à travers le contrat àhttps://etherscan.io/address/0x852deD011285fe67063a08005c71a85690503Cee, qui appelle périodiquement submitReportData pour mettre à jour les données (submitReportData appelle internalement handleOracleReport dans le contrat Lido):

Nous pouvons voir qu'il y a des appels quotidiens pour mettre à jour le contenu pertinent, ce qui explique pourquoi, même si nous ne pouvons pas voir de transaction distribuant des profits à notre adresse, le solde change tous les jours.

Cela illustre une caractéristique des contrats intelligents Ethereum ERC20 : le montant des jetons détenus par les adresses n'est pas codé en dur mais retourné par les méthodes du contrat. Par conséquent, il est possible que le solde en jetons d'une adresse change même sans aucune transaction. Bien que cette flexibilité rende les contrats ERC20 plus polyvalents, elle peut également être déroutante pour ceux qui ne sont pas familiers avec les contrats. J'espère que cet article aidera les lecteurs à mieux comprendre les contrats intelligents et à interagir avec eux de manière plus sûre et plus intelligente.

De plus, bien que le staking de l'ETH pour obtenir du stETH semble offrir des récompenses de staking stables, il existe encore des risques potentiels. Cet article constitue une exploration technique des contrats de staking et ne doit pas être interprété comme un conseil en investissement.

Déclaration :

  1. Cet article est reproduit à partir de [Gate.io]Équipe ZAN,Titre original "Conception de contrat ingénieuse, voyez comment stETH distribue automatiquement les revenus quotidiennement ? Laissez votre ETH participer au staking pour obtenir un intérêt stable", Droits d'auteur appartiennent à l'auteur original[Équipe ZAN], si vous avez des objections à la reproduction, veuillez contacter le Porte Apprendrel'équipe, et l'équipe le traitera dès que possible selon les procédures pertinentes.

  2. Avertissement : Les points de vue et opinions exprimés dans cet article ne représentent que les opinions personnelles de l'auteur et ne constituent pas un conseil en investissement.

  3. Les autres versions linguistiques de l'article sont traduites par l'équipe Gate Learn et ne sont pas mentionnées dans Gate.io) , l'article traduit ne peut être reproduit, distribué ou plagié.

Comece agora
Inscreva-se e ganhe um cupom de
$100
!