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

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

Шардинг не является новой концепцией и используется в традиционном централизованном управлении базами данных по крайней мере с конца 1990-х годов. Термин был фактически популяризирован одной из первых многопользовательских ролевых онлайн-игр (MMORPG), Ultima Online, в которой разработчики делят игроков на разные серверы (разные «миры» в игре), чтобы справиться с трафиком.

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

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

Это по сути тот же процесс.

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

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

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

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

Блокчейн Ethereum состоит из тысяч компьютеров, то есть узлов, которых в настоящее время насчитывается 8 622, по данным ethernodes.org, каждый из которых предоставляет определенное количество хэш-мощности для сети.

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

В настоящее время Ethereum работает со скоростью около 10 транзакций в секунду (TPS) – для сравнения, Visa в среднем делает 24 000.

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

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

Какую проблему может решить шардинг?

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

Повышенная активность транзакций предъявляет повышенные требования к узлам для проверки транзакций, и существует реальная угроза того, что эти блокчейны могут стать засоренными (как это было замечено в Ethereum во время помешательства CryptoKitties, когда на игру приходилось 11% транзакций в сети).

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

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

Есть ли недостатки у шардинга?

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

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

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

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

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

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

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

Он смог достичь 2828 TPS в своей тестовой сети. Экосистема блокчейна Near позволяет разработчикам легко создавать и развертывать децентрализованные приложения. Он также называет себя «изолированным, дружественным к разработчикам, блокчейном с доказательством заинтересованности» и заявляет, что его технология сегрегации позволяет узлам оставаться достаточно маленькими, чтобы работать на простых экземплярах, размещенных в облаке – возможно, даже на мобильных устройствах в будущем.

Подобно Near, Ethereum предоставляет экосистему блокчейнов для реализации смарт контрактных приложений DApps. Фонд Ethereum планирует представить шардинг в рамках своего обновления Ethereum 2.0, которое должно быть выпущено в январе 2020 года, что было подтверждено в призыве Фонда Ethereum 13 июня 2019 года. К другим проектам блокчейнов, которые рассматривают шардинг как решение проблем масштабируемости, относятся Cardano, QuarkChain и PChain.

Каково будущее шардинга блокчейна?

В последнее время все больше внимания уделяется шардингу из-за монеты Libra в Facebook. Недавно Facebook опубликовал более подробную информацию о монете «Libra» в своем официальном документе, который планируется выпустить в первой половине 2020 года. Также выяснилось, что Facebook приобрел Chainspace, команда разработчиков которого была в основном сосредоточена на шардинге блокчейнов.

Это говорит о том, что блокчейн Libra будет реализовывать некоторую форму разбивания на блоки.

В более общем смысле, расщепление может быть решением, которое решает трилемму блокчейна. В трилемме блокчейна, как описывает Виталик Бутерин, соучредитель Ethereum, вы можете поддерживать только две из трех основных характеристик блокчейна одновременно, а именно: безопасность, децентрализация и масштабируемость. Это потому, что вам всегда придется идти на компромисс по крайней мере с одним из этих элементов, чтобы иметь два других. Трилемма масштабируемости Как отметил в недавней статье Forbes Бениамин Минку, генеральный директор Elrond Network, протокола цепочки блоков, нацеленного на масштабируемость и функциональную совместимость, если будут решены проблемы с разделением, он принесет масштабируемость в цепочки блоков без ущерба для децентрализации или безопасности.

Это, в свою очередь, может сделать блокчейн еще на один шаг ближе к устойчивому внедрению. Минку сказал:

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