Это мой непрямой ответ на статью, которую меньше года назад написал Афри Шёдон, разработчик Ethereum-клиента Parity. Должен подчеркнуть, что я с уважением отношусь к большинству разработчиков в этой сфере, и это не попытка атаковать кого-либо из них. В этой статье я лишь хочу рассмотреть актуальные проблемы и показать, что Шёдон в своей статье упускает их из виду.
И скажу сразу: ограниченный объём хранения данных здесь ни при чём.
Продолжение. По ссылкам можно прочитать первую и вторую части статьи.
Совет: не используйте централизованные блокчейны
Единственный человек в этом зале, у которого работает полный узел, — это тот, кто держит в своих руках как рисунок, так и всю сеть Эфириум. До сих пор я старался не упоминать Виталика и сосредоточиться исключительно на технических вопросах, однако это фото (а также его оригинал) лучше всего передаёт всю сущность Эфириума. Я отдаю Виталику должное за то, как он выводит мошенников вроде Fake Satoshi на чистую воду, но в то же время он сам представляет функциональные возможности Эфириума в ложном свете.
Что касается чуда под названием шардинг, это не более чем фокус и пыль в глаза. Шардинг таит в себе ту же проблему централизации узлов, и, в действительности, навязывает пользователям ту самую модель ведущих и ведомых, о которой я предупреждал выше, под видом новой технологии масштабирования.
Можно даже не рассматривать бессмысленную схему, которую опубликовал Виталик, но давайте в упрощённом в виде представим текущую структуру сети Эфириум. На схеме, изображённой ниже, лёгкие клиенты обозначены зелёным, а важные полные узлы – красным. Возможно, ваш узел с быстрой синхронизацией пока ещё принадлежит к последней группе, но в какой-то момент он окажется в числе зелёных, если перестанет справляться с нагрузкой или если вы устанете тратить время и силы на обновления и поддержку и перейдёте на лёгкий клиент.
Со временем число зелёных узлов возрастает, а красных — уменьшается. Этого не избежать: пользователи делают соответствующий выбор уже сейчас. На вашем компьютере работает полный узел или лёгкий клиент? Может быть, ни то и не другое? Переход на лёгкий клиент — популярная рекомендация тем, чьи узлы не могут синхронизироваться. Однако это не решение проблемы.
Это очень оптимистичная схема. Многие полные узлы (обозначенные красным) не так хорошо соединены между собой, и не все соединения с пирами находятся в рабочем состоянии:
Но не беспокойтесь, Виталик придёт на помощь и превратит узлы в SPV-клиенты, которые синхронизируют лишь заголовки блоков:
«Ограничение состоит в том, что каждый узел должен будет подтверждать заголовки блоков из всех шардов и сможет работать в пределах своей производительности. Отсюда понятие квадратичного шардинга: если узел может выполнить C операций, то он сможет обработать заголовки для C шардов, а если этот узел подтверждает 1 блок, то в нём может быть не более C транзакций. Таким образом, его приблизительная производительность составит C^2».
Что это означает? К счастью, я потратил немало времени на то, чтобы изобразить последствия визуально, но начнём со словесного объяснения.
В сети Биткойна можно либо подтверждать транзакции полностью, либо не подтверждать ничего. Есть только две роли:
- полные узлы, подтверждающие абсолютно все транзакции и блоки;
- SPV-клиенты, которые не проделывают никакой работы, а только устанавливают соединение с полным узлом и синхронизируют заголовки блоков, не передавая никакие данные в сеть. Они не являются полноценными участниками сети, и я упоминаю их здесь исключительно для ясности.
Повторюсь: в сети Биткойн все 115 тыс. узлов проделывают полезную работу.
Вот из каких узлов состоит сеть Эфириум:
- полные узлы, на которые приходится вся нагрузка по подтверждению всех транзакций и блоков;
- узлы, которые пытаются справиться со всеми задачами, но не успевают синхронизироваться из-за проблем с пирами, пропускают строки и прибегают к быстрой синхронизации, а затем якобы полноценно подтверждают новые транзакции и блоки;
- лёгкие «узлы», которые постоянно синхронизируют только заголовки блоков, и, насколько я понимаю, обмениваются ими с такими же узлами. Назовём их SPV-узлами. У них нет аналога в Биткойне: там SPV-клиенты не передают никакие данные в сеть, и их нельзя считать узлами.
Готов гарантировать, в то самое число узлов в Эфириуме, в основном, входят лёгкие узлы, которые не выполняют никакой работы по подтверждению (синхронизация заголовков к ней не относится). Если кто-то с этим несогласен, пусть приведёт свои аргументы и продемонстрирует соответствующие данные. Лёгкие узлы по сути составляют подсеть, в которой распространяются лишь заголовки блоков, однако их жульнически включают в общее число узлов в сети. Они не приносят сети никакой пользы и просто паразитируют на ней.
Обновлённый Эфириум с введением шардинга будет состоять из следующих компонентов:
- полные узлы, на которые приходится вся нагрузка по подтверждению всех транзакций и блоков,
- шардинговые сети с полными узлами, которые проделывают всю работу в пределах собственного шарда, а также подтверждают заголовки из других шардов,
- «узлы», которые лишь синхронизируют, подтверждают и передают в сеть заголовки блоков из разных шардов. Проверка заголовков блоков не является подтверждением транзакций: можно сказать, что это подсеть псевдо-узлов, которые выдаются за настоящие и включаются в общее число узлов, что создаёт у публики ложное впечатление исправно функционирующей децентрализованной сети.
Угадайте, в какой группе окажется ваш узел? Подумайте. Для полноценных узлов не изменилось ровным счётом ничего.
Я немного схитрил с изображением соединений и просто скопировал участки сети ради экономии времени, но точность линий не имеет значения. Синим обозначены шардинговые сети, красным — всё та же сеть полных узлов, подтверждающих все транзакции. Зелёные «узлы» синхронизируют и передают остальным только заголовки блоков:
Это нельзя назвать масштабированием. Когда узлу не под силу успевать за сетью, он переходит в разряд лёгких клиентов. С введением шардинга такой узел сможет стать шардинговым узлом, однако это не имеет значения, так как сеть в любом случае теряет полный узел, когда его владелец выбирает более лёгкий вариант. Что ещё хуже, все эти зелёные точки называют узлами, хотя в действительности они лишь работают с заголовками и доверяют подтверждение полным узлам.
Есть ли хоть какой-нибудь способ узнать, сколько полных узлов работают в такой сети? Это трудно проверить даже сейчас, ведь те немногие сайты, которые отслеживают состояние Эфириума, засчитывают лёгкие клиенты в общем числе узлов. Будет ли заметно то, что все полные узлы сконцентрируются, скажем, в 10 дата-центрах? Нет. Никто этого не узнает.
Исправление: мне указали на ошибку в понимании шардинга, хотя я хорошо представляю себе, как он работает. Я не хотел усложнять эту статью, так как шардинг не является основной её темой, и я собираюсь опубликовать продолжение, в котором рассмотрю проблемы этой технологии, в том числе новые роли узлов, коллаторы и валидаторы, то есть всё те же полные узлы в новом представлении, которые не сможет содержать рядовой пользователь. Пока же постараюсь более точно изобразить, как будет выглядеть сеть Эфириум после введения шардинга, на новой схеме.
Ни одного полного узла:
Биткойн, с другой стороны, с самого начала разрабатывался так, чтобы предотвратить такой исход:
«Биткойн создаёт мотивацию для миллионов частных детективов расследовать попытки подрыва или злоупотреблений.
Не становитесь врагом Биткойна». > https://twitter.com/_Kevin_Pham/status/999152930698625024
Как стоит поступить в этой ситуации?
Если вы разработчик, используйте свои навыки, чтобы создавать приложения на базе надёжного и работоспособного блокчейна.
Если вы предприниматель, включите в свои сервисы поддержку платёжных сетей, построенных на основе надёжного блокчейна.
Если вы инвестор, соберите свои активы и вложите их в надёжный блокчейн, который не умрёт в ближайшие несколько лет.
Если вы биржевой игрок, покупайте EOS. Он новее и нисколько не лучше Эфириума по тем же самым причинам, о которых я говорил ранее, но зато его пока никто не знает.
Если вы идеалист, Эфириум точно не для вас. Найдите для себя правильный блокчейн.
https://twitter.com/StopAndDecrypt/status/992766974022340608
Рубрики:Анализ, Важное, Виталик Бутерин, Мнение, ETH, Ethereum, эфир
Добавить комментарий