Введение в Optimism: масштабирование Ethereum с помощью Optimistic Rollup
Optimism — это протокол optimistic rollup, который предлагает решение для масштабирования Ethereum без ущерба для безопасности или децентрализации. Протокол достигает этого за счет увеличения вычислительной мощности и емкости хранения Ethereum, оставаясь при этом максимально совместимым с существующей инфраструктурой Ethereum.
Основы
Что такое масштабируемость Ethereum?
Масштабируемость Ethereum относится к способности сети Ethereum обрабатывать большее количество полезных транзакций. Текущие ограниченные ресурсы Ethereum, в частности пропускная способность, вычисления и хранение, затрудняют обработку большого объема транзакций. Вычисления и хранение являются наиболее значительными узкими местами, что приводит к чрезвычайно высоким комиссиям. Для масштабирования Ethereum и снижения комиссий необходимо лучше использовать пропускную способность, вычисления и хранение.
Что такое Optimistic Rollup?
Optimistic rollup — это техника масштабирования второго уровня (Layer 2), которая позволяет выполнять транзакции вне сети, сохраняя при этом безопасность и децентрализацию. Данные транзакций отправляются в сеть, но выполняются вне сети. В случае ошибки при внесетевом выполнении, доказательство ошибки (fault proof) может быть отправлено в сеть для исправления ошибки и защиты средств пользователя. Этот подход похож на обращение в суд только при наличии спора и выполнение транзакций в сети только при наличии ошибки.
Что такое э квивалентность EVM?
Эквивалентность EVM относится к полному соответствию функции перехода состояний, описанной в «желтой книге» Ethereum, которая является формальным определением протокола Ethereum. Протокол rollup, эквивалентный EVM, соответствует стандарту Ethereum для всех EVM, гарантируя, что разработчики смарт-контрактов могут написать код один раз и развернуть его где угодно. Это означает, что любой смарт-контракт, написанный для основной сети Ethereum, может быть развернут в протоколе rollup, эквивалентном EVM, с минимальными изменениями или без них.
Optimism = эквивалентность EVM + optimistic rollup + масштабирование Ethereum
Optimism — это протокол optimistic rollup, эк вивалентный EVM, разработанный для масштабирования Ethereum при сохранении максимальной совместимости с существующей инфраструктурой Ethereum.
Безопасность
Для масштабирования Ethereum без ущерба для безопасности Optimism сохраняет три критически важных свойства первого уровня Ethereum: живучесть, доступность и валидность.
- Живучесть (Liveness) — любой может расширить цепочку rollup, отправляя транзакции в любое время.
- Транзакции могут быть отправлены в цепочку rollup через секвенсор или непосредственно на уровне 1. Секвенсор обеспечивает транзакции с низкой задержкой и низкой стоимостью, в то время как отправка транзакций непосредственно на уровень 1 обеспечивает устойчивость к цензуре.
- Доступность (Availability) — любой может загрузить цепочку rollup.
- Вся информация, необходимая для получения цепочки, встроена в блоки уровня 1. Таким образом, пока доступна цепочка уровня 1, доступен и rollup.
- Валидность (Validity) — все транзакции выполняются корректно, и все выводы обрабатываются правильно.
- Состояние rollup и выводы управляются контрактом L1 под названием L2OutputOracle, который гарантированно завершает только корректные (т. е. валидные) хеши блоков rollup при условии наличия хотя бы одного честного верификатора. Если невалидный хеш блока утверждается на уровне 1, честный верификатор докажет его невалидность и выиграет залог.
Optimism обеспечивает валидность rollup с помощью доказательств ошибок (fault proofs). Доказательства валидности (validity proofs) также могут быть подключены, как только это станет возможным.
Участники сети
В Optimism есть три участника: пользователи, секвенсоры и верификаторы.
Пользователи
В основе сети лежат пользователи, которые могут вносить или выводить произвольные транзакции на L2, отправляя данные в контракт в основной сети Ethereum. Они могут использовать смарт-контракты EVM на уровне 2, отправляя транзакции секвенсорам и просматривая статус транзакций с помощью обозревателей блоков, предоставляемых сетевыми верификаторами.
Секвенсоры
Секвенсор является основным производителем блоков. Может быть один секвенсор или несколько, использующих протокол консенсуса. Для версии 1.0.0 существует только один секвенсор, в настоящее время работающий под надзором Optimism Foundation. В целом, в спецификациях «секвенсор» может использоваться как общий термин для протокола консенсуса, управляемого несколькими секвенсорами.
Секвенсор:
- принимает внесетевые транзакции пользователей;
- отслеживает внутрисетевые транзакции (в основном, события депозитов, поступающие с L1);
- объединяет оба типа транзакций в блоки L2 с определенным порядком и распространяет объединенные блоки L2 на L1, отправляя две вещи в качестве calldata на L1:
- ожидающие внесетевые транзакции, принятые на шаге 1, и
- достаточную информацию о порядке внутрисетевых транзакций для успешного восстановления блоков из шага 3, исключительно путем наблюдения за L1.
Секвенсор также предоставляет доступ к данным блоков уже на шаге 3, чтобы пользователи могли получить доступ к состоянию в реальном времени до подтверждения L1, если они того пожелают.
Верификаторы
Верификаторы выполняют две функции:
- предоставление данных rollup пользователям и
- проверка целостности rollup и оспаривание недействительных утверждений.
Для поддержания безопасности сети должен быть как минимум один честный верификатор, который может проверять целостность цепочки rollup и предоставлять данные блокчейна пользователям.
Ключевые схемы взаимодействия
Следующие схемы демонстрируют, как компоненты протокола используются во время ключевых взаимодействий с пользователями, чтобы предоставить контекст при углубленном изучении любой конкретной спецификации компонента.
Внесение депозитов и отправка транзакций
Пользователи часто начинают свой путь на L2 с внесения ETH с L1. Как только у них есть ETH для оплаты комиссий, они начинают отправлять транзакции на L2. Следующая схема демонстрирует это взаимодействие и все ключевые компоненты Optimism, которые используются или должны использоваться: