MEV (6): Более справедливая экосистема MEV (середина)

Продвинутый1/13/2024, 9:28:31 AM
Эта статья обсуждает, как использовать методы шифрования для предотвращения использования информации о транзакциях MEV.

Советы по чтению

· Перед прочтением этой статьи вам необходимо иметь базовое понимание MEV

· Будьте знакомы с транзакциями Ethereum и понимайте, что содержит транзакция и как она в конечном итоге включается в блок

· Знать дерево Меркля и роль доказательства нулевого знания

· нажмите, чтобы прочитать: MEV (5): Более справедливая экосистема MEV (Часть 1)

Предыдущая статья представила (1) дизайн Flashbot SGX Builder, который повышает справедливость строителя блоков с помощью доверенного оборудования, и (2) дизайн Chainlink FSS, который предотвращает MEV, децентрализуя роли упорядочения транзакций.

Эта статья будет обсуждать (3) дизайн Зашифрованных Mempools, который направлен на снижение или устранение MEV путем обеспечения конфиденциальности для транзакций с использованием криптографических методов.

Зашифрованные мемпулы

Два цели: защита MEV и устойчивость к цензуре

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

Зашифрованные память пулы используют криптографию для (1) шифрования содержимого транзакции пользователя для защиты их конфиденциальности, и (2) проверки действительности транзакции в зашифрованном виде, предотвращая атакующих от генерации большого количества недействительных, но зашифрованных транзакций. Это предотвращает их запуск DoS-атаки на цепочку, поскольку Предложитель будет тратить место блока, включая множество недействительных транзакций, которые обнаруживаются только в последний момент.

Совет по чтению: Простое шифрование не может полностью гарантировать устойчивость к цензуре, потому что Заявитель, который хочет цензурировать, все равно может отказаться принимать любые зашифрованные транзакции, поэтому шифрование только увеличивает стоимость цензуры (Заявитель отказывается от комиссий за все зашифрованные транзакции). Для достижения лучшей защиты от цензуры необходимо использовать такой список включений, как PBS.

Гарантировать возможность расшифровки транзакций (Гарантированная расшифровка)

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

Существует несколько способов гарантировать возможность расшифровки транзакций:

  1. Чистое доверие (в полете)

  2. Доверенное аппаратное обеспечение, Окружение

  3. Пороговое шифрование/дешифрование

  4. Задержка шифрования/дешифрования

  5. Шифрование/Дешифрование свидетеля

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

Image source:https://www.youtube.com/watch?v=XRM0CpGY3sw

Фиксация-раскрытие

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

Совет по чтению: Способ обязательства может быть похож на Обещающего в PBS, обещающего, что он будет включен в строительный блок по подписи. Это гарантированное обязательство. Если Обещающий нарушает обещание, его будут наказывать.

△ Предлагающий обещает получить обязательство транзакции Алисы

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

Требование пользователей прикреплять депозит и утрата депозита, когда у них не оказывается Раскрытия, может ухудшить уже плохой опыт использования Commit-reveal.

△ Алисе не нужно раскрывать свою транзакцию

1. Чистое доверие (В полете)

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

Совет по чтению: Эта централизованная роль могла бы быть, например, Строителем, Предлагающим или Оператором/Последователем Роллапа PBS.

2. Доверенное аппаратное обеспечение, ограда

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

3. Шифрование/Дешифрование по пороговому значению

Chainlink FSS также использует пороговое шифрование и дешифрование, но в Chainlink FSS менеджерами пороговых ключей являются Оракулы Chainlink, в то время как в зашифрованных Mempools менеджерами (называемыми Keypers) могут быть Валидаторы L1 или L2 (при условии, что L2 также имеет В случае децентрализованного Валидатора).

Пороговое шифрование/дешифрование имеет несколько недостатков:

  • Предположение о сильном честном большинстве: Должно быть предположено, что более половины Киперов честны. Если они недобросовестны, они могут расшифровать и видеть транзакции пользователей по своему усмотрению, просматривать транзакции или извлекать MEV из транзакций.
  • Отсутствие ответственности: Пока достаточное количество участников Keyper сотрудничают, они могут расшифровать информацию. Однако, когда участники Keyper замышляют, мы не имеем способа узнать, кто из них участвует в заговоре. Не имея возможности идентифицировать злонамеренных действующих лиц, невозможно создать механизм наказания для Keyper. Поэтому мы должны полагаться на предположение, что большинство участников Keyper честны.
  • Ослабленная живучесть: излишнее отключение Keyper приведет к недостаточному количеству онлайн-счетчиков Keyper, что препятствует дешифровке и производству блоков. Это приведет к тому, что цепь остановится. Это противоречит механизму Ethereum PoS, который подчеркивает, что цепь будет продолжать производить блоки даже в случае третьей мировой войны и в конечном итоге достигнет окончательности. Можно предположить, что вероятность использования дешифровки с порогом в Ethereum PoS не высока.

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

Эта статья предлагает дизайн и соображения для реализации в L1. Проекты, тестирующие этот дизайн, могут обратиться к Shutter Network. Дополнительную информацию можно найти здесь:https://ethresear.ch/t/shutterized-beacon-chain/12249

4. Задержка шифрования/дешифрования

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

Концепция задержки шифрования аналогична функции проверяемой задержки (VDF), обе из которых относятся к семье криптографии с отложенным выпуском.

VDF позволяет нам быстро проверить F(x): результат "трудоемкого последовательного вычисления". Это похоже на доказательство работы (PoW), но вычисление VDF является последовательным процессом, в отличие от PoW, который может быть ускорен через параллельные вычисления. Дешифратор VDF может выполнять только повторяющиеся вычисления шаг за шагом.

△ С помощью VDF вы можете проверить результат вычисления, которое заняло у меня 10 секунд, за, скажем, 0,01 секунды, и у меня не было способа параллелизировать мои вычисления. Источник изображения:https://techtelegraph.co.uk/проверяемые-функции-задержки-на-Bitcoin

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

В настоящее время Ethereum Foundation и Protocol Labs уже сотрудничают в области исследований по чипам VDF ASIC, надеясь вывести на рынок самое передовое вычислительное оборудование, чтобы никто не имел различных аппаратных преимуществ и не мог расшифровывать заранее. Дополнительную информацию можно получить здесь: https://filecoin.io/blog/posts/collaboration-with-the-ethereum-foundation-on-vdfs/

Совет по чтению: VDF также можно использовать для увеличения неуязвимости случайных чисел Ethereum.

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

5. Шифрование/дешифрование свидетеля

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

Совет по чтению: «Знание ключа для расшифровки шифротекста» или «знание результатов непрерывных вычислений» на самом деле является условием.

