Новое ограничение размера блока 1 МБ в системе эфириума

Аннотация. В этой статье рассматриваем новое предложение по улучшению блокчейна Ethereum (EIP-4488), опубликованное около недели назад Виталиком Бутериным. Это предложение призвано повысить доступность решения для масштабирования «второго уровня», известного как «роллапы» (rollup). Как следствие, чтобы уменьшить внушительный объем блоков, к которому приводит использование роллапов, вводится новое ограничение размера блока данных. Мы объясним, как работают роллапы, особенно в контексте биткоина, и рассмотрим некоторые проблемы, которые могут возникнуть у эфира в связи с новым ограничением размера блоков, что в перспективе может нивелировать некоторые преимущества EIP-1559. 

Обзор решения EIP-4488

EIP-4488 — совсем новое предложение, написанное основателем Ethereum Виталиком Бутериным и опубликованное в конце ноября 2021 года. Это предложение направлено на снижение стоимости передачи одного байта данных calldata в блокчейне Ethereum с 16 до 3 единиц газа. Это значительное (порядка 81%) снижение стоимости газа за передачу данных. Цель предложения —  сделать роллапы более доступными. Роллапы в блокчейне Ethereum занимают много места и считаются критически важными для масштабирования системы. Есть мнение, что комиссии в блокчейне Ethereum слишком высокие, чтобы привлечь новых пользователей, —  порой затраты на транзакции достигают сотен долларов, что вынуждает пользователей уходить в альтернативные системы, например, Solana или Avalanche. Используя так называемые решения «второго уровня», к числу которых относятся роллапы, можно значительно снизить комиссию, поэтому роллапы вроде Aribitrum приобретают все большую популярность. Многие DeFi-проектов в стадии разработки, с командами которых мы общались, перешли на использование роллапов еще на этапе создания; некоторые криптовалютные биржи, например, Binance, принимают депозиты с использованием роллапов. Но роллапы позволяют снизить комиссию всего в 10 раз или даже меньше, и некоторым пользователям по-прежнему приходится платить достаточно высокую комиссию. Поэтому в качестве быстрого решения для потенциального снижения этой комиссии почти на порядок — по крайней мере, в краткосрочной перспективе — и было предложено решение EIP-4488. Поскольку в транзакциях «первого уровня» в системе Ethereum также используются данные calldata, это решение также обеспечит небольшое (порядка 2%) снижение комиссии и на этом уровне.

Проблема в том, что если стоимость газа за передачу calldata будет снижена, размер блоков Ethereum может увеличиться, что может привести к усилению централизации. В настоящее время лимит газа составляет 30 млн единиц, целевое значение — 15 млн. Поэтому максимальный размер блока составляет 30 000 000/16 = 1,875 МБ. Снижение стоимости газа до 3 единиц привело бы к увеличению максимального размера блока до 10 МБ (30 000 000/3). Это слишком большой размер, поэтому предложенное решение также предусматривает новое ограничение — ограничение размера блока calldata 1 МБ (некоторые выступают за увеличение этого лимита до 1,875 МБ, чтобы сохранить все возможные старые транзакции, но если транзакция использует около 30 млн единиц газа, это уже перебор).

Новое ограничение в 1 МБ несколько иронично, учитывая многолетнюю войну в блокчейне биткоина из-за старого ограничения размера блока биткоина на уровне 1 МБ. Мы даже написали об этом книгу! Безусловно, целевое время завершения блока в Ethereum намного меньше 10 минут (около 13 секунд сейчас и 12 секунд после перехода в Ethereum 2.0), поэтому одинаковый размер блока (1 МБ) ничего не значит.

Роллапы

