Неожиданная популярность игры CryptoKitties наглядно продемонстрировала ограниченную пропускную способность блокчейна Ethereum — вчера игра сгенерировала 700 000 транзакций, чем полностью забила сеть.

Количество транзакций в блокчейне эфириума планомерно растёт уже несколько месяцев, но криптокотам удалось создать критическую перегрузку — в результате застряло около 20 000 транзакций, а комиссии за перевод выросли до 11 центов.

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

«Чем больше блоки, тем больше анклов; оптимизация, которая увеличит скорость распространения и обработки блоков в сети, уменьшит количество анклов на всех уровнях», — пояснил Ник Джонсон из Ethereum Foundation.

Джонсон отметил, что в последнее время Ethereum фокусировался на больших долгосрочных обновлениях, призванных решить проблему масштабируемости, таких как Proof-of-Stake и шардинг. Он считает, что теперь можно провести и некоторые простые улучшения протокола, которые решат более краткосрочную проблему большого количества анклов.

«После DoS-атак разработчики Ethereum провели значительную работу по улучшению скорости обработки транзакций, но в последнее время эта проблема не была приоритетной. Полагаю, что вскоре работа в этом направлении продолжится, и я вижу, по меньшей мере, пару вещей, которые можно сделать, не потратив много ресурсов и времени», — заявил Джонсон.

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

Один из способов решения — сжатие данных, которое уже реализовано в основном клиенте Ethereum, Geth, но ещё не реализовано во втором по популярности клиенте, Parity.

«Недавнее предложение EIP по сжатию данных транзакций существенно снижает их размер. Оно уже поддерживается новыми версиями клиента Geth, но, по-моему, пока не поддерживается Parity, так что пока Geth и Parity обмениваются между собой несжатыми данными. Кроме того, в Geth реализована запись данных с определённой периодичностью, а не на каждом блоке, что избавляет от необходимости записывать мгновенно устаревающие данные», — пояснил Джонсон.

Также, Ethereum вскоре может реализовать свою собственную версию FIBER, xThin или Graphene, что позволит майнерам быстрее обмениваться информацией о новых блоках, тем самым уменьшив число анклов.

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

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

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

«Это зависит от команд обоих клиентов и от сложности улучшений. Их сначала нужно разработать, затем выпустить новые версии клиентов и посмотреть, как новые изменения повлияют на появление анклов; думаю, это пара недель минимум. Лично я думаю, что за это время или криптокоты оптимизируют свой контракт, или спрос на них упадет. Конечно, модификации клиентов нужны в любом случае», — заявил Джонсон.

Напомним, что игра CryptoKitties, запущенная 28 ноября, уже обогнала по объёму транзакций такие крупные проекты, как биржи EtherDelta и Shapeshift.