Через шифрование свидетелей мы можем не только достичь эффектов порогового шифрования и отложенного шифрования, но также можем объединить эти два метода дешифрования. Например, мы можем установить условия как «Условие 1: 'Группа ключодержателей согласна расшифровать данный шифр' или Условие 2: 'После пяти минут'»: Если все ключодержатели находятся в сети, мы быстро можем выполнить Условие 1 для расшифровки шифра. Однако, если ключодержателей недостаточно в сети, мы можем по крайней мере гарантировать, что мы сможем выполнить Условие 2 и расшифровать, доказав через VDF, что 'прошло пять минут'.

△ Достаточно Keypers может быть расшифровано онлайн (выше) или после достаточного времени (ниже)

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

△ Зрелость различных технологий шифрования и дешифрования. Свидетельство шифрования и дешифрования (Witness) еще недостаточно зрело. Источник изображения:https://docs.google.com/presentation/d/1eKt6nR15umuxcej8Nj-osiDm_4ZvG32FdfAqG2-1-cI/edit#slide=id.g1a0b1827f35_0_591

Манипулирование зашифрованным текстом и выполнение операций с ним с помощью гомоморфного шифрования

Предыдущие абзацы представили различные способы обеспечения возможности дешифровки транзакций, но когда транзакции могут быть расшифрованы? Ответ: после того, как транзакция включена в блок и определен порядок. Но как Строитель блоков собирает блок из кучи бессмыслицы или даже эффективно собирает высокодоходный блок? Ответ: Гомоморфное шифрование (HE).

△ Пример гомоморфного шифрования, используемого для голосования: содержание голосования было зашифровано, но шифртекст все равно можно сложить и расшифровать после подсчета результата. Источник изображения:https://twitter.com/khushii_w/status/1660278622291210242

Совет по чтению: Если шифрование и дешифрование выполняются через чистое доверие (во время передачи) или доверенное аппаратное обеспечение, то фактически не ждет, пока транзакция будет включена в блок и установлен порядок до расшифровки. В конце концов, каждый доверяет другой стороне, поэтому он будет расшифровывать и сортировать транзакцию сразу после ее получения. Это может ускорить формирование блоков и не требует дополнительных ресурсов для выполнения операций гомоморфного шифрования.

Через гомоморфное шифрование мы можем выполнять операции над шифротекстом без расшифровки транзакции. Мы можем применить процесс операции по упорядочиванию транзакций и формированию законного блока к этим зашифрованным транзакциям без расшифровки транзакции и получить зашифрованный блок транзакций. Когда блок расшифровывается, мы получим полный и законный блок, в котором транзакции расшифрованы и отсортированы в том же порядке, что и до шифрования.

△ С помощью гомоморфного шифрования Block Builder может собрать полный и легальный блок из зашифрованных транзакций

Совет по чтению: Существуют уровни гомоморфного шифрования, такие как частично гомоморфное шифрование (Частично ГШ) и полностью гомоморфное шифрование (Полностью ГШ). Частично гомоморфное шифрование может только сложить или умножить текст шифра, в то время как полностью гомоморфное шифрование может складывать и умножать текст шифра (в принципе, любая операция может быть выполнена).

△ Третья колонка: Зрелость различных технологий шифрования и дешифрования, поддерживающих FHE. За исключением in-flight и enclave, которые не требуют HE и поэтому считаются поддерживаемыми, другие пока недоступны. Источник изображения:https://docs.google.com/presentation/d/1eKt6nR15umuxcej8Nj-osiDm_4ZvG32FdfAqG2-1-cI/edit#slide=id.g1a0b1827f35_0_620

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

Однако сами данные о транзакции будут иметь соответствующие метаданные, такие как инициатор транзакции, комиссия за транзакцию или подпись, которые используются для проверки действительности транзакции. Кроме того, IP-адрес инициатора также является формой метаданных, а также размер данных транзакции. Все эти метаданные имеют потенциал для утечки пользовательской конфиденциальности, поэтому мы также должны защищать эти метаданные.

Гарантировать, что метаданные не утекают наружу

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

  1. IP-адрес

  2. Подпись транзакции

  3. Комиссии за транзакции

  4. Инициатор транзакции и его значение Nonce

  5. Размер транзакции

△ Различные метаданные транзакций могут утечь конфиденциальные данные пользователей. Источник изображения:https://docs.google.com/presentation/d/1eKt6nR15umuxcej8Nj-osiDm_4ZvG32FdfAqG2-1-cI/edit#slide=id.g1a0b1827f35_0_709

IP-адрес

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

Подпись транзакции, комиссия за обработку, инициатор транзакции и его значение Nonce

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

Когда узел получает зашифрованную транзакцию, он должен (1) сначала подтвердить, что инициатор транзакции действительно инициировал транзакцию, то есть проверить подпись транзакции, затем (2) подтвердить, что инициатор имеет достаточно ETH для оплаты транзакции (баланс пользователя ≥ цена газа * лимит газа), и (3) проверить значение счетчика nonce отправителя, чтобы избежать атак повтора транзакции.

Доказательство нулевого знания

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

△ Например, публичная информация (публичный ввод) представляет собой зашифрованную транзакцию (tx ciphertext), приватная информация (приватный свидетель) представляет собой незашифрованную транзакцию (tx ciphertext), и утверждение (zk statement), которое должно быть доказано этим доказательством нулевого разглашения, - "это "Зашифрованные транзакции допустимы" (tx ciphertext valid). Источник изображения:https://docs.google.com/presentation/d/1eKt6nR15umuxcej8Nj-osiDm_4ZvG32FdfAqG2-1-cI/edit#slide=id.g19ee04031ad_0_391

Например, если Алиса хочет доказать Бобу, что у нее больше 10 ETH, но не хочет раскрывать свой адрес, она может использовать доказательство с нулевым разглашением, чтобы доказать Бобу, что ее адрес действительно имеет баланс более 10 ETH.

«Докажите, что у Алисы есть баланс более 10 ETH» - это утверждение (утверждение zk), которое должно быть доказано этим доказательством в нулевом знании. Для генерации этого доказательства Алисе необходимо предоставить свой адрес и доказательство того, что у нее есть приватный ключ от этого адреса (например, используя приватный ключ генерируется подпись), а также ей необходимо предоставить баланс ETH этого адреса, например, использовать Доказательство Меркля для доказательства того, сколько ETH у этого адреса в 1001-м блоке.

Адрес, подпись и доказательство Меркля не могут быть разглашены и являются конфиденциальной информацией (приватный свидетель).

