Одной из отличительных черт Web3 является предоставление пользователям полного контроля над конфиденциальностью и тем, как они взаимодействуют с платформами. Узнайте, как управлять утверждениями и разрешениями в MetaMask.

Даже если ваш опыт взаимодействия с блокчейнами, такими как Ethereum, ограничивается отправкой простых транзакций между кошельками, вы одобряете, авторизуете или подписываете свою транзакцию. Это просто означает, что вы подтверждаете его отправку в блокчейн.

Тот же процесс в равной степени применим и к взаимодействию с децентрализованными приложениями в Web3: существует множество вещей, на которые можно дать согласие, одобрить и разрешить. Но что на самом деле означает одобрение MetaMask?

Чтобы разобраться в этом вопросе, нам нужно сначала осветить некоторые основные аспекты криптографии.

Ключи и криптография: что такое одобрение?

Вся ваша криптографическая деятельность основана на криптографии с открытым ключом. По сути, каждый кошелек имеет совпадающий публичный и закрытый «ключ», сгенерированный при создании кошелька. Представьте себе дверь, в которой вам нужно открыть засов и повернуть защелку, чтобы войти, причем для каждого из них нужен свой ключ. Наличие одного ключа ни к чему не приведет — вам нужна пара.

Хотя это и чрезмерное упрощение, мы можем взять на себя задачу этой гипотетической двери и применить аналогичную логику к вашему криптокошельку. Для транзакции необходимы как ваш личный, так и открытый ключи: закрытый ключ, чтобы вы могли продемонстрировать, что вы инициировали транзакцию, и открытый ключ, чтобы получатель мог проверить происхождение. Вот как это работает:

  1. Вы решаете отправить токены контакту.

  2. Поскольку вы знаете адрес кошелька получателя, вы храните его открытый ключ — первый представляет собой просто хешированную (зашифрованную) версию второго. Открытый ключ используется для шифрования транзакции.

  3. Получатель, владелец закрытого ключа, получает транзакцию. Поскольку их ключи принадлежат друг другу, только соответствующий закрытый ключ, который есть только у них, может расшифровать транзакцию, отправленную их открытым ключом.

Пока все хорошо: мы установили, как пары частных и открытых ключей взаимодействуют, поддерживая транзакции блокчейна. Однако, чтобы применить эти знания к утверждениям/подписям, мы меняем роли ключей: вместо этого отправитель шифрует сообщение своим закрытым ключом. Поскольку другие могут легко узнать открытый ключ отправителя (адрес его кошелька), ключи можно объединить для расшифровки сообщения, проверяя личность отправителя. Только совпадающая пара ключей раскроет содержимое сообщения, а это значит, что никто не сможет оспорить его происхождение.

Впечатывание своего рода подписи в каждую транзакцию гарантирует неизменность, и никто, кроме вас — владельца вашего закрытого ключа — не сможет обманным образом подражать вам.

Разрешения для децентрализованных приложений

Первый из двух основных типов одобрения, с которым вы столкнетесь, — это первое подключение вашего кошелька к децентрализованному приложению — будь то DeFi, такой сервис, как Etherscan, или торговая площадка NFT.

Это предполагает предоставление dapp разрешения на получение адреса вашего кошелька и является обязательным условием для взаимодействия с платформой. Это также объясняет, почему вы увидите, что это называется «разрешением» или «разрешениями»; существительные, которые точно описывают то, что вы делаете. В некоторых случаях децентрализованные приложения автоматически запрашивают разрешение; другие требуют, чтобы вы нажимали кнопки с надписью «подключиться» или аналогичные.

В нашем случае предоставление вашего разрешения будет выглядеть примерно так:

Утверждение токена

Независимо от того, являетесь ли вы опытным пользователем криптовалюты или новичком, для взаимодействия с любым смарт-контрактом – тем, который запускает децентрализованные приложения (включая DeFi, игры на блокчейне, покупки NFT) – вам необходимо подтвердить его доступ к вашим токенам.

