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

1_ZBwgMHuXDCzIc-2ZMacbEQ (1)

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

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

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

Предсказание: размер блока будет ограничен, и Эфириум вступит в смертельную гонку с Bitcoin Cash

1_Iy5mzuSbnaDt5ni1OTjK9Q

Состояние на 14 мая 2018 г.
Статистика на сайте больше не обновляется, поэтому я экстраполировал график, используя реальные актуальные данные
http://bc.daniel.net.nz/

Представленный выше график – это даже не предсказание. Я просто добавил недостающие данные (выделено жёлтым) к последнему графику, на котором сравнивались директории с данными Биткойна и Эфириума, и экстраполировал результат, на основании которого можно утверждать следующее:

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

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

Знаете, что я делаю для поддержки моего Биткойн/Lightning-узла? Я просто оставляю ноутбук включённым. И ничего больше. При необходимости, я останавливаю процессы, перезагружаю компьютер, а затем запускаю их заново. Я постоянно использую компьютер для разных повседневных задач, и это никак не мешает работе узла. При всём уважении к разработчикам, если бы они навязали мне обновление, из-за которого мой узел не смог бы синхронизироваться и продолжать работу в сети, я пришёл бы в ярость от такой глупости, не будь я заранее к этому готов. Но к счастью, я избежал заблуждений и выбрал блокчейн с дальновидной стратегией (Биткойн).

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

Что же происходит, когда наступает тот самый психологический переломный момент? Уходят ли пользователи? Сколько узлов должно отключиться, чтобы это произошло? Сайты-обозреватели больше не отслеживают такие данные. На Etherscan.io нет статистики по директориям ни для полного, ни для быстрого режима синхронизации, а Etherchain.org лишь сообщает об ошибке.

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

На обоих графиках изображено приблизительное общее число транзакций в очереди в примерно одинаковом масштабе: за 4 и 5 дней соответственно. Разница в том, что интервал на графике Биткойна можно расширить настолько, чтобы увидеть всю историю. Почему это важно? В сети, где не регулируется размер блока, ключевую роль играет психология. Вот как выглядит история мемпула Биткойна:

1_lVaB6uk4Bq4LoLHYZs3yqQ

Текущий уровень отмечен указателем

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

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

  • Скорость распространения блоков значительно ускорилась благодаря хорошо продуманным улучшениям в коде. Транзакции подтверждаются по мере поступления и хранятся в мемпуле. Когда узел получает новый блок, он быстро сверяет его со всеми транзакциями, сохранёнными ранее, и, как правило, находит среди них большинство транзакций из нового блока. Это позволяет узлу в кратчайшие сроки подтвердить блок и отправить его всем своим пирам.
  • С другой стороны, время обработки транзакций постепенно выросло, но, похоже, начинает стабилизироваться. Такая динамика неслучайна: замедление происходило вследствие улучшения механизмов защиты данных. Это достойный компромисс, ведь блоки так или иначе обрабатываются раз в 10 минут, и задержка в 16 секунд вполне допустима. Думаю, что скорость обработки транзакций стабилизируется, как только блоки будут постоянно заполняться до предела, поскольку комиссии, обусловленные размером блока, будут регулировать поток новых транзакций (если, конечно, в протокол не внесут изменений).

Стоит отметить, что для Эфириума подобная информация недоступна:

Биткойн разрабатывался с учётом этих факторов. Очередь транзакций растёт, однако размер блока регулируется. Со временем люди учатся правильно пользоваться инструментом, который мы называем блокчейном, и поток транзакций стабилизируется. С другой стороны, отсутствие регулирования приводит к тому, что, когда множество людей хаотично и одновременно пытается использовать этот инструмент для какой-нибудь несерьёзной цели вроде CryptoKitties, работа всей сети замедляется, пока она не справится с наплывом новых контрактов. Каждый из них должен быть обработан каждым полным узлом. Казалось бы, конкретно вам не нужно обрабатывать каждый контракт, и вас могут заверять, что это необязательно, но ведь кто-то должен выполнять всю работу. Много ли тех, кто будет это делать? Высокие комиссии лишь препятствуют глупым приложениям вроде CryptoKitties на базовом уровне протокола. В них нет никакой нужды. Более полезные приложения столкнутся с теми же проблемами, так как блокчейны не масштабируются.

Эти DApp парализуют ваш блокчейн потому, что он не регулируется:

Но разве нам не обещали, что всё будет в порядке? Ведь в этом заключалась вся идея Эфириума: стать лучшей альтернативой Биткойну. Мечтать не вредно.

Конечно же, число транзакций при неограниченном размере блока не устремится в бесконечность, но важно понимать, что сеть физически не справляется даже с текущей нагрузкой. В ней недостаточно узлов, чтобы обрабатывать и вовремя передавать всю информацию. Знаете ли вы на самом деле, сколько узлов задействовано в сети Эфириума? В сети Биткойн работают около 115 тыс. узлов, 12 тыс. из которых являются полными узлами, открытыми для входящих соединений. Почти все они участвуют в обмене данными, поскольку это также поддаётся регулированию. Отличия узлов, открытых для входящих соединений, от остальных узлов в данном случае не принципиальны, так как все они обмениваются данными со своими пирами. По умолчанию у узла должно быть 8 пиров, и клиент не сможет установить более 8 соединений, если пользователь не добавит их вручную. Такое ограничение было введено намеренно. Устанавливать больше соединений не рекомендуется, так как это снижает работоспособность сети:

 

 

1_KURw6Q-KH_w8g0jtGCEdCw

