Layer-2 решения: что это?
Масштабирование второго уровня — это технология, которая работает поверх протокола блокчейна и повышает скорость и эффективность базового блокчейна. Вот как это работает в деталях.
- Термин «Уровень-1 (Layer-1)» означает сам блокчейн, а уровень-2 (Layer-2)- к сети, которая располагается поверх основного блокчейна.
- Решения Layer-2 призваны решить проблему масштабируемости путем обработки транзакций вне основной сети.
- Преимущества решений Layer-2 включают увеличение количества транзакций в секунду (TPS), снижение платы за газ, поддержание безопасности и сети, ориентированные на конкретные приложения.
Подписывайтесь на мой телеграм-канал. Там я публикую эксклюзивный контент и свои сделки!
С момента своего появления в 2013 году Ethereum стал катализатором огромного роста в индустрии блокчейна — от использования его в качестве валюты для транзакций (ETH) до использования его неизменности для ведения записей и криптографической защиты.
Но, как и многие другие блокчейны, Ethereum достиг своего предела в масштабируемости. По состоянию на лето 2022 года Ethereum обрабатывает примерно 500 000 транзакций в день, что соответствует 30 транзакциям в секунду. Для сравнения, платежная система Visa способна обрабатывать до 150 миллионов транзакций в день и 65 000 транзакций в секунду, что значительно превосходит возможности Ethereum.
На практике достижение пределов блокчейна приводит к перегрузке сети (когда на обработку транзакции может уйти несколько часов) и чрезвычайно высоким комиссиям за газ.
Появился второй уровень, иногда называемый уровнем связи данных (Data Link Layer). Это решение призвано решить проблему масштабируемости блокчейна путем обработки транзакций в сторонних сетях (side-chains) вместо основной сети Ethereum (Layer-1). Это не только снижает нагрузку на сеть, но и сохраняет стандарты безопасности и децентрализации основного блокчейна.
Layer-1 относится к самой распределенной базе данных — сети, которая объединяет все узлы блокчейна в единую систему с лежащими в ее основе механизмами консенсуса. Например, Layer-1 в Bitcoin — это сеть Bitcoin, а Layer-1 в Ethereum — это сеть Ethereum.
Layer-2, однако, является оверлейной сетью, которая располагается поверх блокчейна. Lightning Network — это решение Layer-2 для Bitcoin. Plasma, Polygon, Optimism и Arbitrum — это лишь некоторые из сетей второго уровня, созданных на Ethereum.
В настоящее время Ethereum является одним из самых совершенных блокчейнов с точки зрения безопасности и стабильности сети. Большинство частных лиц и компаний предпочитают использовать этот блокчейн для транзакций или создания проектов. Однако по мере увеличения количества транзакций сеть становится все более перегруженной.
Чтобы решить эту проблему, валидаторы отдают предпочтение подтверждению транзакций с более высокими ценами на газ. Но эти более высокие затраты ложатся на пользователя, повышая минимальную плату за газ, которая порой может превышать стоимость самой транзакции.
При использовании Layer-2 базовой сети (mainnet) не нужно обрабатывать такие большие объемы данных, поскольку она отправляет эти данные по различным каналам обработки (третьим лицам), записывая только конечный результат в блокчейн Layer-1.
- Увеличение количества транзакций в секунду (TPS) позволяет улучшить пользовательский опыт и снизить перегрузку сети.
- Транзакции консолидируются в один пакет перед записью в основной сети, что снижает плату за газ.
- Любые обновления в решении Layer-2 не изменяют базовый блокчейн, поскольку Layer-2 построен поверх блокчейна, что помогает обеспечить безопасность сети.
- Позволяет создавать сети Layer-2 для конкретных приложений, которые специально разработаны для оптимизации определенных функций.
- Вероятен отток ликвидность из основного блокчейна
- Потенциальные уязвимости безопасности и конфиденциальности; пользователям следует провести собственное исследование (DYOR) перед использованием решений Layer-2
- Может затруднить взаимодействие с другими приложениями на базе Ethereum (например, при использовании L-2).
Решения Layer-2 в основном направлены на то, чтобы перенести большинство транзакций из основной сети на сайдчейны. За короткий период появилось множество проектов Layer-2, направленных на решение этой задачи. Однако лишь немногим из них удалось решить наиболее важные проблемы. Ниже приведены три примера решений по масштабированию блокчейна второго уровня:
Канал состояния — это двусторонний канал связи между участниками. Другими словами, нет необходимости в подтверждении транзакций третьей стороной, например, валидатором; это повышает скорость транзакций.
Процесс начинается с запечатывания части блокчейна с помощью мультиподписи (multisig), чтобы обеспечить прямое взаимодействие между адресантом и адресатом без необходимости передавать что-либо майнерам. После подтверждения транзакции окончательное состояние канала добавляется в блокчейн.
Примеры: Lightning Network в Bitcoin, Raiden Network в Ethereum.
- Управление сложными взаимодействиями
- Обрабатывает чрезвычайно высокую пропускную способность транзакций при очень низкой стоимости
- Высокие затраты на настройку и расчетные каналы
- Средства должны быть заблокированы в открытых платежных каналах
- Не поддерживает открытое участие
Роллапы с нулевым значением (ZK-Rollups) объединяют транзакции, взятые с основного блокчейна, и генерируют криптографическое доказательство, известное как SNARK (Succinct Non-Interactive Argument of Knowledge, краткий неинтерактивный аргумент о знании). Это доказательство, также называемое доказательством достоверности, является единственной записью, требуемой для внесения в основной блокчейн; следовательно, снижается плата за газ, которую пользователи понесли бы от обработки всех данных по отдельности.
Примеры: Immutable X, Polygon Hermez, Starkware.
- Безопасная и децентрализованная
- Почти мгновенные переводы
- Сложность вычисления для небольших приложений с меньшей активностью на цепи
- Не все ZK-роллапы обеспечивают совместимость с виртуальной машиной Ethereum (EVM)
- На порядок транзакций может влиять пользователь
В отличие от ZK-роллапов, оптимистические роллапы полагаются на доказательства мошенничества. Проще говоря, агрегаторы публикуют минимальную информацию на Уровне-1 и предполагают, что данные верны.
Если транзакция действительно достоверна, основному блокчейну не требуется делать ничего больше. В случае мошеннической транзакции оптимистичный роллап проводит проверку на мошенничество и наказывает отправителя.
Примеры: Arbitrum, Boba, Cartesi, Fuel Network, Optimism.
- Низкая плата за газ
- Повышенная пропускная способность
- Возможность заключения смарт-контрактов
- Безопасность
- Длительное время вывода средств
- Потенциальное несоответствие стимулов и поощрений между участниками сети
- Базовый уровень-1 может подвергать транзакции цензуре.
Блокчейн-проекты и решения Layer-2 на блокчейне Ethereum стали одним из самых распространенных ответов на вопросы масштабируемости блокчейна. При большом внимании к этой технологии она обещает будущее с широким распространением, сопровождаемым низкими комиссиями за транзакции.
Решения Layer-2, представленные выше, являются первой попыткой индустрии решить проблемы масштабируемости.
Подписывайтесь на мой телеграм-канал. Там я публикую эксклюзивный контент и свои сделки!
Все примеры, приведенные в данной статье, предназначены исключительно для информационных целей. Вы не должны рассматривать любую такую информацию или другие материалы как юридические, налоговые, инвестиционные, финансовые или другие советы. Ничто из содержащегося здесь не является призывом, рекомендацией, одобрением или предложением инвестировать, покупать или продавать любые криптоактивы. Доходы от покупки и продажи криптоактивов могут облагаться налогом, включая налог на прирост капитала, в вашей юрисдикции.
Прошлые показатели не являются гарантией или предсказателем будущих показателей. Стоимость криптоактивов может увеличиваться или уменьшаться, и вы можете потерять всю или значительную часть стоимости покупки. При оценке криптоактива необходимо провести исследование и проявить должную осмотрительность, чтобы сделать наилучшее возможное заключение, поскольку ответственность за любые покупки лежит исключительно на вас.
Лекция 2. Протоколы канального уровня
Канальный уровень (L2, link layer) занимает особое место в иерархии сетевого взаимодействия: он согласует физические аспекты передачи с логическим представлением устройства для системы и программ. У канального уровня нет четких границ: он тесно интегрирован с физическим уровнем ниже, а с другой стороны, выше канального уровня действуют протоколы, которые не относящиеся к сетевому уровню (например, ARP).
Мы будем рассматривать в основном вопросы логического характера: какие байты передаются и для чего, а не как они кодируются в среде передачи. Мы также ограничимся популярнейшей реализацией — Ethernet.
Вышестоящий логический подуровень называется LLC (logical-link control) и реализуется драйверами и ОС; подуровень для доступа к среде передачи называется MAC (media access control) и реализован в прошивке сетевой карты.
Канальный уровень действует в локальных сетях (local area network, LAN), то есть между устройствами, соединенными так, что могут передавать данные друг другу напрямую. Такую сеть называют еще L2-сегментом. В плане реализации это сети квартир, служебных и офисных помещений (но не полных организаций), размером единицы-десятки машин.
Задачи канального уровня:
- Формирование и считывание кадров (frame), то есть блоков данных (MAC).
- Доставка кадров отдельному узлу в пределах единой среды передачи (LLC).
- Обеспечение для сетевого уровня отправки передачи пакетов в локальной сети.
Кадр Ethernet
Стандартизацией Ethernet занимается IEEE (Институт инженеров электротехники и электроники, читается «ай-трипл-и»). В стандартизации L1 и L2 в целом участвует МЭК (IEC), ISO, ITU (Международный телекоммуникационный союз). В настоящее время актуален стандарт IEEE 802.3 — Ethernet II.
Структура кадра Ethernet показана на рис. 1:
Рисунок 1: Структура кадра Ethernet IEEE 802.3 (адаптировано, CC-BY-SA 3.0)
Адрес отправителя и получателя — MAC-адреса из шести октетов каждый. MAC-адреса записываются через двоеточия ( 12:34:56:78:90:ab ), через дефисы ( 12-34-56-78-90-ab ) или по два байта через точки ( 1234.5678.90ab ). Анализируя адрес назначения, узел определяет, ему ли предназначен пакет, или он пришел лишь потому, что с адресатом общая среда передачи. Адрес отправителя не влияет на прием кадра, но может использоваться для формирования ответа.
Тип протокола вышестоящего уровня ( EtherType ) — двухбайтовый код. Например, для IPv4 он равен 0x0800 ( 0x08 , 0x00 — порядок байтов сетевой). По нему получатель определяет, как обрабатывать полезную нагрузку (payload). Все типы имеют код от 1536 и выше, потому что в устаревшем стандарте Ethernet (не II) у тех же байт был иной смысл — длина полезных данных от 0 до 1500.
Контрольная сумма ( CRC/FCS — control redundant checksum / frame check sequence) нужна для защиты от ошибок передачи. Отправитель считает контрольную сумму на основе всех остальных октетов кадра и записывает в кадр, а получатель повторяет расчет и сверяет с присланной. В случае несовпадения можно сделать вывод, что кадр был поврежден при передаче, и не обрабатывать его. Часто такая фильтрация делается на MAC-подуровне, а LLC контрольную сумму даже не наблюдает (кроме траты четырех байтов длины).
Преамбула (preamble) и межкадровый интервал (inter-frame gap) относятся к MAC-подуровню и необходимы, чтобы различать начало и конец кадра в потоке битов, генерируемом физическим уровнем. Размер межпакетного интервала отличается в разных вариантах Ethernet, от 1 до 12 октетов.
Максимальным размером кадра считается 1518 октетов с учетом контрольной суммы. Преамбула (8 октетов) и межкадровый интервал (например, 12 октетов у FastEthernet) в длину кадра не входят, но их необходимо учитывать при расчетах. Пример: известна емкость канала FastEthernet — 10 Gbps (гигабит в секунду), нужно рассчитать скорость в 64-байтовых (64 B) пакетах в секунду (pps).
Завышенная оценка: 19,53 Mpps = 10×10⁹ bps / (8 b/B × 64 B/p)
Правильный расчет: 14,88 Mpps = 10×10⁹ bps / (8 b/B × (64 + 8 + 12) B/p)
Ограничение сверху на размер кадра влечет ограничение на размер полезных данных в нем — MTU (maximum transmission unit), для Ethernet это 1500 октетов, но может быть настроено меньше. Сетевому уровню известно MTU, поэтому L3 не генерирует сообщений, превышающих его. Если же принят пакет L3 большего размера и требуется переслать его дальше, на сетевом уровне создаются два пакета с частями исходного и посылаются отдельными кадрами — происходит фрагментация, которая будет более подробно рассмотрена вместе с IP.
Адресация на канальном уровне
MAC-адреса принадлежат сетевым портам устройств и идентифицируют их. В порт может поступить кадр с любым MAC-адресом назначения, и узел должен решить, считать ли, что кадр направлен ему. В свою очередь, кадр может быть направлен:
- одному конкретному узлу — адресная рассылка (unicast);
- каждому узлу некой группы — многоадресная рассылка на L2 (MAC multicast);
- всем узлам локальной сети — широковещательная рассылка (broadcast).
Соответственно, узел обрабатывает кадр, если MAC-адрес назначения:
- равен ff:ff:ff:ff:ff:ff (широковещательный адрес);
- является групповым адресом (см. ниже), и узел считает себя членом группы;
- совпадает с MAC-адресом, принадлежащим сетевому порту, принявшему кадр.
Большая часть трафика является адресной рассылкой. Непременное техническое требование к MAC-адресам сетевых портов для этого — уникальность в локальной сети. Как достигается уникальность, зависит от происхождения MAC-адресов.
MAC-адреса могут назначаться вручную администратором или автоматически, например, при создании виртуальных машин. За уникальностью при этом следит администратор или программа. По стандартам IEEE локально выданные MAC-адреса (locally administered) должны иметь 1 в определенном бите, например, 0a:11:11:11:11:11 ( 000010 1 0:… ), см. рис. 2.
Портам физических устройств MAC-адреса назначаются при производстве. Производители не могут заранее знать, какие два устройства окажутся в одной сети, поэтому им назначают адреса, уникальные глобально (globally unique). Для этого регистратор IEEE выделяет производителям трехбайтовые номера (organizationally unique ID, OUI), которые используются как первые три октета MAC-адреса. Остальные три октета производитель выбирает сам так, чтобы не было двух портов с одинаковыми адресами. В Wireshark можно видеть отображаемые MAC-адреса в виде Routerbo_b3:0f:d0 , где октеты OUI заменены сокращенным названием производителя (в данном случае — RouterBoard).
Рисунок 2: Структура MAC-адреса (источник, CC-BY-SA 2.5)
Широковещательная рассылка используется либо когда MAC-адрес целевого узла неизвестен, либо для оповещения всех узлов. Чаще всего она встречается с протоколом ARP (см. ниже).
Многоадресная (или групповая) рассылка используется в основном в корпоративных и промышленных сетях. Групповые MAC-адреса имеют нечетный первый октет. Групповая рассылка используется, чтобы отправить кадр:
- Сразу всей группе заинтересованных узлов. В чем именно заинтересованных, то есть какой именно группе, определяется выбранным групповым адресом.
- Одному узлу, который в данный момент выполняет известную роль, но при этом неизвестно, какой это конкретно узел. (Термин «групповая рассылка» здесь условен.)
Так далее многоадресная рассылка подробнее не изучается, рассмотрим пример: трансляцию IP-телевидения в сети провайдера абонентам, которые могут переключать каналы.
1. Рассылка для группы узлов. Если транслировать все каналы всем (широковещательно), сеть будет перегружена. Если транслировать для каждого абонента адресно, придется отправлять одни и те же данные несколько раз и отслеживать текущие каналы абонентов, что усугубляет нагрузку на сервер трансляций.
Здесь группа заинтересованных узлов — зрители телеканала. Многоадресная передача позволяет серверу отправлять данные каждого канала один раз, а при распределении трафика по сети (см. ниже) кадры будут продублированы и получены правильными узлами.
В случае IP-телевидения многоадресная рассылка на канальном уровне используется в сочетании с многоадресной же рассылкой на сетевом уровне (IP multicast), чтобы транслировать передачи между локальными сетями. При этом используются специальные IP-адреса, а групповые MAC-адреса вида 01:00:5e:xx:xx:xx (IPv4) или 33:33:00:xx:xx:xx (IPv6) строятся из них по правилам: xx заменяются младшими байтами IP-адреса.
2. Отправка узлу по его роли. Сервер провайдера соединен с абонентами физически не напрямую, а через промежуточные сетевые устройства. Предположим, что это коммутатор, в один порт которого подключен сервер трансляций, а в другие порты — абоненты (реальная сеть существенно сложнее). Получив кадр трансляции, коммутатор должен направить его не во все порты, а только в те, к которым подключены абоненты, смотрящие один канал. Но откуда известно, в какие?
При переключении канала абонент шлет на адрес своей новой группы (смотрящих новый канал) пакет по специальному протоколу IGMP (Internet Group Management Protocol). Коммутатор отслеживает кадры всех групп 01:00:5e:xx:xx:xx . Получив такой кадр с порта, коммутатор делает вывод, что в дальнейшем кадры для этой группы нужно отправлять в порт, с которого пришло оповещение.
В той же ситуации абонент может отправить еще на специальный адрес, означающий «все роутеры», оповещение, что ему больше не нужно присылать кадры канала, который он смотрел ранее. Коммутатор заинтересован в оповещении и учтет его.
Протокол разрешения адресов (ARP)
Чтобы сформировать кадр, необходимо знать MAC-адрес получателя. Вышестоящие уровни не обладают этой информацией, а только адресом L3 (обычно IP-адресом). Получателю свой MAC-адрес известен, следовательно, он и должен его сообщить. По получателю неизвестно, что с ним пытаются связаться. Поэтому отправитель должен предварительно отправить запрос. Это нельзя сделать адресно (нет собственно MAC-адреса), нельзя сделать групповой рассылкой (любой узел может быть получателем — такая группа включала бы все узлы), следовательно, остается широковещательная рассылка запроса.
Протокол разрешения адресов (address resolution protocol, ARP) и предназначен для нахождения MAC-адреса по IP-адресу. Структура его пакетов, одинаковая для запросов и ответов, приведена на рис. 3.
Рисунок 3: Формат пакета ARP (источник, CC-BY-SA 4.0)
Клиент шлет широковещательный пакет на MAC-адрес ff:ff:ff:ff:ff:ff со своего MAC-адреса. Смысл пакета — запрос, чтобы тот узел, которой обладает указанным IP, ответил клиенту. IP-адрес укаызывается как target protocol address, MAC-адрес и IP-адрес отправителя заносятся как sender addresses, а target hardware address обнуляется.
Если сервер, получивший запрос ARP, имеет искомый адрес, он формирует ответ со своего MAC на MAC клиента. В ответе дублируется искомый IP и MAC-адрес сервера (как sender protocol и hardware address), а также MAC-адрес и IP-адрес запросившего (как target addresses).
При получении ответа ARP клиент считывает MAC-адрес и IP-адрес из ответа и добавляет их в свою таблицу ARP. (Содержимое таблицы в Windows, Linux и MacOS можно просмотреть программой arp .)
Может показаться, что ответ ARP избыточен: MAC-адрес сервера уже указан в кадре как MAC отправителя, а искомый IP-адрес дублируется из запроса. Но избыточности нет:
Клиент может одновременно сделать несколько ARP-запросов доя разных IP. Если не указывать искомый IP в ответе, клиент не сможет определить, к какому IP относится MAC сервера.
В сложных случаях для передачи запросов ARP может использоваться один протокол канального уровня, а для связи с искомым узлом — другой. При этом адрес отправителя в кадре-ответе и адрес отправителя в ответе ARP (содержимом кадра) не будут или даже не могут совпадать. Строго говоря, ARP не ограничен MAC- и IP-адресами, но применяется в основном для них.
При включении в сеть некоторые устройства и ОС посылают так называемые анонсы ARP (ARP announcement) или приветственные ARP (gratuitous ARP): ответы ARP самому себе, но посланные на широковещательный адрес. Таким образом присутствовавшие в сети устройства могут узнать о новом.
Очерк устройства и иерархической архитектуры сетей
Из-за тесной связи канального и физического уровня рассуждать о протоколах L2 непродуктивно без представления, хотя бы краткого, об устройствах и способах их связи, применяемых в локальных сетях на практике.
Физическая топология Ethernet-сетей почти повсеместно — «звезда», то есть несколько устройств, подключенных к центральному отдельными кабелями. Таким образом, физически общей средой являются только каждый из этих кабелей, и такую среду делят всего два устройства.
Что это за устройства?
- Оконечные устройства, создающие и потребляющие передаваемую по сети информацию: компьютеры, смартфоны, IP-телефоны, камеры, датчики и другие.
- Промежуточные устройства, обеспечивающие работу сети: коммутаторы, маршрутизаторы, системы фильтрации трафика и другие.
Для средних и крупных организаций (десятки-сотни и сотни-тысячи узлов соответственно) целесообразно связывать устройства в иерархическую архитектуру, показанную на рис. 4.