Этот процесс по-разному называют, что неудивительно, «символическим одобрением». Что вы здесь делаете:

  1. Предоставление смарт-контракту доступа к балансу ваших токенов. Думайте об этом как об «этапе смарт-контракта». На этом этапе MetaMask четко укажет, какой объем доступа вы предоставляете: некоторые децентрализованные приложения могут указывать ограниченное количество токенов, в то время как другие запрашивают неограниченный доступ.

  2. Подтверждение того, что вы хотите завершить рассматриваемую транзакцию: то есть «этап блокчейна», на котором вы разрешаете смарт-контракту отправлять транзакцию в сеть от вашего имени.

Допустим, вы хотите выполнить обмен токенов на Uniswap, крупнейшей децентрализованной бирже (DEX) по объему торгов. Когда вы впервые инициируете обмен пары токенов, вам будет предложено утвердить смарт-контракты для пары токенов ERC-20, которой вы торгуете (но не для самого ETH, который не требует одобрения). Хотя это происходит только в первый раз, когда вы торгуете этой парой, следующий шаг – то есть второй шаг выше – будет требоваться каждый раз, и это означает, что протоколы Uniswap будут выполнять вашу сделку по запросу.

Этот процесс будет напоминать следующий:

  • Во-первых, платформа предложит вам утвердить токен. Нажмите на подсказку, и MetaMask начнет действовать.

  • MetaMask покажет вам адрес контракта токена, подтверждая, что он запрашивает возможность доступа и перемещения ваших средств. Чтобы быть уверенным, что вы разрешаете правильный контракт, стоит сопоставить адрес токена с адресом, указанным на веб-сайте децентрализованного приложения — обычно его можно найти в их справочном центре, базе знаний или документации. У вас даже есть возможность указать, как далеко вы хотите распространить это разрешение — для этого нажмите «Изменить разрешение».

  • Эта опция позволяет вам точно увидеть, какой объем доступа вы разрешаете. В этом случае Uniswap хочет получить доступ к практически неограниченному количеству stETH (1,1659), но при необходимости мы можем установить ограничение на это разрешение, используя поле «Пользовательский лимит расходов».

Благодаря этой функции MetaMask позволяет вам контролировать одобрение ваших токенов — вам никогда не придется слепо разрешать децентрализованному приложению доступ к большему количеству, чем вы хотите, или брать на себя нежелательный риск ради опробования новой платформы.

В самом торговом запросе используется ваша пара ключей: вы подписываете транзакцию своим закрытым ключом. Подумайте о том, чтобы расписаться ручкой на пунктирной линии; хотя при использовании криптографии с открытым ключом риск мошенничества с личными данными незначителен. В нашем примере согласие означает, что вы разрешили смарт-контракту Uniswap перемещать этот токен в ваш кошелек и обратно от вашего имени. Каждый раз, когда вы пытаетесь инициировать обмен, смарт-контракт может проверить ваше «сообщение» — то есть инструкцию по выполнению обмена — и убедиться, что вы, как единственный человек, имеющий доступ к вашему личному ключу, являетесь его отправителем.

Как я могу управлять утверждениями и разрешениями?

Одной из отличительных черт Web3 является предоставление пользователям полного контроля над конфиденциальностью и тем, как они взаимодействуют с платформами. Это отражено в некастоциональном дизайне MetaMask. Однако его принципы распространяются и на другие особенности; Среди них — возможность просматривать и управлять утверждениями децентрализованных приложений и смарт-контрактов.

Просмотр подключенных сайтов в MetaMask

MetaMask включает в себя встроенную функцию для проверки того, к каким сайтам подключен ваш кошелек. Он называется «Подключенные сайты» (как вы, наверное, заметили, мы не любим слишком усложнять). Столь же прост и метод их удаления.

Просмотр утверждений токена

Etherscan недавно внедрил средство проверки одобрения токенов, которое позволяет просматривать и отзывать, ну… одобрения токенов.

