Кратко о Arbitrum Nitro

Mirai-team
3 min readSep 4, 2022

--

Проект масштабирования второго уровня Arbitrum успешно мигрировал с Arbitrum One на Arbitrum Nitro! Это важная веха для их дальнейшего развития!

Ниже тезисно пройдемся об основных моментах обновления, спасибо за предоставленную выжимку Coinbase Cloud.

Сначала кратко о Arbitrum One: это оптимистичная цепочка роллирования, построенная поверх Ethereum и защищенная им, а все данные о транзакциях регистрируются в Ethereum. Его использование ощущается точно так же, как использование Ethereum, поскольку он совместим с EVM и поддерживает все инструменты разработки без каких-либо специальных модификаций. Благодаря этому каждый может взаимодействовать с умными контрактами и внедрять их с минимальными затратами без ущерба для безопасности и децентрализации.

Несмотря на то, что среда знакома, под капотом классического стека Arbitrum работает виртуальная машина Arbitrum Virtual Machine (AVM), которая оптимизирована для обеспечения быстрого прогресса при сохранении эффективности разрешения споров. Поверх AVM располагается ArbOS, операционная система Arbitrum, которая отвечает за отслеживание использования ресурсов смарт-контрактов и является движущей силой для разгрузки работы, которая в противном случае была бы выполнена на L1. Выполнение транзакций основано на том, что представлено в их смарт-контракте Inbox, который работает на Ethereum.

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

Звучит здорово, не так ли? Итак, что же такое Arbitrum Nitro? Это Aribtrum One, но с турбонаддувом! В нем есть несколько ключевых инноваций.

Поскольку Arbitrum запускает свой собственный AVM, и хотя в него встроена сильная совместимость с EVM, это пользовательская виртуальная машина, которая имеет некоторые модели поведения, отличающиеся от EVM. В качестве примера можно привести использование ArbGas, который не очень хорошо переводится на Ethereum gas, что означает, что газовую логику смарт-контрактов, созданную для Ethereum, пришлось модифицировать для Arbitrum.

Что если есть аргументы в пользу более высокой совместимости с EVM, более низкой платы и упрощенной архитектуры? Ну, Nitro использует WebAssembly (WASM) вместо использования AVM. Это приводит к каскаду симбиотических архитектурных решений. WASM предоставляет различным языкам программирования возможность работать в Интернете. Go — один из тех языков, которые могут компилироваться в WASM.

Новая ArbOS написана на языке Go. Geth, наиболее широко используемая реализация Ethereum, построена на Go. Это означает, что ядро Geth буквально встроено в стек Nitro. Это ключевая инновация, которая каскадирует в преимущества Nitro.

Поскольку данные о транзакциях размещаются в Ethereum, стоимость одной транзакции и количество транзакций в секунду ограничены объемом данных, которые могут быть размещены в Ethereum в это время. Таким образом, если мы сможем сократить объем размещаемых данных, это еще больше снизит операционные издержки. Arbitrum Nitro предлагает расширенное сжатие calldata, чтобы сделать именно это! В случае AVM, поскольку это была пользовательская реализация для Arbitrum, необходимо было бы создать пользовательскую реализацию алгоритма сжатия. Это представляет собой высокий технический риск. Благодаря реализации WASM в Nitro любой код Go может быть включен в архитектуру, что означает, что Nitro может использовать проверенные в боях библиотеки сжатия.

Кроме того, при AVM деноминация ArbGas не очень хорошо переводилась в газ Ethereum, что означало, что логику смарт-контрактов, созданную для Ethereum, нужно было модифицировать для Arbitrum. Но в Nitro перевод между газом L1 и газом L2 практически 1:1. Этот симбиоз, возникающий при реализации WASM + Geth, значительно снижает архитектурную сложность и позволяет разделить выполнение и доказывающую функциональность.

При разработке роллапов возникает естественное противоречие между оптимизацией выполнения и доказательством результатов выполнения. При компиляции узла Nitro для выполнения используется родной компилятор Go для создания родного кода. Но для доказательства компилятор Go компилирует его до уровня WASM, эта компиляция в WASM должна выполняться только при возникновении спора. Такое разделение конструкции делает Nitro более производительным, что опять же приводит к снижению платы.

Есть еще много интересного, так что если вы хотите узнать, загляните в их документацию:

https://developer.offchainlabs.com/inside-arbitrum-nitro

Mirai Telegram chanel — https://t.me/mirai_team
Mirai Telegram group —
https://t.me/mirai_team_chat

--

--