Технология шардинга базы данных в сети блокчейн

Технология Шардинга (Sharding Technology) - Подробное описание

Huobi - Биржа криптовалют
Huobi - Биржа криптовалют

Шардинг (Sharding) — Это стратегия масштабируемости базы данных и приложений. В переводе на русский язык, слово sharding означает — сегментирование. В криптовалютном мире, её называют «технологией осколков».

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

Технология шардинга — основные характеристики

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

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

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

Sharding вертикальный и горизонтальный

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

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

BitPapa - P2P Обменник криптовалют
BitPapa - P2P Обменник

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

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

Применение шардинга на примере Ethereum

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

Ethereum Sharding

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

FairSpin - Первое в мире блокчейн казино
Binance - Криптовалютная биржа №1

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

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

Sharding technology

Пример того, как это работает:

Например, схема шардинга в рамках Ethereum может предусматривать размещение всех адресов, начиная с 0x00 в один осколок, а адресов, начинающиеся с 0x01, в другой и т. д. В простейшей форме каждый «осколок» будет иметь собственную историю транзакций, а эффект транзакций в определенном осколке X будет ограничен состоянием осколка X.

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

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

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

Сложности в реализации и недостатки шардинга

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

Attack 1%

Однако, есть и другие недостатки:

  1. Не существует механизма, отслеживающего какая именно нода обрабатывает какую транзакцию. Нужен безопасный и эффективный механизм, который будет безопасно и быстро работать в блокчейне.
  2. Не разработан алгоритм доверия между нодами, чтобы они могли доверять друг другу. В криптовалютном блокчейне ноды не имеют права просто доверять друг другу — они должны приходить к независимому консенсусу. Также нужно подтверждение того, что обе ноды закончили процесс обработки.
  3. Эффективно применять шардинг можно в блокчейнах с алгоритмом proof-of-stake (полным или частичным), а сейчас с проблемой масштабирования сталкиваются в основном криптовалюты с алгоритмом proof-of-work.

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

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

Будущее шардинг технологии

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

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

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

Наиболее известными проектами, использующими технологию шардинга являются HarmonyZilliqa и IOST.

 BitPapa - P2P обменник криптовалют BitPapa - P2P обменник. Покупайте и продавайте криптовалюту без посредников...  18+ 

FairSpin - Первое в мире блокчейн казино
Telegram канал Bitcoins-Mining.net
 О проекте | Связаться с нами

Пожертвовать Bitcoin на развитие проекта

Отсканируйте QR-код или скопируйте указанный адрес Bitcoins-Mining.net
Отсканируйте QR-код или скопируйте указанный ниже адрес в свой кошелек, чтобы отправить Bitcoin:
Купить Bitcoin

Пожертвовать Bitcoin Cash на развитие проекта

Отсканируйте QR-код или скопируйте указанный адрес Bitcoins-Mining.net
Отсканируйте QR-код или скопируйте указанный ниже адрес в свой кошелек, чтобы отправить Bitcoin Cash:
Купить Bitcoin Cash

Пожертвовать Ethereum на развитие проекта

Отсканируйте QR-код или скопируйте указанный адрес Bitcoins-Mining.net
Отсканируйте QR-код или скопируйте указанный ниже адрес в свой кошелек, чтобы отправить Ethereum:
Купить Ethereum

Пожертвовать Litecoin на развитие проекта

Отсканируйте QR-код или скопируйте указанный адрес Bitcoins-Mining.net
Отсканируйте QR-код или скопируйте указанный ниже адрес в свой кошелек, чтобы отправить Litecoin:
Купить Litecoin

Пожертвовать Monero на развитие проекта

Отсканируйте QR-код или скопируйте указанный адрес Bitcoins-Mining.net
Отсканируйте QR-код или скопируйте указанный ниже адрес в свой кошелек, чтобы отправить Monero:
Купить Monero
BitPapa - P2P Обменник