Список одобренных токенов отображается после того, как вы подключаете MetaMask и даете Etherscan разрешение на просмотр вашего кошелька – знакомо? Затем вы можете проверить их актуальность и соответственно отозвать их. Полезно также то, что вы также можете просмотреть конкретный задействованный актив, кого вы одобрили (например, какое децентрализованное приложение указано по имени), а также количество токенов, к которым вы разрешили доступ.

Существует также несколько альтернатив, в том числе Approved.zone, Revoke и Token Allowance Checker (TAC).

Не говори прямо

Персональное агентство, которое включает в себя управление кошельком, не связанным с хранением, таким как MetaMask, — это палка о двух концах. Точно так же, как обеспечение безопасности вашей секретной фразы восстановления является вашей личной ответственностью и требует бдительности против мошенников, вы единственный, кто может управлять разрешениями dapp и утверждениями смарт-контрактов. Добавьте к этому то, насколько легко создать новый токен ERC-20 (на момент написания статьи существует около 485 000 токенов) и риски станут весьма очевидными. Хотя большинство из них будет сделано добросовестно, любой из них может быть создан плохим актером.

Утверждение токенов является относительно распространенным вектором атаки для мошенничества — просто проверьте rekt.news, чтобы получить представление о масштабах, и эту статью Finematics, чтобы получить представление о методах. Как упоминалось ранее, децентрализованные приложения должны указать, к скольким токенам они хотят получить доступ. MetaMask, например, обеспечит отображение этой информации на экране одобрения до вашего подтверждения, давая вам более четкое представление о том, на что именно вы подписываетесь.

Запросы на доступ к децентрализованным приложениям могут варьироваться от определенных, ограниченных количеств до полностью неограниченных, когда смарт-контракт может получать из вашего кошелька столько, сколько пожелает. По сути, неограниченный доступ сам по себе не является проблемой или тревожным сигналом — многие авторитетные платформы, такие как крупные DEX, делают это, чтобы избавить вас от необходимости частого повторного одобрения, если вы регулярно используете децентрализованное приложение. Проблема возникает с децентрализованными приложениями, которые запрашивают неограниченный доступ к вашим токенам с явным намерением украсть.

Прежде чем одобрить доступ смарт-контракта к любому количеству токенов, вам следует пройти мысленный контрольный список для оценки риска. Вы часто будете видеть в Интернете аббревиатуру «DYOR»: проведение собственного исследования, прежде чем разрешить доступ, определенно является хорошей привычкой. Например:

  • Насколько известен проект?

  • Как давно это было?

  • Есть ли у него активный канал сообщества в Discord, Telegram или Twitter?

  • Являются ли разработчики/владельцы децентрализованного приложения прозрачными и общедоступными, например? в Твиттере или Дискорде?

  • Было ли недавно нарушение безопасности? Здесь стоит поискать.

  • Прошли ли они сторонний аудит смарт-контрактов?

  • Проверьте адрес контракта в обозревателе блоков. Некоторые исследователи, такие как Etherscan, имеют механизм отчетности, управляемый пользователем, который помечает мошеннические адреса (контракты или кошельки). Даже если они не помечены, проверьте наличие подозрительной активности, например крупных притоков или оттоков денежных средств за короткие периоды времени.

Обобщить:

Одобрение токеном — это не просто жест, обозначающий согласие, а обыденный и важный аспект взаимодействия с Web3. Некоторые ключевые моменты:

  • Криптография с открытым ключом используется для аутентификации ваших разрешений при взаимодействии с децентрализованными приложениями.

  • Разрешения для децентрализованных приложений подразумевают разрешение децентрализованным приложениям просматривать баланс вашего кошелька.

  • Утверждение токена предполагает разрешение смарт-контракту децентрализованного приложения на доступ и перемещение определенного токена в вашем кошельке.

  • Всегда проверяйте учетные данные децентрализованного приложения и убеждайтесь в его надежности, прежде чем утверждать его смарт-контракт.

ФРУКТЫ