О шардинге блокчейна ethereum

Создано: 2018-05-11 22:47

Обновлено: 2019-08-02 17:31

2018-05-11 22:47

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

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

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




Время показало целесообразность осветить подробнее некоторые моменты начальной заметки. Тем более, что Lightning Network всё менее оправдывает связанные с ней завышенные ожидания. И поэтому всё больше проектов заявляют об интересе к шардированию для решения проблем блокчейна - их список уже давно не исчерпывается одним ethereum-ом. Возник даже новый мем о "панацее шардинга" - дескать, шардинг и есть та серебряная пуля, которая решит все проблемы. Рост популярности идей шардинга основан на следующей логической ловушке: если разбить единую сеть монеты на сегменты и обрабатывать транзакции только внутри этих сегментов, то, во-первых, транзакции внутри сегмента будут обрабатываться быстрее, чем всей сетью. А во-вторых, поскольку транзакции будут обрабатываться сегментами параллельно, это приведёт к линейному росту пропускной способности сети - чем больше сегментов, тем больше транзакций можно распределить между ними, значит, тем больше будет обработанных транзакций в единицу времени; а сама сеть будет замечательно масштабироваться добавлением в неё новых сегментов. Казалось бы, всё прекрасно, но - те, кто попадает в описанную выше ловушку, не видят поначалу такую проблему - а как будут осуществляться транзакции между сегментами? Понятно, что внутри сегмента проблем нет никаких, но вот проблема между-шардовых транзакций настолько сложна, что сделавших ставку на "панацею шардинга" начинает сильно корёжить. Ведь без решения проблемы между-шардовых взаимодействий становиться невозможной параллельная обработка транзакций сегментами, что вовсе превращает "панацею шардинга" в бессмысленную затею. Без параллельной обработки транзакций сегментами описанная выше логическая ловушка становится равносильной по смыслу такой фразе: "Если установить на автомобиль два двигателя, то его скорость увеличится вдвое; а если установить четыре двигателя - скорость увеличится вчетверо". Но в таком виде её абсурдность сразу станет очевидной, и в неё не попадутся даже студенты-недоучки из Ethereum Foundation.

Собственно для между-шардовых взаимодействий как раз и нужны узлы-координаторы, о которых говорилось в начальной заметке, и потому так важна их роль. Без координаторов шардированная система превратится в кучку изолированных, логически несвязанных сегментов. Очевидно, что такой результат от применения шардинга никому не нужен. Но появление в системе координаторов заметно повышает её сложность - поэтому я и говорил, что в случае блокчейна издержки появления координаторов могут перекрыть профит от шардирования сети. Ведь обычно (безотносительно к блокчейну) шардинг применяется для решения проблемы хранения сильно распухших данных, и на издержки, связанные с ростом сложности из-за появления координаторов, никто не смотрит - главное организовать хранение огромных объёмов информации, сохранив при этом её логическую связанность. В случае же с ethereum-ом посредством шардинга заодно хотят решить проблемы масштабирования и скорости - и вот тут не факт, что появление координаторов не окажет влияние на конечный результат. Учитывая, что в Ethereum Foundation на роль координатора сегментов был выбран так называемый "центральный блокчейн" (известный теперь как протокол Beacon Chain), уж в скорости врядли будет получен заметный выигрыш. Но пока о каких-то выигрышах вовсе говорить не приходится - решение проблем между-шардовых транзакций и построения state-шардинга оказалось настолько сложным, что никаких сообщений об успехах шардирования блокчейна ethereum уже продолжительное время не слышно. Скорее наоборот, похоже Ethereum Foundation пребывает в унынии от осознания факта, что взялись за решение непосильной для них задачи.