Ведущий криптокошелек с самостоятельным хранением и шлюз к Web3, созданный Consensys.
Читать все статьиSnap хакатона ETHBogota

MetaMask Snaps — это дорожная карта к созданию самого расширяемого кошелька в мире. Как разработчик, вы можете добавлять свои функции и API в MetaMask совершенно новыми способами. Web3-разработчики — это основа этого роста, и данная серия материалов призвана продемонстрировать новаторские MetaMask Snaps, создаваемые сегодня.
Репозиторий Snap: https://github.com/s-a-malik/blackbelt
Почему вы его создали?
Мы хотели сделать взаимодействие с блокчейнами более безопасным для конечных пользователей. Особенно для новых и технически неподготовленных пользователей, которые боятся стать жертвами мошенничества и эксплойтов. Поэтому мы придумали способ обеспечить оценку рисков в режиме реального времени для взаимодействий со смарт-контрактами.
Можете рассказать о технической реализации?
Техническая структура
Blackbelt состоит из трёх элементов: нашего сервера, MetaMask snap и фронтенда нашего сайта. Сервер получает данные и вычисляет оценки риска смарт-контрактов. MetaMask snap, а также наш сайт обращаются к серверу и передают конкретный адрес контракта в https-запросе. Полная реализация нашего проекта доступна здесь.
Сервер
Наш сервер построен на бэкенде Flask, который возвращает оценки безопасности и метаданные в формате json. При поступлении GET-запроса на маршрут /security_score вызывается функция security_score(). Сначала все переданные параметры — такие как адрес контракта, адрес пользователя, идентификатор сети и источник вызова — распаковываются, а затем частично передаются в функцию compute_security_score(contract_address, chain), которая получает данные из блокчейна и вычисляет оценки риска по нескольким переменным (например, возраст контракта). Для ускорения получения данных внутри MetaMask Snaps мы предоставляем кешированные результаты, если они доступны при обращении к серверу через MetaMask Snaps (см. переменную is_snaps).
Функция compute_security_score (в файле logic.py) вычисляет эвристическую оценку риска на основе данных из блокчейна, полученных через Coinbase Cloud APIs, Etherscan APIs, а также из нашей собственной базы данных на стороне сервера с отмеченными вредоносными адресами, пополняемой сообществом. Несколько примеров типов факторов, используемых для вычисления оценки, показаны во фрагменте ниже. Например, мы проверяем, является ли контракт верифицированным и прошедшим аудит на Etherscan, а также его возраст.
В будущем мы планируем интегрировать больше источников информации, которые помогут выявлять вредоносные контракты (например, инструменты автоматической верификации и существующие базы данных чёрных списков), а также применять более тонкие методы вычисления оценки риска — например, с использованием методов машинного обучения.
Snap
Для snap мы используем API транзакционных инсайтов, который срабатывает при каждой транзакции. Snap состоит из четырёх шагов. Первый — из структуры транзакции извлекаются ключевые детали. Второй — детали транзакции отправляются на наш сервер, откуда мы получаем оценку риска и метаданные. Третий — проверяется статус запроса и обрабатываются возможные ошибки. Четвёртый — оценка риска и метаданные возвращаются в виде json-объекта внутри MetaMask Snaps.
Сайт
Сайт написан на React и используется для быстрого тестирования нашей функции перед добавлением её в MetaMask. Пользователи могут опробовать функцию, введя адрес контракта и нажав «Rate now». Если приложение понравится, его можно добавить в MetaMask, нажав «Add MetaMask Snap» в правом верхнем углу.
Каковы следующие шаги при дальнейшей реализации?
Следующим шагом станет улучшение нашего бэкенда и аналитических возможностей для более надёжного выявления рискованных контрактов. В настоящее время наша оценка основана на эвристике — например, количестве DAU или транзакций (чем больше, тем лучше), — однако мы хотели бы внедрить более продвинутые техники, такие как машинное обучение, для более точного вычисления оценки риска. После улучшения аналитики мы сосредоточимся на ускорении всего процесса оценки рисков, чтобы сделать пользовательский опыт максимально плавным — это можно реализовать через кеширование или более быстрые процедуры получения данных.
Расскажите немного о себе и своей команде.
Мы — команда из трёх аспирантов Оксфорда и одного выпускника Оксфорда. Мы связаны с Oxford Blockchain Society и познакомились на хакатоне ETHBogota, где и сформировали нашу команду.
Лукас Шнайдер: Лукас — кандидат на степень DPhil по информатике в Оксфордском университете, специализирующийся на вычислительных моделях и методах машинного обучения для прогнозирования результатов редактирования генов в системах CRISPR. До начала обучения в докторантуре Лукас работал аналитиком в инвестиционном банке Barclays в Лондоне в группе структурирования секьюритизированных продуктов, где участвовал в нескольких нестандартных сделках со структурированным кредитом и финансировании портфелей неработающих кредитов и коммерческой недвижимости. Он имеет степень магистра финансов Лондонской школы экономики и политических наук, а также степень бакалавра экономики с акцентом на количественные методы Университета Фридриха-Александра Эрланген-Нюрнберг.
Шрештх Малик: Шрештх — кандидат на степень DPhil по машинному обучению в Оксфордском университете, специализирующийся на повышении устойчивости и надёжности методов глубокого обучения для создания более заслуживающих доверия реальных приложений. Он также работал в ряде AI-стартапов и лондонском венчурном фонде на стадии seed. Имеет степени магистра в области машинного обучения (UCL) и физических естественных наук (Кембриджский университет).
Павел Наркевич: Павел — серийный предприниматель, учёный и технологический энтузиаст. В 18 лет он опубликовал свою первую научную статью по теории чисел совместно с ведущими математиками из Стэнфорда и Гарварда. Год спустя он основал успешный edtech-стартап для ускорения развития технологических навыков в Польше. Бизнес вышел на самоокупаемость через 3 месяца. Одновременно Павел присоединился к medtech-стартапу в качестве операционного акционера и ML-инженера, возглавив разработку одной из ключевых функций технологии стартапа. Он напрямую сотрудничал с ведущими исследователями из Оксфорда, Стэнфорда и Гарварда. Стартап привлёк финансирование в размере 770 тыс. долларов в раунде pre-seed и 3,2 млн фунтов стерлингов в раунде seed. Имеет степень бакалавра математики и информатики Оксфорда.
Джессика Пойнтинг: Джессика получает степень PhD по физике в Оксфордском университете, специализируясь на квантовых вычислениях, и ранее была аспиранткой по информатике в Стэнфордском университете в рамках программы Knight-Hennessy Scholars. Она получила степень бакалавра по физике и информатике в Гарвардском университете с отличием как стипендиат John Harvard Scholar, до этого будучи студенткой бакалавриата в MIT. Джессика вошла в список Forbes 30 under 30 в категории «Наука» и была избрана советником Глобального совета будущего Всемирного экономического форума по квантовым приложениям. Она выступала на TEDx и произносила основные доклады на технологических конференциях по всему миру, в том числе на конференции IBM Think и Oracle Code One. Проходила стажировки в качестве исследователя в области квантовых вычислений в KBR в Исследовательском центре NASA Эймс, инженера-программиста в Google, управленческого консультанта в McKinsey and Company, инвестиционного банкира в Goldman Sachs и стратега в Morgan Stanley. Джессика основала Ассоциацию квантовых вычислений Стэнфорда и Ассоциацию квантовых вычислений Гарвардского колледжа. Она выиграла премию IBM Q Quantum Computing Award, победив вместе с командой на первом квантовом хакатоне IBM. Также стала призёром хакатона по квантовым вычислениям Creative Destruction Lab. Джессика участвовала в ETHAmsterdam — хакатоне Ethereum, — где её команда завоевала главный финалистский приз и призы спонсоров. Она удостоена премии McKinsey Women's Impact Award и звания стипендиата Google Anita Borg Scholar. Также получила стипендии от Microsoft, Palantir, Adobe Research, Morgan Stanley, Goldman Sachs, Neo, Society of Women Engineers и Society of Geophysicists.
Когда вы впервые познакомились с MetaMask Snaps и каким был этот опыт?
Мы впервые познакомились с MetaMask Snaps на ETHBogota. Это оказалась идеальная функция для воплощения Blackbelt в жизнь наиболее удобным для пользователя способом. В целом опыт работы с MetaMask Snaps был приятным — MetaMask Snaps достаточно просты в использовании. Учитывая новизну MetaMask Snaps, всё же встречались некоторые мелкие сбои, которые иногда доставляли нам головную боль во время хакатона, но ничего серьёзного.
Чем MetaMask Snaps отличается от других кошельков?
MetaMask Snaps — это отличный способ открыть разработку расширений кошелька для сообщества и обеспечить разнообразные и индивидуальные решения для конечных пользователей с различными потребностями. Насколько нам известно, MetaMask — единственный провайдер кошельков, который на данный момент поддерживает кастомные плагины.
Расскажите, каково это — создавать Snaps с MetaMask для вас и вашей команды?
Создавать с MetaMask Snaps было довольно легко. Мы начали с одного из примеров проектов, который помог нам лучше понять механику MetaMask Snaps, а затем строили поверх примерного кода. Разработка в MetaMask Snaps была увлекательной, но иногда некоторые баги действительно ставили нас в тупик — особенно с учётом жёстких дедлайнов во время хакатона.
Что для вас значит MetaMask Snaps?
MetaMask Snaps — это функция, о которой мы всегда мечтали в наших кошельках. Для разработчика она открывает широкий спектр возможностей для инноваций.
Какие возможности вы видите в MetaMask Snaps и в том, что это открывает для пространства Web3?
MetaMask Snaps обеспечит большую кастомизируемость во всей экосистеме Web3 и тем самым улучшит общий пользовательский опыт, поскольку пользователи смогут сами выбирать нужные им функции.
Есть ли советы, которыми вы хотели бы поделиться с разработчиками, желающими попробовать MetaMask Snaps?
Просто поэкспериментируйте с MetaMask Snaps. Проще всего начать с одного из примеров проектов, чтобы понять, как работает MetaMask Snaps, а затем строить на его основе. Если возникнут неизвестные проблемы, вы всегда можете опубликовать вопрос в репозитории MetaMask Snaps на GitHub, чтобы получить помощь от разработчиков MetaMask Snaps.
Чтобы начать работу с MetaMask Snaps:
Ознакомьтесь с документацией для разработчиков
Установите MetaMask Flask
Изучите руководство по MetaMask Snaps
Оставайтесь на связи с нами в Twitter, обсуждениях на GitHub и Discord
Следите за нашей командой на следующем хакатоне рядом с вами! Удачного BUIDLing'а ⚒️
Отказ от ответственности: MetaMask Snaps, как правило, разрабатываются третьими сторонами, а не Consensys Software. Использование MetaMask Snaps, разработанных третьими сторонами, осуществляется по вашему собственному усмотрению и на ваш риск, и вы соглашаетесь с тем, что несёте единоличную ответственность за любые убытки или ущерб, возникшие в результате такой деятельности. Consensys не даёт никаких явных или подразумеваемых гарантий, устных или письменных, в отношении MetaMask Snaps, разработанных третьими сторонами, и отказывается от какой-либо ответственности за MetaMask Snaps, разработанные третьими сторонами. Использование программного обеспечения, связанного с блокчейном, сопряжено с рисками, которые вы принимаете в полной мере при использовании MetaMask Snaps.
Переведено ИИ. Может содержать ошибки. Пожалуйста, всегда проверяйте информацию.