Что такое шардинг в блокчейне?

13.05.2024
18 мин
1719
25
Что такое шардинг в блокчейне? Заглавный коллаж статьи.

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

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

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

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

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

Что такое шардинг?

Шардинг — это разделение хранилища данных на меньшие части (сегменты, шарды), которые можно хранить на отдельных серверах. Каждая из них содержит фрагменты данных, что обеспечивает равномерное их распределение и возможность эффективной обработки запроса.

Различают два типа шардинга:

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

Термин «шард» скорее всего происходит либо из книги «Система для высокодоступных реплицированных данных» компании Computer Corporation of America, либо видеоигры Ultima Online, в которой разработчики создали несколько серверов для игры, разделив глобальную базу игроков на отдельные сессии.

Постепенно все больше компаний внедряли эту технологию в свои проекты, а различные разработчики ПО, такие как Oracle, Amazon, Microsoft Azure и другие, улучшали и совершенствовали ее для решения проблем перегрузки.

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

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

Шардинг в блокчейне

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

Как шардинг работает на техническом уровне

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

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

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

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

Алгоритмы шардинга

На момент написания материала существуют следующие алгоритмы шардинга:

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

Преимущества и недостатки шардинга

Разделение блокчейна на сегменты имеет ряд преимуществ.

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

Однако, у этой концепции есть и недостатки:

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

Какие проекты используют шардинг?

Ряд криптопроектов уже интегрировали технологию шардинга в свои блокчейны. К примеру:

  1. NEAR Protocol сосредоточен на разработке первого в истории индустрии выполнения транзакций между шардами в реальном времени без увеличения нагрузки. Сеть Near стремится позволить любому низкоуровневому устройству работать в качестве узла сети.
  2. Платформа Zilliqa использует динамический шардинг на уровне сети для масштабирования своего блокчейна. Транзакции в Zilliqa делятся на микроблоки, которые затем параллельно обрабатываются различными группами валидаторов.
  3. Шардинг является частью дорожной карты Ethereum 2.0. Его реализация запланирована ближайшие годы и на момент написания находится на этапе внедрения прото-данкшардинга.

Адаптивный шардинг используется в блокчейне MultiversX (ранее Elrond). Это высокопроизводительная, масштабируемая и безопасная блокчейн-платформа, предназначенная для обеспечения работы децентрализованной экосистемы. Технология адаптивного шардинга состояний MultiversX позволяет сети параллельно обрабатывать тысячи транзакций в секунду.

Будущее концепции

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

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

Выводы

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

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

Как вам статья?

25
0

статьи на эту же тему

Обзор Starknet: что это такое и как...
avatar Denis Solomyanyuk
26.06.2024
Что такое роллапы и чем ZK-Rollups...
avatar Anastasia Mirza
03.06.2024
Что такое задача византийских...
avatar Nikita Tipikin-Holovko
28.05.2024
Войти
или