Размер блокчейна Эфириума превысил 1ТБ, и да, это проблема (Часть 3)

1_ZBwgMHuXDCzIc-2ZMacbEQ (1)

Это мой непрямой ответ на статью, которую меньше года назад написал Афри Шёдон, разработчик Ethereum-клиента Parity. Должен подчеркнуть, что я с уважением отношусь к большинству разработчиков в этой сфере, и это не попытка атаковать кого-либо из них. В этой статье я лишь хочу рассмотреть актуальные проблемы и показать, что Шёдон в своей статье упускает их из виду.

И скажу сразу: ограниченный объём хранения данных здесь ни при чём.

Продолжение. По ссылкам можно прочитать первую и вторую части статьи.

Совет: не используйте централизованные блокчейны

1_ZBwgMHuXDCzIc-2ZMacbEQ (1)

Единственный человек в этом зале, у которого работает полный узел, — это тот, кто держит в своих руках как рисунок, так и всю сеть Эфириум. До сих пор я старался не упоминать Виталика и сосредоточиться исключительно на технических вопросах, однако это фото (а также его оригинал) лучше всего передаёт всю сущность Эфириума. Я отдаю Виталику должное за то, как он выводит мошенников вроде Fake Satoshi на чистую воду, но в то же время он сам представляет функциональные возможности Эфириума в ложном свете.

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

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

Со временем число зелёных узлов возрастает, а красных — уменьшается. Этого не избежать: пользователи делают соответствующий выбор уже сейчас. На вашем компьютере работает полный узел или лёгкий клиент? Может быть, ни то и не другое? Переход на лёгкий клиент — популярная рекомендация тем, чьи узлы не могут синхронизироваться. Однако это не решение проблемы.

Это очень оптимистичная схема. Многие полные узлы (обозначенные красным) не так хорошо соединены между собой, и не все соединения с пирами находятся в рабочем состоянии:

1_WLsWyrLB5U-rMRqPraXG5g

Но не беспокойтесь, Виталик придёт на помощь и превратит узлы в SPV-клиенты, которые синхронизируют лишь заголовки блоков:

1_jm6JlHciXO8tZHVp6Uaz-w

«Ограничение состоит в том, что каждый узел должен будет подтверждать заголовки блоков из всех шардов и сможет работать в пределах своей производительности. Отсюда понятие квадратичного шардинга: если узел может выполнить C операций, то он сможет обработать заголовки для C шардов, а если этот узел подтверждает 1 блок, то в нём может быть не более C транзакций. Таким образом, его приблизительная производительность составит C^2».

Что это означает? К счастью, я потратил немало времени на то, чтобы изобразить последствия визуально, но начнём со словесного объяснения.

В сети Биткойна можно либо подтверждать транзакции полностью, либо не подтверждать ничего. Есть только две роли:

  • полные узлы, подтверждающие абсолютно все транзакции и блоки;
  • SPV-клиенты, которые не проделывают никакой работы, а только устанавливают соединение с полным узлом и синхронизируют заголовки блоков, не передавая никакие данные в сеть. Они не являются полноценными участниками сети, и я упоминаю их здесь исключительно для ясности.

Повторюсь: в сети Биткойн все 115 тыс. узлов проделывают полезную работу.

Вот из каких узлов состоит сеть Эфириум:

  • полные узлы, на которые приходится вся нагрузка по подтверждению всех транзакций и блоков;
  • узлы, которые пытаются справиться со всеми задачами, но не успевают синхронизироваться из-за проблем с пирами, пропускают строки и прибегают к быстрой синхронизации, а затем якобы полноценно подтверждают новые транзакции и блоки;
  • лёгкие «узлы», которые постоянно синхронизируют только заголовки блоков, и, насколько я понимаю, обмениваются ими с такими же узлами. Назовём их SPV-узлами. У них нет аналога в Биткойне: там SPV-клиенты не передают никакие данные в сеть, и их нельзя считать узлами.

Готов гарантировать, в то самое число узлов в Эфириуме, в основном, входят лёгкие узлы, которые не выполняют никакой работы по подтверждению (синхронизация заголовков к ней не относится). Если кто-то с этим несогласен, пусть приведёт свои аргументы и продемонстрирует соответствующие данные. Лёгкие узлы по сути составляют подсеть, в которой распространяются лишь заголовки блоков, однако их жульнически включают в общее число узлов в сети. Они не приносят сети никакой пользы и просто паразитируют на ней.

Обновлённый Эфириум с введением шардинга будет состоять из следующих компонентов:

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

Угадайте, в какой группе окажется ваш узел? Подумайте. Для полноценных узлов не изменилось ровным счётом ничего.

Я немного схитрил с изображением соединений и просто скопировал участки сети ради экономии времени, но точность линий не имеет значения. Синим обозначены шардинговые сети, красным — всё та же сеть полных узлов, подтверждающих все транзакции. Зелёные «узлы» синхронизируют и передают остальным только заголовки блоков:

1_KhQFMjvlbjlHxBbroExrWA

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

Есть ли хоть какой-нибудь способ узнать, сколько полных узлов работают в такой сети? Это трудно проверить даже сейчас, ведь те немногие сайты, которые отслеживают состояние Эфириума, засчитывают лёгкие клиенты в общем числе узлов. Будет ли заметно то, что все полные узлы сконцентрируются, скажем, в 10 дата-центрах? Нет. Никто этого не узнает.

Исправление: мне указали на ошибку в понимании шардинга, хотя я хорошо представляю себе, как он работает. Я не хотел усложнять эту статью, так как шардинг не является основной её темой, и я собираюсь опубликовать продолжение, в котором рассмотрю проблемы этой технологии, в том числе новые роли узлов, коллаторы и валидаторы, то есть всё те же полные узлы в новом представлении, которые не сможет содержать рядовой пользователь. Пока же постараюсь более точно изобразить, как будет выглядеть сеть Эфириум после введения шардинга, на новой схеме.

Ни одного полного узла:

1_Q0g_lhFpVGpnbcb3Ag7Qdg

Биткойн, с другой стороны, с самого начала разрабатывался так, чтобы предотвратить такой исход:

1_EUeNvj2KsJ-7im-kCHMLZg

«Биткойн создаёт мотивацию для миллионов частных детективов расследовать попытки подрыва или злоупотреблений.
Не становитесь врагом Биткойна». > https://twitter.com/_Kevin_Pham/status/999152930698625024

Как стоит поступить в этой ситуации?

Если вы разработчик, используйте свои навыки, чтобы создавать приложения на базе надёжного и работоспособного блокчейна.

Если вы предприниматель, включите в свои сервисы поддержку платёжных сетей, построенных на основе надёжного блокчейна.

Если вы инвестор, соберите свои активы и вложите их в надёжный блокчейн, который не умрёт в ближайшие несколько лет.

Если вы биржевой игрок, покупайте EOS. Он новее и нисколько не лучше Эфириума по тем же самым причинам, о которых я говорил ранее, но зато его пока никто не знает.

Если вы идеалист, Эфириум точно не для вас. Найдите для себя правильный блокчейн.

1_wOYpqld2d9Ofgoh5xxdPwA

https://twitter.com/StopAndDecrypt/status/992766974022340608

 

Источник



Рубрики:Анализ, Важное, Виталик Бутерин, Мнение, ETH, Ethereum, эфир

Метки: , , , ,

Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход /  Изменить )

Google+ photo

Для комментария используется ваша учётная запись Google+. Выход /  Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход /  Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход /  Изменить )

Connecting to %s