Шардинг Эфириума: централизация вместо масштабирования (часть 4)

Снимок экрана 2018-08-13 в 1.53.27

В заключительной части я отвечу на критику Виталика Бутерина и Густава Симонссона моей предыдущей статьи, «Размер блокчейна Эфириума превысил 1ТБ, и да, это проблема» (часть 1часть 2часть 3).

Продолжение. Первуювторую и третью части статьи «Шардинг Эфириума: централизация вместо масштабирования» можно прочитать по ссылкам.

Разбор ответа Виталика

1:

«Автор *очень сильно* заблуждается. В Эфириуме уже установлено ограничение размера блока в виде лимита газа, который вот уже шесть месяцев держится на уровне 8 млн единиц».

Я объяснил это выше. Если вы не успеете ввести шардинг достаточно скоро, чтобы он помог ещё потянуть время, то вам придётся поднять лимит газа.

2:

«В режиме быстрой синхронизации директория с данными в последние 6 месяцев стабилизировалась на уровне 10 Гб в месяц и вряд ли вырастет намного выше хотя бы потому, что значительное повышение лимита газа привело бы к проблемам из-за централизации майнинга uncle-блоков. Так что последние полгода мы уже переживаем самое худшее».

Если вы не поднимите лимит газа, высокие комиссии помешают работе Dapp и приведут сообщество в ярость, ведь у него есть определённые надежды и ожидания. Я также обсудил это выше. При отсутствии других решений, частота uncle-блоков перестанет быть приоритетом. Сейчас майнеры просто действуют из альтруистических побуждений и слушаются вас. И это целая отдельная проблема.

3:

«Акцентировать внимание на объёме данных архивного узла – большая ошибка, поскольку (1) можно значительно уменьшить размер директории, если синхронизироваться хотя бы раз в год или просто запустить узел Parity, который автоматически сокращает историю; (2) директория содержит немало лишних данных (а именно, всю историю состояний и узлы базисного дерева), которые всё равно могут быть восстановлены из блокчейна и занимают не более 50 Гб, поэтому, с точки зрения теории информации, такое «сокращение» истории не существенно. А если вы на самом деле готовы работать с сокращённой историей, вы можете использовать Parity в режиме синхронизации состояний, и тогда вам потребуется не более 10 Гб дискового пространства».

Я уже затрагивал этот вопрос, когда показывал график роста потока данных. Как и требования по обработке данных, размер директории растёт экспоненциально. В ответ вы лишь уверяете, что не поднимете лимит газа. Но вы это сделаете.

4:

«Вся суть шардинга в том, что сеть может выжить ВООБЩЕ БЕЗ узлов, которые вы называете «полными». А если в сети есть всего пять полных узлов, то ни у одного из них нет никаких особых прав, позволяющих ему повлиять на консенсус; эти узлы просто подтверждают больше данных, а значит могут быстрее определить, какой блокчейн является корректным, и всё. Для формирования консенсуса достаточно и простых шардинговых узлов».

Я подробно рассмотрел шардинг в третьей части этой статьи.

5 (LOL):

«Наконец, вы неправильно употребляете термин «BCash»: это не блокчейн или криптовалюта, а просто имплементация».

Из статьи автора о BCash (в свободном переводе: часть 1часть 2):

Введение

Перед тем как начать данную статью, я хотел бы кое-что разъяснить. Предупреждаю сразу: когда я говорю о BCash, я имею в виду копию Биткойна, которую официально называют Bitcoin Cash.

Так как сообщество осталось не в восторге от прозвища «BCash», навязанного его проекту всеми остальными, кто-то решил создать фиктивный проект под таким же названием с целью запутать публику и сделать так, чтобы Bitcoin Cash перестали называть «BCash». Теперь при любом упоминании этого названия они ссылаются на этот фиктивный проект, как будто это каким-то образом опровергает ваш аргумент.

Вы упомянули BCash в разгар обсуждения или спора? Что ж, разговор окончен… «BCash – это отдельная криптовалюта, так что или вы всё путаете, или вы тролль».

Нет, извините, но ни то, ни другое не про меня. Просто вы обманщик.

Это подделка:

sharding56.png

Разбор статьи Густава Симонссона

1:

«… система стимулов на базовом уровне протокола совершенно неработоспособна, так как в сети Эфириума нет ограничения размера блока».

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

… они [майнеры] вряд ли проголосуют за такое увеличение размера блока, которое потенциально может привести к нарушению работы сети.

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

2:

«Если бы оно [ограничение максимального размера блока] и существовало, оно должно было бы быть «разумным», однако это так или иначе помешало бы работе Dapp, которые едва ли справляются со своими задачами даже сейчас, когда размер блока неограничен».

Никто больше не идёт на пляж, когда там становится слишком людно.

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

Это совершенно неуместный в данном случае аргумент – мы используем его, когда говорим о Биткойне. Этот аргумент довольно популярен, однако Биткойн не обещает низких комиссий и комфорта для разработчиков и пользователей Dapp. Что, если Dapp проиграют в ценовой конкуренции простейшим транзакциям миксеров, занимающим 90% пространства в блоках ради сбыта хакерских и воровских монет? Когда услуги миксеров окажутся выгоднее никому не нужных Dapp, какие маркетинговые ходы у вас останутся? И в этом вся проблема. Можете спорить с этим сколько угодно, но в итоге вы оправдываете существование Эфириума, перечисляя характеристики, которыми обладает и Биткойн, если не считать бесполезных излишеств. У Биткойна лучше получается быть Биткойном.

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

Я предлагал разрабатывать приложения на базе Биткойна. Я не призывал брать существующие идеи программ, которые могут оказаться провальными, и реализовывать их для Биткойна. Почти все Dapp изначально централизованы и не являются Dapp как таковыми. Все они могли бы работать на базе Lightning. В сети платёжных каналов не возникнет никаких проблем с комиссиями, каким бы ни был размер блока. Конечно, можно утверждать, что то же самое относится и к Эфириуму, однако это никак не оправдывает пустых обещаний о возможностях базового слоя.

Не существует такого сценария, как нарушение работоспособности Эфириума приложениями вследствие генерируемой ими высокой нагрузки

Поиск в Google: криптокотики

3:

«Размер блоков [в Биткойне] не сдерживает поток транзакций, а контролирует объём данных, передаваемых всем участникам сети».

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

Да, мы учитываем офчейн-решения, и поэтому я писал, что поток транзакций не ограничивается. Размер блока можно сравнить с плотиной, а комиссии – с энергией, которую она генерирует. Избыточная «энергия» переходит в Lightning Network, где поток транзакций не ограничен ничем, кроме числа Lightning-узлов и платёжных каналов, а их может быть сколько угодно.

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

4:

«… эту информацию нельзя скрывать. И я считаю, что если эта информация когда-нибудь будет раскрыта, то будет уже слишком поздно».

Эта информация не скрыта. Всегда можно просто запустить полный узел и просмотреть информацию о нем на https://wiki.parity.io/JSONRPC-parity-module.html#parity_pendingtransactions, а затем опубликовать её на веб-сайте. Сам факт того, что автор не смог найти сайт с нужной информацией ещё не означает, что она скрыта.

Кроме того, даже если интереса ради предположить, что эта информация и скрывается, то утверждение о том, что «будет слишком поздно», когда она станет доступной, в лучшем случае является ошибочным обобщением, а в худшем — логической уловкой («после» не значит «вследствие»).

Эта информация скрывается. Дело не в том, что я «не смог найти» сайты, которые бы её отслеживали, а в том что сайты, которые отслеживали её раньше, перестали это делать.

Вы забыли процитировать следующее предложение: «Поздно уже сейчас».

Это не уловка, а ехидное замечание, с которым вы вправе не соглашаться.

5:

«Стоит отметить, что для Эфириума подобная информация [время распространения по сети для блока и для транзакции] недоступна».

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

… [если автор] слишком ленив для того, чтобы потратить несколько часов на изучение того, как развернуть и использовать клиент Эфириума, и даже включить в нём отладку, то для получения данной информации он всегда может посмотреть время распространения блоков и транзакций для узлов, подключённых к https://ethstats.net/.

sharding57.png

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

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

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

6:

[Невнятные рассуждения касательно «правильного» использования блокчейна и ненависти к CryptoKitties]

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

Например, многие люди в действительности любят CryptoKitties до такой степени, что на недавнем аукционе оценили одного криптокотика в 140 000 долларов в ETH-эквиваленте. Я готов даже предположить, что автор, скорее всего, просто не любит кошек.

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

sharding58

Помимо проблемы отмывания денег, существуют и дураки, и CryptoKitties – отличный способ это продемонстрировать. Собственно говоря, мне нравится CryptoKitties как раз потому, что это ценный и публично доступный индикатор, а ещё мне нравятся кошки:

sharding59

7:

«В сети Биткойн работают около 115 тыс. узлов, 12 тыс. из которых являются полными узлами, открытыми для входящих соединений».

Эта информация очевидно противоречит нескольким другим источникам данных о количестве узлов Биткойна.

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

Более того, кто проверял скрипты, подсчитывающие количество данных узлов?

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

sharding60

@LukeDashjr: «Я учитываю все узлы»

@Emoji_Nakamoto: «Да, это понятно, но вычитаете ли вы те узлы, которые отключаются от сети? Может быть, другие мониторинговые сервисы учитывают только последнюю версию Core?»

@LukeDashjr: «Неактивные узлы вычитаются из общего числа только через несколько недель после отключения»

@Emoji_Nakamoto: «Получается, остальные мониторинговые сервисы не учитывают узлы, открытые для входящих соединений, или используют какой-то ненадёжный метод для соединения с ними?»

@LukeDashjr: «Они учитывают *только* узлы, открытые для входящих соединений, которых меньшинство».