Когда это доказательство создано, Боб может проверить это доказательство с Мерклевским корнем (называемым Корнем Состояния) дерева состояния блока 1001. Любой знает Корень Состояния каждого блока, который является общедоступной информацией (публичный вход).

Единственная информация, которую знает Боб, — это общедоступная информация State Root и результаты проверки. Он не будет знать никакой личной информации Алисы.

△ Алиса предоставляет два частных ввода: доказательство Меркля и подпись; Боб предоставляет общедоступный ввод корня состояния. Утверждение zk может проверить, что у Алисы есть адрес и баланс адреса > 10 ETH

(1) Проверить подпись транзакции

Проверка подписи транзакции состоит из двух частей: (a) инициатор транзакции является законным и (b) подпись транзакции подписана инициатором транзакции.

(a) Главным образом для проверки того, что адрес Ethereum инициатора транзакции является законным адресом, а не случайным числом. Это будет доказано с помощью доказательства Меркля, что адрес существует в дереве состояний Ethereum.

(b) Проверяет, что подпись транзакции подписана частным ключом инициатора транзакции.

△ Это доказательство проверяет (a) адрес отправителя транзакции (через доказательство Merkle публичного ключа отправителя) и (b) подлинность подписи в транзакции (подпись будет включена в tx plaintext). tx plaintext - это необработанные незашифрованные данные транзакции, которые являются конфиденциальной информацией, предоставленной инициатором транзакции.

Источник изображения:https://docs.google.com/presentation/d/1eKt6nR15umuxcej8Nj-osiDm_4ZvG32FdfAqG2-1-cI/edit#slide=id.g1a0b1827f35_0_736

Совет по чтению: Красный текст на изображении выше относится к тому, что означает этот сертификат после прохождения верификации (то есть «подпись транзакции является законной»). Это не является частью zk-утверждения. Синяя часть содержит информацию, связанную с самой транзакцией, включая зашифрованные (публичные) данные транзакции и незашифрованные (частные) данные транзакции. Зеленая часть представляет собой дополнительные данные, необходимые для завершения доказательства, как публичные, так и частные.

△ Докажите, что адрес инициатора транзакции существует в дереве состояний Ethereum и что инициатор транзакции действительно имеет приватный ключ от места

(2) Подтвердите, что инициатор транзакции имеет достаточно ETH для оплаты комиссии за обработку

Как и в предыдущем примере с Алисой и Бобом, доказывающими, что баланс составляет > 10 ETH, инициатор транзакции должен предоставить доказательство Меркла о балансе своего собственного адреса, и утверждение, которое должно быть доказано, звучит как "баланс адреса ≥ комиссия за транзакцию". Комиссия за транзакцию равна цене газа, умноженной на лимит газа. Информация как о цене газа, так и о лимите газа включена в исходные незашифрованные данные транзакции (tx plaintext). Tx plaintext - это конфиденциальная информация, предоставленная инициатором транзакции.

△ Это доказательство подтверждает, что баланс адреса инициатора транзакции (через доказательство баланса отправителя Меркля) больше или равен комиссии за транзакцию (информация о комиссии за транзакцию включена в tx plaintext). Источник изображения:https://docs.google.com/presentation/d/1eKt6nR15umuxcej8Nj-osiDm_4ZvG32FdfAqG2-1-cI/edit#slide=id.g1a0b1827f35_0_743

△ Докажите баланс адреса инициатора транзакции > цена газа

(3) Проверьте значение Nonce инициатора транзакции

Поскольку Nonce также записан в состоянии Ethereum, Merkle Proof также используется для подтверждения текущего значения Nonce инициатора транзакции, а затем сравнивается с указанным значением Nonce в транзакции, чтобы подтвердить, что транзакция не была повторена.

△ Это доказательство сравнивает значение Nonce адреса инициатора транзакции (через доказательство Меркля Nonce) и значение Nonce, указанное в транзакции (значение Nonce, указанное в транзакции, включено в tx plaintext). Источник изображения:https://docs.google.com/presentation/d/1eKt6nR15umuxcej8Nj-osiDm_4ZvG32FdfAqG2-1-cI/edit#slide=id.g19ee04031ad_0_327

△ Докажите nonce адресата транзакции = tx nonce

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

Мы требуем, чтобы инициатор транзакции предоставил еще один тег повтора, чтобы гарантировать, что будет только одна транзакция с тем же значением Nonce. Тег повтора - это хэш-значение Nonce и закрытого ключа инициатора транзакции: тег повтора = H(nonce, закрытый ключ), поэтому различные значения Nonce одного и того же инициатора транзакции будут соответствовать уникальному тегу повтора.

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

△ Это доказательство вычислит тег повтора и сравнит его с тегом повтора, переданным общедоступным вводом. Значение Nonce транзакции содержится в tx plaintext, а закрытый ключ содержится в частном свидетельстве.

Источник фото:https://docs.google.com/presentation/d/1eKt6nR15umuxcej8Nj-osiDm_4ZvG32FdfAqG2-1-cI/edit#slide=id.g1a0b1827f35_0_750

△ Доказать nonce адреса инициатора транзакции = tx nonce и тег повтора = H(nonce, key)

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

На данный момент мы можем ввести значение слота PoS в расчет метки воспроизведения: метка воспроизведения = H(нонс, закрытый ключ, слот). Например, Боб отправил транзакцию с нонсом 5 в слоте 1001, но она еще не была получена, поэтому он решил удвоить цену газа транзакции, оставив остальные поля без изменений, и отправил обновленную транзакцию в слоте 1005. Из-за изменения слота метка воспроизведения отличается, и эта новая транзакция не будет отклонена, потому что значение нонса остается таким же.

△ Публичный ввод пройдет дополнительные значения слота для вычисления метки повтора. Источник изображения:https://docs.google.com/presentation/d/1eKt6nR15umuxcej8Nj-osiDm_4ZvG32FdfAqG2-1-cI/edit#slide=id.g1a0b1827f35_0_757

5. Размер транзакции

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

Интуитивный подход заключается в выполнении действия по дополнению данных транзакции перед их шифрованием, например, добавление группы нулей до тех пор, пока размер транзакции не станет степенью двойки, или даже дополнение данных до фиксированного размера. Это уменьшает вероятность того, что наблюдатель сможет идентифицировать транзакцию по ее размеру. Block Builder объединит дополненные транзакции в блок.

△ Белый - это отступ. Синие и оранжевые квадраты одинакового размера, поэтому их нельзя отличить по размеру. Источник изображения:https://docs.google.com/presentation/d/1eKt6nR15umuxcej8Nj-osiDm_4ZvG32FdfAqG2-1-cI/edit#slide=id.g1a0b1827f35_0_860

