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

#34. Cryptocurrencies and Blockchain

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

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

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

Шардинг (sharding) — технология распределения нагрузки на сеть, путем её равномерного распределения между отдельными серверами или сегментами сети. Потребность в данной технологии возникла для решения одного из наиболее существенных ограничений сети Ethereum — скорости обработки транзакций. Данное ограничение стоит на пути масштабируемости Эфириума, вычислительная сеть которого способна обрабатывать до 20 транзакций в секунду. Для сравнения, платежная система Visa способна обрабатывать около 24 тыс. транзакций в секунду.

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

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

Оригинальная технология Ethereum работает (пока) на протоколе Proof-of-Work и предполагает, что все узлы сети должны подтверждать внесение в блок новой информации. Учитывая масштаб сети — это и тормозит процесс обработки транзакций. Шардинг предполагает, что вычислительная и накопительная нагрузка распределяется таким образом, что каждый узел обрабатывает и хранит информацию только о своем шарде.

Что такое шард

Один блокчейн программным образом делится на несколько обособленных цепочек, шард — это такая цепочка блоков. Отдельные шарды объединяются в рамках общего блокчейна при помощи сети валидаторов. Этот процесс может осуществляться на основании алгоритма Proof-of-Work или Proof-of-Stake. Начиная с анонса в 2017 году технологии шардинга ходят слухи о переходе к Ethereum 2.0. Первой фазой перехода должно стать внедрение протокола Casper, который сделает возможным использование гибридного протокола PoW и PoS и тестирование базовой модели шардинга в рамках 64 отдельных шардов внутри блокчейна Beacon Chain (основной блокчейн цепи Ethereum 2.0). 

Слабые стороны шардинга

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

Технология имеет две основные проблемы: 

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

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

Потенциал шардинга

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