転送されたタイトル:賢い契約設計:stETHが利益を自動的に毎日配当する方法を見てみましょう。あなたのETHをステーキングに参加させて安定した利子を稼ぎましょう。
著者は少額のEther(ETH)を安定したEther(stETH)に換え、その後、stETHの量が自然増加し、継続的な利益をもたらすことを発見しました。ただし、アカウントには取引記録が見えませんでした。なぜでしょうか?この記事では、その裏にある巧妙な設計を探求し、利益分配の秘密を明らかにします。
1 stETHは数日後にいくらかの利益を生み出しました。
利益を上げる方法について詳しく説明する前に、まずはその背後にあるロジックであるEthereumステーキングについて紹介しましょう。この概念にすでに精通している読者は先に進んでください。
最初、Ethereum は Bitcoin と同様に、共同作業(PoW)を採用していましたが、2022年9月に、消費電力、セキュリティ、拡張性に関する懸念から、Proof of Stake(PoS)に移行しました。
以前は採掘力に頼って合意を得ていたイーサリアムは、現在は参加者がETHをステーキングして投票権を得て、投票を通じて報酬を得るようになりました。これによりPoSを通じて合意形成が促進されています。
32 ETHをステーキングすることで、イーサリアムネットワークにバリデータとして参加することができ、データの保存、取引の処理、新しいブロックの追加を担当します。バリデータは、取引を新しいブロックに正しくパッケージ化し、他のバリデータの作業を検証することでETHの報酬を受け取ります。これにより、比較的安定したリターンをステーキングを通じて得ることができます。
しかし、従来のステーキングは一般ユーザーにとって煩雑であり、32 ETHとイーサリアムネットワークへの中断のないアクセスを持つ専用コンピュータが必要です。加えて、ステーキングETHは流動性を拘束します。このため、従来のステーキングの障壁や流動性の問題に取り組むLiquid Staking Derivatives(LSD)が登場しました。LSDを使用すると、32 ETH未満をステーキングし、ETHを第三者のステーキングプロバイダーに委任して、対応するステーキングトークン(LidoのstETHやRocket PoolのrETHなど)を受け取ることができます。これらの流動性のあるトークンは、さまざまなプラットフォームで取引、借入、または他の金融活動に使用することができ、ユーザーはより便利にステーキングに参加しながら流動性を維持することができます。
したがって、stETHの基本的なロジックは、ユーザーが自分のETHをLidoに提供し、それを使用してEthereumのPoSに参加して利益を生むというものです。その見返りとして、ユーザーは自分のステークの証拠としてstETHを受け取ります。そして、Lidoは利益をstETHを保有しているアドレスに配当します。
stETHの利益は毎日自動的に更新されることが観察されます。次のチャートは、私たちがテストした利益状況を示しており、ユーザーは毎日自分の暗号化されたウォレットの関連コンテンツを確認することができます。
この時点で、スマートコントラクト開発に精通している人々は疑問に思うかもしれません: このようにわずかな日々の利益では、ガス手数料すら賄えるのでしょうか?
実際、Lidoが最も簡単な方法で利益を配当するとしたら、おそらくガス料金をカバーするのに苦労するでしょう。多数のアドレスにトークンを送信するには、かなりのガス手数料が必要となり、実現可能でないかもしれません。
ただし、リドは、明らかな取引なしにウォレット内のstETH保有額の自動利益増加を実現しました。これが可能なのはなぜですか?
私たちはLidoの契約を見つけましたhttps://etherscan.io/token/0xae7ab96520de3a18e5e111b5eaab095312d7fe84そして契約内のbalanceOfメソッドを追跡しました。
balanceOfメソッドはERC20標準に準拠しており、ユーザーが所有するトークンの量を取得するためにウォレットによって使用されます。
stETHコントラクトでは、getPooledEthBySharesメソッドが呼び出されていることがわかります。このメソッドは、マッピング(アドレス=>uint256)private shares; を入力として受け取ります。これはユーザーが保有しているstETHの量を表していますか?明らかにそうではありません。なぜなら、毎日各アドレスのデータを更新することは実用的ではないからです。1つのトランザクションで株を更新することでこれを達成することができますが、ガス消費量は依然としてかなりのものになります。
今では、多くの方が契約の動作を推測しているかもしれません。 getPooledEthBySharesメソッドの調査を続けましょう。
アドレスのsharesAmountを_getTotalPooledEther()で乗算し、_getTotalSharesで除算することにより、最終結果が得られることが観察される。
_getTotalPooledEtherは、stETHの総額を表し(stETHが1:1の比率でETHにペッグされている場合、ETHの総額も表します)、_getTotalSharesは総株数を表します。この計算により、各アドレスが所有するstETHの量が動的に決定されます。
例えば、合計1000株ある場合、アドレスAが100株所有している(sharesAmountで表される)、そして合計stETHが1000である(_getTotalPooledEtherで返される)、この計算によると、アドレスAは100 stETHを所有していることになります。
今、Lidoが合計1000 ETHをステークし、1 ETHの利益を得た場合、_getTotalPooledEtherを1001に更新し、これにより合計stETHが1000から1001に増加します。したがって、Address Aの新しい計算は100 * 1001 / 1000 = 100.1 stETHとなります。
簡単に言えば、各アドレスが保持する株式が一定のままである間、それらの株式に対応するstETHは増加します。したがって、再計算すると、stETHの保有量が自然に増加します。
コードの続行について、_getTotalPooledEther内のロジックは、更新されたデータを処理するhandleOracleReportメソッドに影響を受けています。このメソッドは定期的に呼び出され、特定の呼び出しは契約を介して行われます。https://etherscan.io/address/0x852deD011285fe67063a08005c71a85690503Cee, これは定期的にsubmitReportDataを呼び出してデータを更新します(submitReportDataは内部でLidoコントラクト内のhandleOracleReportを呼び出します):
私たちは、関連コンテンツを更新するための日々の呼び出しがあることがわかります。そのため、私たちのアドレスに利益を配布する取引が見えなくても、残高は毎日変わるのです。
これは、イーサリアムのERC20スマートコントラクトの特性を示しています: アドレスが所有するトークンの量はハードコードされておらず、コントラクトのメソッドによって返されます。したがって、トークンの残高が取引なしで変更される可能性があります。この柔軟性により、ERC20コントラクトはより汎用性が高くなりますが、契約に馴染みのない人々にとっては混乱の元にもなり得ます。この記事が読者がスマートコントラクトをより安全かつ賢く理解し、それらとより賢くやり取りするのに役立つことを願っています。
さらに、stETHを取得するためにETHをステーキングすることは安定したステーキング報酬を提供するようですが、依然として潜在的なリスクがあります。この記事はステーキング契約の技術的な探求として機能し、投資アドバイスと解釈すべきではありません。
この記事は[から再生されましたZAN チーム「巧妙な契約設計、ステーキングに参加してETHを利用して安定した利息を得る方法を見てみましょう。stETHが収益を自動的に日々分配する仕組みは?」オリジナルの著作権は元の著者に帰属します。」ZANチーム], if you have any objections to the reprint, please contact the Gate Learnチームは、関連手続きに従ってできるだけ早く対応します。
免責事項:本文に示されている意見および見解は、著者個人の意見を表しており、投資アドバイスを構成するものではありません。
その他の言語版の記事はGate Learnチームによって翻訳され、言及されていませんGate.io), the translated article may not be reproduced, distributed or plagiarized.
Partilhar
Conteúdos
転送されたタイトル:賢い契約設計:stETHが利益を自動的に毎日配当する方法を見てみましょう。あなたのETHをステーキングに参加させて安定した利子を稼ぎましょう。
著者は少額のEther(ETH)を安定したEther(stETH)に換え、その後、stETHの量が自然増加し、継続的な利益をもたらすことを発見しました。ただし、アカウントには取引記録が見えませんでした。なぜでしょうか?この記事では、その裏にある巧妙な設計を探求し、利益分配の秘密を明らかにします。
1 stETHは数日後にいくらかの利益を生み出しました。
利益を上げる方法について詳しく説明する前に、まずはその背後にあるロジックであるEthereumステーキングについて紹介しましょう。この概念にすでに精通している読者は先に進んでください。
最初、Ethereum は Bitcoin と同様に、共同作業(PoW)を採用していましたが、2022年9月に、消費電力、セキュリティ、拡張性に関する懸念から、Proof of Stake(PoS)に移行しました。
以前は採掘力に頼って合意を得ていたイーサリアムは、現在は参加者がETHをステーキングして投票権を得て、投票を通じて報酬を得るようになりました。これによりPoSを通じて合意形成が促進されています。
32 ETHをステーキングすることで、イーサリアムネットワークにバリデータとして参加することができ、データの保存、取引の処理、新しいブロックの追加を担当します。バリデータは、取引を新しいブロックに正しくパッケージ化し、他のバリデータの作業を検証することでETHの報酬を受け取ります。これにより、比較的安定したリターンをステーキングを通じて得ることができます。
しかし、従来のステーキングは一般ユーザーにとって煩雑であり、32 ETHとイーサリアムネットワークへの中断のないアクセスを持つ専用コンピュータが必要です。加えて、ステーキングETHは流動性を拘束します。このため、従来のステーキングの障壁や流動性の問題に取り組むLiquid Staking Derivatives(LSD)が登場しました。LSDを使用すると、32 ETH未満をステーキングし、ETHを第三者のステーキングプロバイダーに委任して、対応するステーキングトークン(LidoのstETHやRocket PoolのrETHなど)を受け取ることができます。これらの流動性のあるトークンは、さまざまなプラットフォームで取引、借入、または他の金融活動に使用することができ、ユーザーはより便利にステーキングに参加しながら流動性を維持することができます。
したがって、stETHの基本的なロジックは、ユーザーが自分のETHをLidoに提供し、それを使用してEthereumのPoSに参加して利益を生むというものです。その見返りとして、ユーザーは自分のステークの証拠としてstETHを受け取ります。そして、Lidoは利益をstETHを保有しているアドレスに配当します。
stETHの利益は毎日自動的に更新されることが観察されます。次のチャートは、私たちがテストした利益状況を示しており、ユーザーは毎日自分の暗号化されたウォレットの関連コンテンツを確認することができます。
この時点で、スマートコントラクト開発に精通している人々は疑問に思うかもしれません: このようにわずかな日々の利益では、ガス手数料すら賄えるのでしょうか?
実際、Lidoが最も簡単な方法で利益を配当するとしたら、おそらくガス料金をカバーするのに苦労するでしょう。多数のアドレスにトークンを送信するには、かなりのガス手数料が必要となり、実現可能でないかもしれません。
ただし、リドは、明らかな取引なしにウォレット内のstETH保有額の自動利益増加を実現しました。これが可能なのはなぜですか?
私たちはLidoの契約を見つけましたhttps://etherscan.io/token/0xae7ab96520de3a18e5e111b5eaab095312d7fe84そして契約内のbalanceOfメソッドを追跡しました。
balanceOfメソッドはERC20標準に準拠しており、ユーザーが所有するトークンの量を取得するためにウォレットによって使用されます。
stETHコントラクトでは、getPooledEthBySharesメソッドが呼び出されていることがわかります。このメソッドは、マッピング(アドレス=>uint256)private shares; を入力として受け取ります。これはユーザーが保有しているstETHの量を表していますか?明らかにそうではありません。なぜなら、毎日各アドレスのデータを更新することは実用的ではないからです。1つのトランザクションで株を更新することでこれを達成することができますが、ガス消費量は依然としてかなりのものになります。
今では、多くの方が契約の動作を推測しているかもしれません。 getPooledEthBySharesメソッドの調査を続けましょう。
アドレスのsharesAmountを_getTotalPooledEther()で乗算し、_getTotalSharesで除算することにより、最終結果が得られることが観察される。
_getTotalPooledEtherは、stETHの総額を表し(stETHが1:1の比率でETHにペッグされている場合、ETHの総額も表します)、_getTotalSharesは総株数を表します。この計算により、各アドレスが所有するstETHの量が動的に決定されます。
例えば、合計1000株ある場合、アドレスAが100株所有している(sharesAmountで表される)、そして合計stETHが1000である(_getTotalPooledEtherで返される)、この計算によると、アドレスAは100 stETHを所有していることになります。
今、Lidoが合計1000 ETHをステークし、1 ETHの利益を得た場合、_getTotalPooledEtherを1001に更新し、これにより合計stETHが1000から1001に増加します。したがって、Address Aの新しい計算は100 * 1001 / 1000 = 100.1 stETHとなります。
簡単に言えば、各アドレスが保持する株式が一定のままである間、それらの株式に対応するstETHは増加します。したがって、再計算すると、stETHの保有量が自然に増加します。
コードの続行について、_getTotalPooledEther内のロジックは、更新されたデータを処理するhandleOracleReportメソッドに影響を受けています。このメソッドは定期的に呼び出され、特定の呼び出しは契約を介して行われます。https://etherscan.io/address/0x852deD011285fe67063a08005c71a85690503Cee, これは定期的にsubmitReportDataを呼び出してデータを更新します(submitReportDataは内部でLidoコントラクト内のhandleOracleReportを呼び出します):
私たちは、関連コンテンツを更新するための日々の呼び出しがあることがわかります。そのため、私たちのアドレスに利益を配布する取引が見えなくても、残高は毎日変わるのです。
これは、イーサリアムのERC20スマートコントラクトの特性を示しています: アドレスが所有するトークンの量はハードコードされておらず、コントラクトのメソッドによって返されます。したがって、トークンの残高が取引なしで変更される可能性があります。この柔軟性により、ERC20コントラクトはより汎用性が高くなりますが、契約に馴染みのない人々にとっては混乱の元にもなり得ます。この記事が読者がスマートコントラクトをより安全かつ賢く理解し、それらとより賢くやり取りするのに役立つことを願っています。
さらに、stETHを取得するためにETHをステーキングすることは安定したステーキング報酬を提供するようですが、依然として潜在的なリスクがあります。この記事はステーキング契約の技術的な探求として機能し、投資アドバイスと解釈すべきではありません。
この記事は[から再生されましたZAN チーム「巧妙な契約設計、ステーキングに参加してETHを利用して安定した利息を得る方法を見てみましょう。stETHが収益を自動的に日々分配する仕組みは?」オリジナルの著作権は元の著者に帰属します。」ZANチーム], if you have any objections to the reprint, please contact the Gate Learnチームは、関連手続きに従ってできるだけ早く対応します。
免責事項:本文に示されている意見および見解は、著者個人の意見を表しており、投資アドバイスを構成するものではありません。
その他の言語版の記事はGate Learnチームによって翻訳され、言及されていませんGate.io), the translated article may not be reproduced, distributed or plagiarized.