Рисунок 4: Иерархическая архитектура сети (источник, по материалам Cisco Press)
Структура реальной сети может сильно отличаться, но как правило, чем крупнее сеть, тем более отчетливо в ней проявляются черты, предписываемые архитектурой, поскольку она рациональна. Подробное обоснование и описание можно прочитать в учебниках Cisco, которая эту архитектуру предложила.
Основное промежуточное устройство сегодня — коммутатор, или свитч (switch). Его ключевая задача — имитировать для подключенных устройств нахождение в едином сегменте L2 (для связности), разделяя при этом их физические среды (для эффективности). Обычные домашние Wi-Fi точки доступа — коммутаторы: они объединяют в единую сеть устройства, подключенные к их портам и по Wi-Fi (но домашние модели совмещают функции коммутатора с другими функциями). У промышленных моделей больше портов (12, 24, 32, 48) и почти нет функций L3 и выше (обеспечивать их для стольких устройств слишком сложно и дорого). Уровень иерархии сети, на котором оконечные устройства подключаются к сети через промежуточные, называется уровнем доступа (access layer).
Коммутаторы могут соединяться в свою иерархию (то есть объединять свои сегменты) и подключаются в итоге к маршрутизатору, или роутеру (router). Маршрутизаторы связывают L3-сегменты, то есть сети с разными IP-адресами. При этом они разделяют broadcast-домены, то есть широковещательные и групповые кадры из разных локальных сетей не проходят через маршрутизатор. Этот слой иерархии называется уровнем распределения (distribution layer), на нем применяются правила маршрутизации и контроля доступа из сети в сеть.
Маршрутизаторы соединяются между собой специальными высокопроизводительными и функциональными коммутаторами в ядре сети (core layer). Это самая нагруженная часть сети, так как через нее проходит весь трафик. Поэтому же ядро обязательно резервируется, то есть строится из нескольких устройств, соединенных избыточно, чтобы выход одного из строя не парализовал работу сети. Одна из функций уровня распределения — ограничить доступ к ядру сети.
Хотя коммутаторы имитируют единую среду и не видны на канальном уровне как отдельные устройства (L2-прозрачны), это интеллектуальное оборудование. Коммутаторы не соединяют электрически каналы, а принимают кадры, обрабатывают их и отправляют далее (схема store-and-forward). Например, они отслеживают для каждого порта, устройства с какими MAC-адресами подключены к нему (ведут таблицы MAC-адресов), и пересылают кадры для этих устройств только в нужный порт, что снижает нагрузку на сеть. Возможности продвинутых коммутаторов включают агрегацию каналов (например, создание канала 40 Гбит/с из четырех портов на 10 Гбит/с), борьбу с петлями в сети (STP), защитные функции.
Виртуальные локальные сети (VLAN)
Даже при грамотном проектировании архитектуры с ростом размера локальной сети до десятков машин возникают проблемы и задачи, которые чистый Ethernet не позволяет качественно решить.
Безопасность и надежность. Например, трафик из сети бухгалтерии не должен проходить до локальной сети серверной фермы, будь то попытка взлома или следствие неполадок. В целом, локальные сети не должны влиять одна на другую, а неполадки в них не должны выводить из строя всю сеть.
Производительность. В больших сетях широковещательные и групповые рассылки порождают значительный трафик, а типичные системы на это не рассчитаны. В случае ARP, например, возникает положительная обратная связь: широковещательные рассылки переполняют таблицы MAC-адресов, что вынуждает узлы слать новые широковещательные запросы.
Удобство управления. Администраторам нужно иметь доступ к промежуточным устройствам. Если их трафик будет передаваться вместе с остальным, при неполадках администраторы лишатся доступа вместе со всеми и не смогут удаленно перенастроить устройство.
Теоретически возможно устранять перечисленные проблемы покупкой большего количества оборудования (по маршрутизатору на отдел), прокладкой выделенных линий для администрирования. Однако это дорого, выше вероятность поломок и сама прокладка такой сети громоздка.
Решение есть на программном уровне: создать виртуальные локальные сети (virtual LAN, VLAN), то на одном и том же оборудовании (network fabric) обрабатывать трафик разных логических сетей отдельно.
Наделим меткой VLAN все порты коммутаторов, к которым подключены оконечные устройства этой VLAN, и все кадры этой VLAN. Кадры с определенной меткой будем обрабатывать на коммутаторах так, как будто нет портов и кадров с другими метками. Таким образом трафик оконечных устройств из одной VLAN никогда не попадет к устройствам другой VLAN, то есть каждая VLAN работает как отдельная локальная сеть, но оборудование используется всеми VLAN совместно.
Сказанное относится и к широковещательным кадрам, поэтому говорят, что VLAN разделяют broadcast-домены, то есть широковещательные запросы в одной VLAN не видны в других.
Остается вопрос связности: как кадры с метками (тэгированный трафик) обрабатываются при передаче вверх по иерархии? Между промежуточными устройствами передается трафик из разных VLAN одновременно — такие каналы называются VLAN trunk. Администратор настраивает, трафик каких именно VLAN может передаваться по каждому каналу.
На рис. 5 приведен пример из двух VLAN: инженерного отдела (VLAN 1) и отдела маркетинга (VLAN 2). Каждый из отделов физически присутствует на двух этажах. На каждом этаже установлено по коммутатору, к которому подключены ПК на этаже. Однако логически весь инженерный отдел (ПК на обоих этажах) находится в единой сети, обособленной от такой же сети отдела маркетинга. Access-порты инженерного отдела — 2, 3, 5 на втором этаже и 2, 4, 6 на третьем. Канал между коммутаторами работает в режиме trunk, пропуская кадры обеих VLAN.
Рисунок 5: Пример использования VLAN (источник, CC-BY-SA 4.0)
Как правило, выделяют особую VLAN управления (management VLAN), в которую входит все промежуточное оборудование, и трафик которой разрешен на всех trunk´ах. Эту сеть используют для диагностики и настройки.
Рассмотрим, как технически реализованы метки VLAN.
Чтобы пометить кадр, нужно включить в него дополнительные данные — собственно, метку — то есть поменять его формат, как показано на рис. 6. Он стандартизирован IEEE 802.11Q. Метка размером 4 байта добавляется перед полем кода протокола L3. При этом MTU сохраняется 1500 октетов, то есть максимальный размер кадра IEEE 802.11Q увеличен до 1522 октетов.
Рисунок 6: Структура кадра IEEE 802.11Q (источник, CC-BY-SA 3.0)
Первые два байта — всегда 0x8100 ( 0x81 , 0x00 ), это идентификатор протокола тэгов IEEE 802.11Q (tag protocol identifier, TPID).
Вторые два байта — управляющие данные тэга (tag control information, TCI). Из них 12 битов — идентификатор VLAN, используемый для их различения. Еще 4 бита отвечают за приоритизацию трафика, что выходит за рамки обсуждения. Из 2¹² = 4096 номеров VLAN есть два особых: 0x000 означает, что тэг несет только информацию о приоритете трафика), 0xfff зарезервирован и не должен использоваться.
Заметим, что по одному каналу (обычно в ядре или между площадками) может идти вперемешку тэгированный и нетэгированный трафик. Идентификатор протокола тэгов позволяет различить их. Кадр начинает обрабатываться как нетэгированный. Поле TPID расположено в кадре там же, где код протокола L3. Его анализ обнаружит, что кадр тэгирован, будет учтен VLAN ID, а код протокола L3 будет прочитан вслед за меткой VLAN.
Откуда берется метка у кадров, в каком месте определяется VLAN ID?
В типичном случае это делает коммутатор. Его порты, связанные с оконечным устройством настраиваются в так называемый access-режим:
- Порту назначается VLAN, в которую будет входить подключенное устройство.
- Когда в порт поступает нетэгированный кадр, в него добавляется метка с настроенным VLAN ID.
- Когда в коммутатор поступает кадр на MAC-адрес подключенного к порту устройства, тэгированный тем же VLAN ID, что и у порта, метка снимается, и оконечному устройству направляется нетэгированный кадр.
- В остальных случаях (тэгированный кадр со стороны оконечного устройства, несоответствие VLAN ID) кадр отбрасывается, то есть не обрабатывается.
Это удобно для управления сетью:
- Настраивается только промежуточное оборудование, которого значительно меньше, чем оконечных устройств.
- Оконечные устройства не работают с тэгами, поэтому если их подключить к другому порту в другой VLAN, они сразу же смогут отправлять кадры, например, чтобы перенастроить IP-адрес при необходимости.
В альтернативном варианте метки проставляют сами оконечные устройства при генерации кадров. Обычно это серверы, работающие как шлюзы между сетями. Также метки проставляют роутеры в некоторых схемах. Порты коммутаторов, на которые поступает тэгированный трафик от таких устройств, настраивают в режиме trunk.
Козлюк Д. А. для кафедры Управления и информатики НИУ «МЭИ», 2018 г.
Layer 2 блокчейна: что такое L2-решения и зачем они нужны
Когда уже можно будет мгновенно расплатиться криптой за кофе в ларьке? Очевидно, когда блокчейны преодолеют проблему масштабирования.
Проблема в том, что блокчейны не справляются с собственной популярностью — растущим количеством транзакций и пользователей. Поэтому разработчики строят решения второго уровня поверх основных блокчейнов — Layer 2 Solutions aka L2.
Нашумевшие Polygon (MATIC), Arbitrum, Optimism и еще с десяток проектов тоже относятся к решениям второго уровня. Буквально, эти решения — надстройка или некий «второй этаж» над основным блокчейном. Но кому и зачем понадобилось все усложнять и делать из блокчейна многослойный торт?
Cyber Academy решила разобраться, какие бывают решения второго уровня, как они работают, какие проблемы решают, а какие, наоборот, — создают. Отправимся в путешествие по царству сайдчейнов, каналов состояний и роллапов ✨
Эксперты: разработчик Matter Labs Андрей Соболь и основатель Oxorio Петр Королев.
Что такое L2-решения и зачем понадобилось их создавать
С развитием блокчейнов — увеличением количества пользователей и транзакций — начала разыгрываться настоящая драма под названием «трилемма блокчейнов». Трилемма — это когда для идеального результата требуется три элемента, но вы можете достичь только двух одновременно. Разработчики по всему миру никак не придумают, как сделать блокчейн одновременно масштабируемым, безопасным и децентрализованным. Пока на 100% возможно обеспечить только два пункта из трех в ущерб третьему (в любой комбинации). Еще сюда можно добавить необходимость сделать блокчейны быстрыми, дешевыми, удобными и многофункциональными.
Масштабируемость (scalability) — на настоящий момент слабое место блокчейна. Это способность сети обрабатывать некоторое количество транзакций в секунду или пропускная способность. У L1-решений, то есть, у самих блокчейнов: Bitcoin, Ethereum или Litecoin и т.д., есть ощутимые ограничения по масштабируемости. Биткоин может обработать 7 транзакций в секунду (Transactions per second, TPS), а Ethereum — около 15 TPS. Такие количества не выглядят внушительно на фоне гигантов традиционных финансов. Например, Visa обрабатывает до 65K TPS. К тому же, количество пользователей постоянно растет, поэтому проблема будет только усугубляться, если ее не решать.
Основные блокчейны «неповоротливые» в том смысле, что, например, блокчейн Биткоина создан для выполнения одной функции — передачи транзакций. Поэтому построить на нем NFT-игру или другой DeFi-проект невозможно. Каждое новое принятие решения об изменении в блокчейне — отдельная запись.
Чтобы не перегружать основную цепь было решено построить новый слой поверх основного блокчейна для записи промежуточных транзакций.
Решения второго уровня (Layer2 Solutions) — это инфраструктурные решения в виде приложений и различного ПО, построенные поверх базовых блокчейнов. Они могут обрабатывать большие объемы транзакций и уменьшить нагрузку на основную сеть. Сейчас существует несколько вариантов решений второго уровня: сайдчейны, каналы состояний, а также оптимистичные и ZK-роллапы. Решения второго уровня призваны обойти ограничения масштабируемости, изолированности и низкой гибкости для разработчиков.
Например, Биткоин часто называют цифровым золотом. Золото обладает низкой ликвидностью, его использование — медленный и дорогой процесс. Люди изобретательны, поэтому они создали доллар и другие фиатные валюты, придумали банковские операции и кредитные карты. Это образовало дополнительный слой экономики поверх базового золотого резерва, который существовал до Великой депрессии 1929 года. Но после его ликвидации, мир начал использовать фиат. «Fiat», латинский термин, используемый для обозначения властного порядка, теперь является нашим законным платежным средством, ценность которого определяется не дефицитным физическим товаром, а нашим доверием к правительствам.
Поэтому концепция «слоеных» денег не нова, а история показывает, что базовый уровень экономики не обязательно должен масштабироваться или производить мегаскоростные транзакции.
По словам криптографа и раннего биткоин-энтузиаста Хэла Финни, если Биткоин сам по себе не может масштабироваться, чтобы стать доступным всем жителям планеты, тогда нужно обеспечить вторичный уровень платежных систем, более легких и эффективных.
Поэтому решения второго уровня — это собирательный термин для решений, построенных поверх существующей системы блокчейнов, основной целью которых является решение проблем, связанных со скоростью транзакций и масштабированием.
Андрей Соболь: зачем, вообще, нужно было создавать новые уровни? Из-за трилеммы, конечно же. Если мы хотим одновременно и децентрализацию, и безопасность, мы должны пожертвовать масштабированием. Это то, что происходит в 90% рабочих блокчейнов, которые более-менее устойчивы (sustainable). Некоторые выбирают безопасность, жертвуя децентрализацией. Это выбор, который сделал Bitcoin Cash. Но если мы просто увеличим размер блока, то мы смещаемся со стороны децентрализации в сторону масштабирования. Почему это важно? L2 важны потому, что люди хотят использовать DeFi-решения, они идут в L2-решения, чтобы не платить слишком много денег за газ. Это компромиссное решение, в зависимости от того, какую цель они преследуют.
Петр Королев: проблему масштабирования можно решить двумя путями: уйти в блокчейны «третьего поколения» (Near, Cosmos, Polkadot) или строить L2-решения с оптимистичными роллапами (Optimism) или zk-роллапами (zkSynk). Не стоит путать классические L2-решения с сайдчейнами. Как выбрать подходящий L2? Они будут отличаться или ценой, или скоростью и безопасностью, но людям всегда нужно будет выбирать, основываясь на том, чем из этих трех вещей они могут пожертвовать.
Тупиковые пути: Bitcoin Cash
Проблему масштабируемости Биткоина попытался решить проект Bitcoin Cash совершив хардфорк Биткоина для увеличения размера блока и включения большего числа транзакций.
Размер блока в Биткоине не может превысить 1 мб. В начале такое ограничение почти ни на что не влияло, но существенно ограничивало возможность DDoS-атак. Но с ростом популярности Биткоина, выросли и очереди из транзакций, ожидающих валидации. В легендарном 2017 году, из-за хайпа по поводу скачка цены первой криптовалюты и бума ICO, ситуация резко ухудшилась и транзакции проходили несколько дней. Мечты энтузиастов про микроплатежи биткоинами за чашку кофе начали улетучиваться.
Тогда было предложено обновление, увеличивающее блок до 2 мб с протоколом SegWit2x, который позволяет хранить часть информации за пределами блокчейна. Но разработчики проголосовали за внедрение SegWit2x без увеличения размера блока. В сообществе начались споры.
Тогда другая группа разработчиков под началом экс-инженера Meta (Facebook) Амори Сечета решила сделать наоборот — отказаться от SegWit2x, но увеличить блок до 8 Мб. Цепочки разделились 1 августа 2017 года на блоке 478558, следующий блок был сформирован дважды в разных форматах: один с SegWit2x, а второй, а второй стал генезис-блоком Bitcoin Cash с размером блоков до 8 мб.
Но проект только доказал, что увеличение размера блока — не решение проблемы масштабируемости, так как это приводит к централизации сети и угрозы нового хардфорка. Блокчейн Bitcoin Cash уже разделялся тремя хардфорками.
Петр Королев: Увеличение блоков в блокчейнах не работает.Блокчейн в таком случае занимает больше места на серверах, приходится передавать и хранить больше данных, что очень быстро делает невозможным использование. Можно наблюдать как эта проблема прямо сейчас разворачивается в Solana — многие пробовали запустить свою ноду, но они не могут догнать текущее состояние даже на топовом оборудовании. Решение: рекурсивные снарки, мы можем ими сжать информацию и сделать так, чтобы блокчейн не увеличивался в размере.
Что такое шардинг и почему это не безопасно
Еще один способ для увеличения пропускной способности блокчейна — горизонтальное разделение данных или шардинг. Это разделение набора данных на множество баз данных. Шардинг блокчейна — разделение одной цепи на индивидуальные независимые сегменты — шарды.
Каждый шард содержит уникальный набор смарт-контрактов и балансов счетов. За каждым шардом закрепляется нода для валидации, таким образом нагрузка распределяется на несколько валидаторов. Основная фишка шардинга — переход от системы, где нода вычисляет каждую операцию к модели, где она производит только некоторые вычисления. Это позволяет параллельно обрабатывать разные задачи. Такое разделение блокчейна на более управляемые сегменты увеличивает пропускную способность. В результате шардинг помогает избежать перегрузки сети и снизить комиссию за транзакции.
Петр Королев: шардинг — отличный компромис между «зональными» блокчейнами (Cosmos, Polkadot) и классическими базовыми блокчейнами, например, Биткоином. Шардинг позволяет остаться в рамках одного блокчейна, который работает по одним правилам, а не как в зонах, где правила отличаются в каждой части блокчейна. Шардинг будет работать хорошо только в связке с грамотной архитектурой смарт-контрактов.
Но шардинг имеет проблемы: изолированность блокчейнов и высокая угроза атак. Из-за того, что блокчейн разделяется на шарды теряется коммуникация между этими частями, пользователям различных шардов потребуются специальные механизмы для коммуникации. Также сегментированный блокчейн не безопасен — один шард захватить легче т. к. требуется меньший хешрейт для атаки.
Андрей Соболь: шардинг не очень безопасен. Он подвержен такой атаке, которая называется adaptive corruption. И каждый новый шард уменьшает безопасность.
Что такое сайдчейны и как они работают
К L2-решениям относят сайдчейны. Сайдчейны, sidechains, боковые цепи — это отдельные независимые цепочки блоков, которые работают параллельно с основной «родительской» сетью блокчейна. У основного блокчейна может быть сколько угодно сайдчейнов и каждый из них может чем-то отличаться. Как правило, сайдчейны не полагаются на безопасность основного блокчейна, и у них есть свой механизм консенсуса. Следовательно, они считаются менее безопасными.
При отсутствии достаточной мощности для обеспечения безопасности сайдчейн может быть взломан, но основного блокчейна это не коснется. Соответственно, если будет взломан основной блокчейн, сайдчейн продолжит работать. Но его привязка к «родительской» сети обесценится.
Механизм передачи токенов из блокчейна в сайдчейн предполагает, что токены будут заморожены в основной сети и заново выпущены в сайдчейне. Для этого их отравляют на адрес, где они замораживаются участниками федерации. Чтобы перевести монеты обратно, проводится такая же операция: токены замораживаются в сайдчейне и размораживаются в основном блокчейне.
Андрей Соболь: сайдчейны — это просто независимые блокчейны с мостами. Они, зачастую, никак не наследуют безопасность из чейна, к которому они относятся, так что это — не совсем L2. Многие разработчики не считают сайдчейны L2-решениями, и это, скорее, корректно. Но тут вопрос больше к термину — что мы включаем в это понятие. В любом случае, безопасность сайдчейнов зависит от качества протокола, стоимости токенов, количества холдеров и т.д. В то время, как «настоящие» L2 (роллапы и каналы состояний) не зависят от этих условий.
Существует несколько проектов, которые используют сайдчейны. Например, PoS-решение Ardor внедрило множество пользовательских «дочерних» блокчейнов, которые опираются на основную сеть. Транзакции задерживаются в основной сети на 24 часа, после чего — хранятся в архивных нодах, разгружая блокчейн. Есть еще сайдчейн-проекты Validium, Liquid Network и другие. Одним из самых популярных стал проект Polygon.
Polygon — это масштабирующее PoS-решение второго уровня для создания блокчейнов, совместимых с Ethereum. Его родной токен — MATIC — используется для управления, стейкинга и оплаты газа. Проект использует сайдчейны для офчейн-вычислений, что позволяет разработчикам создавать и обеспечивать работу различных dApps. Решение использует кроссчейн-мост для транзакций: токены ETH вносятся в смарт-контракт моста и замораживаются там, Polygon выпускает равное количество токенов MATIC, потом, по окончанию транзакций, эти токены будут сожжены, а ETH освобождены от смарт-контракта.
Андрей Соболь: пользоваться Polygon не так безопасно, как Ethereum, но и TVL там намного меньше. Поэтому, тут всецело выбор рынка: рисковать или нет. У нас все равно нет полностью безопасного решения — атаку 51% никто не отменял. К тому же, все поняли изначально, что толку от Plasma никакого. Plasma is dead. Идея в том, что в Plasma каналы состояний с безграничным количеством пользователей, но это не безопасно.
Plasma — решение, на базе которого работает Polygon. Это решение второго уровня для масштабирования сети Ethereum, которое Виталик Бутерин разработал с Джозефом Пуном. Решение использует Меркл-деревья, чтобы создавать неограниченное количество сайдчейнов — копий основной сети. Решение разгружает основную сеть и позволяет совершать недорогие и быстрые транзакции. По принципу работы, Plasma похожа на Lightning Network. Но в Plasma существуют механизмы наказания отвергнутого сетью создателя блока для предотвращения мошенничества.
Такие транзакции долгие и занимают от нескольких дней до нескольких недель. Еще одна проблема заключается в том, что Matic или другие решения на основе сайдчейна не полагаются на безопасность сети Ethereum и используют свои механизмы консенсуса. Из-за этих проблем все большую популярность приобретают альтернативные решения второго уровня, например, роллапы.
Петр Королев: на самом деле, Plasma — это не одно решение, а с десяток разных попыток сделать эту технологию рабочей. Но все они провалились из-за проблем с массэкзитом. Эти проблемы сейчас не решаемы, именно поэтому Plasma закрылась. Polygon, по факту, — пока единственный проект, который выкатил решение на Plasma и продолжает совершенствовать эту технологию.
Что такое каналы состояний и как они работают
Канал состояния — это решение, в котором пользователи буквально открывают свой собственный канал вне блокчейна, где могут совершать бесконечное множество приватных транзакций. В блокчейн записывается только первая и последняя транзакции. Первая транзакция открывает канал, участники должны заблокировать средства в контракте с несколькими подписями. Вторая транзакция закрывает соединение. Когда все дела между участниками завершены, последняя транзакция в сети отправляется и средства разблокируются. Все транзакции в каналах видимы лишь их пользователям. Только первоначальное и финальное состояние записываются в блокчейне.
Пользователи каналов состояния верифицируют транзакции индивидуальными подписями. Также создается смарт-контракт, обрабатывающий транзакцию перед отправкой в оффчейн. Канал можно повторно открыть также при помощи уникальной криптографической подписи. Смарт-контракты защищают транзакции в рамках каналов состояния, а также выступают в роли «судей» во взаимоотношениях участников. Есть возможность использовать таймеры, которые могут автоматически запустить завершающую транзакцию и записать ее в основной блокчейн.
Каналы — отличное решение для мгновенного вывода/расчета в основной сети. Кроме того, это приводит к высокой пропускной способности и чрезвычайно низким затратам.
Lightning Network — платежная p2p-сеть для проведения микротранзакций в сетях биткоина, Litecoin и других. Использует ноды и платежные каналы, где каждая нода может принимать и отправлять транзакции, а также валидировать транзакции для получения комиссионного дохода. Сейчас в сети LN более 87K каналов и почти 35К нод. Хотя еще весной 2021 года число нод было около 20К, а каналов — чуть более 40К.
Андрей Соболь: в сети Lightning заблокировано около трех тысяч биткоинов, а количество нод сопоставимо с количеством нод в самом Биткоине. Это доказывает состоятельность L2-решений в целом.
Петр Королев: благодаря Taproot и Segwir, Lightning Network — одно из лучших рещений в блокчейне, оно показывает, как должны работать L2-решения. Это действительно быстро дешево и удобно.
Celer Network — еще одно решение для масштабирования блокчейнов с возможностью запуска dApps. Celer Network использует многоуровневую архитектуру (cStack) с чистыми абстракциями. Каждый уровень должен сосредоточиться только на достижении своей цели.
cChannel: обобщенный канал состояния и набор сайдчейнов. Это нижний уровень сети Celer, который взаимодействует с различными базовыми цепочками блоков и предоставляет верхнему уровню общую абстракцию актуальных состояний и завершенность с ограниченным временем. cChannel использует методы канала состояния и сайдчейна, которые являются краеугольными камнями платформ масштабирования вне сети.
cRoute: доказуемо оптимальная маршрутизация передачи стоимости. cRoute представляет распределенную сбалансированную маршрутизацию (DBR), которая направляет платежный трафик с использованием распределенных градиентов перегрузки.
cOS: среда разработки и среда выполнения для приложений с поддержкой автономной работы. cOS — это среда разработки и среда выполнения, с помощью которых каждый может легко разрабатывать, эксплуатировать и взаимодействовать с масштабируемыми автономными dApp, не увязая в дополнительных сложностях, связанных с масштабированием вне сети.
Андрей Соболь: идея в том, что в каналах состояний — ограниченное количество пользователей, которые могут взаимодействовать друг с другом. Но они и формируют сеть. Например, в канале Lightning Network есть только два пользователя обменивающихся деньгами, но они же могут стать роутером, который передаст деньги дальше — 3, 4 пользователю и т.д. Так формируется сеть по атомарной передаче денег. Здесь безопасность практически полностью зависит от самого блокчейна на L1. Но деньги заблокированы в канале и только сетевые «друзья» этих пользователей определяют глубину канала — насколько глубоко/далеко мы можем отправить эти деньги.
Это довольно простая конструкция, которую легко закодить в блокчейне Биткоина и Ethereum, например. Но за эту простоту мы платим тем, что блокируем средства среди очень ограниченного числа пользователей. В этом месте возникает кризис ликвидности. По сути, мы через каналы состояний пытаемся сделать сложные вещи простым инструментом.
Что такое роллапы и как они работают
Rollups, роллапы — решения в сети Ethereum, которые выполняют часть транзакций за пределами основной сети в сайдчейнах, но при этом отправляют данные этих транзакций в основную сеть поле завершения вычислений. Простыми словами: роллапы сжимают данные и тем самым разгружают блокчейн. Они выполняют транзакции в отдельной цепочке, но результат транзакций фиксируется в основном блокчейне. Есть два основных типа Rollups: ZK-Rollups и Optimistic rollups.
Преимущества роллапов среди других способов масштабирования: высокое число транзакций в секунду (1000–4000 TPS), низкая комиссия за транзакции, скорость и безопасность выше, чем у сайдчейнов. Ожидается, что с введением ETH 2.0 с роллапами блокчейн Эфириума будет обрабатывать около 100 000 транзакций в секунду.
Аналогично основной сети, в роллапах можно писать смарт-контракты. Роллапы полагаются на безопасность основного блокчейна, поэтому считаются более защищенными, чем сайдчейны.
Роллапы считаются сейчас самым доработанным решением с точки зрения скорости, безопасности и децентрализации. Но у роллапов есть свои недостатки: ликвидность ниже, чем в основной сети, комиссии выше, чем в сайдчейнах.
Андрей Соболь: роллапы, в отличие от каналов состояний, наоборот — сложны в разработке, но зато они дают пользователям простоту использования, которая есть на L1. По сути, это большие пулы денег, и пользователи могут обмениваться транзакциями друг c другом внутри роллапа. Они не ограничены сложными условиями сети. Более того, скоро появятся роллапы с EVM, которые позволят кодить тьюринг-полные решения. Скоро роллапы смогут предоставить юзер-френдли экспириенс, сопоставимый с использованием L1. Но за это мы платим высокой сложностью имплементации и аудирования. Это даже сложнее, чем сделать безопасный L1.
Пройдет несколько лет и разработчики научатся делать L2 более безопасными. Оптимистичные и zk-роллапы используют данные таким образом, что количество транзакций, которые мы можем впихнуть в роллап — линейно по отношению к тому, что есть в блоке. Это значит, что в роллапах нужно платить за каждую транзакцию, тогда как в каналах состояний все транзакции в сессии между пользователями — бесплатны.
Петр Королев: да, у роллапов есть свои недостатки, но это — цена за безопасность. Это наглядно видно по тому, сколько zk-решений появилось на рынке — их десятки, если не сотни.
Оптимистичные роллапы, Optimistic Rollups используют доказательство мошенничества (fraud proof) и работают на базе EVM-совместимой виртуальной машины OVM (Optimistic Virtual Machine). Основная идея доказательств мошенничества состоит в том, чтобы отправить минимум данных на уровень 1 и предположить (оптимистично), что они верны. Чтобы злоумышленники не рассылали спам в сети, отправители также должны предоставить залог (обычно в форме ETH), который будет изъят, если блокчейн обнаружит мошенничество.
Но пользователям Optimistic Rollups приходится ждать 1–2 недели для вывода средств. В основном это связано с тем, что все участники сети должны отправить доказательства перед завершением транзакции на уровне основного блокчейна. С другой стороны, оптимистичные роллапы популярны среди разработчиков, главным образом потому, что технология использует все технологические стеки Ethereum практически без модификаций.
На базе оптимистичных роллапов работают проекты Optimism, Arbitrum и другие (Boba, Cartesi, Fuel Network).
Optimism — основная идея проекта в том, что порядок валидации транзакций может быть продан с аукциона другим сторонам в течение определенного периода времени. Эти другие стороны называются «секвенсорами» и «верификаторами». Секвенсоры отвечают за выполнение транзакций на втором уровне и отправку их обратно на основной блокчейн. Верификаторы — это узлы, которые отвечают за защиту от мошенничества. И секвенсоры, и верификаторы работают под управлением L2Geth — слегка модифицированной версии Geth (самая популярная реализация протокола Ethereum).
Arbitrum использует другую модель валидации: вместо повторного запуска всей транзакции на основном блокчейне на проверку от мошенничества, проект использует интерактивную многоэтапную модель, которая снижает количество вычислений. В Arbitrum также есть секвенсоры и валидаторы.
Техническая реализация Arbitrum немного сложнее, чем Optimism. Например, в него входят два разных смарт-контракта L1 для публикации данных транзакции, три типа узлов (форвардеры, секвенсоры и агрегаторы), три стратегии проверки (Defensive, StakeLatest и MakeBlocks), их собственная виртуальная машина известна как виртуальная машина Arbitrum (AVM), собственная операционная система Arbitrum (ArbOS).
Это дает разработчикам и пользователям большую гибкость и новые возможности и функции. Однако сложность инструментов и технологий, лежащих в основе, затрудняет массадопшн.
Zk-роллапы — используют решения с нулевым разглашением (zero knowledge proof), а именно снарки (SNARKs), для доказательства валидности транзакций. Каждая партия транзакций, отправленная на основной блокчейн, включает криптографическое доказательство. Доказательство может быть быстро проверено смарт-контрактом базового блокчейна при отправке пакета транзакций, а недействительные партии будут сразу отклонены. ZK-роллапы нуждаются только в подтверждении достоверности транзакции.
В отличие от оптимистичных роллапов, тут нет проблемы длительного вывода средств. Однако сложность реализации намного выше из-за EVM-совместимости. Zk-роллапы также более требовательны к вычислительным ресурсам. Zk-роллапы внедрены в проекты Loopring, Deversifi, Aztec 2.0, Matter Labs zkSync, Immutable X, Polygon Hermez, Starkware, zkTube и другие.
Matter Labs zkSync — решение, построенное с использованием доказательств с нулевым разглашением. Для каждого блока Rollup создается доказательство перехода между состояниями с нулевым разглашением (SNARK), которое проверяется контрактом основной цепи. Этот SNARK включает доказательство действительности каждой отдельной транзакции в блоке Rollup.
Андрей Соболь: очевидно, что zk-роллап — более эффективен, чем оптимистичный роллап, так как zk-роллап использует меньше газа и меньше данных, которые нужно опубликовать на блокчейне.
Скоро у zkSynk выйдет тестнет. На самом деле, мы пытаемся сделать такую EVM, которая будет проверяться снарками. И мы не одни такие. Поэтому тут вопрос в том, кому первому удастся сделать EVM для zk-роллапов. Пока это все выглядит, как эксперимент. Но если нам удастся, то это будет намного круче всех, решений, которые существуют. В принципе, EVM на снарках — самый большой прорыв за последние 5 лет, который скорее всего, произойдет в будущем.
Петр Королев: zk-решения выгодно отличаются от оптимистичных тем, что в них не нужно ждать, для того чтобы получить деньги. Второй плюс в том, что не нужно никому доверять — все транзакции заверены алгоритмично. Но за это приходится платить большей ценой за транзакции.
Насколько эффективны решения второго уровня
Разработка L2-решений все еще находится на ранних стадиях. Тем не менее, эти решения уже получили большую популярность.
На момент написания статьи, TVL Optimism — $357.68 миллионов. В Polygon — $5.39 миллиардов, Arbitrum — $2.12 миллиарда.
В октябре 2020 года сооснователь Ethereum Виталик Бутерин заявил, что не ждет скорого решения проблемы масштабируемости основной сети Ethereum. Он призвал разработчиков сосредоточиться на решениях второго уровня, которые снижают нагрузку на сеть и увеличивают скорость транзакций. Но спустя два года его мнение сильно изменилось. В декабре 2021 года он опубликовал дорожную карту Ethereum, где центральное место занимают zk-роллапы.
Все указывает на то, что DeFi-проекты и дальше будут уходить на второй уровень, пока разработчики L2-решений соревнуются между собой за звание самого компромиссного с точки зрения решения трилеммы.
Андрей Соболь: L2 пока еще не выполнили свою функцию, но они в процессе. Эти решения уже доказали своб концептуальную состоятельность. Они (настоящие L2) смогут отмасштабировать L1 в примерно 50–100 раз в случае zk-rollups и в 10–20 раз в случае оптимистичных. Цифры навскиду, точные цифры будут доступны только в боевых условиях. А оценить успех и эффективность LN и других каналов очень трудно, так как вся информация не видна, в отличие от роллапов, а значит — и статистики нормальной нет. В будущем нас ждут специализированные zk-протоколы и общие протоколы второго уровня с виртуальной машиной.
L2 не решают трилемму блокчейнов, так как все равно остается проблема data availability. Трилемма остается на месте. Современные L2 — это техники оптимизации места в блоке, а не что-то, что ломает трилемму. У этих способов оптимизации есть точно такие же технические пределы, после которых вступает в силу все та же самая трилемма.
Петр Королев: Проблема маштабируемости витает в воздухе еще с 2017 года, когда CryptoKitties положили Ethereum. Все ринулись делать свои «плазмы», но через год это все сломалось. Тогда появились «оптимисты» и «zk-исты». Я с интересом наблюдаю, кто получит лавры лучшего решения, но при этом я уверен, что места хватит всем. L2, в конечном итоге, столкнулись с теми же проблемами блокчейнов, и всем приходится дальше искать копромисс между скоростью, безопасостью и ценой.
То, что сейчас происходит на рынке L2, можно сравнить с гонками. Кто-то пойдет в гонки «Дакар», кто-то пойдет в Formula 1. Одни разработчики сосредоточатся на микроплатежах, другие возьмут на себя более сложные вещи с DeFi-вычислениями, а третьи — перейдут в отдельные самостоятельные блокчейны, стремясь стать новым L1. Любое из этих решение — лучше, чем пользоваться централизованным форком Ethereum вроде Binance.
Что такое решения второго уровня (Layer 2) для блокчейн?
Второй уровень (Layer 2, L2) — это любая офф-чейн сеть, система или технология, построенная поверх блокчейна (обычно известного как сеть первого уровня), которая помогает расширить возможности сети базового уровня. Сети второго уровня могут поддерживать любой блокчейн для внедрения таких улучшений, как например, более высокая пропускная способность транзакций.
Одним из основных требований к сети, системе или технологии второго уровня является то, что она наследует безопасность блокчейна, на базе которого она построена. Данные транзакций должны в той или иной форме проверяться и подтверждаться базовой сетью блокчейна, а не отдельным набором узлов. Например, сайдчейны часто не считаются вторым уровнем, поскольку они обычно используют собственные механизмы консенсуса и валидаторы, что приводит к иному набору гарантий безопасности, чем в сети базового уровня.
Для блокчейнов, которые жертвуют масштабируемостью для достижения более высокой децентрализации и безопасности, второй уровень обеспечивает большую пропускную способность транзакций, что может привести к снижению комиссий. Второй уровень можно рассматривать как одно из решений проблемы масштабируемости, обеспечивающее быстрое и масштабируемое исполнение без ущерба для децентрализации и безопасности.
Необходимость второго уровня
С момента появления технологии блокчейн в 2008 году тысячи исследователей и разработчиков работали над решением серьезных проблем масштабируемости блокчейна в соответствии с растущим применением. Эти ограничения исторически приводили к высоким комиссиям и медленному времени исполнения, снижая способность блокчейн работать в промышленных масштабах.
Придуманная соучредителем Ethereum Виталиком Бутериным трилемма масштабируемости блокчейна утверждает, что блокчейн не способен эффективно масштабироваться, сохраняя при этом безопасность и децентрализованность основной сети. Сегодняшние сети блокчейн могут выполнять два из трех условий, но не все три одновременно.

