January 17, 2023

Guide по безопасности в Web 3

Это перевод с небольшими дополнениями, оригинал тут


Пора повысить уровень безопасности и должной осмотрительности после того, как в последнее время происходят все эти преступления.

Давайте рассмотрим некоторые важные меры безопасности и лучшие практики.

Помните, что вы всегда несете ответственность за свои собственные инвестиции, должны проводить собственные исследования, и этот список не является исчерпывающим.

Но соблюдение этих мер безопасности должно, надеюсь, помочь вам избежать многих эксплойтов и rugs.

Аппаратные кошельки

Большая часть ваших долгосрочных средств должна находиться в холодном кошельке со словами восстановления, хранящимися как минимум в двух разных физических местах.

Аппаратные кошельки гарантируют, что ваша seed-фраза никогда не покинет устройство, и могут защитить вас от некоторых (но не всех) взломов.

Самыми популярными вариантами являются Trezor и Ledger. Заказывайте их только с официальных сайтов, через перекупщиков может быть опасно.

Seed-фраза

Храните свои слова восстановления физически на бумаге/металле. Это однозначно лучшая практика. Подумайте о том, чтобы разделить их на 2/3.

Если вы все же настаиваете на хранении их в цифровом виде, убедитесь, что вы сделали легкое шифрование.

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

Используйте несколько кошельков

Не храните все свои средства в одном кошельке. Разделите их минимум на 2 кошелька, но желательно больше :

- Холодный кошелек
- Горячий кошелек
- Мобильный кошелек
- Деген кошелек (NFT mints или другие рискованные действия)

Максимальное распределение средств на протокол

Если вы являетесь пользователем defi, вам следует установить лимит на то, сколько % от вашего портфеля вы будете вкладывать в один протокол.

Я рекомендую не более 10% или 20% в одном протоколе, чтобы в случае его эксплойта вы не были уничтожены.

Audits

Один или несколько аудитов практически обязательны для серьезного проекта. Однако аудит не означает, что протокол на 100% безопасен

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

Хороший разбор аудиторов есть в этой статье.

Так же рекомендую использовать defisafety и exponential, они выставляют оценки безопасности протоколам.

Bug bounty programs

Программы вознаграждения за ошибки, такие как code4rena или immunefi
приглашает разработчиков, тестировщиков и белых хакеров тестировать протоколы и сообщать об ошибках за вознаграждение.

Если аудит не проводится, альтернативой может стать публичное вознаграждение за ошибки (аудит с привлечением толпы).

Proxy contracts

Взаимодействуя с прокси-контрактом, вы рискуете взаимодействовать с совершенно другим контрактом.

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

Как узнать, взаимодействуете ли вы с прокси-контрактом?

  1. Можно вбить адрес контракта на проверку тут etherscan
  2. При просмотре контракта в etherscan на вкладке "Contract", если контракт проксирован, то вы увидите "Read Contract via Proxy" и "Write Contract via Proxy".
    Если проксированный код был обновлен, etherscan покажет вам адрес контракта для предыдущей версии.

Наличие прокси-контрактов не означает, что проект всегда является скамом.

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

Это одна из тех вещей, которые, на мой взгляд, труднее всего оценить при исследовании проекта.

Очевидно, что у команды будут веские причины, почему им это нужно, будь то серьезный проект или rug.

Подробнее про прокси-контракты тут

Multisig

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

Обычно мультисиг может быть 4/6, что означает, что 4 из 6 подписавших должны подписать транзакцию до ее совершения.

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

Timelock

Таймлок устанавливает временную задержку для изменения параметров контракта.

Обычно она устанавливается в пределах 12-24 часов, что означает, что никакие изменения в протоколе не могут быть сделаны без 12-часовой задержки.

Есть отличное руководство по проверке таймлоков от RugDoc

Таким образом, если проект пытается совершить rug (например, убрать ликвидность, намайнить дополнительные токены или обновить прокси-контракт), транзакция будет транслироваться на etherscan за 12 часов до ее вступления в силу.

С таймлоком вы можете спать спокойнее (но никогда не будете в полной безопасности).

Revoke approvals

При апруве изменяйте разрешение доступа максимум на сумму обмена (бывает, что установлен максимальный доступ к вашим средствам)

Через регулярные промежутки времени (например, каждый месяц/квартал) вы должны отзывать все разрешения.

Вы можете использовать etherscan/arbiscan или revoke.cash

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

Если вы утверждаете всё подряд, существуют некоторые контракты, которые при утверждении могут украсть утверждённые активы.

Если вы прикоснулись к протоколу, в котором есть rug или эксплойт, вы должны немедленно отозвать все одобрения.

Gasless signatures

Будьте особенно осторожны, когда появляется кнопка подписи для подписи без газа.

Подписывайте только те протоколы, которым вы доверяете.

Ознакомьтесь с этой замечательной статьей в блоге officer_cia

Не используйте google

Когда вы хотите посетить сайт протокола, которого нет в ваших закладках, используйте DefiLlama, coingecko или twitter.

В поисковых системах Google много мошеннических и фишинговых сайтов, так что я настоятельно рекомендую обращаться к проверенным ресурсам.

Разработчик финансируется за счёт денежных средств с Tornado Cash

Если разработчик контрактов получает деньги от миксеров вроде Tornado Cash, это огромный красный флаг.

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

Канал по defi

Чат defi degens

Ethereum : Всемирный Компьютер, часть 1