Шардинг в блокчейне
Низкая пропускная способность, дорогие и медленные транзакции стали серьезной проблемой раннего поколения блокчейнов, таких как Bitcoin и Ethereum. Разработчики предлагали различные варианты для устранения проблем с масштабируемостью, одним из которых стала технология шардинга.
Что такое шардинг?
Простыми словами, шардинг (sharding) — это механизм, позволяющий разделять блокчейн на более мелкие сегменты или шарды, которые могут работать и обрабатывать транзакции параллельно друг другу. Шардинг является одним из способов горизонтального масштабирования блокчейн-сетей и уже используется в Ethereum, Toncoin и Zilliqa.
Концепцию шардинга начали применять еще с 90-х годов прошлого века, когда базы данных уже стали достаточно большими. Сам термин "шард" стал популярным благодаря массовой многопользовательской ролевой онлайн-игре Ultima Online, выпущенной Origin Systems в сентябре 1997 года. Игра стала настолько популярной, что не выдержала нагрузку на сервер и разработчикам пришлось ее распределить на несколько серверов.
Как работает шардинг?
Чтобы понять принципы работы шардинга, разберемся, как устроены децентрализованные сети. Блокчейн состоит из узлов или нод, которые используют свои вычислительные ресурсы для обработки транзакций и добычи новых блоков. Bitcoin насчитывает более 10 000 майнеров, а в Ethereum более 3300 валидаторов.
Майнеры и валидаторы не только поддерживают работоспособность сети, но и обеспечивают ее безопасность. Механика оплаты комиссий в блокчейн-сетях базируется на конкуренции: чем больше пользователей совершают транзакции, тем больше они платят комиссии, чтобы их транзакции как можно быстрее добавили в блок.
Каждый блок вмещает в себя только ограниченное количество транзакций. Например, в каждом блоке биткоина содержится в среднем от 3000 до 5000 транзакций. Транзакции, которые не попали в блок, остаются в мемпуле — списке ожидающих подтверждения транзакций. Все транзакции обрабатываются по очереди в зависимости от суммы комиссии, которую оплатил пользователь.
Шардинг призван устранить или как минимум минимизировать ожидание при подтверждении транзакций. Фактически каждая сеть на основе шардинга представляет собой множество подсетей. Если часть транзакций не попадают в блок и остаются в мемпуле, они перенаправляются в другой шард, который будет обрабатывать их параллельно текущему.
Особенности и недостатки шардинга
Шардинг является в настоящее время одним из лучших и самых популярных решений проблем с масштабированием блокчейн-сетей, однако эта технология применима только для сетей на основе механизма консенсуса "доказательства доли владения" или Proof-of-Stake (PoS).
Децентрализованные сети на основе "доказательства работы" (Proof-of-Work или PoW), такие как Bitcoin, Litecoin и Dogecoin, не подходят для реализации шардинга. Механизм добычи криптовалюты в PoW-сетях основан на хешрейте — вычислительной мощности майнингового оборудования. Чтобы злоумышленнику завладеть контролем над блокчейном Bitcoin, ему потребуется более половины от суммарного хешрейта сети — этот гипотетический сценарий получил название "Атака 51%".
Представьте, что сеть биткоина состоит из 1000 шардов. В таком случае майнер получит полный контроль на шардом при условии, что вычислительная мощность его оборудования составляет не менее 0,051% от хешрейта сети.
В PoS-сетях "Атака 51%" нереализуема, поскольку для добычи криптовалюты валидаторы блокируют свои цифровые активы. Таким образом, например, для получения контроля за сетью Ethereum злоумышленник должен завладеть более 50% всех циркулирующих на рынке монет ETH, что делает подобные атаки нерентабельными.
Хотя шардинг помогает решить проблемы с масштабированием децентрализованных сетей, технология создает для разработчиков ряд вызовов, которые им необходимо преодолеть для защиты от атак.
Шардинг считают, в том числе и сооснователь Ethereum Виталик Бутерин, одним из решений распространенной трилеммы блокчейна, согласно которой крайне трудно добиться безопасности, децентрализации и масштабируемости, не жертвуя чем-то одним из этого.
Безопасность сетей на основе шардинга зависит от устойчивости связи между шардами и правил подбора валидаторов для каждого шарда. Взаимодействие между шардами представляет собой серьезную проблему, поскольку каждый из них по сути является самостоятельным блокчейном.
Как отметил специалист по безопасности Hyperledger Дэвид Хьюсби, разработчикам необходимо обеспечить защиту от захвата шардов. Если узел валидатора, отвечающего за конкретный шард, будет поврежден или намеренно будет совершать зловредные действия, то это может привести к потере части данных.
Эту проблему решают путем случайного назначения валидаторов на каждый шард таким образом, чтобы злоумышленник не мог заранее знать, какой из них будет выделен ему для управления.
Заключение
Шардинг — одно из новых и самых эффективных решений проблем с масштабируемостью блокчейн-сетей старого поколения. Однако технология в блокчейн-индустрии появилась сравнительно недавно, поэтому пока рано говорить о полной безопасности такого подхода для децентрализованных сетей.
Разработчикам необходимо предотвратить любые уязвимости, которые могут использовать злоумышленники для обхода защиты и механизма консенсуса.