MSTR Cat

Блокчейн/Уровень IX · Скорость и зрелище/9.2 Честный рынок/Урок 1

Таксономия рыночных злоупотреблений

Шесть уровней атак и какие из них код действительно может устранить

МатериалыИнтерфейс блок-эксплорераВерифицированный исходный код контракта одного токенаБлокнот для составления карты векторов атакЭксплорер блоков с возможностью просмотра исходного кода контрактов

Любопытство

  1. Зачем контракту токена админ-ключ, если он задуман как открытый (permissionless)?
  2. Как две одинаковые сделки могут пройти по разной цене в зависимости от того, кто отправит свою первым?
  3. Если код не может предотвратить социальную инженерию, какая часть рынка остается уязвимой?

Исследование

    Часть IТаксономия злоупотреблений на рынке

  1. Рыночные злоупотребления делятся на шесть отдельных уровней, и каждый эксплуатирует определённую структурную слабость. Уровень контракта связан с сохранёнными полномочиями, такими как минт или заморозка; уровень структуры рынка — с тонкими пулами и устройством кривых ценообразования; уровень порядка транзакций эксплуатирует очерёдность их исполнения; уровень фиктивной активности раздувает объём и число холдеров; социальный уровень манипулирует доверием, выдавая себя за других; уровень кошелька опустошает активы с помощью фишинга. Каждому уровню противостоит один из четырёх защитников (код, дизайн рынка, криптография или люди), и этот уровень курса показывает, что инструменты для каждого из них уже существуют. Материал рассчитан как на разработчиков, так и на пользователей.
  2. Уровень контракта — то место, где часто начинается кража. Если разработчик сохраняет право минта, он может выпускать новые токены по своему желанию и продавать их в ущерб текущим холдерам. Функции заморозки позволяют ему блокировать продажу с определённых кошельков, фактически запирая капитал. Обновляемые прокси позволяют разработчикам заменить базовый код после запуска. Это не баги, а функции, создающие поверхность атаки. Удаление этих ключей устраняет угрозу, но вместе с тем лишает возможности исправлять критические ошибки или реагировать на чрезвычайные ситуации.
  3. Атаки на порядок транзакций доступны тому, кто видит ожидающие транзакции до того, как определён их порядок. Фронтраннинг происходит, когда трейдер видит ожидающий ордер и отправляет собственную транзакцию с более высокой комиссией, чтобы она исполнилась первой. Сэндвич-атака — это покупка непосредственно перед крупным свопом жертвы и продажа сразу после него с прибылью на ценовом влиянии (price impact), которое вызвал этот своп. Эти потери ложатся на обычных трейдеров, получающих худшие цены исполнения. Лимиты проскальзывания ограничивают возможные убытки, но не предотвращают саму атаку.
  4. Атаки при запуске эксплуатируют скорость ценообразования по принципу «кто первый». Снайперы покупают токены в самом первом блоке запуска, часто используя бандлы, чтобы объединить несколько транзакций для атомарного включения. Сибил-кошельки позволяют одному участнику контролировать множество адресов, маскируя концентрацию и фармя награды, начисляемые на каждый кошелёк. Эти атаки опираются на дешевизну создания адресов и на структуры вознаграждений, которые не линейны относительно объёма владения. Для их выявления обычно приходится постфактум анализировать графы финансирования кошельков.
  5. Фиктивная активность раздувает метрики, которые привлекают внимание. Вош-трейдинг (wash trading) — это покупка и продажа токенов между собственными кошельками ради создания искусственного объёма. Объёмные боты прогоняют сделки, чтобы подняться в трендовых списках, а рассылка пыли (dust spraying) создаёт фиктивное число холдеров. Когда каждая сделка облагается комиссией, вош-трейдинг становится дорогим, но когда трендовые алгоритмы придают вес уникальным кошелькам, выгодными становятся сибил-атаки. Эти искажения вводят инвесторов в заблуждение относительно реального интереса рынка.
  6. Социальный уровень эксплуатирует человеческое доверие, а не код. Нераскрытая платная реклама, выдача себя за официальные аккаунты и скоординированные схемы «памп-энд-дамп» не требуют никаких технических уязвимостей. Фишинговые сайты и вредоносные апрувы опустошают кошельки пользователей напрямую. Код может сделать эти атаки видимыми благодаря проверке ончейн-истории, но не может их предотвратить. Эти угрозы живут в поведении людей, а не в логике контрактов.
  7. Часть IIЧто код может исправить, а что — нет

  8. Логика контракта определяет, что возможно. Если в коде сохраняется функция минта, доступная только администратору, этот ключ остаётся постоянной поверхностью атаки. Полное удаление права минта устраняет риск неконтролируемой инфляции. Аналогично удаление переменных налога на продажу или функций заморозки исключает ханипоты и злоупотребления чёрными списками. Это бинарный выбор: полномочие либо существует, либо нет.
  9. Структура рынка определяет порядок исполнения. При последовательной обработке первая покупка в блоке получает лучшую цену. Механизмы пакетного клиринга группируют транзакции в пределах временного окна и исполняют их все по единой цене клиринга. Это нейтрализует фронтраннинг и сэндвичи внутри пакета, потому что каждый ордер получает одну и ту же цену: быть первым или обернуть чужой ордер ничего не даёт.
  10. Некоторые риски можно ограничить, но не устранить. Создатель, держащий сорок процентов предложения, может слить их, обрушив цену для ранних покупателей. Код может заблокировать предложение создателя или распределить его по графику вестинга, но не может запретить холдеру с разблокированными токенами продавать. Это рыночный риск, отличный от кражи. Покупка в более раннем блоке тоже по-прежнему может быть выгодной. Разработчикам приходится признать, что волатильность из-за крупных холдеров — неотъемлемое свойство открытых (permissionless) рынков, а не баг, который можно исправить патчем.
  11. Социальная инженерия живёт вне кодовой базы. Фишинговые ссылки, поддельные аккаунты и платная реклама эксплуатируют человеческое доверие, а не вычислительные уязвимости. Ни один смарт-контракт не может проверить, раскрыл ли инфлюенсер свою долю, прежде чем дать колл по токену. Эти атаки сохраняются независимо от технической защищённости, потому что действуют на уровне внимания и убеждений, а не переходов состояния.
  12. Честный проектный документ перечисляет, какие классы атак устраняются кодом, какие нейтрализуются рыночными механизмами, а какие остаются неустранимыми, поскольку сводятся к человеческому поведению. В нём прямо сказано: злоупотребление минтом невозможно; сэндвич-атаки смягчаются пакетной обработкой; защита от фишинга остаётся личной ответственностью пользователя. Такая прозрачность позволяет пользователям точно оценивать свой риск, а не исходить из полной безопасности.
  13. Откройте в блок-эксплорере EVM-токен с верифицированным исходным кодом и поищите функции вроде `mint`, `pause` или `owner`; в Solana вместо этого проверьте права минта и заморозки, а также право на обновление программы. Выясните, может ли эти функции вызвать кто угодно или они ограничены конкретным адресом. Если таких функций нет и контракт не обновляемый, эти векторы атак отсутствуют структурно, а не просто отключены.

