logo
logo
Menu
Подписи и подтверждения

Зачем нам нужен WETH?

6 минут

Доступно в:

Sep 5th, 2023 - 17:26 pm

Translated By:
EpiphanyEpiphany
SHARE

Пожалуй, одна из самых непонятных тем для наших студентов - зачем нужен Wrapped ETH (wETH) и чем он отличается от ETH. Одним из первых вопросов, который мы хотели бы прояснить для студентов, является то, как на самом деле работают токены. Стандарты токенов, рыночные площадки и программное обеспечение для кошельков разбирают то, что на самом деле происходит под капотом при взаимодействии с токеном. Даже такие приложения, как Revoke.Cash, запутывают людей, и они постоянно задают вопросы типа "почему мы не можем отозвать все эти одобрения сразу?". Я надеюсь ответить на некоторые из этих и других вопросов в этой статье!

WETH_04.gif

Image taken from the now defunct weth.io illustrating the wrapping/unwrapping process.

Что такое "обернутый" Ethereum (wETH)?

Wrapped Ethereum - это ERC-20-совместимая версия ETH, использующая не обновляемый контракт с пятью основными функциями: Approve, Transfer, TransferFrom, Deposit & Withdraw. Каждый токен в сети Ethereum - это всего лишь смарт-контракт, который может соответствовать или не соответствовать набору стандартов. Важно отметить, что когда вы взаимодействуете с токеном в своем кошельке, вы можете делать с ним только то, что разрешено контрактом этого токена. Поэтому, когда вы тратите, перемещаете или даете разрешение одному из своих токенов, это должно происходить в рамках самого контракта. Именно поэтому мы настаиваем на том, чтобы пользователи использовали закладки в кошельке для контрактов токенов в кошельке, так как это предупредит вас о том, что кто-то пытается взаимодействовать с конкретным контрактом токена в вашем кошельке! Подробнее об этом читайте в нашей статье: Все об одобрениях.

Function NameDescription
ApproveAllows contract addresses or other EOA addresses to utilize the wETH in your wallet as if it were owned by the approved address. This is commonly used by marketplaces to allow users to bid, etc.
TransferWhen you are moving tokens from your own wallet to another, calling transfer is the recommended action.
TransferFromTransferFrom can utilize the Approval method from above. If a wallet has an Approval to use tokens in your wallet, the TransferFrom method is called to facilitate the Transfer action. The difference is explained in a little bit more detail in this article. You can also call this method when transferring tokens, and oftentimes marketplaces will prompt you for this method as well, even when not doing a bulk transfer.
Deposit The Deposit function Deposits ETH into the Wrapped Ethereum contract, and mints the depositor an equal amount of wETH.
WithdrawThe Withdraw function Withdraws wETH from the Wrapped Ethereum contract, and returns the ETH that was in the contract.

Обертывание ETH в wETH обеспечивает совместимость ETH с ERC-20, что делает ETH совместимым с другими ERC-20 токенами в сети Ethereum и позволяет беспрепятственно обменивать их и использовать те же методы в популярных протоколах DeFi, таких как Uniswap, GMX, или Aave. Термин "обертывание" - это немного неправильный термин, который на самом деле означает просто обмен ваших ETH на wETH (или наоборот) с помощью этого контракта, чтобы получить токен, который можно использовать более беспрепятственно на платформах DeFi, а также для выставления заявок/предложений на торговых площадках NFT, таких как Opensea. 

WETH_03.gif

Изображение взято с ныне не существующего сайта weth.io, иллюстрирующее бесконфликтный обмен токенами и WETH в смарт-контрактах.

К сожалению, мы не можем сделать это с самим ETH, поскольку он существовал до создания стандарта ERC-20. В связи с этим мы называем ETH "прототокеном сети Ethereum". Было предложение сделать ETH совместимым с ERC-20 (что, в свою очередь, сделало бы ненужным wETH), но, учитывая сложности UI/UX кошельков, которые мы имеем сегодня, и распространение мошенничества с отъемом кошельков, мы рады, что этого пока не произошло! Подробнее об этом позже…

ERC-20 и взгляд на Etherscan

Как мы уже говорили выше, всякий раз, когда мы взаимодействуем с токеном, мы просто взаимодействуем со смарт-контрактом, который им управляет. Откройте etherscan и посмотрите, какие методы доступны для некоторых из ваших любимых токенов ERC-20 tokens. Что-нибудь интересное вы в них заметили? 


1) Apecoin: Обратите внимание, что у этого токена есть несколько методов, которых нет у контракта wETH. У многих токенов ERC-20 есть метод под названием "Increase Allowance". Этот метод функционально аналогичен методу Approve для контрактов ERC-20 и был причиной многих взломов и мошенничеств в DeFi, включая печально известный взлом BadgerDAO, который обманул нашего основателя в 2021 г. Потому что даже спустя год Metamask все еще отображает метод Increase Allowance вот так (скриншот ниже), что затрудняет пользователям понимание происходящего. Подробнее об этом мы рассказываем в статье "Все об утверждениях".

increaseallowance2.png

2) USDC: Вы заметите, что этот контракт является так называемым "прокси-контрактом". Более подробно мы рассмотрим этот вопрос на уроке 102 и в будущей статье (ссылка будет дана здесь!), а пока просто знайте, что это контракты, которые можно "модернизировать" и выполнять логику их контракта вне основного контракта.