Однако недостатки этого подхода заключаются в том, что (1) он неэффективен, потому что много места в блоке будет зря потрачено на дополнение, и (2) он может не обеспечить достаточной защиты конфиденциальности. Например, размер красной транзакции на изображении выше (четыре квадрата) может быть редким, поэтому его все равно можно определить. Если все транзакции дополняются до фиксированного размера (например, 64 блока), конфиденциальность будет улучшена, но это приведет к относительному избытку места в блоке.

△ Недостатком является неэффективность и ограниченная защита конфиденциальности. Источник изображения:https://docs.google.com/presentation/d/1eKt6nR15umuxcej8Nj-osiDm_4ZvG32FdfAqG2-1-cI/edit#slide=id.g1a0b1827f35_0_812

Лучшим подходом является сначала заполнение транзакций до фиксированного размера, но для удаления отступов можно использовать гомоморфное шифрование.

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

△ Используйте гомоморфное шифрование для удаления дополнения при объединении зашифрованных транзакций. Источник изображения:https://docs.google.com/presentation/d/1eKt6nR15umuxcej8Nj-osiDm_4ZvG32FdfAqG2-1-cI/edit#slide=id.g1a0b1827f35_0_908

Совет по чтению: строитель блоков с чистым доверием или доверенным оборудованием может достичь того же эффекта без гомоморфного шифрования (в конце концов, все доверяют ему).

Как Block Builder строит эффективные блоки

Несмотря на то, что мы можем эффективно объединять зашифрованные транзакции в блок с помощью гомоморфного шифрования, все еще есть некоторые проблемы, которые нужно решить, такие как (1) различные транзакции могут читать и записывать одно и то же состояние (например, все они торгуют на Uniswap), что может привести к тому, что транзакции с более низким рейтингом будут более вероятно неудачными, и (2) строитель блоков не может собирать транзакции в зависимости от уровня комиссий за обработку.

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

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

△ Определяется размером комиссии и списком доступа, какие транзакции будут собраны и в каком порядке они будут собраны. Источник изображения:https://docs.google.com/presentation/d/1eKt6nR15umuxcej8Nj-osiDm_4ZvG32FdfAqG2-1-cI/edit#slide=id.g1a0b1827f35_0_1133

Время, когда происходит транзакция

Если мы беспокоимся, что время, когда зашифрованные транзакции отправляются в p2p-сеть, может утечь конфиденциальность (например, Алиса проводит транзакции в 00:00–04:00 по UTC+8), мы можем попросить Валидаторов регулярно отправлять кучу зашифрованных фиктивных транзакций, чтобы сбить с толку наблюдателя.

Фиктивная транзакция должна быть сопровождена доказательством в нулевом знании, чтобы доказать, что она была отправлена валидатором, и ограничить частоту, чтобы предотвратить заполнение сети фиктивными транзакциями (наблюдатели не будут знать, что это фиктивная транзакция, только то, что она "легальна и действительна").

Фиктивная транзакция будет идентифицирована и отброшена во время операции гомоморфного шифрования группового блока.

△ Валидаторы регулярно отправляют (серые) фиктивные транзакции, чтобы запутать наблюдателей, но это увеличит нагрузку на сеть и узлы. Источник изображения:https://docs.google.com/presentation/d/1eKt6nR15umuxcej8Nj-osiDm_4ZvG32FdfAqG2-1-cI/edit#slide=id.g1a0b1827f35_0_1210

Зашифрованные пулы памяти против FSS

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

  • Шифрование транзакций FSS не упоминает защиту метаданных, в то время как зашифрованные пулы памяти скрывают метаданные и используют доказательство нулевого знания для подтверждения действительности транзакции.
  • FSS в настоящее время использует Шифрование/Расшифрование по порогу и совместно дешифруется Цепочным Оракулом Chainlink, что означает, что вы должны доверять Цепочному Оракулу Chainlink. Зашифрованные Mempools не указывают, как сортировать, но сосредотачиваются только на шифровании транзакций и доказательстве их подлинности с помощью доказательств с нулевым разглашением.
  • По сравнению с FSS, который только подчеркивает "справедливость", Encrypted Mempools больше акцентирует внимание на "как эффективно собирать содержимое блока и как позволить Предложителю собирать наиболее выгодный блок, а не просто случайно определять порядок транзакций".

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

Борьба с MEV с помощью криптографии

Этот разговор посвящен зашифрованным Mempools, где автор делится тем, как криптографические техники и улучшения в слое консенсуса Ethereum могут помочь бороться с проблемами, вызванными MEV. Подробнее читайте здесь:https://www.youtube.com/watch?v=mpRq-WFihz8

Сводка и основные моменты

  1. Цель зашифрованных пулов памяти - защита от MEV и цензуры путем шифрования транзакций. Другие могут знать только о том, что ваши транзакции действительны, но не могут знать, какие действия вы выполняете внутри ваших транзакций.

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

  3. Не так просто доказать, что зашифрованная транзакция является действительной. Вам нужно несколько доказательств в нулевом знании, чтобы доказать подпись транзакции, значение Nonce инициатора транзакции, достаточные комиссии за обработку и т. д.

  4. Кроме того, необходимо избегать утечки метаданных, таких как IP-адрес, размер данных транзакции или время отправки транзакции, которые могут нарушить конфиденциальность транзакции.

  5. Наконец, самое важное - это обеспечить возможность расшифровки транзакций — Гарантированное Шифрование. Существует пять различных методов: Чистое Доверие (В полете), Доверенный Аппаратный Защищенный Регион, Пороговое Шифрование/Расшифрование, Отложенное Шифрование/Расшифрование и Свидетельское Шифрование/Расшифрование. У каждого метода есть свои преимущества и недостатки.

Справочные данные и рекомендуемая дополнительная литература

Зашифрованные Mempools

Особая благодарность Стивену Ву, Кими Ву, Кевину Май-Хсуан Чиа и Антону Ченгу за рецензирование и улучшение этого поста.

Disclaimer:

  1. Эта статья перепечатана с [techflowpost]. Все авторские права принадлежат оригинальному автору [Will 阿望; Диана Чжун]. Если есть возражения против этого перепечатывания, пожалуйста, свяжитесь с Gate Учитькоманда, и они незамедлительно справятся с этим.
  2. Ответственность за отказ: Взгляды и мнения, высказанные в этой статье, являются исключительно точкой зрения автора и не являются инвестиционным советом.
  3. Переводы статьи на другие языки выполняются командой Gate Learn. Если не указано иное, копирование, распространение или плагиат переведенных статей запрещены.

MEV (6): Более справедливая экосистема MEV (середина)

