16 февраля 2023

MetaMask для продвинутых. Часть II. Погружаемся дальше

Итак, в первой части рассмотрели многие вопросы: hub.forklog.com/metamask-dlya-prodvinutyh-chast-i-brauzernoe-rasshirenie — многие, но далеко не все. 

Попробуем сегодня восполнить ряд пробелов. 

MetaMask и обновления

Речь не пойдёт про то, что обновлять нужно из официального “стора”, потому как, если не дошли до этого момента (что вполне возможно), то вам сюда и сюда, но о том, что произошло после последней публикации о данном некастодиальном кошельке. 

Во-первых, MetaMask добавил возможность указания трат для конкретного приложения (dApp) и конкретного вызова, что сильно усложняет задачу тем атакам, которые направлены на совмещение фишинга с выдачей апрувов. Сейчас поле выглядит так:

MetaMask & Menaskop. 01Не знаю, почему сразу команда ММ не внедрила этот функционал, но хорошо, что сейчас он появился. (Попробовать можно всё новое через экспериментальные функции: например “Improved token allowance experience. Turn this on to go through the improved token allowance experience whenever a dapp requests an ERC20 approve”). 

Во-вторых, внедрена функция (совместно с HAPI) по проверке смарт-контрактов: своеобразный антифишинг контроль. Обещают также добавить возможность жалоб на конкретные адреса (правда, как будут бороться с обратным процессом, когда вполне себе добротные смарты спамят вымогатели, — не ясно). И вот здесь для меня возникает большая развилка: понятно, что пользователям хочется “проще, быстрее и лучше”, но какое отношение это имеет к Web 3.0? То, что мы добавляем централизованных посредников — точно: никакого. 

Как по мне — лучше бы такие вопросы отдать в нормальное DAO-тестировщиков: протестировали, проголосовали и дали рекомендации в виде белых списков, а для продвинутых пользователей — оставить всё как есть. Иначе опять те же грабли — вид сбоку только.

Точка ноль 

В прошлый раз рассказал про работу с нулевыми балансами и получил отзыв, что “не так это и важно”. Наверное, если у вас 5-10 токенов, то не важно. Если же их 5-10 десятков, а то и сотен — то всё не так просто: нечто вы уже переслали на холод, нечто — перестало торговаться и обновляться, нечто — в целом торгуется около нуля, потому что такова судьба. Вариантов множество. 

В любом случае — есть три важных аспекта:

  1. Всегда должен быть “чистый” аккаунт, где кроме нативной монеты не указано ничего, исключая токены, которые сейчас в работе: это сильно упрощает жизнь и в тестнетах, и новых майннетах; 
  2. Этот же подход ещё на шаг отдаляет от фишинговых атак, о которых напомню ниже; 
  3. Наконец, с помощью этой простой функции — крайне просто дифференцировать разные аккаунты в одной учётной записи MetaMask. 

Что значит одной? Когда авторизуетесь в Google Хроме, например, то можете выбрать один из аккаунтов:

Menaskop & Metamask 02И поэтому, совместив три практики:

  1. Отдельная учётная запись в браузере;
  2. Отдельная учётная запись (а значит — и первичный пароль доступа) — в MetaMask;
  3. Отдельная связка с Trezor/Ledger (о нём скоро расскажу). 

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

Во тьме кроличьей норы

Упоминал о том, что без VPN жизнь с MM нынче плоха. Но на самом деле в мире bigdata & AI нужно помнить, что способов идентификации куда больше, чем просто VPN:

  1. Это могут быть метаданные самой разной величины: поступите парадоксальным образом и сходите на https://yandex.ru/internet/, чтобы спуститься в техническую информацию и осознать, сколько именно всего передаёт браузер. Поэтому, когда работаете с TOR-браузером — не нужно менять окно, открывая его полностью; не нужно менять языковые настройки и т.д., но это же касается и вашего холода: работать с ним, если он связан с MM, лучше с максимальной анонимизацией всего и вся;
  2. Если у вас есть мобильная версия и браузерная, то синхронизация их неизбежна (на стороне как провайдеров, так и самого дапса), поэтому сей факт стоит учесть в практике и лучше бы ММ ввели стратегию, которую использует Apple (раз уж всё равно речь про центрального персонажа этой пьесы): авторизовать аккаунт дополнительно при синхронизации нового устройства. Это влияет на кастоидальность? Ещё как, но что-то мне подсказывает, что ММ это уже заботит меньше всего; 
  3. Собственно, ранее было так: если перейти в расширенные настройки (“Advanced”) и далее в подпункт “Sync with mobile”, то можно как раз провести синхронизацию мобильного устройства: теперь же функция не доступна. И в этом смысле ММ явно мечется между true-историей некастодиальности и санкционными списками; 
  4. Отдельная фича стоит в тех же расширенных настройках в подпункте “Show hex data”: зачем это нужно? В первую очередь для тестов и баг-репортов, но ещё интересней поработать с транзакциями, которые ещё не отправлены в блокчейн (опять же — попробую поведать об этом в crossing-механиках, но не сегодня), а ещё можно много всего сделать — главное: уметь. На мой взгляд эта функция наиболее близка к браузерной консоли, вызываемой F12, где можно напрямую поработать с исходным кодом страницы и посмотреть на поведение: просто не стоит забывать, что действия в блокчейне стоят денег и тесты делать лучше в Goreli и собратьях. 

