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

Ключевые выводы

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

Содержание

Почему подтверждение транзакции все еще может привести к убыткам

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

Фонд различает вводящие в заблуждение запросы и нежелательные результаты. В ходе атак на Bybit и BadgerDAO скомпрометированные интерфейсы предъявляли пользователям запросы на подпись, отличавшиеся от тех, как пользователи понимали подтверждаемое действие. В то же время даже запрос, отображенный корректно, может допускать экономически невыгодный результат.

В качестве примера приводится обмен залога на Aave через CoW с участием около $50.4 million в aEthUSDT. Низкая ликвидность AAVE и ограничение CoW на расход газа привели к тому, что подтвержденная котировка составила примерно 329 aEthAAVE. Несмотря на отображенное предупреждение о влиянии на цену в 99.9 percent и подтверждение того, что вся сумма может быть потеряна, пользователь подписал транзакцию и получил токены стоимостью около $36,000.

Это различие объясняет, почему более понятные описания транзакций не решают проблему полностью. Clear Signing помогает пользователям понять запрошенное действие. Симуляция оценивает последствия, исходя из выбранного состояния сети. Но ни один из этих инструментов сам по себе не накладывает независимого условия на фактически достигнутый результат.

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

Как утверждения о транзакциях будут проверять результат

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

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

Существующие проверки в контрактах уже обеспечивают защиту отдельных результатов. Uniswap может отклонить обмен, если объем получаемых активов ниже заданного минимума, а guard в Safe может проверять состояние счета после исполнения. Ограничение связано с доступностью данных: такие проверки должны заранее предусматривать, что именно изучать, и обычно зависят от интерфейсов, предоставляемых другими контрактами. Например, прокси-контракт не обязан иметь функцию, раскрывающую адрес его реализации.

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

Какие данные будут доступны в рамках предлагаемой реализации

В объявлении фонда о нативных утверждениях транзакций EIP-7906 описывается как возможный вариант реализации, а не как окончательно утвержденная конструкция. Он опирается на транзакции с кадрами, предусмотренные EIP-8141, которые выстраивают этапы проверки и выполнения действий в заданной последовательности. Включение EIP-8141 в обновление Hegotá запланировано; EIP-7906 получил статус Considered for Inclusion, но его включение в это обновление не подтверждено.

В рамках этого подхода кадр POST_TX, доступный только для чтения, будет проверять результаты в конце исполнения. Предлагаемые инструкции для доступа к данным будут работать только в этом кадре, а не во всей EVM.

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

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

Какие изменения потребуются кошелькам и протоколам

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

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

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

Какие преимущества получат агенты и рабочие процессы с решателями

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

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

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

Заключение

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

Читайте больше новостей

Другие новости FinanceVelix

Отказ от ответственности

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