Технология L2 — это новая технология, основанная на предположении, что это ограничение масштабируемости существует потому, что на блокчейн возложено слишком много задач. Это происходит потому, что блокчейн сегодня выполняет три основные функции: исполнение, доступность данных и консенсус.
Исполнение — обработка транзакций и пропускная способность. Измеряется количеством вычислений (подмножеством которых являются транзакции) в секунду, которые может обрабатывать блокчейн. Доступность данных — требования к хранению транзакций, состояния и других данных на узлах и валидаторах сети. Измеряется в стандартных терминах хранения, таких как мегабайты, гигабайты и т.д. Консенсус — широкое согласие узлов и валидаторов относительно состояния сети и порядка транзакций. Измеряется в терминах децентрализации и времени до конечного результата, или времени, которое требуется всем узлам для достижения согласия по поводу изменения состояния. Примечание: В рамках данной статьи мы сосредоточимся исключительно на уровне исполнения.
Как работают решения второго уровня
Примечание: Реализация большинства решений второго уровня находится на ранних стадиях, и многие элементы дизайна протоколов второго уровня еще не проверены или не доказаны.
На базовом уровне решения второго уровня, как правило, состоят из двух частей: Сеть, которая обрабатывает транзакции, и смарт-контракт на базовом блокчейне, который разрешает любые споры и достигает консенсуса по состоянию сети второго уровня, прикрепляя ее к базовому блокчейну.
Сети второго уровня — это место, где происходит быстрое выполнение транзакций и вычислений. Они могут сильно различаться по способу достижения этой пропускной способности. Однако общим знаменателем между каждой средой второго уровня является то, что при желании урегулировать ситуацию на базовой цепи, второй уровень должен предоставить в блокчейн некое криптографическое и верифицируемое «доказательство» целостности предлагаемого изменения состояния, либо упреждающее, либо ретроактивное.
Аналогичным образом, базовая реализация смарт-контракта может варьироваться между уровнями 2, но основные функции смарт-контракта всегда заключаются в следующем:
удерживать и высвобождать средства, переведенные на L2
получение некоего доказательства, сгенерированного L2, его проверка, разрешение споров, а затем завершение транзакций.
Хороший способ концептуализировать эти две динамики — рассмотреть два примера существующих реализаций второго уровня — платежные каналы и роллапы.
Платежные каналы
Платежный канал позволяет осуществлять офф-чейн (вне блокчейн) перевод токенов на блокчейне между двумя или более пользователями путем предварительного финансирования ликвидности канала.
Алиса и Боб создают платежный канал путем блокировки коллективных средств в смарт-контракте и согласования (с помощью криптографических подписей) того, к какой сумме каждый из них имеет доступ. Например, если оба заблокировали средства по 50 долларов на общую сумму 100 долларов, они, скорее всего, согласятся, что каждый из них может использовать по 50 долларов в платежном канале.
После создания платежного канала Алиса и Боб могут совершать транзакции вне цепочки с помощью подписанных сообщений, не передавая транзакции в основной блокчейн. Алиса может платить Бобу, и наоборот, с нулевой стоимостью и молниеносными задержками. При общении по двустороннему платежному каналу транзакции Алисы и Боба не публикуются в основной блокчейн; только когда они принимают взаимное решение закрыть канал, конечные результаты передаются в блокчейн и фиксируются в нем.
Конечным результатом этой системы является то, что Бобу и Алисе нужно оплатить только две транзакции на цепочке, чтобы открыть и закрыть платежный канал. Пока платежный канал открыт, миллионы переводов могут осуществляться с нулевой стоимостью и субсекундной скоростью напрямую от одного пользователя к другому — классический пример масштабируемости.