На этом этапе будет нелишним объяснить, что же такое роллап. При использовании роллапа транзакции обрабатываются и выполняются вне блокчейна, но при этом данные транзакций по-прежнему добавляются в основной блокчейн Ethereum, поэтому роллап не дает значительного уменьшения размера блока. Обычно в мире Ethereum фраза «вне блокчейна/цепочки» означает другой блокчейн (а не пиринговую сеть, как, например, сеть Lightning Network биткоина, у которой нет собственного блокчейна). Таким образом, роллапы — это система сайдчейнов, новейшая и, возможно, самая продвинутая реализация идеи, впервые предложенной разработчиком биткоина Джонсоном Лау еще в 2013 году. Сайдчейн роллапа совместим с EVM, и в нем можно использовать смарт-контракты Solidity. Таким образом, использование всех возможностей эфира невозможно без блокчейна.

Главное достоинство роллапов — масштабируемость. У сайдчейна нет ограничений по величине газа, которые существуют в основном блокчейне, поэтому пропускная способность в нем выше, а транзакции должны быть дешевле. Недостаток роллапов в том, что для сайдчейна нужны новые агенты консенсуса, и эти агенты имеют право заказывать транзакции. Также существует проблема перемещения средств из сайдчейна в основной блокчейн (из соображений безопасности это должно происходить медленно).

Защита от мошенничества и залоги

Наибольший ажиотаж в системе Ethereum вызывают так называемые «оптимистичные роллапы», которые представляют собой один из подтипов роллапов. Они работают по следующему принципу: пользователи предполагают, что состояние роллапа немошенническое (действительное), но валидаторы сайдчейна могут отправить доказательство мошенничества в основной блокчейн Ethereum, если роллап считается мошенническим (недействительным). Далее это доказательство может быть проверено всеми узлами основного блокчейна Ethereum. Лицо, которое помещает исходные данные о транзакции роллапа в блокчейн Ethereum, также обязано внести залог Ethereum. Если такое лицо неверно укажет состояние и это будет доказано, оно может потерять внесенный залог. Такая структура стимулов призвана обеспечить безопасность сайдчейна роллапа. По принципу действия это напоминает системы доказательства участия (Proof of Stake) с санкциями за «плохое поведение».

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

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

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

Роллапы в контексте биткоина

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

Следующий вопрос, который можно часто услышать, — «Возможны ли роллапы в блокчейне биткоина?». Ответ — да, возможны — во всяком случае, теоретически. На самом деле, если попытаться реализовать такие типы смарт-контрактов в системе биткоина, то это можно сделать только с помощью роллапов, т.к. не существует способа заставить полные узлы биткоина подтверждать сложные смарт-контракты. Поэтому единственный способ сделать это — добавить данные смарт-контракта в блокчейн биткоина, при этом транзакции смарт-контракта должны выполняться и подтверждаться другим узлом, в сайдчейне. С технической точки зрения можно утверждать, что для того, чтобы считаться настоящим роллапом, транзакция первого уровня должна быть способна обеспечить выполнение транзакций второго уровня, а поскольку в блокчейне биткоина это невозможно, его не следует называть роллапом. Но в системе биткоина с таким типом построения сайдчейна можно сделать практически все, в том числе создать систему, способную работать на виртуальной машине Ethereum (Ethereum Virtual Machine, EVM) со смарт-контрактами Solidity. Конечно, в сочетании с блокчейном биткоина такая система будет не слишком эффективной и небыстрой, но теоретически она будет работать.

У сайдчейна роллапа, созданного на базе биткоина, есть один весомый недостаток — в отличие от Ethereum, тут невозможно создать систему оптимистичного роллапа, защищенную от мошенничества. Кроме того, нам не очевидно, что это необходимо или желательно. Целью создания таких роллапов на базе блокчейна биткоина было бы добавление в систему биткоина возможностей смарт-контрактов, как в Ethereum. Но целью создания роллапов в блокчейне Ethereum является увеличение мощности, а не расширение возможностей смарт-контрактов. Поэтому в этой теоретической структуре пользователи могут выбирать, хотят ли они подтверждать транзакции в сайдчейне в дополнение к транзакциям в основном блокчейне, или нет, и в системе доказательства мошенничества нет необходимости. Хранение данных в блокчейне стоит недешево, и мы не предполагаем изначально, что сайдчейн обязательно должен иметь очень высокую пропускную способность, что ведет к высокой централизации и серьезной угрозе безопасности из-за отсутствия валидаторов. На наш взгляд, эти очевидно идеальные условия, в которых оптимистичный роллап оправдан для Ethereum, в любом случае могут просуществовать недолго.

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

