Ethereum и его L2 решения
Что такое Ethereum?
Ethereum - это децентрализованная платформа с открытым исходным кодом, основанная на блокчейне, которая позволяет разрабатывать и размещать децентрализованные приложения (dApps) и создавать смарт-контракты.
Главное отличие Ethereum от Bitcoin заключается в том, что транзакции, помимо информации о передаче криптовалюты содержат код смарт-контрактов. Смарт-контракт - это программа, которая автоматически выполняет действие контракта, если его условия были соблюдены. Из-за этого цепочка блоков Ethereum становится все более и более тяжелой и медленной. Это приводит к тому, что комиссии за транзакции растут, а время подтверждения транзакций увеличивается.
Как формируется стоимость комиссии?
Комиссия в сети Ethereum называется "газ" (gwei) и представляет собой плату (чаще всего в eth), которую пользователь должен заплатить за выполнение транзакции или контракта на платформе.
Cтоимость транзакции зависит от следующих факторов:
- Сложность транзакции или контракта: Более сложные транзакции или контракты требуют большего количества вычислений и памяти и, следовательно, требуют большего количества газа.
- Загруженность сети: Когда сеть Ethereum сильно загружена, пользователи могут заплатить большую плату за газ, чтобы их транзакции или контракты были выполнены быстрее.
Очень важно помнить, что цену транзакций можно регулировать!
Layer 2 решения или как снизить нагрузку на сеть.
Layer 2 решения - это технологии, которые помогают решить проблемы c нагрузкой и скоростью обработки транзакций в блокчейне Ethereum, тем самым снижая стоимость комиссии. Они работают поверх основной цепочки блоков (L1) и позволяют обрабатывать транзакции вне цепочки, а затем записывать их в цепочку блоков пакетами.
Существует несколько типов L2 решений:
- State channels: безопасные двусторонние каналы между участниками, которые позволяют им совершать транзакции вне цепочки блоков и затем записывать только конечный результат в цепочку.
- Sidechains: отдельные цепочки блоков, которые связаны с основной цепочкой блоков и позволяют перемещать криптовалюту между цепочками. Это позволяет совершать транзакции на стороне цепочки, где меньше нагрузки, и затем записывать их в основную цепочку.
- Plasma: схожая с sidechains технология, которая позволяет создавать отдельные цепочки блоков, которые связаны с основной цепочкой блоков. Однако, в отличие от sidechains, Plasma позволяет создавать цепочки внутри цепочек (child chains), что делает ее более масштабируемой.
- Rollups: технология, которая позволяет объединять (rollup) большое количество транзакций в одну транзакцию в основной сети (Layer 1) и выполнять их вне основной сети. При этом, rollups используют различные механизмы, такие как Optimistic Rollup и ZK-Rollup, для проверки и подтверждения транзакций вне основной сети и обеспечения их безопасности.
Optimistic Rollup и ZK-Rollup
С учетом того, как быстро набирают популярность такие Layer 2 решения как Optimism, Arbitrum One, zkSync и другие, я считаю нужным знать что это за звери.
Optimistic Rollup - это решение, которое использует optimistic подход к подтверждению транзакций. Это означает, что транзакции сначала считаются подтвержденными и записываются в L2 цепочку, а затем проверяются с помощью механизма optimistic fraud proofs (сначала доверяем, потом проверяем).
ZK-Rollup - это решение, которое использует более консервативный подход к подтверждению транзакций. Транзакции сначала проверяются с помощью доказательства с нулевым разглашением (zero-knowldege, отсюда и название ZK-Rollup) и затем записываются в L2 цепочку (сначала проверяем, потом доверяем). Виталик Бутерин считает, что они более совершенны чем optimistic rollup.
Доказательство с нулевым разглашением (zero-knowledge) - это криптографический протокол, который позволяет одной стороне (доказывающему) подтвердить истинность утверждения другой стороне (верификатору), при этом не раскрывая никакой дополнительной информации о ней (ни содержания, ни источника, из которого доказывающий узнал о правдивости).
На самом деле существует огромное количество модификаций zero-knowledge (например, сеть Starknet использует zkSTARK), и эта тема заслуживает отдельного поста с разбором механизмов работы ZK протоколов.