Блокчейн: масштабируемость

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

Даже если нет широкого согласия относительно того, что означает масштабируемость блокчейна, мы можем выделить три класса масштабируемости:

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

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

Внутренняя масштабируемость

Это наиболее противоречивый тип масштабируемости. Существует огромный разрыв между тем, что биткойнеры считают масштабируемым блокчейном, и тем, что делает большинство других блокчейн-сообществ. Для биткойнеров сеть децентрализована до тех пор, пока средний ноутбук, время от времени подключенный к Интернету, может синхронизировать блокчейн и проверять входящие платежи. Вот недавний комментарий Джеймсона Лоппа о масштабировании биткоина в 2021 году:

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

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

В документе Bitcoin различают два типа узлов: полные узлы и узлы SPV. Сатоши думал, что торговцы (или компании) будут более склонны запускать полные узлы, а отдельные лица будут либо запускать полные узлы, либо запускать узлы SPV (последователи хэшрейта). В белой книге Биткойна не упоминается ни слово «кошелек», ни какое-либо приложение, которое подключается к централизованному API, как это делает большинство современных мобильных кошельков. Новые публичные блокчейн-проекты предполагают, что большинство пользователей будут использовать мобильные кошельки, а компании и организации будут иметь бюджет для запуска мощных полных узлов в облаке. Новые команды разработчиков блокчейна сосредоточены только на ресурсах, которые узел потребляет из облака, и их стоимости.

При использовании облачного сервера машина, имеющая 128 ГБ ОЗУ и только 1 ЦП, является таким же допустимым узлом, как и машина, имеющая 4 ГБ ОЗУ и 64 ЦП, при условии, что обе они стоят одинаково при аренде в облаке. Пользователю даже можно посоветовать перенастроить свое оборудование после завершения первоначальной синхронизации блокчейна. Не совсем безумно представлять себе будущее, в котором блоки блокчейна сами по себе могут запрашивать дополнительные внешние ресурсы, такие как больше оперативной памяти.

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

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

Определения масштабируемости

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

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

Иногда узкое место масштабируемости не полезно сравнивать два блокчейна. Например, это оптимальные компьютерные требования для трех основных блокчейнов (взятых из этой отличной статьи):

  • Bitcoin: 350 ГБ дискового пространства на жестком диске, подключение 5 Мбит/с, 1 ГБ оперативной памяти, процессор >1 ГГц.
  • Ethereum: 500 ГБ + SSD дискового пространства, соединение 25 Мбит/с, 4–8 ГБ ОЗУ, процессор 2–4 ядра.
  • Solana: 1,5 ТБ + SSD дискового пространства, 300 Мбит/с соединение, 128 ГБ ОЗУ ПРОЦЕССОРА 12+ ядер.

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

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

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

Оценка масштабируемости

Вычисление фактического узкого места масштабируемости / стоимости для набора блокчейнов является сложной задачей. Узкое место/стоимость определяется для определенного состояния. Блокчейн в генезисе потребляет намного меньше ресурсов, чем через 7 лет. Состояние включает в себя топологию сети, состояние консенсуса, историю блоков и фактическое сочетание выполняемых типов транзакций. Ethereum имеет состояние 130 ГБ, которое в основном неактивно, что делает его узкое место масштабируемости хуже, чем другие новые EVM-блокчейны.

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

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

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

Масштабируемость различных типов транзакций

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

С появлением Taproot, который приносит родные пороговые подписи Шнорра в Биткойн, Биткойн, вероятно, имеет одно из самых низких узких мест масштабируемости для нативных и мультисиг-платежей. Тем не менее, является ли RSK быстрее, чем Bitcoin при обработке простых нативных платежей? Средняя транзакция Bitcoin требует извлечения нескольких предыдущих неизрасходованных выходов из хранилища и проверки по крайней мере одной подписи для каждого входа. Транзакция RSK требует только извлечения 2 учетных записей из хранилища (источника и назначения) и восстановления одного подписи с открытым ключом. Если бы RSK обрабатывал только простые нативные платежи, его узкое место масштабируемости и стоимость были бы ниже, чем у Bitcoin, но модель UTXO по своей сути более легко распараллеливаема, поэтому фактические реализации имеют значение. Биткойн, вероятно, платит цену более высокого, чем оптимальное, узкое место масштабируемости для использования модели UTXO. Модель UTXO, при правильном использовании, обеспечивает большую анонимность.

