Блокчейн второго уровня (Layer 2)

Блокчейн второго уровня (Layer 2)

Решения первого уровня (Layer 1) — не единственные доступные варианты масштабирования блокчейна. Так, решения для масштабирования второго уровня (Layer 2) устанавливают дополнительный протокол, который строится поверх блокчейна, таких как Ethereum и Bitcoin.

Что такое блокчейн второго уровня

В то время как Layer 1 — это термин, используемый для описания основной архитектуры блокчейна, Layer 2 — это накладывающаяся сеть, которая лежит поверх основного слоя блокчейна первого уровня. Блокчейны второго уровня называются так, потому что они не записаны в коде блокчейна первого уровня.

Давайте рассмотрим Bitcoin и Lightning Network. Биткоин — это блокчейн первого уровня, а Lightning Network — второго.

Биткоин и Lightning Network
Биткоин и Lightning Network

Другими примерами блокчейна второго уровня являются Plasma, Polygon и так далее. Решения для масштабирования уровня 2 не требуют изменений в уровне 1. Они могут быть просто построены поверх первого уровня с использованием существующих элементов, таких как смарт-контракты.

Решения по масштабированию L2 помогают увеличить возможности L1 за счет обработки транзакций вне сети. Две основные возможности, которые можно улучшить, — это скорость транзакций и их пропускная способность. Например, в настоящее время Ethereum может обрабатывать около 15 транзакций в секунду на своем блокчейне L1. Ethereum 2.0 уже в некоторой степени масштабировал блокчейн Ethereum 1.0. В нем используется Proof of Stake и шардинг, что увеличило пропускную способность транзакций на первом уровне. Но решения по масштабированию L2 могут позволить Ethereum 2.0 обрабатывать сотни тысяч транзакций в секунду.

Кроме того, решения L2 могут значительно снизить комиссию за транзакции (плата за газ в блокчейне Ethereum).

Решения по масштабированию Layer 2

  • каналы
  • роллапы
  • плазма
  • сайдчейны

Хотя сайдчейны обладают собственными настройками безопасности, другие решения L2 (каналы, роллапы и плазмы) обычно полагаются на безопасность блокчейна L1.

Каналы

Первый тип решения для масштабирования L2 — это каналы, которые позволяют создать одноранговый канал между двумя сторонами. Стороны могут обмениваться неограниченным количеством транзакций вне сети (на уровне 2), отправляя на уровень 1 основной сети только две транзакции.

  1. Первая транзакция открывает соединение между L1 и L2.
  2. Вторая транзакция, хранящаяся на L1, закрывает соединение между L1 и L2.

Забирая большую часть транзакций с первого уровня (оффчейн транзакции), каналы второго уровня повышают скорость транзакций и снижают перегрузку сети, комиссии за транзакции и задержки транзакций.

Наиболее популярными типами каналов являются платежные каналы (payment channels) и каналы состояния (state channels).

Каналы состояния

Каналы состояния имеют дело с обновлением состояния в сети блокчейн. Давайте разберемся с каналами состояния на примере. Предположим, два игрока хотят сыграть в игру «Крестики-нолики» на блокчейне Ethereum. Для этого:

  1. Игроки создают смарт-контракт с несколькими подписями на блокчейне Ethereum, который содержит правила игры в крестики-нолики, информацию об игроках и призовой фонд в 1 ETH для победителя.
  2. Затем игроки входят в канал состояния и начинают игру. Каждый ход игрока создает оффчейн транзакцию, которая хранится в смарт-контракте.
  3. Когда выявляется победитель, игроки закрывают канал, подписывая окончательное состояние и передавая его в контракт с несколькими подписями. Окончательное состояние контракта сохранится в блокчейне L1 Ethereum, а призовые деньги в 1 ETH перечислятся победителю.
Канал состояния и игра в крестики-нолики на блокчейне Ethereum
Канал состояния и игра в крестики-нолики на блокчейне Ethereum

Платежные каналы

