May 23, 2024

Ethereum и его L2 решения

Что такое Ethereum?

Ethereum - это децентрализованная платформа с открытым исходным кодом, основанная на блокчейне, которая позволяет разрабатывать и размещать децентрализованные приложения (dApps) и создавать смарт-контракты.

Главное отличие Ethereum от Bitcoin заключается в том, что транзакции, помимо информации о передаче криптовалюты содержат код смарт-контрактов. Смарт-контракт - это программа, которая автоматически выполняет действие контракта, если его условия были соблюдены. Из-за этого цепочка блоков Ethereum становится все более и более тяжелой и медленной. Это приводит к тому, что комиссии за транзакции растут, а время подтверждения транзакций увеличивается.

Как формируется стоимость комиссии?

Комиссия в сети Ethereum называется "газ" (gwei) и представляет собой плату (чаще всего в eth), которую пользователь должен заплатить за выполнение транзакции или контракта на платформе.

Cтоимость транзакции зависит от следующих факторов:

  1. Сложность транзакции или контракта: Более сложные транзакции или контракты требуют большего количества вычислений и памяти и, следовательно, требуют большего количества газа.
  2. Загруженность сети: Когда сеть Ethereum сильно загружена, пользователи могут заплатить большую плату за газ, чтобы их транзакции или контракты были выполнены быстрее.

Очень важно помнить, что цену транзакций можно регулировать!

Layer 2 решения или как снизить нагрузку на сеть.

Layer 2 решения - это технологии, которые помогают решить проблемы c нагрузкой и скоростью обработки транзакций в блокчейне Ethereum, тем самым снижая стоимость комиссии. Они работают поверх основной цепочки блоков (L1) и позволяют обрабатывать транзакции вне цепочки, а затем записывать их в цепочку блоков пакетами.

Существует несколько типов L2 решений:

  1. State channels: безопасные двусторонние каналы между участниками, которые позволяют им совершать транзакции вне цепочки блоков и затем записывать только конечный результат в цепочку.
  2. Sidechains: отдельные цепочки блоков, которые связаны с основной цепочкой блоков и позволяют перемещать криптовалюту между цепочками. Это позволяет совершать транзакции на стороне цепочки, где меньше нагрузки, и затем записывать их в основную цепочку.
  3. Plasma: схожая с sidechains технология, которая позволяет создавать отдельные цепочки блоков, которые связаны с основной цепочкой блоков. Однако, в отличие от sidechains, Plasma позволяет создавать цепочки внутри цепочек (child chains), что делает ее более масштабируемой.
  4. 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 протоколов.