👾 L2 solutions: Введение в Neon — EVM Дмитрий Рожков

Cyber Academy
4 min readJun 29, 2022

--

Конспект доклада Дмитрия Рожкова, Software Engineer в Neon Labs, в котором он рассказывает про решение второго уровня, объединяющее черты Ethereum и Solana, для адаптации dApps разработчиков на Solidity к среде Solana на Rust.

О проекте Solana

Solana — молодой проект, родился в 2017 году под началом Анатолия Яковенко. Сейчас это растущая, популярная, быстрая, дешевая сеть. Если говорить о скорости, то время нахождения блока — 0,04 секунды, в блок помещается 20 тысяч транзакций. Цена транзакции $0,00025. То есть, в секунду — 70 тысяч транзакций. Если говорить о популярности Solana, то у меня лично есть несколько знакомых, которые пользуются приложением Stepn, в котором люди набирают баллы за ходьбу, и им за это платят токены. На Solana построено очень много различных популярных dApps.

Почему разработка на Solana — боль

Если разработчики захотят что-то быстро и дешево построить на Solana, они неминуемо наткнутся на ряд барьеров. У Solana сложная архитектура, что приводит Solidity-разработчиков в отчаяние, а Rust-разработчиков в восторг (про этих ребят в Solana шутят, что они «жуют стекло»).

У Solana другая структура транзакций, виртуальная машина Berkeley Packet Filter (BPF), язык не Solidity и не Vyper, а Rust. Solidity-разработчику приходится пройти через все стадии: гнев, отрицание и депрессию и т.д. в связи с этим.

Какое решение нашли в Neon Labs

На самом деле мы придумали два подхода. Первый подход заключается в создании компилятора на Solidity, который будет компилировать в BPF-формат. Но мы склонились ко второму подходу и решили развивать его. Мы решили предоставить знакомый интерфейс RPC API и транслировать готовые, скомпилированные пользовательские Solidity-контракты, транзакции в RPC API Solana. Все привычные программы вроде Metamask и т.д. могут без проблем работать с Neon так же, как они работают с Ethereum. За это отвечает Neon RPC API web3 proxy, который транслирует транзакции в Solana.

Еще один компонент — контракт, который мы написали на Rust. Это, по факту, наша версия имплементации виртуальной машины Ethereum. То есть, внутри происходит магия и транзакции транслируются виртуальной машине на Solana. При этом меняется состояние в блокчейне Neon. То есть, у нас есть Ethereum смарт-контракты или dApps, которые хостятся на Solana, но находятся в стейте блокчейна Neon и в едином адресном пространстве блокчейна Neon. Через адресное пространство Neon можно адресовать свои контракты и послать «эфироподобные» транзакции в Solana.

Дальнейшее развитие идеи

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

Как работает Neon EVM

В ядре Neon EVM есть реализация ERC-20 wrapper, который прячет в себе контракт Solana под названием SPL-токен, который намного дешевле. У нас есть партнер MoraSwap — по сути, форк Uniswap. Этот dApp, как раз, на подобных precompied контрактах и строит свою логику.

Блокчейн Neon полностью децентрализованный. У него нет единой точки отказа и если откажет ведущая нода Solana или выпадет ведущий оператор RPC API, — стейт Neon не станет неконсистентным и блокчейн продолжит работу.

Операторы никак не могут скомпрометировать транзакции, так как пользователи применяют подписи приватным ключом, который проверяется «на борту» контракта Neon EVM. Все исходники блокчейна Neon открыты на neonlabs.org. Периодически код проходит экспертизу, также команда Neon рада контрибьюторам.

Контракт, который появится в майннете Solana, управляется исключительно контрактом governance, то есть — решения принимаются голосованием владельцев стейка Neon.

Разработчикам Solidity нужно взять инструменты, к которым они привыкли (Hardhat, Remix, Truffle, etc.) и немножко поменять конфигурацию, то есть вставить туда адрес RPC API Neon и это все заработает.

Как строится токеномика

В Solana иначе, нежели в Ethereum, строится стоимость газа. Средняя комиссия порядка 5К lamports — 10–18 SOL. Минимальная транзакция в Neon — две проверки: проверка 256 Solana и проверка хеша Ethereum. Также Solana берет комиссию за выделение одного байта — около 6,5К lamports за 1 байт. Цена газа выражается в нативных токенах Neon и формируется на основе актуального рыночного соотношения NEON/SOL. К этой стоимости прибавляется комиссия от операторов Neona, которые хостят у себя RPC API — нанимают людей, платят за электричество и т.д. Операторы забирают на себя порядка 10%.

Ссылки:

Twitter: https://twitter.com/neonlabsorg

Youtube: https://www.youtube.com/channel/UCAL2uFkKkfBgz3mXFN3UDTQ

Discord: https://discord.com/invite/ApZRBDqYcN

Скачать презентацию: https://t.me/cyberacademy/21943

Cyber Academy — образовательная платформа для блокчейн-разработчиков. Присоединяйтесь к нам ✨

Поддержите нас на Gitcoin

Анонсы | Website | Twitter | Телеграм-чат | GitHub | Facebook | Linkedin

--

--

Cyber Academy
Cyber Academy

Written by Cyber Academy

Образовательная платформа для блокчейн-разработчиков

No responses yet