Стремительный рост блокчейна Ethereum начал вызывать опасения членов криптосообщества еще в прошлом году. Так, в июне 2017 года пользователи сети заметили, что за 12 месяцев размер блокчейна, второй по капитализации криптовалюты на рынке, вырос на 700%. А в марте этого года майнеры сети стали испытывать трудности при синхронизации полных архивных нод с блокчейном. По мнению некоторых участников рынка, причиной тому может служить рост количества данных в сети, размер которых уже превышает 1 ТБ.

Причины проблемы

Впервые о том, что архив данных в блокчейне Ethereum может весить порядка 1 ТБ стало известно в июне 2017 года. Тогда крипто-энтузиаст и предприниматель Туур Демеестер заметил, что за год, с июня 2016 по июнь 2017, размер блокчейна Ethereum увеличился на 700%:

Согласно одному источнику, блокчейн Ethereum раздулся на 700% за последние 12 месяцев: сейчас где-то 180 ГБ.

При таком стремительном росте некоторые участники криптосообщества предположили, что сеть сможет достичь отметки в 1 ТБ еще до конца 2017 года. Согласно анализу автора Hackernoon, известного под псевдонимом StopAndDecrypt, это произошло позже — в мае 2018, и нынешний размер данных в блокчейне Ethereum уже превышает 1 ТБ. Что, в свою очередь, может привести не только к проблемам для майнеров и их нод, но и потенциально стать причиной централизации всей сети.

Постоянный рост блокчейна Ethereum ставит под угрозу работу полных архивных нод, которые отвечают за хранение и синхронизацию всего архива транзакций в сети. Так, в начале марта сразу несколько майнеров сообщили о том, что их ноды, работающие с клиентом Geth версии 1.8.1 и 1.8.2, не могут закончить синхронизацию с блокчейном Ethereum. В частности, майнеры отмечали, что при синхронизации их ноды отставали на 65 блоков от текущего состояния сети, несмотря на то, что обновление не прекращалось. Предположительно, причиной тому стали размер данных и пропускная способность сети, не позволяющая своевременно загрузить необходимое количество информации.

При этом автор Hackroon уверен, что ключевой проблемой для сети Ethereum является не общий объем данных в 1 ТБ, а неограниченный размер блока, который со временем будет только расти, потенциально угрожая децентрализации всей сети:

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

Более того, нерегулируемый рост размера блоков в сети Ethereum приведет к тому, что полные ноды не смогут справляться с высокой нагрузкой блокчейна. По мнению StopAndDecrypt, в какой-то момент полные ноды просто не смогут синхронизироваться с блокчейном, в связи с чем их количество сильно сократится. Таким образом, среди ключевых проблем сети автор отметил:

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

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

 В свою очередь, эти ограничения будут способствовать росту комиссий, а также будут препятствовать работе существующих Dapps (децентрализованных приложений), таких как CryptoKitties, Shrimp Farm и Pepe Farm, которые уже сейчас существенно нагружают сеть. При этом будущие Dapps не будут работать вовсе.

 Если Dapps перестанут работать, предназначение сети Ethereum станет спорным.

Статья StopAndDecrypt получила высокий уровень цитирования как в соцсетях, так и на других медийных площадках, посвященных крипторынку, а пользователи Hackeroon оставили порядка 10,000 лайков.

Ответ Бутерина и команды Ethereum

Через несколько дней после публикации Густав Симонссон, сооснователь orchid.com и бывший разработчик Ethereum, дал подробный ответ, где разобрал ключевые моменты статьи. Так, по мнению Симонссона, автор был прав в следующих высказываниях:

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

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

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

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

 Большое количество полных нод необходимо для поддержания децентрализации и безопасности сети.

Однако в остальном Симонссон не смог согласиться с StopAndDecrypt, отмечая, что автор не до конца понимает, как работает блокчейн Ethereum.

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

Симонссон подчеркнул, что блоки в сети имеют ограничение, но, в отличие от сети Bitcoin (где оно равно 1 МБ), в Ethereum для этого есть лимит газа (Gas Limit) — максимальное количество газа, которое пользователь готов заплатить за подтверждение транзакции. При этом в рамках протокола консенсуса сети майнеры сами решают, каким будет лимит газа за блок. Симонссон также объяснил, что если автор доверяет майнерам сети Bitcoin в том, что они заинтересованы в повышении ценности биткоина, то логично, что и майнеры сети Ethereum не станут голосовать за решения, которые будут мешать их работе (слишком высокий лимит газа).

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

По словам Симонссона, высокая активность Dapps не несет ущерба сети, но влияет на повышение размера комиссий. Рост комиссий за транзакции обусловлен готовностью пользователей платить ту или иную сумму за их подтверждение. Разработчик подчеркнул, что именно по этой причине Bitcoin до сих является крупнейшей по капитализации сетью, несмотря на низкую проходную способность в 3−7 транзакций в секунду и высокие комиссии, которые в конце прошлого года доходили до отметки в $55.

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

Симонссон объяснил, что любой компьютер с процессором не старше 6 лет, 8 ГБ оперативной памяти и современным SSD-накопителем может выполнять функции полной ноды в сети Ethereum. Как отметил разработчик, он сам имеет несколько таких нод, подключенных через небольшой сервер к сети. Более того, на сегодняшний день пока неизвестно точное число полных нод, необходимых для поддержания работоспособности крупной децентрализованной сети.

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

Как и Симонссон, Бутерин объяснил, что ограничением размера блока служит лимит газа, который последние полгода оставался на уровне 8 миллионов. При этом в данный период высокоскоростная синхронизация каталога данных на клиенте Geth ежемесячно увеличивается на 10 ГБ. Другими словами, сеть последние полгода успешно справляется с повышенной загруженностью.

Более того, говоря о высоком объеме каталога данных сети, Бутерин отметил, что в зависимости от клиента у майнера есть несколько вариантов по работе с данными. Если работать с клиентом Parity в режиме State-Only, то полной ноде майнера (не архивной) понадобится порядка 10 ГБ свободного места. В свою очередь, для работы с клиентом Geth майнеру необходимо более 74 ГБ памяти для синхронизации с блокчейном Ethereum.