@Emoji_Nakamoto: «Не знаете, чем это объясняется?»

@LukeDashjr: «Их намного легче посчитать».

https://twitter.com/LukeDashjr/status/1001202223009935361

8:

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

А что если попросить самого автора предоставить данные, подтверждающие его спекулятивные заявления? Утверждение «готов гарантировать» подразумевает наличие ссылки на авторитетные источники, и, учитывая вышеуказанные ложные утверждения и дезинформацию, на мой взгляд, не следует особо доверять рассуждениям автора относительно протокола и сети Эфириума.

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

9:

«Когда узлу не под силу успевать за сетью, он переходит в разряд лёгких клиентов».

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

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

10:

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

Ну хорошо, на данный момент мы точно знаем, что в блокчейне Биткойна корректно работает 115 000 полных узлов. Так неужели в описываемом автором гипотетическом будущем, ему представляется, что мы не сможем узнать, сколько полных узлов есть в сети Эфириума?

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

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

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

Именно из-за фундаментальных различий исследовать структуру сети Биткойна легко, а в Эфириуме – как минимум проблематично.


Совершенно очевидно, что для поддержания полного узла Эфириума требуется большая вычислительная мощность. Это может привести к росту нагрузки, особенно на старые ноутбуки, и однозначно потребует использования SSD-носителей. Тем не менее для этого не требуется сверхмощный сервер. Фактически, любое предназначенное для этой цели устройство, имеющее процессор, изготовленный в последние 6 лет, 8 ГБ оперативной памяти и современный SSD-носитель смогут запросто обслуживать полный узел Эфириума (или даже несколько полных узлов, как это делаю я на своём довольно скромном сервере). Возможно, следует уделить больше внимания пропускной способности узлов при ретрансляции транзакций и блоков, однако это не проблема для сетей с хорошим соединением.

  1. Со временем обслуживать узел становится всё сложнее.
  2. Учитывая пиковую стоимость подтверждающего узла в 45000 $, вопрос остаётся спорным.
  3. Нельзя забывать о пропускной способности соединений между узлами, которые не являются подтверждающими и не стоят 45000 $, ведь «хорошее соединение» нарушает конфиденциальность, как я объяснял выше.

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

Исторически майнеры старались понижать и увеличивать лимит

Всё это не имеет значения в централизованной сети с PoS, однако представляет значительную опасность для системы с PoW в долгосрочном периоде. У майнеров нет никакого стимула помогать «чужакам» поддерживать соединение и синхронизироваться, если они могут ограничиться обменом заголовками. Хотя сейчас майнеры проявляют альтруизм, у нас нет никаких оснований надеяться на него в будущем. Полагаться на честность самых влиятельных участников сети при её дальнейшем масштабировании – это довольно опасная идея.


В целом, поскольку производительность программ-клиентов начиная с момента запуска сети постоянно повышалась, майнеры постепенно увеличили лимит газа на блок до его текущего значения 8 млн (на момент запуска Эфириума он составлял 3,14 млн). Как правило, если проблемы синхронизации становятся настолько значительными, чтобы это отразилось на цене ETH, то это стимулирует майнеров понижать лимит в целях надлежащего регулирования сети.

Не вижу причин полагать, что лимит газа понизится, и я ясно изложил это в своих статьях.


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

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

Контрольные точки по-своему полезны, а вы сделали слишком далекоидущие выводы о моём отношении к ним. Как бы то ни было, режимы синхронизации не столь важны – если они вам нравятся, это ваше право их использовать. Меня беспокоит не это, а снижение числа подтверждающих узлов, в то время как контрольные точки лишь решают проблему объёма исторических данных и никак не влияют на требования по обработке данных уже после синхронизации.

На практике в Биткойне или Эфириуме реорганизация блоков глубже, чем на несколько часов назад, крайне маловероятна

Согласен.


Эпилог

Никто в действительности не знает, сколько полных узлов требуется для обеспечения безопасности сети.

До тех пор мы не можем знать, является ли 1 тысяча, 5 тысяч, 10 тысяч или какое-либо другое их количество минимально необходимым для обеспечения безопасности сети.

Я писал об этом выше.


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

Надеюсь, к моменту запуска PoS и шардинга у них найдётся по 45000 $. В случае взлёта курса ETH дела будут ещё хуже. В DASH для запуска мастерноды требуется 1000 монет, что в какой-то момент соответствовало 1 000 000 $.


Для тех, у кого хватило терпения дочитать до конца

У меня хватило, и я на вас не злюсь. Некоторые считают мой стиль письма агрессивным, но это не так.

 

Источник

 

 



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

Метки: , , , , , ,

1 reply

Trackbacks

  1. Шардинг Эфириума: централизация вместо масштабирования (часть 1) — EthereumClassic

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

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

Логотип WordPress.com

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

Google+ photo

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

Фотография Twitter

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

Фотография Facebook

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

Connecting to %s