Масштабирование Ethereum
Как вам всем известно, Ethereum был создан в 2013 году и с того момента набрал огромную популярность, поскольку на нем можно строить различные смарт-контракты, а как следствие на его основе было создано огромное множество продуктов, платформ и т. д.
Проблема сети Ethereum заключается в том, что данная сеть может обрабатывать только 7-11 транзакций в секунду, и поскольку в определенные моменты сеть может быть перегружена, комиссия за транзакции может достигать более 80$.
Здесь возникает проблема масштабируемости блокчейна. Трилемма масштабируемости блокчейна, придуманная сооснователем Ethereum Виталиком Бутериным, утверждает, что блокчейн не способен эффективно масштабироваться, сохраняя при этом безопасность и децентрализованность основной сети. Вместо этого необходимо искать компромисс между этими характеристиками - современные блокчейн-сети могут удовлетворять двум из трех условий, но не всем трем одновременно.
В качестве решения данной проблемы были созданы L2.
На данный момент решения второго уровня играют значительную роль на рынке.
L2 или же решения 2-го уровня - это протоколы, которые работают поверх сети эфириум, они направлены на масштабируемость сети, снижение цен на транзакции, без ущерба децентрализации и безопасности сети.
Преимуществами таких протоколов являются:
- Увеличение количества транзакций в секунду, а также снижения нагрузки на сеть L1.
- Снижение комиссии. Это происходит следующим образом: транзакции консолидируются в один пакет перед записью в основной сети, что снижает плату за газ.
- Изменения в L2 не влекут за собой изменения в базовом блокчейне, что помогает обеспечить безопасность сети.
Типы решений L2
Прежде чем говорить о Rollup необходимо поговорить об их общем механизме работы. Транзакции группируются вне основного блокчейна, а затем эти транзакции публикуются именно на нем. Количество данных, которые мы публикуем в цепочке, являются минимальным количеством, необходимых для локальной проверки транзакции. Размещая данные в цепочке, любой может обнаружить мошенничество, инициировать вывод средств или лично начать создание групп транзакций.
Говоря о масштабируемости, она увеличивается от 5 до 100 раз, но ни в коем случае не обеспечивает бесконечную масштабируемость.
Zk-Rollups представляют собой пакеты данных, которые обеспечиваются смарт-контрактом в основной цепочке, в то время как они передаются за пределы цепочки для обработки и вычислений. Они способны произвести блок примерно за минуту и обработать 2000 TRS (Транзакций в секунду).
С ZK роллапами каждый пакет включает в себя криптографическое доказательство, называемое ZK-SNARK, которое доказывает, что корневое состояние является правильным результатом выполнения пакета транзакций. Особенность ZK-SNARK позволяют генерировать доказательство существования базовых данных, при этом не раскрывая их.
Решение масштабирования уровня 2 ZK-rollups работает лучше, чем уровень 1, благодаря хранению данных вне цепочки. Важные данные, относящиеся к смарт-контрактам, запрашиваются реже, чем у блокчейнов первого уровня. Это экономит большое количество вычислительной мощности, и для проверки транзакций используется меньшая мощность блокчейна. В результате комиссия за газ снижается, что делает транзакции быстрее и дешевле.
Для простоты понимания, приведем простой пример работы Zk-Rollup:
- Инициация Транзакции: Алиса отправляет 2 ETH Бобу.
- Обработка в ZK-Rollup: Транзакция обрабатывается в ZK-Rollup сети, где она сгруппирована с другими транзакциями.
- Генерация ZK-SNARK: Для этой группы транзакций создается ZK-SNARK, доказывающий, что Алиса действительно отправила 2 ETH Бобу, без раскрытия других деталей транзакции.
- Обновление Состояния: После проверки ZK-SNARK на главной цепочке, баланс Алисы уменьшается на 2 ETH, а баланс Боба увеличивается на 2 ETH.
Примерами на практике: zkSync, Starknet, Polygon
Они работают следующим образом: каждая нода обновляет состояние сети, как только пачка транзакций предложена. У остальных нод есть 7-ми дневное окно, чтоб оспорить предложенный блок, предоставив fraud proof (док-во мошенничества). Оно включает:
- Предыдущее состояние сети
- Новое состояние сети
- Доказательство транзакций совершенных при переходе состояния
Процесс прост: это доказательство мошенничества публикуется в контракте роллапа на основной цепочке. Затем контракт роллапа проверяет доказательство и применяет логику транзакции к предыдущему состоянию. После этого он сравнивает результат с после состоянием. Если есть несоответствие, это доказывает, что тот, кто опубликовал пакет, неправильно применил транзакции. Смарт-контракт затем отменяет этот пакет транзакций и все последующие пакеты.
Пример оптимистического роллапа:
- Инициация Транзакции: Алиса хочет отправить 5 ETH Бобу. Она инициирует транзакцию в сети оптимистического роллапа.
- Обработка в Оптимистическом Роллапе: Транзакция Алисы обрабатывается. И здесь, в отличие от Zk-Rollups, место немедленной проверки, транзакция сначала принимается как действительная.
- Публикация на Главной Цепочке: Контракт роллапа на главной цепочке Ethereum получает подтверждение, что 5 ETH были отправлены от Алисы Бобу. Эта информация обновляется в общем состоянии роллапа, но подробности транзакции не раскрываются.
- Период Ожидания: После публикации, транзакция входит в период ожидания (например, неделю), в течение которого она может быть оспорена.
- Возможное Оспаривание: Если кто-то обнаруживает, что транзакция Алисы была мошеннической (например, у Алисы не было достаточного баланса), он может представить "доказательство мошенничества" в сеть.
- Решение Конфликта: Если доказательство мошенничества предоставлено, сеть роллапа проверяет транзакцию и, если она действительно недействительна, отменяет ее. Если доказательство мошенничества не представлено в течение периода ожидания, транзакция считается действительной.
- Окончательная Обработка: После истечения периода ожидания и в отсутствие оспаривания, транзакция окончательно обрабатывается. Баланс Алисы уменьшается на 5 ETH, а баланс Боба увеличивается на 5 ETH.
Примерами оптимистичных роллапов на практике являются Optimism и Arbitrum.
Каналы состояния представляют собой двунаправленные коммуникационные пути между участниками, позволяя им взаимодействовать без вмешательства 3-х сторон, таких как валидаторы, ускоряя тем самым транзакции. Этот процесс начинается с обеспечения безопасности части блокчейна через мультиподписи, что позволяет адресанту и адресату взаимодействовать напрямую, минуя майнеров. После выполнения транзакции её итоговое состояние фиксируется в блокчейне.
- Управление сложными взаимодействиями
- Обрабатывает чрезвычайно высокую пропускную способность транзакций при очень низкой стоимости
- Высокие затраты на настройку и расчетные каналы
- Средства должны быть заблокированы в открытых платежных каналах
- Не поддерживает открытое участие
Отдельные протоколы L2 мы рассмотрим в дальнейших статьях.
Данная рубрика выходит от команды BeefsTrend. Ведёт данную рубрику один из ведущих аналитиков нашей команды в сфере финансовых проектов. Он так же ведёт личный блог на своём канале by lexaman.