Улучшения Dencun: простыми словами о сложных EIP

Фото - Улучшения Dencun: простыми словами о сложных EIP
Сегодня, 13 марта 2024 года, должно состояться событие, способное вывести блокчейн Ethereum на качественно новый уровень масштабирования. Обновление Cancun-Deneb («Dencun») запустит целый ряд улучшений (EIP) сразу на двух уровнях сети (консенсуса и исполнения). Попробуем разобраться с самыми значимыми из них.
Раньше мы уже рассказывали об этом пункте назначения на дорожной карте Ethereum, но детально рассмотрели только одно улучшение — появление типа транзакций EIP-4844, которое получило название Proto-Danksharding. 

Теперь выясним, что из себя представляют другие EIP*, которые будут реализованы в мартовском обновлении.

*EIP — это аббревиатура от Ethereum Improvement Proposals, которой принято обозначать инициативы по улучшению протокола. Эти идеи поступают от сторонних авторов, самые нужные и уместные из них реализуются разработчиками Ethereum в последующих обновлениях.

EIP-6780: пылесос для ненужных смарт-контрактов

Разработчики презентуют это улучшение как «Ограничение SELFDESTRUCT на транзакцию».

Что такое SELFDESTRUCT

SELFDESTRUCT — это рабочий инструмент разработчиков Ethereum, который позволяет удалять ненужные смарт-контракты. Но у него есть проблемы:

  • сложность использования;
  • риск потери данных.

Что делает EIP-6780

EIP-6780 делает SELFDESTRUCT более безопасным и простым в использовании. Он ограничивает его полномочия, которые изначально распространяются на все смарт-контракты, созданные в сети. Это работает следующим образом:

  1. SELFDESTRUCT теперь можно будет использовать только по отношению к тому смарт-контракту, на который ссылается транзакция. Следовательно, разработчики не могут случайно удалить другой контракт.
  2. SELFDESTRUCT больше не будет удалять код, ссылку на хранилище и обнулять счетчик (nonce) после проведения транзакции. Поэтому данные не будут потеряны, даже если SELFDESTRUCT будет использован некорректно — их можно восстановить.

Представьте, что ваш компьютер захламлен ненужными файлами. EIP-6780 — это программа, которая помогает вам удалить эти файлы, но с умом. Она не удалит ничего важного из архива, но очистит пространство от ненужного, освободив место для работы.

EIP-5656: легкое копирование данных 

Если EIP-6780 выборочно удаляет ненужный хлам, то EIP-5656 копирует нужные документы в новое хранилище с помощью новой инструкции MCOPY. 

Что такое MCOPY

MCOPY — это новый инструмент в Ethereum, который позволяет разработчикам копировать данные более эффективно. 

Как работает MCOPY

MCOPY предназначен для эффективного построения структур данных. Это реализуется за счет копирования памяти путем перемещения блоков данных из одного места в памяти в другое. 

Процесс напоминает игру в кубик Рубика и является стандартной операцией для построения баз данных и копирования объектов.

Улучшение EIP-5656 сокращает расход gas на это копирование почти в 4 раза, следовательно создание и выполнение новых контрактов также потребует меньше gas. 

Энергоэффективные контракты выгодны, в первую очередь, для рядовых пользователей приложений на Ethereum.

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

EIP-4788: открытый доступ к информации о консенсусе 

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

Например, приложениям для стейкинга нужна для корректной работы информация о состоянии консенсуса Ethereum. До сих пор DApps приходилось доверять сторонним источникам (оракулам) для получения этой информации.

EIP-4788 меняет такое положение вещей. Он напрямую сообщает информацию о консенсусе Ethereum внутри самого блокчейна, делая ее доступной для всех приложений.

Как работает EIP-4788:

  1. В каждом блоке Ethereum теперь будет храниться специальный код (хэш), который ссылается на предыдущий блок консенсуса. 
  2. Этот код можно использовать, чтобы проверить состояние консенсуса Ethereum в любое время. 
  3. Информация хранится ограниченное время (около суток), чтобы не перегружать сеть.

Таким образом, EIP-4788 — это собственный оракул. Он устраняет необходимость использовать сторонние данные, повышая безопасность системы и уменьшая количество возможных точек отказа.

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

EIP-7044: легкий выход из стейкинга

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

EIP-7044 решает эту проблему. В момент заключения контракта на блокировку он создает заранее подписанные уведомления о выводе этих средств. Это условие теперь будет действовать вне зависимости от возможных манипуляций валидаторов и от всех последующих обновлений сети.

Преимущества EIP-7044:

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

EIP-7045: больше времени на голосование

Блокчейн Ethereum состоит из блоков и аттестаций («голосов» за блок, подтверждающих его корректное создание).

До обновления Dencun эти аттестации необходимо было включить в блок в течение одной эпохи. В противном случае блок не будет считаться действительным.

*Эпоха — это один полный цикл обработки данных, закрепленный в алгоритме Ethereum. Он включает заполнение 32 слотов, каждый из которых занимает 12 секунд, в течение чего могут быть валидированы блоки.

EIP-7045 увеличивает максимальное окно включения аттестаций с одной эпохи до двух эпох (то есть до 64 слотов включительно).

Для кого это выгодно на практике

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

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

А тем временем уже началась активная работа над новыми предложениями по улучшению (EIP-6110, -7002 и -7549), которые будут включены в следующее обновление — Prague-Electra. Мы будем держать руку на пульсе, чтобы объяснить вам простыми словами сложные вещи.