Создатель EthereumВиталик Бутерин объявил о следующем шаге сети, который заключается в избавлении от лишнего веса. Он назвал это «Чисткой»
В пятой статье своей серии Виталик изложил безжалостный план по устранению избыточности блокчейна, исключению дублирующих функций и оптимизации протокола. Сеть Ethereumперегружена устаревшими транзакциями и сложными устаревшими функциями.
Решение? Виталик хочет сократить исторические и данные о состоянии, упростить функции протокола и облегчить запуск узлов. Это радикальное решение является ответом на стремительный рост объёма данных в Ethereum.
В настоящее время для полноценного узла Ethereum требуется более 1,1 терабайта памяти только для клиента выполнения, а для данных консенсуса — ещё больше.
По мере накопления транзакций и учетных записей растет потребность в хранилище, что создает узкие места. Без изменений Ethereum рискует стать медленным, и новые клиенты будут сталкиваться с мучительно долгим временем синхронизации, чтобы просто обновиться до текущей версии блокчейна.
Истечение срока действия истории: уменьшение объема памяти Ethereum
Вместо того чтобы каждый узел хранил все когда-либо зарегистрированные транзакции, Виталик предлагает, чтобы узлы сохраняли только самые свежие данные. Исторические блоки, более старые транзакции и квитанции распределялись между узлами небольшими порциями.
По мнению Виталика, исторические данные должны функционировать как торрент-сеть — узлы хранят биты данных, обеспечивая их доступность без необходимости хранения всего на одном узле. «Речь идёт о сотнях гигабайт старых блоков, которые накапливаются каждый год», — сказал он.
Текущая модель, в которой все данные хранятся на узлах, уже скорректирована. Блоки консенсуса, имеющие решающее значение для механизма Proof-of-Stake, хранятся в течение шести месяцев, в то время как блобы — более крупные блоки данных транзакций — исчезают через 18 дней.
Новое предложение Виталика, EIP-4444, предусматривает ограничение срока хранения исторических блоков и квитанций одним годом. Его конечная цель? Распределенная сеть, в которой каждый узел хранит лишь часть истории, используя доказательства Меркла и кодирование с исправлением ошибок для гарантии точности.
Распределенное хранилище истории не снизит надежность данных Ethereum. Виталик утверждает, что за счет увеличения количества узлов количество копий данных будет расти по всей сети, обеспечивая надежное резервное копирование каждого фрагмента истории.
Кодирование с исправлением ошибок повысит отказоустойчивость, подобно технологии, которая помогает сохранять доступность больших двоичных объектов для выборки данных. Виталик также указывает на сеть Portal Network и методы одноранговой сети как на возможные решения, позволяющие Ethereum управлять распространением данных без использования централизованного хранилища.
Истечение срока действия состояния: ограничение постоянства данных
Помимо истории, чистка, проведенная Виталиком, включает в себя более сложную проблему: «истекание состояния». В отличие от истории, данные состояния (такие как остатки на счетах, nonce-счета и хранилище смарт-trac) сложнее удалить. После создания объект состояния (например, счет с ETH или слот храненияtrac) остается доступным для любой транзакции.
С каждым новым объектом данные в Ethereumрастут. Чтобы это контролировать, Виталик предлагаетmatic удаление данных, которые не использовались в последнее время. Главная задача — найти баланс между удалением состояния и неизменностью данных в Ethereum.
Он считает, что пользователи должны иметь возможность «исчезнуть на пять лет, вернуться и по-прежнему иметь доступ к своим средствам». Эта система должна быть эффективной — без лишних вычислений или сложных моделей для разработчиков.
Ethereum были опробованы различные идеи, такие как «блокчейн-аренда», в рамках которой с пользователей взималась плата за сохранение их данных, и «регенезис», который пытался перезагрузить блокчейн для уменьшения объема данных. Ни одна из них не прижилась.
Два новых предложения направлены на борьбу с раздуванием состояния. Во-первых, это «частичное истечение срока действия состояния». Сеть будет разделять данные на фрагменты, храня только последние фрагменты, сохраняя при этом «заглушки» (небольшие фрагменты неактивных данных) для подтверждения их существования.
Если фрагмент данных удаляется, пользователи могут восстановить его, предоставив подтверждение ранее полученных данных. В предложенном Виталиком проекте EIP-7736 для группировки данных используются деревья Веркла и модель «стебель-лист». Любые данные, не тронутые в течение шести месяцев, удаляются, оставляя лишь фрагмент, который можно восстановить при необходимости.
Вторая идея — это истечение срока действия на основе периода адреса, при котором объекты состояния делятся по времени. Каждая учетная запись имеет «период адреса», и хранятся только данные за два последних периода.
Если кому-то понадобятся старые данные, он должен будет предоставить доказательство Меркла для их восстановления. Такая система, основанная на периодах, потребует изменения форматов адресов, расширения текущего 20-байтового формата для включения номеров версий и периодов.
Виталик также предлагаетtracадресное пространство для сохранения совместимости. Задача будет заключаться в том, чтобы пользователи понимали и доверяли этой системе, не жертвуя при этом основным обещанием Ethereum— доступностью.
Улучшение функциональности: сокращение сложности кода Ethereum
Финальный этап чистки затрагивает сложность протокола. Виталик говорит: «Каждая новая функция усложняет использование Ethereum , но удаление чего-либо — это кошмар». Самый известный пример — SELFDESTRUCT, код операции, позволяющий пользователям удалять хранилищеtrac.
Изначально это позволяло добровольно очищать состояние, но сейчас эта функция в основном не используется и сопряжена с риском DDoS-атак. Хардфорк Dencun в Ethereumослабил этот опкод, и Виталик планирует в ближайшее время полностью его удалить.
К другим избыточным функциям относятся устаревшие типы транзакций, дублирующиеся форматы данных и протокол со смешанным порядком байтов. Эти особенности затрудняют разработку и усложняют обновление Ethereum .
В список задач, предложенных Виталиком, также входит переход от форматов данных RLP к SSZ, упрощение правил расчета газа для более эффективного управления ресурсами блоков и удаление неиспользуемых прекомпиляций, таких как RIPEMD160, MODEXP и BLAKE. Он также поддерживает переход Ethereum на модель клиента без сохранения состояния, что позволит снизить нагрузку на хранилище для большинства узлов.
Некоторые из этих изменений потребуютtracучетных записей, что позволит пользователям обрабатывать устаревшие типы транзакций с помощью «кода EVM для учетных записей по умолчанию». По словам Виталика, это упростит виртуальную машину Ethereum (EVM) и уменьшит размер кода. В долгосрочной перспективе сама EVM может получить обновление.
Он поясняет, что разработчики Ethereum рассматривают новую модель выполнения, подобную RISC-V или Cairo, или, возможно, использование формата объектов EVM (EOF) для стандартизации правил кода.
EOF изменяет правила обработки газа и запрещает определенные инструкции, позволяя модульные обновления, что повышает масштабируемость Ethereum. Сообщается, что этот формат позволит разработчикам вносить постепенные улучшения, что в конечном итоге поможет Ethereum оставаться более эффективным.
Но Виталик предложил и другой вариант. Он говорит : «Более радикальная Ethereum заключается в том, чтобы сохранить протокол как есть, но перенести значительную его часть из функций протокола в код trac

