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

Что такое шардинг в блокчейне криптовалют и как он работает? Какие недостатки шардинга и существуют ли ему альтернативные решения? Ответы на эти и другие вопросы читайте в нашей подробной статье.

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

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

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

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

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

По сути, это один и тот же процесс.

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

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

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

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

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

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

На данный момент Ethereum работает на основе последовательного выполнения, при котором каждый из этих узлов должен вычислять каждую операцию и обрабатывать каждую транзакцию. Поэтому транзакция, проходящая через этот процесс проверки, может занять много времени. В настоящее время Ethereum колеблется на уровне около 10 транзакций в секунду (TPS) — Visa, для сравнения, делает в среднем 24 000 TPS. Добавление компьютеров в сеть не обязательно повысит эффективность, поскольку вся книга хранится на каждом компьютере, и цепочка проверки просто станет длиннее.

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

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

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

Шардинг — это потенциальное решение текущих проблем с масштабируемостью блокчейна.

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

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

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

Недостатки шардинга

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

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

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

Существуют ли альтернативные решения шардингу?

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

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

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

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

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

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

Zilliqa — первая общедоступная блокчейн-платформа, в которой реализовано сегментирование. В тестовой сети он смог достичь 2828 TPS.

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

Подобно Near, Ethereum предоставляет экосистему блокчейна для реализации DApps на основе смарт-контрактов. Ethereum Foundation планирует внедрить шардинг в рамках своего обновления Ethereum 2.0, запуск которого запланирован на сентябрь 2022 года, как было подтверждено на телеконференции Ethereum Foundation 13 июня 2019 года.

Другие блокчейн-проекты, рассматривающие сегментирование как решение проблем масштабируемости, включают Cardano (ADA), QuarkChain и PChain.

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

В последнее время шардинг привлек больше внимания из-за монеты Facebook Libra. Позже проект был переименован на Diem. Первоначально его запуск планировался на 2020 год, но был выпущен только рудиментарный экспериментальный код, пока проект не был закрыт в январе 2022 года.

Однако в более общем смысле шардинг может стать решением трилеммы блокчейна.

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