opBNB — решение Layer 2 для масштабирования BNB Chain

Что такое opBNB?

opBNB — это решение Layer 2 для масштабирования сети BNB Smart Chain, основанное на базовой версии Optimism OP-Stack. Основной задачей opBNB является разгрузка сети BNB Smart Chain и значительное уменьшение комиссионных сборов сети за счет переноса обработки транзакций на уровень 2.

Решение масштабирования opBNB позволяет выйти за рамки ограничений BNB Smart Chain, обеспечить высокую пропускную способность и снизить плату за газ для конечных пользователей.

Связанные статьи:
- Как добавить сеть opBNB в Metamask
- Тестнет opBNB

Обзор opBNB

opBNB — это решение для оптимистичного агрегирования транзакций, разработанное для масштабирования BNB Smart Chain. Это оптимистичное решение второго слоя (Layer 2), которое дополняет zkBNB и повышает масштабируемость экосистемы BNB за счет полной совместимости с виртуальной машиной Ethereum (EVM).

Рассмотрим основные преимущества данной сети:

  • Высочайшая производительность. Используя размер блока в 100 млн, плата за газ opBNB остается стабильной и низкой, что позволяет добиться пропускной способности более 4000+ транзакций в секунду (TPS). Это значительное увеличение по сравнению с другими блокчейнами Layer 1, которое способствует быстрой и эффективной обработке транзакций, что так важно для современных приложений Web3.
  • Низкая комиссия. Одним из основных преимуществ сети opBNB является значительное снижение транзакционных издержек. Планируется, что в среднем плата за транзакцию будет должна составлять ниже, чем $0.005, что позволяет значительно расширить пользовательскую базу.
  • Безопасность. opBNB использует секвенсоры, пруверы и верификаторы для того, чтобы обеспечить безопасные переходы между состояниями и транзакции. Сеть опирается на безопасность основной сети BNB Smart Chain, используя ее консенсус и решение доступности данных.
  • Совместимость с EVM. Использование OP-Stack открывает возможности взаимодействия с другими решениями Layer 2, поддерживающими виртуальную машину Ethereum (EMV) и язык Solidity, что способствует развитию открытой и совместной экосистемы.
  • Доступность данных (DA). В opBNB, уровень доступности данных (DA) отделен от уровня выполнения, что позволяет выбирать различные варианты и схемы доступности данных, в зависимости от потребностей в производительности и безопасности.

Оптимизация OP-Stack в opBNB

Разработчики opBNB внесли в OP-Stack различные оптимизации, которые позволили увеличить производительность и значительно снизить плату за газ. opBNB повышает производительность «уровня выполнения» и «уровня вывода» стека OP.

Одной из ключевых задач при разработке opBNB было обеспечение высокой пропускной способности транзакций (TPS). Для этого разработчики использовали методы оптимизации выполнения, которые ранее уже применялись в BNB Smart Chain.

1. Оптимизация доступа к данным состояния EMV

На приведенной ниже диаграмме показано, как виртуальная машина Ethereum (EVM) получает доступ к данным состояния. Сначала происходит проверка наличия данных в кэш-памяти и если данных нет, EVM использует базу данных LevelDB, которая включает дисковый ввод-вывод.

По сравнению со стандартной моделью хранения данных о состоянии в Ethereum, BNB Chain представила «SharedPool» в качестве кеша L1.5 для повышения скорости попадания в кеш.

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

2. Предварительная выборка

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

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

Новый дизайн повышает производительность за счет совместного использования пула, содержащего все состояние (originStorage), между процессами предварительной выборки и основными процессами EVM. Таким образом, потоки предварительной выборки могут помещать предварительно извлеченные данные прямо в L1.5, что ускоряет доступ основного процесса.

3. Процесс производства блоков.

Процесс майнинга L2-блоков OP Stack включает в себя цикл, в котором драйвер объединения (opNode) импортирует предыдущие блоки, а затем вызывает Engine API (op-geth) для создания новых блоков L2.

Чтобы оптимизировать производительность процессы, разработчики добавили уровень кеша для хранения результатов выполнения на начальном этапе производства блока. Таким образом, когда op-geth получает вызов engine_newPayloadV1, он может получить данные из кеша вместо повторного выполнения транзакций.

4. Оптимизация слоя.

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

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

Газ и комиссии сети

OpBNB — это масштабирующее решение, основной целью которого является достижение более высокой пропускной способности и более низкой стоимости транзакций. Стоимость транзакций opBNB состоит из двух компонентов: плата за газ Layer 2 и плата за газ Layer 1. Плата за газ Layer 2 отражает вычислительную сложность самой транзакции. Плата за газ Layer 1 покрывает расходы на отправку пакетов транзакций в базовую сеть BSC для проверки и финализации.

Стоимость транзакции в opBNB рассчитывается по формуле:

- Стоимость транзакции L2 = цена газа L2 * потребленный газ + цена газа L1 * потребленный газ.
- Цена газа = базовая цена * приоритетная цена.

Текущая конфигурация сети:

СетьМинимальная базовая ценаМинимальная приоритетная цена
opBNB (Layer 2)8 wei (данамическая)0.2 gwei
BSC (Layer 1)0 wei3 gwei

Минимальная базовая цена — это базовая цена, которую может установить opBNB, и в зависимости от использования сети базовая цена может меняться. Например, согласно текущей конфигурации, если использование блока достигает 50% от 100M газа, базовая цена будет увеличена на 12,5%.

Минимальная приоритетная цена — это цена, устанавливаемая opBNB. Пользователь может указать любую минимальную приоритетную цену, но не ниже установленного сетью значения.

Таким образом, цена газа Layer 2 изначально установлена ​​​​на уровне 0,2 gwei, но конфигурация будет управляться сообществом BNB Chain посредством процесса управления (Governance).