Мгновенная заморозка молниеносных торговцев: сквозное шифрование для борьбы с вредоносным MEV

Атаки злонамеренного MEV представляют собой серьезную угрозу для трейдеров в Ethereum. Наши последние исследования показывают, что ежедневно происходит почти 2000 атак типа «сэндвич», и ежемесячно из сети извлекается более 2 миллионов долларов. Даже трейдеры, совершающие крупные сделки с WETH, WBTC или стейблкоинами, остаются в зоне риска и могут потерять значительную часть своих сделок.

MEV процветает из-за прозрачности блокчейнов, где данные транзакций видны до их выполнения и подтверждения. Один из путей смягчения MEV — это шифрование мемпула, особенно с использованием порогового шифрования. В наших предыдущих статьях мы рассматривали две разные модели для мемпулов с пороговым шифрованием. Shutter, один из первых проектов, применивших пороговое шифрование для защиты мемпула, представил настройку для каждой эпохи. Пакетное пороговое шифрование (BTE), более новая модель, расшифровывает несколько транзакций с помощью одного ключа для снижения затрат на связь и повышения пропускной способности.

В этой статье мы анализируем Flash Freezing Flash Boys (F3B) от H. Zhang и др. (2022), недавно предложенную конструкцию порогового шифрования, которая применяет шифрование на основе каждой транзакции. Мы изучаем ее механизмы, объясняем ее масштабируемость с точки зрения задержки и памяти и обсуждаем причины, по которым она еще не была внедрена на практике.

Как Flash Freezing Flash Boys реализует шифрование каждой транзакции

Flash Freezing Flash Boys решает ограничения ранних систем порогового шифрования, которые полагались на настройку для каждой эпохи. Такие проекты, как FairBlock и ранние версии Shutter, использовали один ключ для шифрования каждой транзакции в выбранной эпохе. Эпоха — это фиксированное количество блоков, например, 32 блока в Ethereum. Это создало уязвимость, когда некоторые транзакции, которые не были включены в указанный блок, все равно расшифровывались вместе с остальной партией. Это подвергало конфиденциальные данные риску и открывало возможности для MEV-атак валидаторам, что делало их уязвимыми для опережающих действий.

F3B применяет пороговое шифрование на основе каждой транзакции, что обеспечивает конфиденциальность каждой транзакции до ее финализации. Общий поток протокола F3B показан на рисунке ниже. Пользователь шифрует транзакцию ключом, к которому имеет доступ только назначенный пороговый комитет, известный как Комитет управления секретами (SMC). Зашифрованная транзакция и зашифрованный ключ отправляются в группу консенсуса в виде пары (Шаг 1). Таким образом, узлы могут хранить и упорядочивать транзакции, сохраняя при этом все необходимые метаданные для оперативного восстановления и выполнения после финализации. Между тем, SMC подготавливает свои доли расшифровки, но удерживает их до тех пор, пока консенсус не подтвердит транзакцию (Шаг 2). После того, как транзакция финализируется, и SMC выпускает достаточное количество действительных долей (Шаг 3), группа консенсуса расшифровывает транзакцию и выполняет ее (Шаг 4).

Шифрование каждой транзакции долгое время оставалось непрактичным из-за высокой вычислительной нагрузки для шифрования и расшифровки, а также требований к хранилищу для больших зашифрованных полезных данных. F3B решает эту проблему, порогово шифруя только легковесный симметричный ключ, а не всю транзакцию. Сама транзакция шифруется с помощью этого симметричного ключа. Такой подход может уменьшить объем данных, которые необходимо асимметрично шифровать, примерно в 10 раз для простой своп-транзакции.

Сравнение различных криптографических реализаций F3B и их задержки

Flash Freezing Flash Boys можно реализовать с помощью одного из двух криптографических протоколов: TDH2 или PVSS. Разница заключается в том, кто несет нагрузку по настройке и как часто фиксируется структура комитета, с соответствующими преимуществами и недостатками в плане гибкости, задержки и накладных расходов на хранение.

TDH2 (Threshold Diffie-Hellman 2) полагается на комитет, который выполняет процесс распределенного генерирования ключей (DKG) для получения индивидуальных долей ключей вместе с коллективным открытым ключом. Затем пользователь создает новый симметричный ключ, шифрует свою транзакцию с помощью него и шифрует этот симметричный ключ к открытому ключу комитета. Группа консенсуса записывает эту зашифрованную пару в цепочку. После того, как цепочка достигает требуемого количества подтверждений, члены комитета публикуют частичные расшифровки зашифрованного симметричного ключа вместе с NIZK (Non-Interactive Zero-Knowledge) доказательствами, которые необходимы для предотвращения атак с выбором открытого текста, когда злоумышленники отправляют неправильно сформированные зашифрованные тексты, чтобы обмануть доверенных лиц и получить информацию во время расшифровки. NIZK гарантирует, что зашифрованный текст пользователя правильно сформирован и расшифровываем, а также что доверенные лица предоставили правильные доли расшифровки. Консенсус проверяет доказательства и, как только доступно пороговое значение действительных долей, реконструирует и расшифровывает симметричный ключ, расшифровывает транзакцию, а затем выполняет ее.