3) Зайдите на сайт Coingecko и щелкните на названиях монет, которые вам знакомы или не знакомы. В верхней части под заголовком "Информация" вы увидите, что если это токен ERC-20, то у него есть контракт со ссылкой на etherscan! Осмотритесь и изучите его!

Но почему мы не можем использовать только ETH?

Одна из проблем, которую я люблю задавать нашим студентам: "Если бы вы хотели перейти непосредственно к "контракту ETH", чтобы манипулировать ETH в Etherscan, куда бы вы пошли?". Такого контракта, конечно, не существует, и все, что может делать ETH, встроено в основной код самого Ethereum. ETH ограничен в том, что он может делать. Вы можете переводить его, использовать для оплаты бензина и добавлять его в качестве стоимости для какого-либо метода (вспомните, например, Mint). Больше ничего сложного с ним сделать нельзя. 

WETH_02.gif

Этот график был взят с ныне не существующего сайта weth.io, демонстрирующего несовместимость ETH с ERC-20

Если бы у нас не было Wrapped Ethereum (wETH), то как бы работали торговые площадки NFT? Ну, во-первых, вы не могли бы открывать заявки на нескольких платформах с одинаковым количеством ETH. Тот, кто когда-либо делал предложения на Blur, прекрасно понимает, о чем я говорю! На этой платформе вы должны внести ETH на счет их платформы, что фактически "запирает" вас в этой экосистеме. Преимущество wETH заключается в том, что я могу делать предложения сразу на нескольких площадках NFT, а деньги с моего кошелька списываются только после того, как предложение будет принято на этой площадке.

Ключевым моментом является то, что вы не можете сделать утверждение на ETH, поэтому ни одно из этих предложений не может быть сделано таким же образом. Вам придется заблокировать эти деньги, что фактически является системой, которую Superrare и Foundation используют для своего механизма торгов/аукционов. Преимущество этого метода для платформы заключается в том, что они знают, что предложения не могут быть аннулированы в последнюю минуту путем отзыва доступа вашего wETH к платформе, что исключает возможность фальшивых заявок. Но для рядового пользователя возможность делать ставки, просто сделав подпись вне цепи, гораздо предпочтительнее с точки зрения экономии средств, чем каждый раз отправлять ETH. Никаких запертых денег, а после утверждения заявки больше не нужно платить за бензин!

Преимущества использования ETH <> wETH с точки зрения безопасности?

Наличие wETH представляет собой огромное препятствие для удобства использования и безопасности web3 и блокчейна ethereum в целом. В начале наших бесплатных курсов в рамках проекта Boring Security мы всегда задаем следующий вопрос: "Кто-нибудь может мне объяснить, что такое wETH и зачем он нам нужен?". Мы получаем множество ответов: от "потому что его используют торговые площадки" до "он дешевле в использовании" и "я не знаю, брат, ты мне скажи". Очень редко студент получает правильный ответ до того, как мы его объясним. Не забывайте, что эти студенты обычно являются относительно опытными пользователями и покупателями NFT. Это представляет собой огромный вызов для экосистемы. 

Тем не менее, знание того, как эффективно использовать одобрения, подписи и несколько кошельков, может помочь вам защитить ваши wETH и другие токены, такие как NFT, apecoin и т.д. Также важно отметить, что ETH не могут быть изъяты из вашего кошелька, если только вы: а) не возитесь с расширенными настройками кошелька и не подписываете устаревший тип подписи, б) не потеряли свою начальную фразу или в) не платите ETH как часть стоимости tx (для метода типа "Mint/Redeem [распространенное мошенничество]/Security Update [распространенное мошенничество]"). Так как же правильно использовать wETH? Что ж:

1) Одобряйте только небольшое количество wETH на используемой вами торговой площадке. Вы можете изменить количество wETH, которое вы можете использовать, с помощью статьи по ссылке. Бесконечные суммы - плохая практика!

2) Храните большую часть средств в ETH, так как их нельзя вытащить из вашего кошелька с помощью Approvals, а ETH безопасен до тех пор, пока безопасна ваша начальная фраза!

3) Revoke.Cash и Approvals.xyz хороши для периодической проверки не только wETH, но и всех ваших токенов. Оба сервиса обновляют оставшиеся одобренные суммы (так, если вы первоначально одобрили платформе 5wEth, а потратили 3wEth, то будет показано 2wEth одобренных), в то время как программа проверки одобрения токенов etherscan этого не делает.

4) Понять, как работают подписи. Можно подписать wETH, даже не подозревая об этом, если не следить за тем, что и где вы подписываете. Подробнее об этом можно узнать из нашей статьи Safe Signing 101.

image.png

Хотите получить больше информации о wETH?

В этой статье Cointelegraph объясняется, как его приобрести, а также рассказывается о нем. 

Статья Opensea, в которой рассказывается о wETH с подробными скриншотами о том, как использовать и приобретать ее на их торговой площадке.

У вас есть вопросы или вы хотите узнать больше о безопасности web3 и быть в курсе самой актуальной информации о безопасности, мошенничестве и тактиках? Присоединяйтесь к нам в discord по адресу https://discord.gg/boringsecurity .