Масштабируемость разделения узлов

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

Потенциальные разделения многочисленны: мы можем отделить доказательство правильности транзакций от проверки транзакций (с доказательствами с нулевым разглашением), обслуживание данных от потребления данных (со слоями доступности данных), распространение блока между майнерами от распространения межпользовательского блока (с сетями, подобными FIBRE), обслуживание исторического состояния / получения от клиентов синхронизации состояний (с узлами архива). и легкие клиенты), обслуживание исторического блока из быстрой синхронизации блоков (с полными и обрезанными узлами), полная проверка блоков из chainwork-subjectivity (с легкими клиентами с хэшрейтом), полное хранилище состояния из частичного хранилища (с клиентами без сохранения состояния) и т. Д.

Разделение ответственности узла не является чем-то новым, в документе Bitcoin предложены два типа узлов (полный и SPV) с различными требованиями к ресурсам. Спустя годы полные обязанности узлов были разделены на майнинговые узлы (создание блоков) и не-майнинговые узлы (верификация блоков).

Внешняя масштабируемость

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

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

Сети платежных каналов

Одним из самых ранних методов масштабирования являются сети платежных каналов (PCN). Крупнейшим PCN является Bitcoin Lightning Network, которая неуклонно растет. Основным преимуществом PCN является сверхнизкая транзакционная стоимость, а их основным недостатком является то, что контрагент должен предварительно внести депозит и заблокировать сумму денег заранее для выполнения будущих платежей. Эта проблема делает PCN финансово проблематичными для обслуживания пользователей с низким доходом или новичков криптовалюты, которые начинают с пустых учетных записей.

Проблема пустых учетных записей PCN может быть смягчена в платформе смарт-контрактов с помощью двухрежимного кошелька. Изначально пользователь выбирает PCN-хаб, который имеет большой залог, депонированный в контракте. Для новых счетов (когда балансы очень низкие) пользователь и хаб используют первый режим, где они обмениваются взаимно подписанными долговыми расписками без созданного канала onchain и без обеспечения для каждого канала. Долговые расписки могут быть погашены пользователем в любое время. Это примерно эквивалентно функциональности, которая может быть обеспечена контрфактическими платежными каналами, где первоначальный депозит автоматически берется из основного залога. Если баланс пользователя превышает порог, кошелек переключается во второй, более безопасный режим, и создается канал между пользователем и хабом со средствами, указанными последней взаимно подписанной долговой распиской. Я нахожу эту модель относительно безопасной с точки зрения анализа риска и вознаграждения.

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

Для блокчейнов на основе EVM можно построить систему, в которой создание канала с односторонним обеспечением потребляет менее 42K газа, а концентратор может пакетировать несколько одновременных открытий канала. Дозирование 10-канальных отверстий за одну транзакцию может снизить индивидуальную стоимость до 24K газа.

Накопительные пакеты

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

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

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

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

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

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

Работа в IOV Labs Research

В IOV Labs мы постоянно проводим бенчмаркинг релизов, а иногда и других платформ. Мы развертываем специальные тестсеты для выполнения тестов производительности, а также тестируем механизмы выполнения блоков, загружая предварительно добытые блоки с диска. Эти блоки создаются с помощью определенного, но искусственного набора транзакций. Мы создали инструмент тестирования производительности для проверки узкого места масштабируемости каждого нового выпуска. Это позволяет основным разработчикам постоянно улучшать свои выпуски. Один и тот же инструмент можно использовать для сравнения нескольких платформ на основе EVM, хотя каждая платформа должна быть адаптирована и настроена для чтения блоков из файла и для начала с определенного блока генезиса. С помощью этого инструмента мы можем создавать предопределенные шаблоны блоков, которые представляют различные варианты использования, такие как переводы стейблкоинов, нативные переводы, использование платежных каналов или сворачивающие фиксации.

Итог

В этой статье мы проанализировали масштабируемость блокчейна, и показали, что сегодня доступны реалистичные технологии масштабируемости: внутренние, внешние и разделение узлов. Мы также ввели определения и методологию сравнения, которые мы ежедневно используем в IOV Labs. В следующих статьях мы проанализируем масштабируемость RSK по сравнению с другими блокчейнами, использующими эти инструменты. Мы покажем, как RSK может обеспечить истинную финансовую доступность путем реалистичного масштабирования!

Источник