Ключевые факты

  • Злоупотребления на уровне контракта включают сохраняемые разработчиками права на минт и заморозку, а также обновляемые прокси.
  • Сэндвич-атаки извлекают прибыль из ценового влияния, вызванного крупным свопом жертвы в пределах блока.
  • Сибил-кошельки позволяют одному участнику контролировать несколько адресов, чтобы фармить награды, начисляемые на каждый кошелёк.
  • Вош-трейдинг раздувает показатели объёма — часто за счёт сделок между кошельками, которые контролирует одно и то же лицо.
  • Атаки на социальном уровне, такие как фишинг, эксплуатируют доверие пользователей, и одним лишь кодом контракта их не предотвратить.
  • Удаление админ-ключей устраняет конкретные векторы атак, но лишает и возможности экстренного обслуживания.
  • Удаление права минта из кода контракта исключает неконтролируемую инфляцию как вектор атаки.
  • Пакетный клиринг даёт всем ордерам в пакете одну цену, устраняя преимущество того, кто оказался в нём первым.
  • Функции налога на продажу и заморозки позволяют создавать ханипоты; их отсутствие закрывает эти пути, хотя того же можно добиться чёрными списками, лимитами на переводы и скрытой логикой.
  • Распродажи со стороны создателя — это рыночный риск, а не кража, и предотвратить их кодом без ограничения прав холдеров невозможно.
  • Фишинг и выдача себя за других эксплуатируют доверие людей, и устранить их на уровне дизайна протокола невозможно.
  • Честные проектные документы явно относят риски к устранённым, нейтрализованным или неустранимым.

Упражнение девять, шесть, три, один

9СобратьПеречислите 9 различных видов рыночных злоупотреблений. Укажите, к какому уровню (контракт, структура рынка, порядок транзакций, активность, социальный уровень, кошелёк) относится каждый из них.
6СгруппироватьСгруппируйте 9 видов злоупотреблений в 6 групп по тому, какой тип защиты мог бы остановить каждый из них.
3Выделить главноеСведите 6 групп к 3 фундаментальным причинам, по которым эти атаки сохраняются, несмотря на технологические меры защиты.
1КристаллизоватьНапишите одно предложение о том, может ли какой-либо открытый (permissionless) рынок быть свободен от поверхностей атаки, и почему.

Проверка фактов

Даты, цифры и утверждения были проверены по приведенным ниже опубликованным источникам.

Открыть в интерактивной академии →

EN PT ES ZH JA KO DE FR MS