Слоёный Ethereum. Часть 1. Plasma, ZK и Optimistic.
priv.eth, Читатель!
В прошлой статье мы разбирали чем отличаются EVM-сети друг от друга (вот эта статья, кстати - тык). Безусловно каждая из них привнесла свой вклад в развитие крипты, но все еще ни один "Убийца Ethereum" так и не убил его.
Ethereum продолжает оставаться второй по капитализации и популярности криптовалютой, но вот высокие комиссии и медленные переводы сильно уменьшают удобство использования этой сети.
Но решения этих проблем уже есть и они называются "Layer-2". Что это такое, какие бывают и как работают? Давайте разбираться!
Оглавление
Что такое Layer-2?
Из закономерности, известной как "триллема блокчейна", следует, что отдельно взятый блокчейн не может быть одинаково хорошо безопасен, масштабируем и децентрализован.
Поэтому чем-то всегда приходится жертвовать при создании нового блокчейна. Так вот в Ethereum во имя безопасности и децентрализованности при создании была принесена в жертву масштабируемость. Поэтому текущая пропускная способность всего блокчейна Ethereum 5-14 транзакций в секунду, что очень медленно при текущей его популярности.
И вот для решения этой проблемы было придумано следующее: вместо того, чтобы оптимизировать масштабируемость на самом блокчейне (Layer-1), нужно создать параллельную цепочку (Layer-2), которая будет снимать нагрузку с основной и которая работает гораздо быстрее, перекладывая функцию безопасности на основную сеть.
Теперь давайте поговорим о видах таких L2 решений и их различиях.
Plasma
Концепция Ethereum Plasma была предложена Виталиком Бутериным и Джозефом Пуном (один из создателей Lightning Network) в 2017 году, как метод решения проблемы масштабируемости сети Ethereum.
Здесь нужно уточнить: Plasma - это не какой-то конкретный проект, это технология, которая может быть использована кем угодно в своих целях.
Основная идея Plasma состоит в создании множества цепочек, которые будут как можно реже взаимодействовать с основным блокчейном. Таким образом получается что-то вроде "блокчейн дерева", которое организовано так, что множество небольших цепочек (их еще называют "plasma chains" или "child chains") может быть построено поверх основной. Более того, от каждой боковой цепочки может отходить своя "child chain", что и создает структуру дерева.
Plasma реализуется с помощью деревьев Меркла, что позволяет создавать неограниченное количество "child chains", которые по сути являются уменьшенными копиями Ethereum.
Огромное число транзакций может быть отправлено через Plasma с минимальным следом в корневом блокчейне. Это происходит, потому что отправляются на основную сеть не сами блоки, а лишь их хеши, для проверки на мошенничество. Таким образом основная функция по безопасности остается лежать на Ethereum.
Как работает Plasma
- Механизм консенсуса (например PoW, PoS или PoA) для этой системы реализуется в смарт-контракте на Ethereum.
- Вычислительные мощности экономятся с помощью MapReduce. Это позволяет отправлять на Ethereum только один хеш блока для закрепления на нем всех выполненных в Plasma транзакций.
- Хеш, который публикуется в основной блокчейн Ethereum, проверяется через fraud proofs. Любой участник сети может опубликовать fraud proof и откатить назад добавление блока, при этом штрафуя того, кто его опубликовал.
Fraud proof - способ консенсуса сети, который по сути противоположен каноническим.
В обычном консенсусе (вроде PoW или PoS) подразумевается "презумпция виновности" для каждого блока. То есть каждый узел может быть потенциально мошенническим и все блоки нужно проверять на достоверность.
Fraud proof работает наборот. Все блоки являются корректными, до тех пор, пока кто-то не подтвердит для них обратное.
- Проверка хеша через fraud proofs производится только когда пользователь хочет вывести средства. По этой причине требуется некоторый промежуток времени для вывода средств.
Потенциальные уязвимости
- Если никто не проверяет вычисления, они считаются верными. Из-за этого чтобы Plasma работала корректно, все узлы должны быть полностью вовлечены в любую действующую "plasma chain".
- Проблема свободы выбора (free option problem). Это базовая проблема для всех смарт контрактов. Чтобы выполнился смарт-контракт между несколькими сторонами - нужны подписи от всех его участников. В таком случае у последнего "подписанта" есть полная власть над тем - выполнится контракт или нет. И если ему будет не выгодно, он может просто не подписывать контракт, из-за чего он никогда не выполнится.
- Проблема массового выхода. Если сразу много пользователей попытаются одновоременно выйти из Plasma, то все их запросы будет обрабатывать один смарт-контракт, что вызовет перегрузку всей сети. Это может быть использоваться с целью атаки, которую может провести одна из "child chains".
Преимущества
- Низкие комиссии и быстрые вычисления позволяют запускать ресурсоемкие приложения на блокчейне.
- Устраняет значительный объем данных в основной цепи, что снижает нагрузку на ноды Ethereum.
- Совместимость с другими решениями для маcшстабирования блокчейна, вроде шардинга, изменения размера блока и др.
Недостатки
- Plasma требует централизованного управления для работы.
- Долгий период вывода средств из боковой цепочки (7-14 дней), что исключает возможность повседневного использования.
Проекты
Optimistic-rollups
Optimistic rollups - еще одно решение L2 для Ethereum. Эта технология напоминает Plasma, но здесь почти бесконечная масштабируемость из Plasma обменяли на запуск отдельной виртуальной машины, совместимой с EVM, называемой OVM (Optimistic Virtual Machine). Она позволяет делать на Optimistic Rollups все то, что может Ethereum.
Название происходит от принципа работы, схожего с Plasma. "Оптимистичный" - значит предположение, что участники сети работают без мошенничества и нет необходимости доказывать каждый блок. Доказательства нужно предоставлять как раз для опровержения блока.
Как и в большинстве решений L2, средства, отправленные на Optimistic Rollups, хранятся на смарт-контракте в Ethereum. На этом же контракте регистрируются агрегаторы (валидаторы).
Агрегаторы обрабатывают транзакции в Optimistic rollup и публикуют их в Ethereum. Агрегатором может стать любой, заблокировав залог на смарт-контракте.
При этом любой участник сети, если увидел у агрегатора мошеннические действия, может отправить в сеть доказательство о его мошенничестве. Если оно подтвердится, L2 откатится к последнему валидному блоку, а у агрегатора-мошенника срезается часть него залога на смарт-контракте.
Преимущества
- Гибкие вычисления (EVM-совместимость).
- Увеличение масштабируемости Ethereum.
- Все данные хранятся on-chain.
- Любой пользователь, использующий dapp на Optimistic Rollup может пользоваться различными экономическими абстракциями (бесплатные транзакции, оплата ERC-20 токенами) и квази-мгновенными транзакциями (со скоростью около 200 мс).
Недостатки
- Низкая пропускная способность по сравнению с Plasma и ZK-rollups.
- Возникают некоторые проблемы безопасности.
Проекты
ZK-rollups
Zero Knowledge Rollups – это технология для L2 сетей, созданная для блокчейна Ethereum, в основе которой лежит zero-knowledge proof.
На данный момент решение ZK-Rollups является одним из самых перспективных механизмов масштабирования Ethereum.
ZK-Rollups улучшает уже созданные сети второго уровня, которые получают улучшенный уровень совместимости и повышенную безопасность.
Основное преимущество zero-knowledge proof сводится к возможности проверять наличие у пользователя необходимой для транзакции суммы без раскрытия его данных другим участникам сети. Такая функция обеспечивает высокий уровень приватности в публичных блокчейнах и других сетях.
Zero-knowledge proof
Zero-knowledge proof (Доказательство с нулевым разглашением) - это криптографический протокол, который позволяет подтвердить истинность данных, при этом не раскрывая самих данных.
Пример:
Представьте что вы находитесь в комнате с человеком, которому завязали глаза. На столе перед ним лежат два шарика - белый и черный. Вам нужно доказать ему, что шарики разных цветов, при этом не называя каких именно.
Как работают ZK-rollups
Схема работы ZK-rollups состоит из двух типов пользователей: "transactors" и "relayers".
"Транзакторы" - обычные пользователи, отправляющие транзакции. Смарт-контракт записывает данные в два дерева Меркла. В одном адреса, а в другом суммы переводов.
"Релейеры" - еще одно название для валидаторов или агрегаторов. Они собирают транзакции из сети для их "свертывания" в одну. Их работа заключается в генерации SNARK-proof. SNARK-proof сравнивает "снимок" блокчейна до транзакций и после и отправляет в основную сеть только разницу в виде хеша.
При этом "релейером" может стать любой, если он внес необходимый залог в смарт-контракт.
Преимущества
- Уменьшение комиссии за транзакцию.
- Быстрее чем Optimistic Rollup и Plasma.
- В каждой транзакции содержится меньше данных, что увеличивает пропускную способность и машстабируемость L2.
Недостатки
- Сложные вычисления для zero-knowledge proof требуют оптимизации данных для получения максимальной пропускной способности.
- Первоначальная настройка ZK-rollups цетрализованна.
- Отсутствие защиты перед квантовыми вычислениями.
Проекты
Полезные ссылки
Validity proofs vs Fraud proofs
Что такое zero-knowledge proof?
Telegram-канал с обучающими материалами для начала своего пути в мире криптовалют - priv.eth