Продвинутый1/13/2024, 9:28:31 AM
Эта статья обсуждает, как использовать методы шифрования для предотвращения использования информации о транзакциях MEV.

Советы по чтению

· Перед прочтением этой статьи вам необходимо иметь базовое понимание MEV

· Будьте знакомы с транзакциями Ethereum и понимайте, что содержит транзакция и как она в конечном итоге включается в блок

· Знать дерево Меркля и роль доказательства нулевого знания

· нажмите, чтобы прочитать: MEV (5): Более справедливая экосистема MEV (Часть 1)

Предыдущая статья представила (1) дизайн Flashbot SGX Builder, который повышает справедливость строителя блоков с помощью доверенного оборудования, и (2) дизайн Chainlink FSS, который предотвращает MEV, децентрализуя роли упорядочения транзакций.

Эта статья будет обсуждать (3) дизайн Зашифрованных Mempools, который направлен на снижение или устранение MEV путем обеспечения конфиденциальности для транзакций с использованием криптографических методов.

Зашифрованные мемпулы

Два цели: защита MEV и устойчивость к цензуре

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

Зашифрованные память пулы используют криптографию для (1) шифрования содержимого транзакции пользователя для защиты их конфиденциальности, и (2) проверки действительности транзакции в зашифрованном виде, предотвращая атакующих от генерации большого количества недействительных, но зашифрованных транзакций. Это предотвращает их запуск DoS-атаки на цепочку, поскольку Предложитель будет тратить место блока, включая множество недействительных транзакций, которые обнаруживаются только в последний момент.

Совет по чтению: Простое шифрование не может полностью гарантировать устойчивость к цензуре, потому что Заявитель, который хочет цензурировать, все равно может отказаться принимать любые зашифрованные транзакции, поэтому шифрование только увеличивает стоимость цензуры (Заявитель отказывается от комиссий за все зашифрованные транзакции). Для достижения лучшей защиты от цензуры необходимо использовать такой список включений, как PBS.

Гарантировать возможность расшифровки транзакций (Гарантированная расшифровка)

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

Существует несколько способов гарантировать возможность расшифровки транзакций:

  1. Чистое доверие (в полете)

  2. Доверенное аппаратное обеспечение, Окружение

  3. Пороговое шифрование/дешифрование

  4. Задержка шифрования/дешифрования

  5. Шифрование/Дешифрование свидетеля

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

Image source:https://www.youtube.com/watch?v=XRM0CpGY3sw

Фиксация-раскрытие

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

Совет по чтению: Способ обязательства может быть похож на Обещающего в PBS, обещающего, что он будет включен в строительный блок по подписи. Это гарантированное обязательство. Если Обещающий нарушает обещание, его будут наказывать.

△ Предлагающий обещает получить обязательство транзакции Алисы

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

Требование пользователей прикреплять депозит и утрата депозита, когда у них не оказывается Раскрытия, может ухудшить уже плохой опыт использования Commit-reveal.

△ Алисе не нужно раскрывать свою транзакцию

1. Чистое доверие (В полете)

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

Совет по чтению: Эта централизованная роль могла бы быть, например, Строителем, Предлагающим или Оператором/Последователем Роллапа PBS.

2. Доверенное аппаратное обеспечение, ограда

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

3. Шифрование/Дешифрование по пороговому значению

Chainlink FSS также использует пороговое шифрование и дешифрование, но в Chainlink FSS менеджерами пороговых ключей являются Оракулы Chainlink, в то время как в зашифрованных Mempools менеджерами (называемыми Keypers) могут быть Валидаторы L1 или L2 (при условии, что L2 также имеет В случае децентрализованного Валидатора).

Пороговое шифрование/дешифрование имеет несколько недостатков:

  • Предположение о сильном честном большинстве: Должно быть предположено, что более половины Киперов честны. Если они недобросовестны, они могут расшифровать и видеть транзакции пользователей по своему усмотрению, просматривать транзакции или извлекать MEV из транзакций.
  • Отсутствие ответственности: Пока достаточное количество участников Keyper сотрудничают, они могут расшифровать информацию. Однако, когда участники Keyper замышляют, мы не имеем способа узнать, кто из них участвует в заговоре. Не имея возможности идентифицировать злонамеренных действующих лиц, невозможно создать механизм наказания для Keyper. Поэтому мы должны полагаться на предположение, что большинство участников Keyper честны.
  • Ослабленная живучесть: излишнее отключение Keyper приведет к недостаточному количеству онлайн-счетчиков Keyper, что препятствует дешифровке и производству блоков. Это приведет к тому, что цепь остановится. Это противоречит механизму Ethereum PoS, который подчеркивает, что цепь будет продолжать производить блоки даже в случае третьей мировой войны и в конечном итоге достигнет окончательности. Можно предположить, что вероятность использования дешифровки с порогом в Ethereum PoS не высока.

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

Эта статья предлагает дизайн и соображения для реализации в L1. Проекты, тестирующие этот дизайн, могут обратиться к Shutter Network. Дополнительную информацию можно найти здесь:https://ethresear.ch/t/shutterized-beacon-chain/12249

4. Задержка шифрования/дешифрования

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

Концепция задержки шифрования аналогична функции проверяемой задержки (VDF), обе из которых относятся к семье криптографии с отложенным выпуском.

VDF позволяет нам быстро проверить F(x): результат "трудоемкого последовательного вычисления". Это похоже на доказательство работы (PoW), но вычисление VDF является последовательным процессом, в отличие от PoW, который может быть ускорен через параллельные вычисления. Дешифратор VDF может выполнять только повторяющиеся вычисления шаг за шагом.

△ С помощью VDF вы можете проверить результат вычисления, которое заняло у меня 10 секунд, за, скажем, 0,01 секунды, и у меня не было способа параллелизировать мои вычисления. Источник изображения:https://techtelegraph.co.uk/проверяемые-функции-задержки-на-Bitcoin

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

В настоящее время Ethereum Foundation и Protocol Labs уже сотрудничают в области исследований по чипам VDF ASIC, надеясь вывести на рынок самое передовое вычислительное оборудование, чтобы никто не имел различных аппаратных преимуществ и не мог расшифровывать заранее. Дополнительную информацию можно получить здесь: https://filecoin.io/blog/posts/collaboration-with-the-ethereum-foundation-on-vdfs/

Совет по чтению: VDF также можно использовать для увеличения неуязвимости случайных чисел Ethereum.

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

5. Шифрование/дешифрование свидетеля

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

Совет по чтению: «Знание ключа для расшифровки шифротекста» или «знание результатов непрерывных вычислений» на самом деле является условием.