Платежные каналы похожи на каналы состояния, но работают они только платежами. Например, платежным каналом, используемым блокчейном Bitcoin, является сеть Lighting Network, а платежным каналом, используемым блокчейном Ethereum, является Raiden. Эти каналы позволяют создавать одноранговые платежные каналы между двумя сторонами. Две стороны могут переводить средства между собой неограниченное количество раз без участия блокчейна первого уровня. В конечном итоге, когда обе стороны решают закончить транзакцию, они могут закрыть канал. Окончательное состояние транзакции записывается в блокчейн первого уровня.

  1. Чтобы открыть платежный канал типа сети Lighting Network, два участника должны сначала внести в кошелек с мутиподписью некоторое количество монет (большее, чем общая сумма, участвующая в последующих транзакциях). Это первая транзакция для открытия канала, которая записывается в блокчейн первого уровня Биткоина.
  2. После внесения денег оба участника могут совершать неограниченное количество транзакций без взаимодействия с уровнем 1. Это может происходить неограниченное количество раз до тех пор, пока на кошельке имеется достаточный баланс.
  3. Если один из участников жульничает, все средства в канале будут отправлены другому участнику в качестве штрафа.
  4. Когда участники завершают транзакции, они подписывают окончательное состояние транзакции своими закрытыми ключами, и канал закрывается. Затем записывается окончательное состояние транзакции, и баланс переводится участникам на mainchain.

Только две транзакции (открытие и закрытие платежного канала) записываются на основной блокчейн. Это значительно снижает транзакционную нагрузку на сеть Bitcoin.

Как работают платежные каналы
Как работают платежные каналы

Примерами других каналов являются Celer Network, Connext, Kchannels и т.д.

Преимущества каналов

  1. Забирая транзакции с первого уровня (оффчейн транзакции), второй уровень разгружает сеть первого уровня и впоследствии увеличивает скорость транзакций. Например, основной блокчейн Биткоина (уровень 1) может обрабатывать около 10 транзакций в секунду, а сеть Lightning Network (уровень 2) может обрабатывать от тысяч до миллионов транзакций в секунду.
  2. Благодаря снижению комиссии за транзакции, можно осуществлять микроплатежи. Например, платежные каналы могут даже позволить пользователям оплачивать мелкие товары и услуги, такие как кофе, не затрагивая основной блокчейн.

Недостатки каналов

Хотя каналы имеют потенциал для эффективной обработки тысяч транзакций в секунду, у них есть несколько недостатков:

  1. Для проведения транзакций участники должны постоянно находиться в сети и использовать свои закрытые ключи для входа в систему. Это делает их уязвимыми для взлома и кражи, если злоумышленники взломают закрытые ключи.
  2. Участники должны заблокировать определенную сумму своих средств в кошельке с мультиподписью, чтобы открыть платежный канал. Хранение монет в горячем кошельке на мобильном телефоне, сервере или ПК делает их более уязвимыми для атак через Интернет, что приводит к краже криптовалют. С другой стороны, холодный криптокошелек не подключен к Интернету, что делает его более безопасным, но менее удобным.

Сайдчейны

Сайдчейны (Sidechains) — это отдельный блокчейн, который подключен к основному блокчейну через двустороннюю связь, чтобы помочь обработать некоторые данные.

Сайдчейн и блокчейн L1
Сайдчейн и блокчейн L1

Каждый из этих чейнов имеет свой собственный набор правил, функциональных возможностей и целей. В отличие от других решений второго уровня — каналов, плазмы и роллапов, которые используют безопасность первого уровня, сайдчейны сами отвечают за свою безопасность.

Еще один важный момент, связанный с сайдчейнами, заключается в том, что им нужны собственные ноды для подтверждения транзакций и создания блока. Они также имеют свои собственные алгоритмы консенсуса (такие как POW, POS, Proof of Authority, DPoS и т.д.) и параметры блока. Узлы, подтверждающие блок, получают вознаграждение за свою работу в сайдчейне таким же образом, как и во всех других блокчейнах. Хотя сайдчейны остаются независимыми друг от друга, вместе они образуют целую экосистему.

