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

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

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

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

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

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

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

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

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

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

Технология распределенного реестра и шардинг

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

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

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

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

Масштабирование и шардинг

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

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

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

Как выполняется шардинг

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

Шардинг обычно используется в сетях с доказательством доли владения (Proof of Stake, PoS), в отличие от сетей с доказательством выполнения работы (Proof of Work, PoW). В механизме консенсуса PoS узлы подтверждают транзакции на основе количества токенов, которые они поставили на кон. Шардинг подразумевает, что стейкеры имеют дело с разными шардами одного и того же блокчейна.

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

Узлы блокчейна и шардинг

Компьютеры, которые обеспечивают транзакции в одноранговой сети (P2P), такой как блокчейн, называются узлами. Наиболее распространенным типом узла является архивный полный узел. Полные узлы архивируют копию всей истории блокчейна. Для крупных сетей, таких как Bitcoin и Ethereum, это требует достаточно большого объема памяти и вычислительной мощности.

В задачи узла входит:

  • обработка транзакций
  • запись транзакций
  • трансляция транзакций

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

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

Совместное использование шардов

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

Необходим ли шардинг?

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

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

Платежный протокол Lightning Network сети Bitcoin является одним из примеров решения второго уровня. Lightning позволяет проводить мгновенные транзакции, стоимость которых составляет доли пенни.

Другой пример – Polygon (MATIC) в сети Ethereum. Проще говоря, Polygon делает для Ethereum то же самое, что Lightning для Bitcoin. Однако если Ethereum перейдет на систему Proof of Stake (PoS) и внедрит шардинг, то второй уровень, такой как Polygon, может устареть.

Плюсы и минусы шардинга

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

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

Подведем итог

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

Lightning от Bitcoin и Polygon от Ethereum – оба решения второго уровня – в последнее время получают все большее распространение. Стоит отметить, однако, что, если Ethereum обновится до Ethereum 2.0 и примет Proof of Stake, шардинг станет основным методом масштабирования.