Когда платежные каналы открыты, они могут способствовать проведению транзакций с нулевой стоимостью и молниеносной скоростью.
Роллапы
Оптимистичный и роллап с нулевым разглашением обеспечивают более высокую пропускную способность и более низкие затраты за счет выполнения изменений состояния смарт-контракта вне блокчейн и их подтверждения на блокчейн. Масштабируемость с помощью роллапов достигается следующими тремя методами.
Роллапы выполняют транзакции вне блокчейн, требуя, чтобы базовый блокчейн выполнял только небольшие доказательства для проверки активности сети и хранения необработанных данных о транзакциях.
Роллапы собирают данные транзакций вместе, когда передают их в блокчейн, так что стоимость газа на блокчейн распределяется между несколькими транзакциями.
Для подтверждения достоверности транзакций в блокчейне базового уровня роллапам требуется как минимум один честный валидатор, что позволяет уменьшить набор валидаторов и повысить требования к аппаратному обеспечению без существенного снижения безопасности.
Офф-чейн исполнение
Ключевая особенность роллапов заключается в том, что они выполняют транзакции вне сети блокчейн. Это означает, что сети второго уровня обрабатывают транзакции, будь то транзакции с другим пользователем или смарт-контрактом, от имени базового блокчейна. В сочетании с меньшим набором валидаторов и более совершенным оборудованием это обеспечивает гораздо более высокую пропускную способность при проведении транзакций в сети второго уровня по сравнению с базовыми блокчейнами.
Базовому блокчейну нужно только выполнять доказательства, переданные роллап смарт-контракту, для проверки активности в сети второго уровня (в случае оптимистичного роллап — только в случае спора) и хранить необработанные, неисполненные данные транзакций как «calldata». Проще говоря, это означает, что блокчейн должен выполнять меньше работы и хранить меньше данных для транзакций, происходящих на уровне 2, что приводит к снижению общей стоимости каждой транзакции.
Пакетные транзакции
Еще один способ сокращения расходов — пакетные операции. Это можно представить как упаковку подарков. В блокчейне каждая транзакция — это отдельный подарок, который доставляется в отдельной коробке. Это делает доставку дорогостоящей, так как вам приходится платить за доставку каждый раз, когда вы хотите отправить подарок. При использовании роллапов вы упаковываете много подарков в большую коробку с меньшими интервалами и делите большую стоимость доставки на несколько подарков.
Более технически точное объяснение заключается в том, что в рулонах пакетно обрабатываются необработанные данные транзакций в виде «calldata». Транзакции в роллапах не нуждаются в проверке так же, как транзакции на блокчейне; скорее, пакетные данные транзакций — это просто способ сохранить данные на базовом блокчейне, чтобы в случае необходимости валидатор или участник роллапа мог в любой момент воссоздать состояние сети второго уровня. Однако основная логика остается прежней — одна пакетная транзакция на основной цепочке хранит данные о нескольких сворачиваемых транзакциях.