Две категории комиссии

Одной из потенциальных проблем EIP-4488 является ограничение размера данных calldata 1 МБ. Таким образом, блоки Ethereum имеют два лимита — ограничение величины газа и ограничение размера calldata. Теперь создавать блоки может быть сложнее, ведь, чтобы выбрать транзакции, которые принесут наибольший доход, создателям блоков придется решать многоплановую проблему. Этот недостаток EIP широко обсуждался. Было высказано мнение, что процесс создания блоков и так сложен из-за таких факторов, как потенциальная прибыль майнера (Miner Extractable Value , MEV). Но решить проблему двух ограничений по блокам намного проще, чем понять, как получить MEV при создании блоков, поэтому участники обсуждения пришли к выводу, что два ограничения не повышают сложность создания блоков. 

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

Слайд, показывающий некоторые недостатки софтфорка биткоина SegWit, 2016 г.

Источник: https://www.slideshare.net/jgarzik/bitcoin-status-report-onchain-scaling-aug-2016

Хотя тогда критики ошибались — поскольку новое ограничение размера блоков биткоина не слишком отличалось от старого и поскольку можно было предположить, что создатели блоков перешли на SegWit благодаря системе активации, должна была остаться только одна категория комиссии. Но, насколько мы понимаем суть нового ограничения Ethereum, мы можем получить две категории комиссии и связанную с этим «экономическую сложность». Хотя нельзя исключать, что мы не до конца понимаем принцип действия EIP4488 и допускаем ту же ошибку, что и в свое время критики SegWit. Мы будем рады узнать ваше мнение по этому вопросу.

Аргумент против EIP-1559

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

Заключение

В настоящее время размер блоков эфира составляет около 80 КБ или около 4 МБ за десятиминутный период. Но размер блоков никогда не был проблемой при синхронизации узлов Ethereum. Как мы объяснили в нашем недавнем материале, в котором сравнили размер блокчейнов эфира и биткоина, последний оказался больше. Но это не означает, что в блокчейне биткоина синхронизацию или подтверждение выполнить сложнее, чем в блокчейне эфириума. Подтверждение в блокчейне Ethereum — гораздо более сложный процесс; наш недавний опыт показал, что он занимает в 10 раз больше времени, чем в блокчейне биткоина на компьютере с аналогичными характеристиками (полностью идентичных условий не существует). Мы считаем, что для Ethereum размер блока никогда не был приоритетом. Если роллапы наберут популярность, что, по нашему мнению, вполне вероятно, ситуация может измениться. На фоне сложности синхронизации узла Ethereum и непреодолимой силы централизации размер блока может быстро стать проблемой.

Что касается двух ограничений по блокам и двух категорий комиссии, то они кажутся нам лишними; они порождают дополнительную сложность, которая никому не нужна. Возможно, стоит найти более простое решение, например, снизить стоимость газа на байт calldate до 8, а не до 3. Это позволило бы ограничить максимальный размер блока примерно 4 МБ, избежав при этом сложности двух ограничений и сократив затраты на передачу calldata на 50%. EIP-4488 не предназначено для долгосрочного масштабирования, это временное решение. Возможно, для временного промежуточного решения два ограничения вполне нормальны  —  при условии, что впоследствии они исчезнут. Но мы убеждены, что оптимистичный роллап сам по себе не решит проблему масштабирования Ethereum, а просто будет увеличивать блоки — до тех пор, пока их размер не станет новой проблемой. Для масштабирования системы Ethereum потребуются другие технологии, и эта задача становится поистине монументальной.