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

Blog_Sharding.png

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

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

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

Какие проблемы решает шардинг

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

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

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

Как все это работает

Блокчейны состоят из тысяч компьютеров, благодаря вычислительным мощностям которых распределенные реестры и функционируют: проводят транзакции, выполняют смарт-контракты, разворачивают dApps и т. д. 
Если сеть функционирует на основе последовательного выполнения, то каждый узел должен обрабатывать каждую транзакцию. Поэтому верификация операций занимает достаточно много времени. К примеру, Ethereum обрабатывает около 10 транзакций/сек.

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

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

Минусы шардинга

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

  1. Коммуникация. Если поделить сеть на изолированные сектора, то каждый из них, по сути, станет отдельным блокчейном. Пользователи и децентрализованные приложения одного шарда смогут общаться с пользователями и приложениями другого только используя особый коммуникационный протокол.
  2. Безопасность. В сети, разделенной на сегменты, гораздо легче взять под полный контроль один шард, так как для этого нужно гораздо меньше хешрейта, чем для захвата нераспределенной сети. К примеру, для того чтобы совершить атаку 51 % на сеть Bitcoin, потребуются миллиарды долларов на оборудование и сотни миллионов долларов в день на электроэнергию. Дорого, невыгодно, неосуществимо. А вот захватить один шард гораздо дешевле и проще.

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

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

Первая сеть, внедрившая шардинг, — Zilliqa. Она позиционирует себя как блокчейн-платформа, целью которой является применение сегментирования для решения проблем масштабируемости. На стадии тестнета она смогла добиться показателя в 2828 транзакций/сек.

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

Ethereum также собирается внедрять технологию шардинга. Среди других шардинговых сетей — Cardano, QuarkChain, PChain.

Итого

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