📣 Gate.io Пост Крипто Обозреватель Призыв к действию!
📈 Share Крипто Новости и выигрывайте отличные награды еженедельно!
💓 Не стесняйтесь, присоединяйтесь прямо сейчас ⏬
1. Делитесь ежедневными новостями о криптовалютах, тенденциями рынка и инсайтами в своем посте.
2. Включите #CryptoObservers# , чтобы успешно участвовать.
🎁 10 счастливых "Крипто Наблюдателей" будут награждены 20$ points каждую пятницу!
📌 Список победителей будет объявляться каждую пятницу, а награды будут распределяться в тот же день.
📌 Примечание: Публикации могут содержать только тег #CryptoObservers# ; в противном случ
Гениальный дизайн контракта. Видите, как stETH автоматически распределяет ежедневный доход?
После того как автор конвертировал небольшое количество ETH в stETH, он обнаружил, что stETH естественным образом растет с каждым днем и продолжает приносить прибыль. Но я не вижу транзакций в своем аккаунте.Почему? Эта статья познакомит вас с гениальной конструкцией, лежащей в ее основе, и раскроет секрет распределения доходов.
1 stETH уже добился некоторого роста за последние несколько дней
Перед этим давайте сначала представим логику получения дохода от stETH, то есть ставки Ethereum.Читатели, которые уже понимают эту часть концепции, могут сразу перейти к предыдущей части.
Первоначальный Ethereum, как и Биткойн, использовал доказательство работы (PoW) в качестве механизма консенсуса. Однако из-за энергопотребления и других соображений безопасности и повышения производительности PoW, Ethereum начнет работу с сентября 2022 года. Начало обновления до Proof of Stake (PoS) ).
Ethereum, который изначально полагался на майнинг вычислительных мощностей для привлечения майнеров для достижения консенсуса, превратился в ставку на то, что каждый получит право голоса, пообещав ETH, и получит доход посредством голосования, тем самым мотивируя всех к достижению консенсуса через PoS.
Сделав ставку в 32 ETH, вы можете присоединиться к сети Ethereum и стать валидатором, отвечающим за хранение данных, обработку транзакций и добавление новых блоков в блокчейн. Пока вы запускаете транзакцию, правильно упаковываете транзакцию в новый блок и проверяете работу других валидаторов, вы будете получать вознаграждение в ETH. Это эквивалентно тому, что вы можете иметь относительно стабильный доход от размещения ETH.
Однако такой залог по-прежнему слишком затруднителен для обычных пользователей, ведь все еще существуют определенные пороги для 32 Ethereum и выделенного компьютера, который может получить доступ к сети Ethereum 24/7. Более того, размещение ETH приведет к потере ликвидности этой части ETH. Таким образом, существуют деривативы для ликвидных ставок (LSD), которые направлены на решение проблем с порогом и ликвидностью в традиционных ставках, позволяя пользователям закладывать менее 32 ETH, и им не нужно самим владеть узлами, а вместо этого ETH передается третьей стороне. для залога и получаются соответствующие токены залога (такие как stETH Lido или rETH Rocket Pool).Эти токены ликвидности можно торговать, брать взаймы или использовать для другой финансовой деятельности на других платформах.Таким образом, пользователи могут как Легче участвовать делать ставки и получать вознаграждения, сохраняя при этом гибкость средств.
Таким образом, основная логика stETH заключается в передаче ETH Lido. Lido будет использовать эти ETH для участия в PoS Ethereum для получения дохода, а пользователи получат соответствующий stETH в качестве ваучера. Следующим шагом Lido будет распределение доходов по этим адресам с помощью stETH.
Мы видим, что доход stETH автоматически обновляется каждый день.На рисунке ниже показана ситуация с доходами нашего теста, которая соответствует контенту, связанному с проверкой шифрованного кошелька, который можно проверять каждый день.
Но на данный момент, я думаю, студенты, знакомые с разработкой смарт-контрактов, будут сбиты с толку: поскольку ежедневный доход распределяется так мало, этого дохода может не хватить для оплаты GAS.
Действительно, если Лидо будет распределять доходы по самому простому методу, покрыть затраты на ГАЗ будет сложно. С нашей интуитивной точки зрения, невозможно представить, чтобы GAS отправлял токены на такое количество адресов.
Но это правда, что Lido реализовал автоматический рост доходов stETH в кошельке, и мы не нашли ни одной транзакции по этому адресу.Как это достигается?
Мы нашли контракт Lido и проследили его до метода BalanceOf контракта:
BalanceOf — это метод, соответствующий спецификации ERC20, и кошелек использует этот метод для получения количества токенов, имеющихся у пользователя.
Мы видим, что здесь, в контракте stETH, вызывается метод getPooledEthByShares. Входным параметром этого метода является сопоставление (адрес => uint256) частных общих ресурсов;. Сколько stETH это означает, что у пользователя есть? Очевидно нет, иначе данные каждого адреса нужно было бы обновлять каждый день.Хотя можно обновить токены всех адресов за одну транзакцию, просто вызвав метод в контракте для обновления долей, но очевидно потребление GAS тоже самое огромное.
Теперь все, должно быть, догадались, как реализован контракт.Давайте продолжим рассмотрение метода getPooledEthByShares.
Вы можете видеть, что окончательный возвращаемый результат — это сумма акций по адресу, умноженная на _getTotalPooledEther() и разделенная на _getTotalShares.
_getTotalPooledEther представляет общее количество stETH (если отношение stETH к ETH составляет 1:1, оно также представляет количество ETH), а _getTotalShares представляет количество имеющихся акций. Таким образом, количество stETH, которое имеет каждый адрес, рассчитывается динамически.
Например, если сейчас имеется в общей сложности 1000 акций (Shares — число, возвращаемое методом _getTotalShares), из которых адрес A содержит 100 акций (что соответствует значению SharesAmount, указанному выше). Эти 1000 акций соответствуют сумме, возвращаемой 1000 stETH (то есть _getTotalPooledEther). Тогда согласно этому расчету адрес А соответствует 100 stETH. Затем Лидо берет в залог всего 1000 ETH и получает доход в размере 1 ETH. После этого соответствующее обновление _getTotalPooledEther равно 1001, то есть первоначальная сумма в 1000 stETH увеличилась до 1001, тогда вновь рассчитанный адрес A имеет 100 \ * 1001/1000 = 100,1 стЭТХ.
**Проще говоря, если акции, принадлежащие каждому адресу, остаются неизменными, а stETH, соответствующий акциям, увеличивается, то stETH естественным образом увеличится при расчете. **
Продолжим рассматривать код: на логику в _getTotalPooledEther будет влиять метод handleOracleReport, и этот метод будет обновлять соответствующие данные в контракте. Конкретный вызов заключается в регулярном вызове submitReportData через контракт для обновления данных (submitReportData будет вызывать handleOracleReport контракта Lido):
Мы видим, что каждый день поступают призывы обновить соответствующий контент, поэтому, хотя мы не видим транзакций по нашему адресу, которые приносят доход, сумма по-прежнему меняется каждый день.
На самом деле это отражает особенность смарт-контракта Ethereum ERC20, которая заключается в том, что количество токенов, принадлежащих этим контрактам ERC20, не жестко запрограммировано в адресе, а возвращается методом контракта, поэтому могут быть случаи, когда учетная запись не есть какие-либо транзакции.Количество токенов также может измениться. С одной стороны, это делает контракт ERC20 более гибким, но с другой стороны, это также приносит много путаницы многим друзьям, которые не знакомы с контрактом.Я надеюсь, что эта статья поможет каждому лучше понять смарт-контракты и взаимодействовать с ними. со смарт-контрактами более безопасно.
Кроме того, несмотря на то, что вы можете получить, казалось бы, стабильный доход от ставок, заложив ETH на stETH, все же существуют возможные риски.Эта статья представляет собой лишь справочный материал по техническому исследованию договора залога и не представляет собой каких-либо рекомендаций по инвестированию.
Кроме того, ранее мы уже публиковали статью о «перестейкинге». Заинтересованные читатели могут продолжить чтение, чтобы узнать больше.