:RU: Слой 1 и слой 2: все, что вам нужно знать

Перевод статьи Layer 1 & Layer 2: all you need to know - IOHK Blog

При обсуждении архитектуры блокчейна часто упоминаются термины “Слой 1” и “Слой 2”. Это важные концепции, которые служат двум целям: объясняют, как строится блокчейн сеть, и обеспечивают простое для понимания визуальное представление того, как выглядит блокчейн сеть. Давайте разберем эти идеи на части

image

Слой 1: определение

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

image

Слой 1: функциональность

С учетом этой визуальной схемы Cardano представляет собой слой 1 (базовая сеть), который сам по себе включает в себя три независимых слоя:

  • Сетевой слой
  • Слой консенсуса
  • Слой леджера

Сетевой слой

Этот слой поддерживает соединения между всеми распределенными нодами в сети Cardano, получает новые блоки из сети по мере их создания нодами, производящими блоки, встраивает недавно проведенные транзакции в блоки и передает блоки между нодами.

Слой консенсуса

Этот слой выполняет две основные функции:

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

Слой леджера

Этот слой определяет:

  • Как выглядит состояние леджера; и
  • Как должен обновляться леджер для каждого нового блока.

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

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

В целом эти три слоя образуют решение слоя 1, которым является Cardano.

Слой 1: масштабируемость

Взгляните еще раз на этот свадебный торт. Он большой, не так ли, со всеми этими ярусами, наложенными друг на друга. Но посмотрите на основание, на подставку для торта. Этот первый слой имеет определенные размеры и не может быть больше. С другой стороны, он должен быть достаточно большим, чтобы поддерживать ярусы, расположенные над ним. Все, что на нем лежит, может быть только определенного размера, и именно по этой причине свадебные торты имеют несколько ярусов. Каждый ярус (или слой) добавляет что-то к основанию. Новая начинка, глазурь, украшение и т.д., другими словами, каждый слой масштабирует базовый слой вертикально.

Децентрализованные публичные сети сталкиваются с аналогичной проблемой. Точно так же, как подставка для торта может вместить только конечное количество кусочков, основа (слой 1) может обрабатывать только определенное количество транзакций. Если вы попытаетесь добавить больше кусочков, чем требуется для торта, они начнут отваливаться от краев, и беспорядок испортит чей-то важный день. Точно так же ноды в сети слоя 1 могут обрабатывать только определенное количество транзакций, иначе возникнет перегрузка. По мере роста пользовательской базы растет и потребность в большем количестве нод для обработки транзакций. Чтобы решить эту проблему, сеть должна масштабироваться, иначе транзакции начнут, так сказать, падать с краев.

Существуют способы масштабирования сети слоя 1. Например, увеличение размера блока, чтобы блоки содержали больше данных о транзакциях. Размер блока недавно был увеличен на 8 КБ до 72 КБ (увеличение на 12,5%). Это один из способов масштабирования Cardano в 2022 году.

Возвращаясь к нашему изображению свадебного торта, добавление ярусов не только делает торт больше, но и вводит очень полезную функцию: возможность сделать каждый ярус отличным от основы. Мы можем добавлять различные вкусы, начинки, украшения и так далее, независимо от первого слоя. Чтобы угодить разным “гостям” и разным предпочтениям. В блокчейне добавление нового слоя (Слой 2) не только позволяет масштабировать слой 1, но и позволяет транзакциям и процессам происходить независимо от основной цепочки (Слой 1).

Решения для масштабирования слоя 1 в Cardano

Cardano сейчас находится на этапе разработки Basho, который полностью посвящен масштабированию и оптимизации. Несмотря на то, что сеть в настоящее время очень эффективно удовлетворяет спрос, экосистема децентрализованных приложений (DApp) быстро растет и будет продолжать предъявлять растущий спрос к системе. Чтобы решить эту проблему, в Cardano внедряется множество методов масштабирования (включая решения слоя 1 и слоя 2), чтобы привлечь сначала сотни тысяч, а затем и миллионы новых пользователей.

Увеличение размера блока

Чем больше блок, тем больше транзакций он может выполнять. Самый первый блок, созданный на Cardano, имел размер 665 байт (0,665 КБ). Сегодня размер блоков составляет 72 КБ. Это увеличение более чем на 10 000%! Дальнейшие увеличения будут применяться с течением времени на основе постоянного мониторинга системы и общего состояния сети.

Диффузионная конвейерная обработка

Улучшает время распространения блоков за счет объединения процессов проверки и распространения. Цель состоит в том, чтобы блоки были распространены по крайней мере на 95% одноранговых нод в течение пяти секунд за счет сокращения “мертвого времени” между блоками (накладные расходы на распространение блоков). Это обеспечивает запас для внесения более агрессивных изменений в масштабирование, таких как увеличение размера блока / увеличение пределов параметров Plutus.

Индоссанты ввода

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

Параметры памяти/процессора для Plutus

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

Улучшения скрипта Plutus

Еще более эффективное использование мощной модели EUTxO за счет оптимизации смарт контрактов, включая:

  • Ссылочные входы (CIP-0031) – скрипты Plutus могут проверять входы транзакций без необходимости их расходования. Это означает, что нет необходимости создавать UTXOS просто для проверки информации, содержащейся во входе.
  • Plutus Datums (CIP-0032) – Datums могут применяться непосредственно к выходам вместо хешей данных. Это упрощает использование данных, поскольку пользователь может видеть фактические данные вместо того, чтобы указывать данные, соответствующие заданному хешу.
  • Совместное использование скриптов (CIP-0033) – Ссылки на скрипты Plutus могут быть связаны с выходами транзакций, что означает, что они могут быть записаны в цепочке для последующего повторного использования. Не будет необходимости предоставлять копию скрипта с каждой транзакцией, что значительно уменьшит трения для разработчиков. Повторное использование скриптов в нескольких транзакциях значительно сокращает размеры транзакций, повышая пропускную способность и снижая затраты на выполнение скриптов.