Вторая схема, PVSS (Publicly Verifiable Secret Sharing), следует другим путем. Вместо того, чтобы комитет выполнял DKG в каждой эпохе, у каждого члена комитета есть долгосрочный закрытый ключ и соответствующий открытый ключ, который хранится в блокчейне и доступен любому пользователю. Для каждой транзакции пользователи выбирают случайный полином и используют секретное разделение Шамира для создания секретных долей, которые затем шифруются для каждого выбранного доверенного лица с использованием соответствующего открытого ключа. Симметричный ключ получается путем хеширования реконструированного секрета. Зашифрованные доли сопровождаются NIZK-доказательством, которое позволяет любому проверить, что все доли были получены из одного и того же секрета, вместе с публичным обязательством полинома, записью, которая связывает отношение доля-секрет. Последующие шаги включения транзакции, выпуска долей после финализации, реконструкция ключа, расшифровка и выполнение аналогичны тем, что в схеме TDH2.

Протокол TDH2 более эффективен благодаря фиксированному комитету и постоянному размеру данных порогового шифрования. PVSS, напротив, дает пользователям больше гибкости, поскольку они могут выбирать членов комитета, ответственных за свою транзакцию. Однако это достигается ценой более крупных зашифрованных текстов открытых ключей и более высоких вычислительных затрат из-за шифрования для каждого доверенного лица. В целом, прототип реализации F3B на смоделированной proof-of-stake Ethereum показал, что он имеет минимальные накладные расходы на производительность. С комитетом из 128 доверенных лиц задержка после финализации составляет всего 197 мс для TDH2 и 205 мс для PVSS, что эквивалентно 0,026% и 0,027% от времени финализации Ethereum в 768 секунд. Накладные расходы на хранение составляют всего 80 байт на транзакцию для TDH2, в то время как накладные расходы PVSS растут линейно с количеством доверенных лиц из-за долей, доказательств и обязательств для каждого участника. Эти результаты подтверждают, что F3B может обеспечить свою конфиденциальность с незначительным влиянием на производительность и пропускную способность Ethereum.

Стимулы и наказания в протоколе Flash Freezing Flash Boys

F3B стимулирует честное поведение членов Комитета управления секретами (SMC) через механизм стейкинга с заблокированным залогом. Платы мотивируют доверенных лиц оставаться в сети и поддерживать требуемый уровень производительности протокола. Контракт slash гарантирует, что если кто-либо представит доказательство нарушения, которое демонстрирует, что расшифровка была выполнена преждевременно, ставка нарушителя будет аннулирована. В TDH2 такое доказательство состоит из доли расшифровки доверенного лица, которое можно публично проверить на соответствие зашифрованному тексту транзакции. Между тем, в PVSS доказательства состоят из расшифрованной доли вместе с NIZK-доказательством, специфичным для доверенного лица, который его аутентифицирует. Этот механизм наказывает доказуемое преждевременное раскрытие долей расшифровки, увеличивая стоимость обнаружимого неправомерного поведения. Однако он не предотвращает сговор доверенных лиц в автономном режиме для реконструкции и расшифровки данных транзакции без публикации каких-либо долей. В результате протокол по-прежнему опирается на предположение, что большинство членов комитета ведут себя честно.

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

Проблемы развертывания F3B в Ethereum

Flash Freezing Flash Boys предлагает комплексный криптографический подход к смягчению MEV, но маловероятно, что он будет внедрен в реальных условиях в Ethereum из-за сложности интеграции. Хотя F3B не затрагивает механизм консенсуса и сохраняет полную совместимость с существующими смарт-контрактами, он требует модификаций уровня выполнения для поддержки зашифрованных транзакций и отложенного выполнения. Это потребовало бы гораздо более масштабного хардфорка, чем любое другое обновление, представленное после The Merge.

Тем не менее, F3B представляет собой ценный исследовательский этап, который выходит за рамки Ethereum. Его механизм доверия к обмену личными данными о транзакциях может быть применен как к новым блокчейн-сетям, так и к децентрализованным приложениям, требующим отложенного выполнения. Протоколы в стиле F3B могут быть полезны даже в блокчейнах с субсекундным временем, где более короткое время блока уже значительно снижает MEV, для полного устранения опережающих действий на основе мемпула. В качестве примера применения F3B также можно использовать в смарт-контракте с закрытыми аукционами, где участники отправляют зашифрованные ставки, которые остаются скрытыми до окончания периода ставок. Таким образом, ставки могут быть раскрыты и выполнены только после истечения срока аукциона, что предотвращает манипулирование ставками, опережающие действия или утечку информации.