Как работают сайдчейны?

Основная работа сайдчейнов заключается в следующем:

  • обработать и проверить данные для блокчейна L1
  • или добавить функциональность, например, запустить смарт-контракты для блокчейна, который не может этого сделать (Биткоин, например).

Сайдчейны взаимодействуют с мейнчейном через двустороннюю привязку (2WP). Поэтому сайдчейны также называют привязанными (pegged sidechains).

Двусторонняя привязка (Two-way peg, 2WP)

2WP выступает в качестве посредника для облегчения передачи активов или монет с основной цепи (уровень 1) на побочную цепь (уровень 2) и наоборот. При этом монеты не передаются, а временно блокируются на основной цепи путем создания транзакции. Вторая транзакция создается для разблокирования такого же количества эквивалентных монет в сайдчейне. Монеты в основной сети могут быть разблокированы только тогда, когда эквивалентное количество монет в сайдчейне снова будет заблокировано. Это делается для того, чтобы избежать наличия свободных монет в обеих цепочках и предотвратить проблему двойной траты. Система 2WP позволяет заинтересованным лицам участвовать в транзакции на сайдчейне, не раскрывая информацию всей сети.

Блокировка и разблокировка монет основного блокчейна и сайдчейна
Блокировка и разблокировка монет основного блокчейна и сайдчейна

Наличие третьей стороны

Сторонняя организация/авторитет отвечает за функции блокировки и разблокировки между сайдчейнами и мейнчейнами. Начинается транзакция по блокировке монет. После достижения консенсуса между узлами подписанный блок передается в мейнчейн. Это автоматически блокирует монеты в блокчейне первого уровня.

Доверенный орган, контролирующий двустороннюю привязку, затем выдает сторонам транзакции эквивалентную сумму монет в сайдчейне. После этого стороны могут проводить множество транзакций в пределах сайдчейна. После завершения транзакций третья сторона проверяет транзакции и выпускает соответствующие монеты в основной цепочке, разблокируя их.

Вся конструкция сайдчейна основана на двусторонней привязке и доверенном органе для поддержания целостности транзакций между двумя цепочками. Присутствие авторитета может привести к централизации сети, если дать ему слишком много власти.

SPV

SPV (Simple Payment Verification) — это способ криптографически доказать, что монеты заблокированы на мейнчейне для их использования на сайдчейне. Данный метод не проверяет все предыдущие транзакции, что сильно повлияло бы на скорость транзакций. Вместо этого SPV доказывает, является ли транзакция, инициированная на мейнчейне, валидной и является ли она частью валидного блока. Благодаря SPV, узлам на сайдчейне не требуется загружать весь основной блокчейн каждый раз, когда требуется процесс валидации. Блокчейны Bitcoin и Ethereum поддерживают SPV в форме доказательств Меркла. Доказательства Меркла включают корень Меркла и путь Меркла.

Каждая пара хешированных транзакций хешируется вместе хеш-функцией и так далее, пока не будет получен один хеш для всего блока, который называется корнем Меркла или корневым хешем. С другой стороны, путь Меркла — это набор хеш-значений, необходимых для генерации корневого хеша. Например, путь Меркла для транзакции D будет состоять из хеш-значений Hash C, Hash AB, Hash EFGH и корня Меркла.

Путь Меркла для транзакции D
Путь Меркла для транзакции D

Узлы сайдчейна повторяют операцию хеширования для вычисления корневого хеш-значения. Если корневое хеш-значение, полученное в результате процесса, совпадает с корневым хеш-значением, присутствующим в SPV, это означает, что была инициирована транзакция, которая заблокировала монеты в мейнчейне.

Примеры сайдчейнов

Примерами сайдчейнов блокчейна Биткоина являются Liquid Network и Rootstock (RSK). В Liquid Network блоки добавляются каждую минуту, по сравнению с 10-минутным временем блока Биткоина. Добавив сайдчейн RSK к блокчейну, Биткоин может использовать смарт-контракты, что расширяет его функциональность. Таким образом, RSK может добавить к протоколу Bitcoin уровень, подобный Ethereum, и тем самым позволить протоколу Bitcoin разрабатывать DApps с использованием смарт-контрактов.

