Разработчики Ethereum обсуждают, как спрятать содержимое транзакций до того, как их поставят в блок. Цель — лишить ботов возможности видеть чужую сделку заранее и вставлять свои операции до и после неё. Обсуждение назначено на 19 августа, готового решения нет ни у кого.

Коротко: что предлагают

Основное предложение носит номер EIP-8184 и название LUCID. Смысл в модели «сначала обязательство, потом раскрытие»: сборщик блока обязуется включить запечатанную транзакцию, ещё не зная, что она делает, и только после фиксации порядка содержимое расшифровывается.

Есть и альтернатива — EIP-8105, где вместо криптографической схемы предлагается граф доверия между зарегистрированными поставщиками услуг, а принуждение вынесено за пределы правил консенсуса.

За продвижение выступает коалиция «Зашифруй мемпул» во главе с Shutter Network, к которой присоединились Fairblock и Nillion.

Как устроен механизм LUCID

Элемент Как работает
Порядок действий Обязательство включить, затем расшифровка
Что видит сборщик до включения Только запечатанный груз и оплаченный талон
Доля зашифрованной части блока Не более одной восьмой лимита газа
Резервный сбор Возвращается при успешной расшифровке, теряется при провале
Способ шифрования Не фиксируется, схема допускает разные
Целевое обновление Обсуждается, увязано с механизмом принудительного включения

Зачем это нужно

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

Нынешнее лекарство хуже болезни с точки зрения децентрализации: чтобы не показывать сделку публично, пользователи отправляют её через закрытые каналы к отдельным сборщикам блоков. Защита работает, но поток заявок концентрируется у нескольких игроков — а это ровно то, чего сеть старается избежать.

Шифрование мемпула должно вернуть транзакции в общий публичный канал, сохранив приватность до момента включения.

Что мешает внедрению

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

Главное признание содержится в самом документе: сегодня не существует криптографической конструкции, которая удовлетворяла бы всему набору требований на масштабе Ethereum. То есть предлагается не готовая схема, а рамка, куда её потом можно вставить.

Вторая проблема — ответственность. Если ключ для расшифровки не появился вовремя, система не может отличить злой умысел от сбоя программы, задержки в сети или пропущенного срока. А сейчас в конструкции наказывается отправитель транзакции, а не тот, кто должен был опубликовать ключ.

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

Когда это может заработать

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

Открытыми остаются и практические вопросы: сложность реализации в клиентах, риски на уровне сетевого обмена, время распространения запечатанных грузов и согласование между сборщиками, кошельками и валидаторами. Ближайшее по времени обновление Ethereum, к слову, уже грозит сломать часть кошельков — и это изменение куда проще обсуждаемого.

Частые вопросы

Что такое зашифрованный мемпул?

Схема, при которой содержимое ожидающей транзакции скрыто, пока её не поставят в блок. Расшифровка происходит после фиксации порядка.

От чего это защищает?

От сделок ботов, которые видят чужую операцию заранее и обрамляют её своими, снимая разницу в цене.

Какие предложения обсуждаются?

EIP-8184 под названием LUCID с моделью «обязательство до раскрытия» и альтернативный EIP-8105 с графом доверенных поставщиков.

Почему нельзя внедрить это сейчас?

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

Кто продвигает идею?

Коалиция «Зашифруй мемпул» во главе с Shutter Network, среди участников — Fairblock и Nillion.

Когда ожидать внедрения?

Дата не назначена. Развёртывание нужно согласовать с механизмом принудительного включения транзакций, который сам ещё не готов.

Источники

Материал подготовлен на основе публикаций CryptoSlate и EtherWorld.