Через шифрование свидетелей мы можем не только достичь эффектов порогового шифрования и отложенного шифрования, но также можем объединить эти два метода дешифрования. Например, мы можем установить условия как «Условие 1: 'Группа ключодержателей согласна расшифровать данный шифр' или Условие 2: 'После пяти минут'»: Если все ключодержатели находятся в сети, мы быстро можем выполнить Условие 1 для расшифровки шифра. Однако, если ключодержателей недостаточно в сети, мы можем по крайней мере гарантировать, что мы сможем выполнить Условие 2 и расшифровать, доказав через VDF, что 'прошло пять минут'.

△ Достаточно Keypers может быть расшифровано онлайн (выше) или после достаточного времени (ниже)

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

△ Зрелость различных технологий шифрования и дешифрования. Свидетельство шифрования и дешифрования (Witness) еще недостаточно зрело. Источник изображения:https://docs.google.com/presentation/d/1eKt6nR15umuxcej8Nj-osiDm_4ZvG32FdfAqG2-1-cI/edit#slide=id.g1a0b1827f35_0_591

Манипулирование зашифрованным текстом и выполнение операций с ним с помощью гомоморфного шифрования

Предыдущие абзацы представили различные способы обеспечения возможности дешифровки транзакций, но когда транзакции могут быть расшифрованы? Ответ: после того, как транзакция включена в блок и определен порядок. Но как Строитель блоков собирает блок из кучи бессмыслицы или даже эффективно собирает высокодоходный блок? Ответ: Гомоморфное шифрование (HE).

△ Пример гомоморфного шифрования, используемого для голосования: содержание голосования было зашифровано, но шифртекст все равно можно сложить и расшифровать после подсчета результата. Источник изображения:https://twitter.com/khushii_w/status/1660278622291210242

Совет по чтению: Если шифрование и дешифрование выполняются через чистое доверие (во время передачи) или доверенное аппаратное обеспечение, то фактически не ждет, пока транзакция будет включена в блок и установлен порядок до расшифровки. В конце концов, каждый доверяет другой стороне, поэтому он будет расшифровывать и сортировать транзакцию сразу после ее получения. Это может ускорить формирование блоков и не требует дополнительных ресурсов для выполнения операций гомоморфного шифрования.

Через гомоморфное шифрование мы можем выполнять операции над шифротекстом без расшифровки транзакции. Мы можем применить процесс операции по упорядочиванию транзакций и формированию законного блока к этим зашифрованным транзакциям без расшифровки транзакции и получить зашифрованный блок транзакций. Когда блок расшифровывается, мы получим полный и законный блок, в котором транзакции расшифрованы и отсортированы в том же порядке, что и до шифрования.

△ С помощью гомоморфного шифрования Block Builder может собрать полный и легальный блок из зашифрованных транзакций

Совет по чтению: Существуют уровни гомоморфного шифрования, такие как частично гомоморфное шифрование (Частично ГШ) и полностью гомоморфное шифрование (Полностью ГШ). Частично гомоморфное шифрование может только сложить или умножить текст шифра, в то время как полностью гомоморфное шифрование может складывать и умножать текст шифра (в принципе, любая операция может быть выполнена).

△ Третья колонка: Зрелость различных технологий шифрования и дешифрования, поддерживающих FHE. За исключением in-flight и enclave, которые не требуют HE и поэтому считаются поддерживаемыми, другие пока недоступны. Источник изображения:https://docs.google.com/presentation/d/1eKt6nR15umuxcej8Nj-osiDm_4ZvG32FdfAqG2-1-cI/edit#slide=id.g1a0b1827f35_0_620

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

Однако сами данные о транзакции будут иметь соответствующие метаданные, такие как инициатор транзакции, комиссия за транзакцию или подпись, которые используются для проверки действительности транзакции. Кроме того, IP-адрес инициатора также является формой метаданных, а также размер данных транзакции. Все эти метаданные имеют потенциал для утечки пользовательской конфиденциальности, поэтому мы также должны защищать эти метаданные.

Гарантировать, что метаданные не утекают наружу

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

  1. IP-адрес

  2. Подпись транзакции

  3. Комиссии за транзакции

  4. Инициатор транзакции и его значение Nonce

  5. Размер транзакции

△ Различные метаданные транзакций могут утечь конфиденциальные данные пользователей. Источник изображения:https://docs.google.com/presentation/d/1eKt6nR15umuxcej8Nj-osiDm_4ZvG32FdfAqG2-1-cI/edit#slide=id.g1a0b1827f35_0_709

IP-адрес

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

Подпись транзакции, комиссия за обработку, инициатор транзакции и его значение Nonce

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

Когда узел получает зашифрованную транзакцию, он должен (1) сначала подтвердить, что инициатор транзакции действительно инициировал транзакцию, то есть проверить подпись транзакции, затем (2) подтвердить, что инициатор имеет достаточно ETH для оплаты транзакции (баланс пользователя ≥ цена газа * лимит газа), и (3) проверить значение счетчика nonce отправителя, чтобы избежать атак повтора транзакции.

Доказательство нулевого знания

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

△ Например, публичная информация (публичный ввод) представляет собой зашифрованную транзакцию (tx ciphertext), приватная информация (приватный свидетель) представляет собой незашифрованную транзакцию (tx ciphertext), и утверждение (zk statement), которое должно быть доказано этим доказательством нулевого разглашения, - "это "Зашифрованные транзакции допустимы" (tx ciphertext valid). Источник изображения:https://docs.google.com/presentation/d/1eKt6nR15umuxcej8Nj-osiDm_4ZvG32FdfAqG2-1-cI/edit#slide=id.g19ee04031ad_0_391

Например, если Алиса хочет доказать Бобу, что у нее больше 10 ETH, но не хочет раскрывать свой адрес, она может использовать доказательство с нулевым разглашением, чтобы доказать Бобу, что ее адрес действительно имеет баланс более 10 ETH.

«Докажите, что у Алисы есть баланс более 10 ETH» - это утверждение (утверждение zk), которое должно быть доказано этим доказательством в нулевом знании. Для генерации этого доказательства Алисе необходимо предоставить свой адрес и доказательство того, что у нее есть приватный ключ от этого адреса (например, используя приватный ключ генерируется подпись), а также ей необходимо предоставить баланс ETH этого адреса, например, использовать Доказательство Меркля для доказательства того, сколько ETH у этого адреса в 1001-м блоке.

Адрес, подпись и доказательство Меркля не могут быть разглашены и являются конфиденциальной информацией (приватный свидетель).

Когда это доказательство создано, Боб может проверить это доказательство с Мерклевским корнем (называемым Корнем Состояния) дерева состояния блока 1001. Любой знает Корень Состояния каждого блока, который является общедоступной информацией (публичный вход).