xDai Chain, POA network и Polygon (ранее известная как Matic network) — вот несколько примеров сайдчейнов блокчейна Ethereum. Взаимодействие сайдчейнов с мейнчейном Ethereum стало возможным благодаря использованию одной и той же виртуальной машины Ethereum (EVM). Таким образом, контракты, развернутые на блокчейне L1 Ethereum, могут быть напрямую развернуты на сайдчейне.

Преимущества сайдчейнов

  1. Сайдчейны увеличивают пропускную способность транзакций, забирая большинство транзакций в свой сайдчейн и обрабатывая транзакции с гораздо большей скоростью. Они также значительно снижают комиссию за транзакции. Например, Polygon, сайдчейн Ethereum, утверждает, что достиг масштабируемости в 65000 транзакций в секунду, при этом комиссия за транзакцию составляет около 1 доллара.
  2. Открытые блокчейны прозрачны и доступны для аудита. Каждая транзакция записывается и может быть проверена любым участником. Однако для корпоративного бизнеса открытые блокчейны не подходят из-за риска раскрытия большого количества специфической информации. Но с сайдчейнами конфиденциальность транзакций может быть сохранена. Данные о транзакциях, связанных с бизнесом, хранятся в сайдчейне, а мейнчейн выступает в качестве хранилища для проверки хешированных данных. В то время как мейнчейн является публичным и не требует разрешений, сайдчейн является частной и разрешенной только для удовлетворения потребностей бизнеса. Данные, специфичные для бизнеса, могут надежно храниться в сайдчейне и, следовательно, гораздо более безопасны и защищены от взлома.

Недостатки сайдчейна

Большинство сайдчейнов немного более централизованы, чем мейнчейн, поэтому они обеспечивают компромисс между безопасностью и скоростью. Нужно подбирать информацию, которая передается в сайдчейн, а наиболее конфиденциальные данные оставлять в мейнчейне для поддержания безопасности.

Плазма

Plasma — еще одно решение для масштабирования блокчейна второго уровня. Plasma использует смарт-контракты и деревья Меркла для создания неограниченного количества дочерних цепочек копий родительского блокчейна (в основном блокчейна Ethereum). Выгрузка транзакций из основного блокчейна (уровень 1) в дочерние цепочки (уровень 2) позволяет проводить быстрые и дешевые транзакции. Как и сайдчейн, каждая дочерняя цепочка рассматривается как отдельный блокчейн со своим собственным механизмом консенсуса, узлами и размером блока.

Как и каналы, плазма использует безопасность мейнчейна. Мейнчейн и дочерние цепочки связаны между собой с помощью «умных контрактов», которые содержат правила, регулирующие работу каждой дочерней цепочки. Контракты действуют как мост, позволяющий участникам перемещать цифровые активы/криптовалюты между мейнчейном и дочерними цепочками. Изначально все транзакции должны создаваться на мейнчейне.

Если в дочерних цепочках плазмы обнаруживаются какие-либо подозрения на мошенничество, пользователи плазмы могут выйти из плазменной цепочки и перейти в мейнчейн.

Как работает плазма?

  1. Оператор дочерней цепочки устанавливает правила, по которым она будет работать.
  2. Обработанные транзакции остаются в плазменных цепочках. Но заголовки блоков (содержащие корни Меркла) каждого блока плазменных цепочек передаются и записываются в блоки мейнчейна. Это снижает перегрузку мейнчейна и, таким образом, позволяет одновременно обрабатывать десятки тысяч транзакций в плазменных цепочках.
  3. Данные о дочерних цепочках проверяются с помощью «доказательств мошенничества» (fraud proofs). Доказательства мошенничества — это механизм, с помощью которого любой может определить, являются ли данные недействительными, используя доказательства Меркла. Например, когда в плазменной цепочке происходит мошенничество, будь то случай двойного расходования средств или когда один человек обналичивает больше, чем у него есть на всех счетах, любой может предоставить доказательство мошенничества и показать, что транзакция недействительна. Если будет доказано, что транзакция является мошеннической, она будет отменена.

