Перед тем как вы погрузитесь в изучение статьи, обратите внимание на тот факт что всё упомянутое в ней не является финансовой рекомендацией для принятие более взвешенного решения просьба провести свое собственное исследование.
В Ethereum ежедневно проходят транзакции на миллиарды долларов и запускается множество приложений в секторах децентрализованных финансов (DeFi) и NFT.
Однако пространство в блоках Ethereum ограничено, и все эти приложения конкурируют за одно и то же простратнство в блоках, а это значит, что транзакции становятся дороже и задерживаются при перегрузке сети.
На практике, для пользователей, ончейн транзакции (например, сделка в Uniswap) на Ethereum могут обходиться в десятки и сотни долларов, в зависимости от перегруженности сети, что непомерно дорого. Но с другой стороны, это выгодно валидаторам и стейкерам, которые и извлекают выгоду из транзакционных сборов, получая более высокую прибыль в сравнении со временами когда активность в сети ниже:
К счастью, уже существуют и разрабатываются множество решений для масштабирования, каждое из которых имеет свои собственные преимущества и недостатки.
В общем эти решения можно разделить на два уровня:
Каналы состояния позволяют пользователям совершать множество транзакций вне цепи, отправляя в сеть Ethereum только две транзакции — одну при открытии и вторую при закрытии канала. Это освобождает основную сеть от необходимости проверять множество транзакций, но обеспечивает тот же уровень безопасности. Участникам сети необходимо разместить депозит в мультисиг контракт — контракт, для исполнения которого требуется пороговое количество подписей (например, 3 из 5). После внесения средств в канал участники могут совершать сделки столько раз, сколько захотят. Когда участникам больше не нужен канал, они могут отправить результат, подождать некоторое время, чтобы убедиться, что результат не оспорен, а затем отправить финальную транзакцию на цепь и разблокировать свои средства.
Примером упрощенного канала состояний является платежный канал между двумя или более сторонами. Он полезен при большом количестве транзакций (например, микроплатежей) между известным числом участников. Транзакции осуществляются мгновенно, а комиссии, необходимые для обработки транзакции на блокчейне Ethereum, значительно снижаются.
Недостатком является то, что создание канала и его активный мониторинг требуют времени, чтобы убедиться в отсутствии злоумышленников. Кроме того, средства блокируются на время существования канала, а смарт-контракты внутри не поддерживаются.
В данный момент это, очевидно, не самый популярный тип решения масштабируемости Ethereum.
Plasma — представленное в 2017 году решение для масштабирования блокчейна Ethereum. Это отдельный блокчейн, привязанный к Ethereum Mainnet, но выполняющий транзакции вне цепочки и имеющий собственный механизм проверки блоков. Цепи Plasma по сути, уменьшенные копии Ethereum Mainnet.
Слоев таких цепей может быть много, что позволяет создавать дочерние цепочки дочерних цепочек, и так до бесконечности.
В отличие от каналов состояния, Plasma также может работать с гибким количеством пользователей, не требуя заданного числа с самого начала. Кроме того, существует высокая степень безопасности и возможности восстановления средств.
Слабость заключается в том, что Plasma не поддерживает исполнение смарт-контрактов, выполняя только базовые функции, такие как переводы или свопы.
Кроме того, необходим надзор над Plasma-цепью, чтобы своевременно обнаружить любые ошибки и предотвратить эксплойты.
Plasma перестала быть актуальным решением для Ethereum из-за смещения акцента на роллапы и сайдчейны.
Хотя Plasma чайлдчейны и сайдчейны похожи друг на друга, они отличаются с точки зрения безопасности.
Чайлдчейн Plasma опирается на механизм безопасности Ethereum, передавая в блок эфира полное древо транзакций Меркла. А сайдчейн — это отдельный блокчейн, со своим собственным механизмом консенсуса и гарантиями безопасности, работающий параллельно с Ethereum и взаимодействующий с ним. Он подключается к Ethereum с помощью двустороннего моста.
Сайдчейны не зависят от блокчейна и могут поддерживать другие L1 цепи. Они взаимодействуют с основной цепью только при обновлении состояния своего реестра.
Преимущество заключается в том, что сайдчейн — это блокчейн с собственными токенами, способный поддерживать смарт-контракты, потому имеющий множество вариантов использования.
Недостатком является то, что пользователям необходимо передавать хранение средств в сайдчейн, у которого менее развитая децентрализация и безопасность по сравнению с Ethereum. Кроме того, токен сайдчейна также должен иметь ценность и быть экономически жизнеспособным.
Роллапы обрабатывают транзакции на другом, более быстром блокчейне (L2), а затем переносят данные о транзакциях обратно на основной блокчейн (L1 или mainnet) за меньшую цену. Роллапы позволяют объединить тысячи транзакций в одном блоке. По сути это такие же сайдчены, от которых отличаются способом доказательства достоверности передаваемых на L1 данных.
Существует два основных типа роллапов: Оптимистичные роллапы и ZK-роллапы.
После проведения транзакций роллап передает пакет данных о транзакциях в основную сеть. Все транзакции передаваемые на L1 заведомо считаются действительными пока не будет доказанно обратное, поэтому эти роллапы и называются Оптимистичными. Когда вредоносное действие обнаруживается, злоумышленник теряет свои средства поставленные на кон, а тот кто подал жалобу и первым обнаружил вредоносное действие получает эту долю в награду.
Из-за того что для обнаружения и доказательства таких вредоносных действий требуется определенный промежуток времени, окончательность транзакций в оптимистичных роллапах наступает не сразу. Что является их недостатком по сравнению со следующим типом роллапов.
К самым популярным проектам из этой категории относятся Optimism, Arbitrum.
В то время как оптимистичные роллапы предполагают, что транзакции действительны по умолчанию, и выполняют проверки только в случае возникновения проблем, ZK Роллапы выполняют все вычисления вне цепочки и предоставляет доказательство действительности для хранения в Ethereum.
Zero Knowledge proofs (ZK) — Доказательство с нулевым разглашением, позволяющие одному человеку доказывать другому, что утверждение является верным, не раскрывая какой-либо информации, выходящей за рамки действительности утверждения.
Такие доказательства могут быть двух видов: ZK SNARK и ZK STARK.
Преимущества и недостатки каждого из-них:
В данный момент технологии zk-SNARKs выглядят более развитыми по сравнению с zk-STARKs. У этого несколько причин.
1ая причина: zk-Snarks были описаны и воплощены в жизнь гораздо раньше, примерно в 2012 году, тогда как zk-STARKs были впервые описаны в 2018 году.
2ая причина: zk-SNARKs имеет более богатую библиотеку для разработчиков, открытых кодов, и проектов, из-за чего разработчики гораздо активнее работают с этой технологией. Первым проектом воплотившим эту технологию является Zcash.
3ая причина: zk-SNARKs требуют на газ примерно 24% от того что требует технология zk-STARKs, из-за чего конечному пользователю выгоднее использовать первую. Происходит это потому что STARKs имеют гораздо большие размеры доказательств, чем SNARKs.
Но, раз технология STARKs появилась и спонсируется из фонда Ethereum, значит у него тоже есть какие-то преимиущества.
1ое: STARKs не требуют начальной доверительной установки между проверяющим и проверяемым.
2ое: В zk-SNARKs, чем больше требуется вычислений, тем больше сторонам приходится отправлять сообщений туда и обратно. А в zk-STARK количество циклов обмена данными между проверяющими и верифицирующими остается постоянным, относительно любого увеличения вычислений.
Общим преимуществом ZK решений является отсутствие задержек при перемещении средств между Layer1 и Layer2, поскольку подтверждение действительности, принятое контрактом, уже верифицировало средства. Таким образом, если пользователь решает вывести средства с Layer2 в Layer1, расчеты происходят быстрее, чем на Оптимистичных ролл-апах.
Среди проектов, работающих над ZK Rollups, — Loopring, Zksync (Matter Labs), Aztec, Starkware, Hermez.
Validium использует доказательства достоверности (как ZK Rollup), но данные не хранятся в цепочке Ethereum. Средства в Validium надежно защищены, поскольку каждый перевод должен быть авторизован. Сохранение данных вне мейнчейна может обеспечить до 20 000 TPS на цепочку Validium, которые могут работать параллельно друг с другом.
Преимуществом является отсутствие задержки при выводе средств и отсутствие уязвимости к атакам, с которыми сталкиваются системы с защитой от мошенничества.
Недостатком является ограниченная поддержка смарт-контрактов инеобходимость высокой вычислительной мощности.
Недостатком этих разнородных решений для масштабирования является отсутствие единого, глобального состояния и раздробленность экосистемы. Но, несмотря на то, что вышеперечисленные решения для масштабирования разделены на четкие группы, в реальности технологии можно комбинировать. Примером проекта который пытается комбинировать Optimistic и ZK решения, а так же создает плаформу для интероперабельности L2 решений — является Polymer Labs.