MetaMask & Menaskop 03

Цены — не то, чем кажутся

Крайне важной, хотя и мало изучаемой стороной, работы ММ являются… цены на токены. С одной стороны — ММ прямо говорит, на что ссылается: “мы используем API CoinGecko и CryptoCompare для отображения вашего баланса и цены токена”; с другой стороны — CoinGecko по токенам/коинам ниже ТОП-100/200 даёт крайне скудную и не всегда точную информацию, а потому лучше перепроверять данные: 

  • Способ первый — тривиальный: через другие кошельки, включая те, что пишутся с приставкой смарт:
  • Способ второй — через другие агрегаторы:
  • Способ третий — наиболее верный:
    • Искать торгуемые пары и смотреть напрямую на DEXs (AMMs)
    • Смотреть сделки (объём — в первую очередь) на ОТС
  • Способ четвёртый: 
    • Разного рода портфолио сайты, но
    • Так как они в большинстве своём стали смарт-кошельками — этот способ во многом похож с первым. 

И всё же цены всегда лучше проверять в 2-3 источниках:

  1. Так вы обезопасите себя от фишинга; 
  2. Привьёте привычку идти от смарт-контракта, а не посредника; 
  3. Научитесь анализировать проекты (методика вам в помощь: подкаст по ней “1+1=3” выходит каждую неделю на Forklog). 

NFT — ахиллесова пята MM

Тут писать особо нечего: на данный момент и по моему личному мнению ММ — худший кошелёк для NFT, тем более с приставками Smart, Wrap, Financial, Programmable, etc.

Да, есть вот такая фича, но что она даёт на практике? 

MetaMask & Menaskop 04Фактически ничего:

  1. Большинство NFT не отображается или отображается без метаданных; 
  2. Добавить токен, особенно ERC-1155, не всегда возможно: особенно — если не ты — не единоначальный владелец копий; 
  3. Работа с IPFS-данными тоже зависит от третей стороны и отрабатывается потому не всегда корректно. 

Как по мне в этом у ММ точно проблемы и делать продвинутым пользователям с ним особо нечего. Впрочем, справедливости ради отмечу, что есть теперь отдельный поддомен: https://portfolio.metamask.io/?tab=nfts, где можно как раз поработать с NFT, но и он пока далёк от идеала. 

Чего бы хотелось мне ещё? 

Много всего, но перечислю ТОП-10 личных пожеланий:

  1. Удалять IP и метаданные, собранные за период: пусть они хранятся, скажем, 6 месяцев, а потом — канут в Лету навсегда (хотя лучше и честнее — не хранить вообще); 
  2. Работать с NFT любого формата и с разными вариациями метаданных: всё же хайп невзаимозаменяемых токенов 2017 и 2021 — это не просто ажиотаж вокруг картинок, но и технологий; 
  3. Конечно же, хотелось бы работать с выданными апрувами, а не просто сайтами и работать как можно детальней; 
  4. Весьма интересно было бы понимать, что скрывается за фразой: “Participate in MetaMetrics to help us make MetaMask better” — не искать это через тесты, записи в документах и прочее, а именно видеть в виде чек-листа: это ведь связано и с п. 1, и п. 2, и п. 3 — и много чем ещё; 
  5. Почему бы не сделать верифицируемые источники сетей навроде https://chainlist.org/ и подобных? Ведь сейчас добавление сети — целый квест: особенно — если речь идёт о новых проектах; 
  6. Прекрасно, что внедрили обучающие уроки: https://learn.metamask.io/ru-RU, которые есть и на русском, и на английском, и на украинском, и на других языках, но хотелось бы такой же функционал и по продвинутым функциям; 
  7. EVM-сети — это прекрасно: их много и они связывают другие миры — EvmOs в Cosmos, Moonbeam в Polkadot, Avrora в Near и т.д. И всё же надеюсь, что будет какая-то версия для работы и с НЕ EVM-сетями, потому как использовать Phantom, Polkadot.js, TronLink и другие, которые, к тому же, начинают конфликтовать с ММ, весьма не просто и с каждым годом это не просто становится совсем не простым; 
  8. … 

Да, о многоточии будет ещё одна часть: например — об этом. А пока — итоги.

Выводы ко второй части

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

С другой стороны — ММ за последний месяц-полтора продвинулся и довольно далеко: это радует. Это усиливает положительную конкуренцию на рынке и именно в стане не кастодиальных кошельков жду наращивание различных видов “вооружений”, так борьба за пользователя — дело не шуточное. К тому же ММ стал стандартом априори для многих и многих dApps. 

Наконец, с третьей стороны — мне есть, что ещё добавить, а значит? Да, верно, будет и третья часть, а пока всё и 

До!

Обсудить в Discord!

Menaskop
  • Зарегистрирован: 22 мая 2012 г.
  • Локация:London/United Kingdom
  • Сайт:penroseisparty.com