Преимущества плазмы

  1. Плазменные цепочки более выгодны, чем каналы, потому что можно отправлять активы/монеты кому угодно, в то время как с каналами транзакция может происходить только между двумя сторонами.
  2. Преимущество плазменных цепочек перед сайдчейнами заключается в том, что плазменная цепочка защищена мейнчейном. Если сайдчейн подвергнется атаке, с мейнчейном ничего не случится, но ему не удастся ничего сделать для защиты пользователей на сайдчейне. А так как плазма использует безопасность мейнчейна, в случае любых атак пользователи плазменной цепочки могут выйти из нее и перейти в мейнчейн. Таким образом, безопасность плазмы выше, чем у сайдчейнов.

Недостатки плазмы

  1. Одним из недостатков плазмы является длительный период ожидания для пользователей, которые хотят вывести свои монеты из L2 и перевести их в L1.
  2. Пользователи должны ждать вывода средств не менее 7-14 дней. Этот срок необходим для проверки того, что операция по выводу средств не является мошеннической.

Примеры плазмы

Проект, использующий возможности Plasma на Ethereum, — это OMG Network.

Роллапы

Подобно каналам, сайдчейнам и плазме, роллапы (rollups) также являются масштабируемыми решениями, использующими блокчейн как первого, так и второго уровня. В роллапах транзакции, инициированные на мейнчейне, выполняются на Layer 2. Затем данные о выполненных транзакциях объединяются или сворачиваются в один блок, а затем публикуются на первом уровне блокчейна. Таким образом, решение по масштабированию получило название «роллапы». В результате Layer 1 весит намного меньше, поскольку вся вычислительная работа выполняется на Layer 2. Благодаря этому большее количество транзакций может обрабатываться параллельно, что делает блокчейн масштабируемым. Кроме того, подобно каналам и плазме, роллапы также полагаются на безопасность мейнчейна.

Роллапы объединяют выполненные транзакции в один блок и размещают его на Layer 1.
Роллапы объединяют выполненные транзакции в один блок и размещают его на Layer 1

Внутри слоя роллапа работает версия виртуальной машины Ethereum Virtual Machine или EVM. Это означает, что любая транзакция, возможная на основном блокчейне Ethereum, может быть выполнена на роллапе. Кроме того, это позволяет существующим приложениям Ethereum переходить на роллапы без написания нового кода.

Преимущества роллапов перед плазмой

Преимущество роллапов перед плазмой заключается в том, что данные каждой партии выполненных транзакций собираются в пакет и размещаются в мейнчейне. Но в случае с плазмой на мейнчейне записываются только корни Меркла. Объем данных, размещаемых на мейнчейне, является минимальным объемом, необходимым для подтверждения транзакции роллапов. Размещая данные на мейнчейне, любой может обнаружить мошенничество. Поэтому роллапы обеспечивают гораздо более высокую безопасность, чем плазма.

Как работают роллапы?

  1. На мейнчейне есть «контракт роллапа», который хранит корень состояния уровня роллапа. Корень состояния — это корень Меркла текущего состояния роллапа. Дерево Меркла получается из всех транзакций на роллапе.
Контракт Rollup на mainchain содержит корень состояния Layer 2
Контракт Rollup на mainchain содержит корень состояния Layer 2
  1. Когда транзакции происходят на уровне роллапа, корень состояния (корень Меркла) изменяется. Это означает, что корень состояния должен быть обновлен на контракте роллапа в мейнчейне. Для этого выполненные транзакции сжимаются, группируются и размещаются на контракте роллапа вместе с обновленным корнем состояния. Вместе с обновленным корнем состояния в пакет выполненных транзакций входят остатки на счетах пользователей, адреса, код контракта и т.д. Все дерево Меркла хранится в роллапе второго уровня, а не в мейнчейне.
  2. Пакет выполненных транзакций хранится в мейнчейне в сильно сжатом виде вместе с корнем предыдущего состояния (корень Меркла до обработки транзакций) и корнем нового состояния (корень Меркла после обработки транзакций).
