Новости | ITSec.Ru

Шардинг как решение проблемы масштабируемости блокчейнов

Written by Komolov Rostislav | 12/02/19

Недостаток многих общедоступных блокчейнов — требующие большого объема вычислений протоколы консенсуса, которые обеспечивают получение согласия всех пользователей с тем, что предложенная транзакция является действительной. В частности, используемый для биткоина протокол доказательства выполнения работы (proof of work, PoW) требует, чтобы большинство участников сети заверили новую транзакцию и зарегистрировали соответствующие данные, из-за чего проводки выполняются медленно. Биткоин-сеть обрабатывает только по 3,3-7 транзакций в секунду, и время выполнения одной операции достигает 10 мин, а у Ethereum скорость составляет 12-30 транзакций в секунду. Для сравнения, у сети VisaNet компании Visa аналогичный показатель в среднем — 1700.

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

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

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

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

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