Единственная информация, которую знает Боб, — это общедоступная информация State Root и результаты проверки. Он не будет знать никакой личной информации Алисы.

△ Алиса предоставляет два частных ввода: доказательство Меркля и подпись; Боб предоставляет общедоступный ввод корня состояния. Утверждение zk может проверить, что у Алисы есть адрес и баланс адреса > 10 ETH

(1) Проверить подпись транзакции

Проверка подписи транзакции состоит из двух частей: (a) инициатор транзакции является законным и (b) подпись транзакции подписана инициатором транзакции.

(a) Главным образом для проверки того, что адрес Ethereum инициатора транзакции является законным адресом, а не случайным числом. Это будет доказано с помощью доказательства Меркля, что адрес существует в дереве состояний Ethereum.

(b) Проверяет, что подпись транзакции подписана частным ключом инициатора транзакции.

△ Это доказательство проверяет (a) адрес отправителя транзакции (через доказательство Merkle публичного ключа отправителя) и (b) подлинность подписи в транзакции (подпись будет включена в tx plaintext). tx plaintext - это необработанные незашифрованные данные транзакции, которые являются конфиденциальной информацией, предоставленной инициатором транзакции.

Источник изображения:https://docs.google.com/presentation/d/1eKt6nR15umuxcej8Nj-osiDm_4ZvG32FdfAqG2-1-cI/edit#slide=id.g1a0b1827f35_0_736

Совет по чтению: Красный текст на изображении выше относится к тому, что означает этот сертификат после прохождения верификации (то есть «подпись транзакции является законной»). Это не является частью zk-утверждения. Синяя часть содержит информацию, связанную с самой транзакцией, включая зашифрованные (публичные) данные транзакции и незашифрованные (частные) данные транзакции. Зеленая часть представляет собой дополнительные данные, необходимые для завершения доказательства, как публичные, так и частные.

△ Докажите, что адрес инициатора транзакции существует в дереве состояний Ethereum и что инициатор транзакции действительно имеет приватный ключ от места

(2) Подтвердите, что инициатор транзакции имеет достаточно ETH для оплаты комиссии за обработку

Как и в предыдущем примере с Алисой и Бобом, доказывающими, что баланс составляет > 10 ETH, инициатор транзакции должен предоставить доказательство Меркла о балансе своего собственного адреса, и утверждение, которое должно быть доказано, звучит как "баланс адреса ≥ комиссия за транзакцию". Комиссия за транзакцию равна цене газа, умноженной на лимит газа. Информация как о цене газа, так и о лимите газа включена в исходные незашифрованные данные транзакции (tx plaintext). Tx plaintext - это конфиденциальная информация, предоставленная инициатором транзакции.

△ Это доказательство подтверждает, что баланс адреса инициатора транзакции (через доказательство баланса отправителя Меркля) больше или равен комиссии за транзакцию (информация о комиссии за транзакцию включена в tx plaintext). Источник изображения:https://docs.google.com/presentation/d/1eKt6nR15umuxcej8Nj-osiDm_4ZvG32FdfAqG2-1-cI/edit#slide=id.g1a0b1827f35_0_743

△ Докажите баланс адреса инициатора транзакции > цена газа

(3) Проверьте значение Nonce инициатора транзакции

Поскольку Nonce также записан в состоянии Ethereum, Merkle Proof также используется для подтверждения текущего значения Nonce инициатора транзакции, а затем сравнивается с указанным значением Nonce в транзакции, чтобы подтвердить, что транзакция не была повторена.

△ Это доказательство сравнивает значение Nonce адреса инициатора транзакции (через доказательство Меркля Nonce) и значение Nonce, указанное в транзакции (значение Nonce, указанное в транзакции, включено в tx plaintext). Источник изображения:https://docs.google.com/presentation/d/1eKt6nR15umuxcej8Nj-osiDm_4ZvG32FdfAqG2-1-cI/edit#slide=id.g19ee04031ad_0_327

△ Докажите nonce адресата транзакции = tx nonce

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

Мы требуем, чтобы инициатор транзакции предоставил еще один тег повтора, чтобы гарантировать, что будет только одна транзакция с тем же значением Nonce. Тег повтора - это хэш-значение Nonce и закрытого ключа инициатора транзакции: тег повтора = H(nonce, закрытый ключ), поэтому различные значения Nonce одного и того же инициатора транзакции будут соответствовать уникальному тегу повтора.

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

△ Это доказательство вычислит тег повтора и сравнит его с тегом повтора, переданным общедоступным вводом. Значение Nonce транзакции содержится в tx plaintext, а закрытый ключ содержится в частном свидетельстве.

Источник фото:https://docs.google.com/presentation/d/1eKt6nR15umuxcej8Nj-osiDm_4ZvG32FdfAqG2-1-cI/edit#slide=id.g1a0b1827f35_0_750

△ Доказать nonce адреса инициатора транзакции = tx nonce и тег повтора = H(nonce, key)

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

На данный момент мы можем ввести значение слота PoS в расчет метки воспроизведения: метка воспроизведения = H(нонс, закрытый ключ, слот). Например, Боб отправил транзакцию с нонсом 5 в слоте 1001, но она еще не была получена, поэтому он решил удвоить цену газа транзакции, оставив остальные поля без изменений, и отправил обновленную транзакцию в слоте 1005. Из-за изменения слота метка воспроизведения отличается, и эта новая транзакция не будет отклонена, потому что значение нонса остается таким же.

△ Публичный ввод пройдет дополнительные значения слота для вычисления метки повтора. Источник изображения:https://docs.google.com/presentation/d/1eKt6nR15umuxcej8Nj-osiDm_4ZvG32FdfAqG2-1-cI/edit#slide=id.g1a0b1827f35_0_757

5. Размер транзакции

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

Интуитивный подход заключается в выполнении действия по дополнению данных транзакции перед их шифрованием, например, добавление группы нулей до тех пор, пока размер транзакции не станет степенью двойки, или даже дополнение данных до фиксированного размера. Это уменьшает вероятность того, что наблюдатель сможет идентифицировать транзакцию по ее размеру. Block Builder объединит дополненные транзакции в блок.

△ Белый - это отступ. Синие и оранжевые квадраты одинакового размера, поэтому их нельзя отличить по размеру. Источник изображения:https://docs.google.com/presentation/d/1eKt6nR15umuxcej8Nj-osiDm_4ZvG32FdfAqG2-1-cI/edit#slide=id.g1a0b1827f35_0_860