«По умолчанию Биткойн допускает 8 исходящих соединений, и параметр -maxconnections лишь контролирует максимальное число входящих соединений. Можете менять этот параметр как вам угодно, но имейте в виду, что к вам не сразу подключится множество новых узлов.
Пожалуйста, не пытайтесь установить более 8 исходящих соединений – в этом нет необходимости. Доступные пиры — редкий ресурс, и без них децентрализация невозможна. Если все участники сети попытаются подключиться ко всем доступным пирам, как это делают некоторые сайты, то очень скоро в сети не останется узлов, открытых для входящих соединений.
Если вы предприниматель или майнер, возможно, вам пригодятся несколько постоянных соединений с проверенными узлами (см. параметр командной строки или конфигурации -addnode). Однако большее число соединений не обеспечит более надёжную верификацию (стандартный клиент в любом случае подтверждает каждую транзакцию) и не ускорит перечу данных (поскольку пересылка новых блоков и транзакций всем пирам займёт больше времени). Прежде всего, это вопрос поддержания работы сети».
https://bitcoin.stackexchange.com/a/8140

Помните эту реплику, приведённую ранее?

1_u5RGcDXH35nY_QLM5CJLPw

«Такова природа p2p-сетей: всё зависит от работы пиров и состояния соединения. Обычно, если подождать достаточно долго, синхронизация сработает. Также может помочь Ctrl+C и перезагрузка (после этого, в идеале, установится соединение с более стабильным пиром). Ещё один вариант — найти хорошего пира и установить соединение с ним вручную».

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

Справедливости ради стоит заметить, что именно за это критикуют и Lightning Network, однако это сеть совершенно иного типа. Блокчейны – это peer-to-peer сети широкого вещания, а Lightning Network и прочие сети каналов состояния работают по принципу anycast. Рассылка данных в них происходит совершенно по-другому. Даже у современного холодильника хватит производительности, чтобы запустить Lightning-узел. Опасения по поводу постепенной централизации Lightning в виде радиальной структуры связаны с распределением средств на балансах каналов. Для радиальной структуры характерны те же проблемы, что для модели ведущих и ведомых, однако в случае с балансами каналов данные не являются узким местом системы. Подобно Биткойн-клиентам с их стандартными 8 пирами, можно стандартизировать Lightning-клиенты, задав число каналов и сумму средств в каждом из них. Тогда сеть сформируется вокруг этого стандарта и не сможет принять централизованную радиальную форму. Lightning Network — довольно новая технология, и поскольку у нас слишком мало данных, чтобы её исследовать, пока трудно определить подходящие стандартные значения для числа каналов и суммы средств.

Кстати о данных и исследованиях: почему число узлов в Эфириуме изображается только на таких графиках? Где найти его историю? Сколько из этих узлов использовали быструю синхронизацию и по-настоящему ничего не подтверждали? Узлы могут хранить историю блокчейна в сокращённом виде, но, всё же, сколько из них занимается полноценным подтверждением транзакций? И сколько среди них обычных лёгких клиентов, которые лишь синхронизируют заголовки?

1_dFdLqYA8yMrEJ929da0XjQ

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

1_-sxBJTdZVDeN8fyes1qQUA

«В Эфириуме теперь в три раза больше узлов, чем в Биткойне».
Не буду оставлять ссылку на пропагандистов Bitcoin Cash

 

В сети Биткойн 115 тыс. узлов, и все они осуществляют полноценное подтверждение транзакций:

Что же делать тем, кто постепенно осознаёт, как обстоят дела на самом деле? А тем, кто этого не понимает? И что ждёт сеть, состоящую в основном из таких пользователей, которые постепенно перестают в ней участвовать (не в буквальном смысле, а отказываясь содержать полные узлы и переходя на лёгкие)? Сколько полных узлов останется в сети? У скольких из них сохранится полноценная копия генезисного блока? А что произойдёт, если всю сеть ведомых узлов будут обслуживать 5 дата-центров? Кто будет подтверждать транзакции, если почти все будут синхронизировать лишь заголовки блоков? Можно сколько угодно утверждать, что для поддержания безопасности сети необходима только недавняя история состояния, но разве можно назвать безопасной сеть, которая неэффективна на всех уровнях и в которой большинство узлов не успевает даже за последней тысячей блоков?

Из всего этого можно сделать следующие выводы:

  1. Рост размера блока в Эфириуме опасен не из-за объёма данных, сохраняемых на диске, а из-за требований к производительности узлов.
  2. Чтобы избежать полного краха сети, в Эфириуме нужно ввести разумное ограничение размера блока.
  3. Ограничение размера блока приведёт к росту комиссий и помешает функционированию многих DApp, или же значительно замедлит сеть. В будущем DApp окажутся неработоспособными.
  4. Если DApp перестанут работать, возможно, существование Эфириума потеряет весь смысл.

Как насчёт Bitcoin Cash?

  1. Размер блока в Bitcoin Cash недавно увеличился с 8 Mб до 32 Мб, и скоро в нём введут новые коды операций (OP_CODES), которые станут основой для новых сомнительных «функций» вроде ICO или каких-нибудь «критоптичек».
  2. У Bitcoin Cash есть потенциал роста, так как он произошёл от блокчейна с очень низкой нагрузкой, в то время как Эфириум совершенно перегружен.

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

Продолжение следует…

Часть 3

Источник



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

Метки: , , , ,

2 replies

Trackbacks

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

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

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

Логотип WordPress.com

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

Google+ photo

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

Фотография Twitter

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

Фотография Facebook

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

Connecting to %s