Это очевидный и простой способ снижения платы за транзакции, препятствующий масштабируемости блокчейна, и в сочетании со сжатием данных он обеспечивает значительное улучшение стоимости исполнения по сравнению с транзакциями на базовом блокчейне.
И zk-роллапы, и оптимистичные роллапы осуществляют пакетную обработку транзакций аналогичным образом.
Меньшее количество валидаторов
Как уже говорилось ранее, второму уровню присущи гарантии безопасности и децентрализация базового блокчейна. Подробнее об этом будет рассказано ниже, но основная идея заключается в том, что второй уровень должен предоставить базовому блокчейну форму доказательства того, что предлагаемые им изменения состояния действительны.
Это дает возможность роллапам иметь меньше валидаторов, обрабатывающих все транзакции в сети второго уровня. Валидаторы могут быть субъектами с правом доступа и часто имеют гораздо более сложное оборудование, позволяющее вычислять транзакции быстрее и с меньшими затратами. Это возможно потому, что валидаторы не обеспечивают консенсус — это происходит через смарт-контракт на базовой цепи, а смарт-контракт требует доказательств.
Безопасность второго уровня: Важность доказательств
Концепция «доказательства» является основополагающей для второго уровня, чтобы они могли унаследовать гарантии безопасности базового блокчейна. В физическом мире доказательства могут принимать различные формы. Отпечатки пальцев на оружии и записи с камер во время инцидента — оба примера доказательств.
Криптографическое доказательство работает аналогичным образом, но его содержание гораздо более объективно, чем то, что допустимо в физических судах. Доказательство чего-либо с помощью криптографии дает объективные, проверяемые и защищенные от взлома гарантии того, что определенная вещь является истинной. Если доказательство работает, оно гарантированно истинно. В случае с платежными каналами криптографические подписи на транзакциях обеспечивают окончательную истину, необходимую смарт-контракту для разрешения любых споров.
Каждый уровень 2 опирается на ту или иную форму криптографического доказательства для разрешения споров на базовом блокчейне. Наиболее известными доказательствами сегодня являются доказательства ошибок и доказательства достоверности (также известные как доказательства с нулевым разглашением), являющиеся основой современных оптимистичных роллапов и zk-роллапов.
Подписанные сообщения в платежном канале
Предположим, что при закрытии платежного канала Боб или Алиса действуют злонамеренно и пытаются взять чужие средства. Любой из них может сделать это, передав смарт-контракту устаревшую копию реестра платежного канала.
Ключевым элементом конструкции платежного канала является то, что транзакции всегда должны быть криптографически подписаны. Это становится формой доказательства, совместимой с базовым смарт-контрактом для разрешения споров. Например, если Алиса предлагает устаревшую копию реестра, по которой она получает больше средств, чем должна получить, Боб может оспорить расчетную транзакцию и предоставить более новую копию реестра. Затем правильные суммы могут быть определены смарт-контрактом. Алисе также придется заплатить штраф за свое нечестное поведение.
Процесс вынесения решений в рамках базового смарт-контракта — это именно то, что делает платежные каналы вторым уровнем. Простой способ понять это — посмотреть на это с точки зрения «доказательства». После открытия платежного канала Боб и Алиса должны криптографически подписать каждую транзакцию, которую они совершают, и сохранить копию подписи друг друга.
Это является доказательством деятельности в рамках платежного канала, но просто иметь доказательство недостаточно. Необходимо обеспечить соблюдение истины, подобно тому, как судья принимает решение после предоставления доказательств и вынесения вердикта присяжными. В данном случае смарт-контракт приводит решение в исполнение и производит расчеты, возвращая правильную сумму в кошелек каждого участника на базовом блокчейне.
Вот что значит унаследовать децентрализацию и гарантии безопасности базовой сети блокчейна. Платежный канал обрабатывает большую часть вычислений и выполнения вне блокчейн, но в случае, если для урегулирования канала необходим консенсус, надежный уровень консенсуса базового блокчейна принимает окончательное решение.
Оптимистическое доказательство неисправностей роллапа
Доказательства ошибок просты по своей природе. Уровень 2, использующий доказательства ошибок, по умолчанию предполагает, что все транзакции действительны. Однако существует период спора, когда любой участник сети может создать спор и предоставить смарт-контракту доказательство того, что данные транзакции и предлагаемое изменение состояния неверны. Когда публикуется доказательство ошибки, транзакция свертывания частично или полностью перевыполняется на цепочке, и полученное изменение состояния сравнивается с первоначальным утверждением. Если повторное выполнение приводит к другому результату, то исходное утверждение считается недействительным и отменяется.
Эта система используется сегодня в оптимистичных роллапах. Оптимизм» исходит из философской точки зрения защиты от сбоев: Смарт-контракт «оптимистично» предполагает, что все транзакции действительны, пока не доказано обратное (невиновен, пока не доказана вина). Если вернуться к примеру с недобросовестным валидатором, то любому участнику сети достаточно предложить смарт-контракту достоверное доказательство ошибки в течение периода спора, чтобы действия валидатора были аннулированы до завершения транзакций.

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

Доказательства достоверности упреждающе доказывают достоверность сетевой активности второго уровня.
Масштабирование блокчейн
Платежные каналы, роллапы и второй уровень в более широком смысле — все это методы подхода к проблеме масштабируемости блокчейна устойчивым и долгосрочным образом, поддерживающим как растущее принятие приложений Web3, так и улучшенный пользовательский опыт.
Будучи зарождающейся и постоянно развивающейся технологией, большинство инфраструктурных компонентов Web3, включая базовые блокчейны и второй уровень, еще не достигли той точки перегиба, когда будет окончательно известно, какой подход лучше всего соответствует потребностям рынка. Однако тысячи разработчиков и исследователей продолжают неустанно работать над поиском жизнеспособных решений в обширной экосистеме блокчейн-сетей, DAG-решений и второго уровня, которые существуют сегодня, чтобы вывести обещания Web3 на передний общественный план.