Усовершенствования нод

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

Память на диске

Сохраняя части состояния протокола на диске, нодам потребуется меньше места в памяти, а это означает, что системы с ограниченным объемом оперативной памяти смогут запускать ноды при условии, что у них достаточно места для хранения, а память не будет представлять собой узкое место для масштабируемости. Это позволит значительно увеличить состояние блокчейна.

Интерлюдия: блокчейн-трилемма

Масштабируемость распределенной системы, такой как блокчейн, представляет собой сложную дилемму.

Существует общее мнение о том, что “правильная” блокчейн система должна обладать тремя свойствами: масштабируемостью, безопасностью и децентрализацией. Но столь же широко распространенным убеждением является так называемая трилемма, которая гласит, что децентрализованные системы могут обеспечить только два из этих свойств, жертвуя при этом третьим. Впервые сформулированная создателем Ethereum Виталиком Бутериным (Vitalik Buterin), трилемма предполагает, что разработчики всегда должны идти на компромисс или сделку при проектировании блокчейн сетей. Этот компромисс означает, что одно свойство должно “пострадать”, чтобы два других были возможны.

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

Вертикальное и горизонтальное масштабирование

Решение этой трилеммы требует тщательного и сбалансированного подхода, чтобы все три элемента оставались в равновесии.

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

Существует два варианта масштабирования: вертикальное и горизонтальное.

Вертикальное масштабирование

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

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

Горизонтальное масштабирование

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

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

Слой 2: решение дилеммы масштабируемости

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

Слой 2: определение

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

Решения для масштабирования слоя 2 в Cardano

Сайдчейны

Сайдчейн, определяется как способ, позволяющий нескольким блокчейнам взаимодействовать друг с другом и заставлять один реагировать на события в другом, и представляет собой отдельный блокчейн, подключенный к основному блокчейну (“основная” цепочка, также известная как родительская цепочка), через двусторонний механизм (“мост”), который позволяет использовать токены и другие цифровые активы из одной цепочки в другой, а результаты возвращаются в исходную цепочку. Активы могут быть перемещены между цепочками по мере необходимости. Одна родительская цепочка может иметь несколько подключенных к ней совместимых сайдчейнов, которые могут работать совершенно по-разному. К сайдчейнам EVM на Cardano относятся dcSpark Milkomeda и проект IOG - сайдчейн EVM.

Hydra

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

Hydra Head (голова Гидры) является первым протоколом семейства Hydra и воплощает в себе основу для более продвинутого развертывания скриптов, основанных на изоморфных, многосторонних каналах состояний. Предоставляя более эффективные средства обработки транзакций оффчейн для набора пользователей, при этом используя леджер основной цепочки в качестве слоя безопасных расчетов, Hydra Head обеспечивает гарантии безопасности, оставаясь слабо связанным с основной цепочкой протоколом. Не требуя глобального консенсуса, он может адаптироваться к широкому спектру применений. Кроме того, Hydra Head позволяет настраивать комиссии за транзакции, бюджеты выполнения скриптов и другие параметры протокола как низко или высоко, в зависимости от варианта использования. Например, это крайне важно для обеспечения микротранзакций.

Кроме того, Hydra Head вводит концепцию изоморфных каналов состояний: то есть для повторного использования одного и того же представления леджера для получения однородных, оффчейн братьев и сестер леджера, которые мы называем Heads (отсюда и название Hydra). В частности, для Cardano это означает, что внутри каждой головы Hydra доступны нативные активы, невзаимозаменяемые токены (NFT) и скрипты Plutus. Изоморфизм допускает естественное расширение системы, а не жестко закрепленное.

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

Другие решения для масштабируемости

Вычисления оффчейн

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

Mithril

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

Вывод

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

Не так, как со слоями 1 и 2, если вы используете визуализацию слоеного торта, описанную здесь.

  • Слой 1 (подставка для торта) = надежная и безопасная базовая сеть, на которой основаны решения слоя 2.
  • Слой 2 ( слои торта) = решения, построенные поверх базы для решения присущих ей проблем масштабируемости.

Это самый простой способ визуализировать и понять, что такое слой 1 и слой 2.

Основные выводы

  • Cardano - это слой 1 (базовая сеть)
  • Решение слоя 2 - это структура, построенная поверх цепочки слоя 1 для решения проблем масштабируемости и скорости транзакций последней. Lightning Network Bitcoin является примером решения слоя 2, как и Hydra для Cardano
  • Существует два варианта масштабирования: вертикальное и горизонтальное
  • Вертикальное масштабирование предполагает расширение вычислительных возможностей отдельных нод за счет добавления большего объема памяти и улучшенных компонентов.
  • Горизонтальное масштабирование может быть достигнуто двумя способами. Во-первых, просто добавив больше компьютеров (нод) в существующую сеть, и, во-вторых, используя сайдчейны, которые снимут часть вычислительной нагрузки с основной цепочки.
  • В течение 2022/2023 года в Cardano будет реализован ряд методов масштабирования

// От переводчика: для получения дополнительных переведенных на русский язык статей о Cardano посетите русскоязычный раздел на форуме Cardano. Видеоролики о Cardano на русском можно найти на YouTube канале нашего замечательного амбасадора Тимура Сахабутдинова, а также на канале Чарльз Хоскинсон на русском. Хотите поговорить или задать вопрос о Cardano по-русски? Приглашаем вас в наше уютное сообщество в Telegram. Оставайтесь на связи, все только начинается!