В погоне за ростом спроса: ответ на критику в связи с ростом размера блокчейна Ethereum (часть 1)

a468be1d7686ecc1f5c0fda544abfbbe61b99436

Ответ Густава Симонссона, сооснователя orchid.com, ранее инженера в Dfinity и разработчика Ethereum, на опубликованную ранее статью, в которой обсуждается рост размеров блокчейна Ethereum и высказываются опасения о том, что узлам сети становится всё труднее успевать синхронизироваться с сетью и обрабатывать растущий объем данных.

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

1_UtsSxc2WXRraLrP17chdWw.png

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

Хотелось бы сразу оговориться, что я владею коинами BTC, BCH, ETH, а также рядом других токенов, в связи с чем не склонен к предвзятому отношению (в финансовом плане), когда речь заходит о критике соответствующих протоколов и/или сетей. Тем не менее я определенно тепло отношусь к Эфириуму, поскольку работал над его протоколами, программами-клиентами и со многими хорошими людьми в ETH-комьюнити, и мое доброжелательное отношение, вероятнее всего, будет прослеживаться в этом ответе (что вполне симметрично позиции моего оппонента, который сам назвал себя BTC-максималистом :))

Вот в чем автор прав:

  1. Эфириум работает на полной мощности, в результате чего мы наблюдаем рост средней цены транзакционных сборов, поскольку среди пользователей наблюдается увеличение конкуренции за имеющееся предложение. Подобная ситуация наблюдается и с Биткойном, который также работает с полной загрузкой, и чьи транзакционные сборы увеличиваются по мере того, как спрос насыщает имеющееся предложение.
  2. Реализации Эфириума (которых есть несколько) столкнулись с проблемой производительности, связанной с увеличением нагрузки и, как следствием этого, с увеличением требований к оборудованию для работы с полными узлами (полными нодами).
  3. По мере увеличения количества транзакций в секунду в Эфириуме, должны расти и требования к пропускной способности полного узла (полной ноды), чтобы не допускать рассинхронизации с сетью.
  4. Достаточно большие блоки приводят к централизации валидаторов. Чем больше блоки, тем больше ресурсов требуется для поддержки полных узлов (а также чтобы конкурировать в майнинге в связи с увеличением времени задержки), что со временем приводит к повышению финансовой централизации, поскольку все меньшее количество пользователей может позволить себе поддерживать полный узел, и еще меньше людей могут позволить себе майнинг. Это приводит также к географической централизации, поскольку все меньшее количество мест в мире становится пригодным для майнинга с точки зрения затрат на электричество, а также хостинг и обслуживание оборудования.
  5. Большое количество полных узлов важно для децентрализации, а слишком малое их количество подвергает всю сеть риску манипулирования злоумышленниками.

А вот в чем автор ошибается:

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

Это заявление в лучшем случае является недостоверным, а в худшем – ложным. Размер блока в Эфириуме ограничивается через лимит газа на блок, устанавливаемый консенсусным протоколом. Лимит газа на блок динамически регулируется майнерами. При формировании каждого нового блока майнеры могут увеличивать или уменьшать его размер не более чем на размер предыдущего блока, деленный на 1024. Это определено в уравнениях 45-47 в формальной спецификации протокола Ethereum и реализовано во всех его клиентах. По сути, это означает, что изменение максимального размера блока требует одобрения большинства майнеров.

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

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

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

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

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

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

По той же самой причине Биткойн все еще существует и используется, хотя он может выполнять только 3 транзакции в секунду с комиссией 20 $. Сеть по-прежнему приносит большую пользу, хотя комьюнити Биткойна в большинстве решило поддержать приостановку масштабирования (на уровне базового слоя) и сосредоточиться на других вещах. В настоящее время мы наблюдаем, как объем полезных услуг, предоставляемых публичными блокчейнами без уровней доступа с достаточной безопасностью, в основном заполняется, и рынок приходит в равновесие с тем, сколько пользователи готовы платить за предоставляемые услуги.

Автор продолжает вводить всех в заблуждение, противореча при этом самому себе, заявляя о том, что приложения Эфириума должны будут перейти на Биткойн. Если эти приложения потеряют свою актуальность в Ethereum вследствие увеличения комиссий за транзакции, то они станут бесполезны и на Биткойне, если будут вытеснены другими пользователями, платящими более высокие транзакции. В основном комиссии Эфириума в настоящий момент опустились примерно до 0,05–0,2 доллара для простых переводов, подтверждаемых в течение 2 минут, по сравнению с 1,65 доллара и 30 минутами в BTC. Кроме того, приложения стали бы менее полезны, так как подтверждения транзакции в сети Биткойна пришлось бы ждать значительно дольше (даже если принимать во внимание, что PoW решения Биткойна сложнее вследствие увеличенного интервала между блоками). Не говоря уже о негибкости языка «script», используемого в Биткойне, но это уже другая история.

Также следует отметить, что в Эфириуме для простого трансфера ETH применяется постоянная сложность (см. спецификацию протокола, приложение G), в отличие от Биткойна, где размер комиссии имеет линейную зависимость от количества обрабатываемых сетью транзакций, что часто оказывается сюрпризом для пользователей. Для платежных приложений это затрудняет расчет оптимальной комиссии сети, а для пользователей – понимание размера комиссий Биткойна по сравнению с Эфириумом. 

Это также влияет и на сумму, при которой размер перевода оказывается меньше требуемой платы за его выполнение. В Эфириуме эта сумма на данный момент равна 0,05 $, тогда как в Биткойне она несколько выше.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Эта информация очевидно противоречит нескольким другим источникам данных о количестве узлов Биткойна: например, на https://bitnodes.earn.com/ сообщается о 9717 узлах, на https://coin.dance/nodes говорится о 9342 узлах, а на https://bitcoinchain.com/nodes – о 8801 узлах.

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

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

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

Подтвердил ли скрипт, который использовался для сбора подсчетов узлов, что каждый узел, который сигнализирует о том, что запускает определенную версию Биткойна _действительно_, запускает его, проверяя его или иным образом удостоверяясь, что он правильно запускает полный протокол Биткойна? Или же это утверждение основывается просто на этом ответе https://en.bitcoin.it/wiki/Protocol_documentation#version?

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

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

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

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

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

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

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

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

Источник



Рубрики:Мнение, Сообщество, 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