Однако недостатки этого подхода заключаются в том, что (1) он неэффективен, потому что много места в блоке будет зря потрачено на дополнение, и (2) он может не обеспечить достаточной защиты конфиденциальности. Например, размер красной транзакции на изображении выше (четыре квадрата) может быть редким, поэтому его все равно можно определить. Если все транзакции дополняются до фиксированного размера (например, 64 блока), конфиденциальность будет улучшена, но это приведет к относительному избытку места в блоке.

△ Недостатком является неэффективность и ограниченная защита конфиденциальности. Источник изображения:https://docs.google.com/presentation/d/1eKt6nR15umuxcej8Nj-osiDm_4ZvG32FdfAqG2-1-cI/edit#slide=id.g1a0b1827f35_0_812

Лучшим подходом является сначала заполнение транзакций до фиксированного размера, но для удаления отступов можно использовать гомоморфное шифрование.

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

△ Используйте гомоморфное шифрование для удаления дополнения при объединении зашифрованных транзакций. Источник изображения:https://docs.google.com/presentation/d/1eKt6nR15umuxcej8Nj-osiDm_4ZvG32FdfAqG2-1-cI/edit#slide=id.g1a0b1827f35_0_908

Совет по чтению: строитель блоков с чистым доверием или доверенным оборудованием может достичь того же эффекта без гомоморфного шифрования (в конце концов, все доверяют ему).

Как Block Builder строит эффективные блоки

Несмотря на то, что мы можем эффективно объединять зашифрованные транзакции в блок с помощью гомоморфного шифрования, все еще есть некоторые проблемы, которые нужно решить, такие как (1) различные транзакции могут читать и записывать одно и то же состояние (например, все они торгуют на Uniswap), что может привести к тому, что транзакции с более низким рейтингом будут более вероятно неудачными, и (2) строитель блоков не может собирать транзакции в зависимости от уровня комиссий за обработку.

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

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

△ Определяется размером комиссии и списком доступа, какие транзакции будут собраны и в каком порядке они будут собраны. Источник изображения:https://docs.google.com/presentation/d/1eKt6nR15umuxcej8Nj-osiDm_4ZvG32FdfAqG2-1-cI/edit#slide=id.g1a0b1827f35_0_1133

Время, когда происходит транзакция

Если мы беспокоимся, что время, когда зашифрованные транзакции отправляются в p2p-сеть, может утечь конфиденциальность (например, Алиса проводит транзакции в 00:00–04:00 по UTC+8), мы можем попросить Валидаторов регулярно отправлять кучу зашифрованных фиктивных транзакций, чтобы сбить с толку наблюдателя.

Фиктивная транзакция должна быть сопровождена доказательством в нулевом знании, чтобы доказать, что она была отправлена валидатором, и ограничить частоту, чтобы предотвратить заполнение сети фиктивными транзакциями (наблюдатели не будут знать, что это фиктивная транзакция, только то, что она "легальна и действительна").

Фиктивная транзакция будет идентифицирована и отброшена во время операции гомоморфного шифрования группового блока.

△ Валидаторы регулярно отправляют (серые) фиктивные транзакции, чтобы запутать наблюдателей, но это увеличит нагрузку на сеть и узлы. Источник изображения:https://docs.google.com/presentation/d/1eKt6nR15umuxcej8Nj-osiDm_4ZvG32FdfAqG2-1-cI/edit#slide=id.g1a0b1827f35_0_1210

Зашифрованные пулы памяти против FSS

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

  • Шифрование транзакций FSS не упоминает защиту метаданных, в то время как зашифрованные пулы памяти скрывают метаданные и используют доказательство нулевого знания для подтверждения действительности транзакции.
  • FSS в настоящее время использует Шифрование/Расшифрование по порогу и совместно дешифруется Цепочным Оракулом Chainlink, что означает, что вы должны доверять Цепочному Оракулу Chainlink. Зашифрованные Mempools не указывают, как сортировать, но сосредотачиваются только на шифровании транзакций и доказательстве их подлинности с помощью доказательств с нулевым разглашением.
  • По сравнению с FSS, который только подчеркивает "справедливость", Encrypted Mempools больше акцентирует внимание на "как эффективно собирать содержимое блока и как позволить Предложителю собирать наиболее выгодный блок, а не просто случайно определять порядок транзакций".

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

Борьба с MEV с помощью криптографии

Этот разговор посвящен зашифрованным Mempools, где автор делится тем, как криптографические техники и улучшения в слое консенсуса Ethereum могут помочь бороться с проблемами, вызванными MEV. Подробнее читайте здесь:https://www.youtube.com/watch?v=mpRq-WFihz8

Сводка и основные моменты

  1. Цель зашифрованных пулов памяти - защита от MEV и цензуры путем шифрования транзакций. Другие могут знать только о том, что ваши транзакции действительны, но не могут знать, какие действия вы выполняете внутри ваших транзакций.

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

  3. Не так просто доказать, что зашифрованная транзакция является действительной. Вам нужно несколько доказательств в нулевом знании, чтобы доказать подпись транзакции, значение Nonce инициатора транзакции, достаточные комиссии за обработку и т. д.

  4. Кроме того, необходимо избегать утечки метаданных, таких как IP-адрес, размер данных транзакции или время отправки транзакции, которые могут нарушить конфиденциальность транзакции.

  5. Наконец, самое важное - это обеспечить возможность расшифровки транзакций — Гарантированное Шифрование. Существует пять различных методов: Чистое Доверие (В полете), Доверенный Аппаратный Защищенный Регион, Пороговое Шифрование/Расшифрование, Отложенное Шифрование/Расшифрование и Свидетельское Шифрование/Расшифрование. У каждого метода есть свои преимущества и недостатки.

Справочные данные и рекомендуемая дополнительная литература

Зашифрованные Mempools

Особая благодарность Стивену Ву, Кими Ву, Кевину Май-Хсуан Чиа и Антону Ченгу за рецензирование и улучшение этого поста.

Disclaimer:

  1. Эта статья перепечатана с [techflowpost]. Все авторские права принадлежат оригинальному автору [Will 阿望; Диана Чжун]. Если есть возражения против этого перепечатывания, пожалуйста, свяжитесь с Gate Учитькоманда, и они незамедлительно справятся с этим.
  2. Ответственность за отказ: Взгляды и мнения, высказанные в этой статье, являются исключительно точкой зрения автора и не являются инвестиционным советом.
  3. Переводы статьи на другие языки выполняются командой Gate Learn. Если не указано иное, копирование, распространение или плагиат переведенных статей запрещены.
Bắt đầu giao dịch
Đăng ký và giao dịch để nhận phần thưởng USDTEST trị giá
$100
$5500