Guide по безопасности в Web 3
Это перевод с небольшими дополнениями, оригинал тут
Пора повысить уровень безопасности и должной осмотрительности после того, как в последнее время происходят все эти преступления.
Давайте рассмотрим некоторые важные меры безопасности и лучшие практики.
Помните, что вы всегда несете ответственность за свои собственные инвестиции, должны проводить собственные исследования, и этот список не является исчерпывающим.
Но соблюдение этих мер безопасности должно, надеюсь, помочь вам избежать многих эксплойтов и rugs.
Большая часть ваших долгосрочных средств должна находиться в холодном кошельке со словами восстановления, хранящимися как минимум в двух разных физических местах.
Аппаратные кошельки гарантируют, что ваша seed-фраза никогда не покинет устройство, и могут защитить вас от некоторых (но не всех) взломов.
Самыми популярными вариантами являются Trezor и Ledger. Заказывайте их только с официальных сайтов, через перекупщиков может быть опасно.
Храните свои слова восстановления физически на бумаге/металле. Это однозначно лучшая практика. Подумайте о том, чтобы разделить их на 2/3.
Если вы все же настаиваете на хранении их в цифровом виде, убедитесь, что вы сделали легкое шифрование.
Можно написать одно слово на другом языке, поменять местами последовательность первого и последнего слова или что-то подобное.
Используйте несколько кошельков
Не храните все свои средства в одном кошельке. Разделите их минимум на 2 кошелька, но желательно больше :
- Холодный кошелек
- Горячий кошелек
- Мобильный кошелек
- Деген кошелек (NFT mints или другие рискованные действия)
Максимальное распределение средств на протокол
Если вы являетесь пользователем defi, вам следует установить лимит на то, сколько % от вашего портфеля вы будете вкладывать в один протокол.
Я рекомендую не более 10% или 20% в одном протоколе, чтобы в случае его эксплойта вы не были уничтожены.
Один или несколько аудитов практически обязательны для серьезного проекта. Однако аудит не означает, что протокол на 100% безопасен
Имейте в виду, что некоторые аудиторские фирмы имеют очень плохой послужной список, и многие проверенные протоколы были использованы в своих целях.
Хороший разбор аудиторов есть в этой статье.
Так же рекомендую использовать defisafety и exponential, они выставляют оценки безопасности протоколам.
Программы вознаграждения за ошибки, такие как code4rena или immunefi
приглашает разработчиков, тестировщиков и белых хакеров тестировать протоколы и сообщать об ошибках за вознаграждение.
Если аудит не проводится, альтернативой может стать публичное вознаграждение за ошибки (аудит с привлечением толпы).
Взаимодействуя с прокси-контрактом, вы рискуете взаимодействовать с совершенно другим контрактом.
Прокси-контракт используется, когда проекты хотят иметь возможность обновления смарт-контрактов. Сам прокси-контракт остается неизменным, но можно развернуть новый контракт, изменив целевой адрес внутри прокси-контракта.
Как узнать, взаимодействуете ли вы с прокси-контрактом?
- Можно вбить адрес контракта на проверку тут etherscan
- При просмотре контракта в etherscan на вкладке "Contract", если контракт проксирован, то вы увидите "Read Contract via Proxy" и "Write Contract via Proxy".
Если проксированный код был обновлен, etherscan покажет вам адрес контракта для предыдущей версии.
Наличие прокси-контрактов не означает, что проект всегда является скамом.
Наличие возможности обновления может помочь исправить критическую ошибку после выхода на рынок и позволяет проекту перейти на новую функциональность без выполнения миграции.
Это одна из тех вещей, которые, на мой взгляд, труднее всего оценить при исследовании проекта.
Очевидно, что у команды будут веские причины, почему им это нужно, будь то серьезный проект или rug.
Подробнее про прокси-контракты тут
Мультисиг означает, что более одного человека должны подписать транзакцию, прежде чем она будет подтверждена.
Обычно мультисиг может быть 4/6, что означает, что 4 из 6 подписавших должны подписать транзакцию до ее совершения.
В мультисиге всегда должны быть хорошо знакомые и надежные люди, а члены команды не должны иметь достаточное количество подписантов для достижения кворума в одиночку.
Таймлок устанавливает временную задержку для изменения параметров контракта.
Обычно она устанавливается в пределах 12-24 часов, что означает, что никакие изменения в протоколе не могут быть сделаны без 12-часовой задержки.
Есть отличное руководство по проверке таймлоков от RugDoc
Таким образом, если проект пытается совершить rug (например, убрать ликвидность, намайнить дополнительные токены или обновить прокси-контракт), транзакция будет транслироваться на etherscan за 12 часов до ее вступления в силу.
С таймлоком вы можете спать спокойнее (но никогда не будете в полной безопасности).
Revoke approvals
При апруве изменяйте разрешение доступа максимум на сумму обмена (бывает, что установлен максимальный доступ к вашим средствам)
Через регулярные промежутки времени (например, каждый месяц/квартал) вы должны отзывать все разрешения.
Вы можете использовать etherscan/arbiscan или revoke.cash
Это утомительная работа, но она того стоит, если вы избежите эксплойта.
Если вы утверждаете всё подряд, существуют некоторые контракты, которые при утверждении могут украсть утверждённые активы.
Если вы прикоснулись к протоколу, в котором есть rug или эксплойт, вы должны немедленно отозвать все одобрения.
Будьте особенно осторожны, когда появляется кнопка подписи для подписи без газа.
Подписывайте только те протоколы, которым вы доверяете.
Ознакомьтесь с этой замечательной статьей в блоге officer_cia
Когда вы хотите посетить сайт протокола, которого нет в ваших закладках, используйте DefiLlama, coingecko или twitter.
В поисковых системах Google много мошеннических и фишинговых сайтов, так что я настоятельно рекомендую обращаться к проверенным ресурсам.
Разработчик финансируется за счёт денежных средств с Tornado Cash
Если разработчик контрактов получает деньги от миксеров вроде Tornado Cash, это огромный красный флаг.
Есть еще много вещей, которые должны быть исследованы, но я надеюсь, что вы нашли эту тему полезной.