Корень состояния обновляется на Rollup контракте, когда транзакции выполняются на Layer 2
Корень состояния обновляется на Rollup контракте, когда транзакции выполняются на Layer 2
  1. Контракт rollup проверяет, совпадает ли предыдущий корень состояния в пакете с его текущим корнем состояния. Если совпадает, он переключает корень состояния на новый обновленный корень состояния.

Виды роллапов

Существует два типа роллапов на основе доказательств для подтверждения правильности корней состояний в пакетах.

  • Zk-Rollups
  • Optimistic Rollups

Optimistic rollups

Новый пакет транзакций сжимается, объединяется и публикуется в мейнчейн вместе с корнем состояния. Контракт rollup отслеживает всю историю корней состояний каждой партии. Во время размещения транзакций не проверяется, что они были выполнены правильно. Другими словами, мы «оптимистично» публикуем новый корень состояния и данные транзакций в роллап контракт в мейнчейн. Если кто-то обнаружит, что одна партия с неверным корнем состояния была опубликована в роллап-контракте, он может создать «доказательство мошенничества». Доказательство мошенничества включает в себя:

  • Доказательство предварительного состояния корня Меркла, который должен быть перед обработкой транзакций.
  • Доказательство нового состояния корня Меркла, который должен быть после обработки транзакций.
  • Доказательство выполненных операций.

Доказательство мошенничества публикуется в роллап контракт в мейнчейн. Роллап контракт проверяет доказательство и сравнивает результат со своим корнем состояния. Если есть несоответствие, контракт откатывает пакет и все последующие пакеты, пока не вернется к последнему известному действительному пакету.

Примеры Optimistic rollups

  • Optimism
  • Arbitrum

Недостатки Optimistic rollups

Основным ограничением Optimistic rollups является более длительное время вывода средств. Если кто-то подозревает, что транзакция является мошеннической, он может оспорить ее и предоставить доказательства мошенничества в течение 7 дней. Таким образом, пользователям приходится ждать около недели, чтобы вывести свои активы из блокчейна второго уровня.

Zk-Rollups

Поскольку optimistic rollups работают на основе убеждения «невиновен, пока не доказано, что виновен», ZK-Rollups полагается на убеждение «доверяй, но проверяй». Пакет транзакций обновляется в мейнчейне только после предоставления доказательства достоверности, называемого SNARK (succinct non-interactive argument of knowledge, краткий неинтерактивный аргумент знания с нулевым разглашением). SNARK — это криптографическое доказательство, которое подтверждает, что новый корень состояния является правильным результатом выполнения пакета транзакций на уровне ZK-роллапа. Доказательство достоверности публикуется в контракте роллапа, поэтому любой может использовать его для проверки транзакций в конкретной партии на уровне роллапа.

SNARK также называют доказательствами нулевого знания или ZK-доказательствами, поскольку они позволяют любому человеку проверить достоверность транзакций, не раскрывая никакой информации о транзакции. Другими словами, любой может проверить, что данные существовали, даже если у него нет доступа к самим данным.

Примеры Zk-Rollups

  • Loopring
  • Hermez
  • Starkware

Недостатки роллапов

  • Поскольку данные о выполненных транзакциях объединяются и размещаются в мейнчейне, масштабируемость становится ограниченной. Масштабируемость с помощью роллапов можно увеличить в 100 раз, но роллапы не могут масштабировать блокчейн бесконечно.
  • Хотя перегрузка мейнчейна снижается, поскольку вся вычислительная работа выполняется вне сети на втором уровне блокчейна, транзакции выполняются путем запуска EVM в роллапах. Таким образом, и на роллапах выполняется то же самое, что и в мейнчейне Ethereum — с пользователей взимается плата за газ. Но плата за газ на уровне роллапов намного дешевле, чем на Ethereum.
Понравилась статья? Поделитесь в соцсетях

Похожие записи

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *