Обновление Ethereum Dencun: все, что вам нужно знать
Перевод статьи от Pontem, ссылка на оригинал
Dencun (Deneb + Cancun) - предстоящий хардфорк Ethereum с поддержкой proto-danksharding, который может сделать L2-роллапы до 100 раз дешевле в использовании. Тестирование начнется 17 января. Читайте наше подробное руководство для начинающих!
- Dencun является следующим крупным обновлением Ethereum. Фактически, это два обновления: Deneb на цепочке Beacon и Cancun на цепочке исполнения.
- Тестирование должно начаться на Goerli 17 января 2024 года, а затем на Sepolia 30 января и Holesky (новая тестовая сеть) 7 февраля. Дата выхода на основную сеть пока не объявлена.
- Основной инновацией является proto-danksharding (EIP 4844), решение масштабирования, способное снизить плату за транзакции в Ethereum-роллапах в 100 раз.
- Proto-danksharding полностью отличается от более раннего плана ETH2 по разделению Ethereum на 64 шарда.
- Danksharding вводит "blob-объекты" - большие объекты, заполненные данными транзакций, которые не могут быть прочитаны EVM.
- Blob-объекты будут храниться в основной сети Ethereum в течение ограниченного времени - столько, чтобы заинтересованные стороны могли проверить их подлинность. Другие участники могут хранить данные blob так долго, как захотят.
- Подлинность данных blob можно проверить с помощью сложной схемы под названием KZG commitments.
- Благодаря blob-объектам не нужно писать данные транзакций в Ethereum в виде calldata, что дорого и в настоящее время составляет большую часть затрат на роллапы.
- Странное название proto-danksharding отдает должное двум ключевым исследователям, стоящим за EIP 4844: Protolambda (Diederik Loerakker) и Dankrad Feist.
- Плата за транзакции в основной сети Ethereum после обновления не снизится, но снизится плата за роллапы.
- Новый план признает огромную роль роллапов в масштабировании Ethereum.
- Новый L2 Pontem, Lumio, также должен извлечь выгоду из proto-danksharding.
- Dencun включает в себя несколько других EIP, включая изменения EVM opcodes и оптимизации для валидаторов.
- Хотя цена ETH может вырасти перед выходом на основную сеть, вы должны быть осторожны и провести свое исследование, поскольку такие скачки часто приводят к "sell-the-news"(Например, как биткоин ETF). В более долгосрочной перспективе, если плата за роллапы действительно снизится значительно, Cancun принесет пользу всему экосистеме роллапов.
Что такое Dencun?
Dencun (сокращение от Deneb + Cancun) является следующим крупным обновлением Ethereum, призванным ввести технологию масштабирования, известную как proto-danksharding. Он должен значительно сократить плату за транзакции, которые пользователи платят за L2-роллапы, такие как Arbitrum, Optimism, zkSync и собственный L2 Pontem Lumio.
Помимо Ethereum Improvement Proposal(EIP) № 4844, которое описывает proto-danksharding, Dencun содержит не менее восьми других EIP.
Cancun является обновлением уровня исполнения, а Deneb является соответствующим обновлением уровня консенсуса (цепочки Beacon). Первоначально Dencun был запланирован на конец октября 2023 года, но позже был перенесен на 2024 год.
Вы, возможно, слышали, что разработчики Ethereum работают над шардингом - масштабируемым решением, которое должно значительно ускорить Ethereum. Однако окончательная версия полностью отличается от первоначальной, и мы рассмотрим оба варианта подробно.
Вспомним инновации предыдущего крупного обновления, Shapella
Последним крупным обновлением Ethereum было Shanghai/Capella (“Shapella”) 12 апреля 2023 года. Оно позволило держателям ETH выводить средства из стейкинга - более чем через два года после запуска стейкинга.
Capella разблокировала вывод ETH из стейкинга в консенсусном слое (Beacon Chain), а Shanghai сделала возможным вывод нераспределённого ETH в слой исполнения, где происходят все транзакции.
Мы рассмотрели предыдущие обновления Ethereum в других блогах:
Что скрывается в названии?
Ethereum имеет элегантную систему именования своих обновлений. Форки слоя исполнения названы в честь городов:
- Constantinople и Istanbul в 2019 году (которые, конечно же, являются одним и тем же городом в разных исторических периодах);
- Berlin и London в 2021 году;
- Paris (The Merge) в 2022 году;
- Shanghai и Cancun в 2023 году.
Для обновлений Beacon Chain используются названия звёзд:
- Altair (2021), ярчайшая звезда в созвездии Орла;
- Bellatrix (2022), в созвездии Орион;
- Capella (2023), ярчайшая звезда в созвездии Возничего;
- Deneb (скоро выйдет в октябре 2023 года), ярчайшая в созвездии Лебедя.
Есть и третья система именования обновлений, которые откладывают время замедления сложности сети. Поскольку бомба замедления может привести к "замораживанию" сети, они называются в честь ледников:
- Muir Glacier (2020), на Аляске;
- Arrow Glacier (2021), в Танзании;
- Gray Glacier (2022) - фактически Grey, а не Gray, в Патагонии, Чили.
Blockchain sharding 101
Шардинг(sharding) означает разделение базы данных (и блокчейн является базой данных) на более мелкие наборы данных, которые размещаются и/или обрабатываются отдельно. Он широко используется для масштабирования традиционных баз данных, которые могли бы отставать, если бы вы размещали их на одном сервере.
В блокчейне шардинг может решить проблему узких мест. Эта проблема возникает в основном на цепочках, где каждая нода должна обрабатывать каждую транзакцию - в отличие от Aptos, например, который имеет параллельное выполнение и может достигать 160 000 TPS без шардинга.
- Шардинг блокчейна более сложен, чем шардинг обычных баз данных, и есть много вопросов, которые нужно решить:
- Как разделить нагрузку между нодами?
- Как информация о блоках будет регистрироваться в центральной цепочке («beacon chain»)?
- Как будут взаимодействовать шарды?
- Следует ли вам разделить оба состояния блокчейна или только обработку транзакций?
- Как обеспечить безопасность, учитывая, что один шард легче атаковать, чем единую сеть? И так далее.
Виталик Бутерин впервые написал о шардинге Ethereum в 2017 году. С тех пор другие блокчейны уже внедрили шардинг, включая TON, NEAR и Zilliqa (Подробнее можно прочитать в этой статье).
Ethereum все еще отстает, хотя шардинг должен быть наконец введен в рамках предстоящего обновления Deneb / Cancun. Однако реализация будет кардинально отличаться от первоначального плана Виталика.
ETH2 sharding: 64 независимых, но связанных шарда
Виталик Бутерин впервые описал sharding в статье, опубликованной 31 декабря 2017 года. Как и во многих статьях в блоге Виталика, эта статья очень длинная, но доступна пользователям, не являющимся специалистами в области технологий, и ее стоит прочитать. Тогда, как он сам подчеркнул, все блокчейны все еще требовали, чтобы каждая нода хранила полное состояние блокчейна и обрабатывал все транзакции.
Пока есть достаточно много нод, проверяющих каждую транзакцию (...), не могли бы мы разбить обработку транзакций между меньшими группами нод (...)?
Первая реальная публикация о шардинге в Ethereum появилась в апреле 2018 года. В течение следующих четырех лет ведущие разработчики Ethereum создали подробный план реализации - только чтобы отказаться от него в 2022 году после появления сетей с шардингом. Мы все равно подробно рассмотрим первоначальный план, потому что он делает новый концептуальный подход «danksharding» более понятным. Мы опишем процесс в настоящем времени, но помните, что эта структура устарела.
Изначальная идея заключалась в разделении состояния блокчейна на 64 цепочки (текущая + 63 новых шарда), в каждой из которых должно быть не менее 128 валидаторов. Один валидатор из каждого шарда играет роль провайдера и создает набор транзакций (шардблок). Остальные валидаторы шарда играют роль нотариусов, проверяя, что набор транзакций действителен.
Если по крайней мере две трети валидаторов шарда одобряют набор транзакций, его заголовок отправляется в Beacon Chain, а провайдер получает награду. Там комитет из 128 случайным образом выбранных валидаторов проверяет только аттестации на заголовке (вместо всего его содержимого) и добавляет его в Beacon Chain.
Beacon Chain и шарды работают в координированном режиме. Время делится на слоты продолжительностью 12 секунд и эпохи, состоящие из 32 слотов (6,4 минуты). В течение каждого слота шард может создать один набор транзакций и отправить его заголовок в Beacon Chain. Таким образом, с каждым слотом сеть может добавить до 64 шард-блоков плюс один блок Beacon Chain. Beacon-блок связан со шард-блоками через перекрестные ссылки (до 64 штук).
Участники валидируются в разные шарды Beacon Chain в псевдослучайном порядке и переводятся каждую эпоху. Специальный маяк(beacon, отсюда и название цепочки) выдает случайные числа.
Чтобы взять под контроль основную сеть, злоумышленнику потребуется контролировать как минимум две трети комитета из 128 участников валидации. При случайном выборе участников валидации вероятность этого составляет менее одного из триллиона (Подробнее можно прочитать в этой статье).
Если участник шарда нарушает правила - например, голосует за и против набора транзакций или предлагает более одного набора транзакций, когда выступает в роли провайдера - другие могут сообщить об этом участнике и получить вознаграждение.
Каждый шард мог бы поддерживать dApps и учетные записи пользователей, и также была возможна связь между шардами. Общая пропускная способность должна была возрасти до 100 000 TPS.
Шардинг должен был стать следующим крупным обновлением после Merge(полного перехода на Proof-of-Stake). Планировалось развернуть контракт менеджера участников валидации на Beacon Chain в 2023 году. В первой фазе, изначально запланированной на 2023 год, шарды не должны были поддерживать учетные записи и смарт-контракты. Они бы работали как слой данных без обмена данными между ними.
Во второй фазе шарды должны были функционировать независимо друг от друга, каждый из них хранил свое состояние блокчейна, и на каждом из них работали разные dApps.
Danksharding: парадигма, ориентированная на rollups
Новая дорожная карта масштабирования Ethereum
В экосистеме Ethereum за последние несколько лет произошло очень важное событие: появление rollups. Arbitrum, Optimism и Base входят в топ-10 блокчейнов по TVL. С появлением zkSync Era (в настоящее время находится на 19-м месте в списке) и Polygon zkEVM (50-е место) появились ZK rollups. Виталик Бутерин сам сказал в 2020 году, что rollups станут ключевым инструментом масштабирования Ethereum в ближайшие несколько лет.
Это поднимает вопрос: действительно ли нужны все эти независимые шарды? Не лучше ли построить фреймворк разделения на шарды вокруг rollups, поскольку они уже могут делать то, что должны были делать шарды Ethereum, например запуск dApps?
Разделение состояния блокчейна на шарды больше не является конечной целью. Вместо этого, краткосрочный и среднесрочный план Ethereum теперь сосредоточен на том, чтобы помочь rollups (optimistic и ZK) дешево передавать данные в основную сеть.
Эта разработка называется danksharding. Название происходит от имени исследователя Ethereum Foundation, который предложил ее, Dankrad Feist. Он имеет докторскую степень по теоретической физике и прикладной математике в Кембриджском университете и работает с Ethereum с 2019 года.
Термин «шардинг» все еще уместен: хотя все состояние блокчейна не будет разделено на шарды, а хранение данных будет. Вместо того, чтобы хранить полную копию состояния блокчейна (размером в несколько терабайт), устройство может хранить только небольшую часть заполненных данными «blob`ов» - мы поговорим о них в ближайшее время.
Обновление Dencun введет версию danksharding, известную как proto-danksharding. Он описан в Ethereum Improvement Proposal № 4844.
Часть «proto» в — это умный каламбур. В греческом языке «proto» означает раннюю версию чего-либо, но это также указывает на Protolambda — псевдоним второго исследователя, который вместе предложил EIP-4844. Его настоящее имя Diederik Loerakker, и он в настоящее время работает в OP Labs.
Кстати, вы знаете о Lumio, новом rollup Pontem?
У нас есть особая причина быть заинтересованными в обновлении Cancun: в декабре 2023 года Pontem запустил новый "optimistic rollup", Lumio! Уникальность Lumio заключается в том, что это первый rollup, поддерживающий как EVM, так и Move VM, виртуальную машину Aptos. Это впервые приносит скорость, безопасность и низкие комиссии Move VM и Aptos в экосистему Ethereum. Pontem Wallet поддерживает как части Move VM, так и EVM Lumio. Liquidswap DEX предлагает поддержку Lumio сразу же в тестовой сети на Move VM, поэтому вы уже можете попробовать обмены на новом L2.
Разработчики могут развернуть смарт-контракты на Lumio как на Move VM (плагин Intellij IDE Pontem - лучший способ сделать это), так и на EVM с помощью Hardhat или Foundry.
Как и любой "optimistic rollup", Lumio связывает транзакции в пакеты и отправляет их в Ethereum в виде calldata. Это влечет за собой плату за газ. Все транзакции завершаются на тестовой сети Ethereum Sepolia, что означает, что в настоящее время плата за Lumio выплачивается в тестовом ETH. Protо-danksharding должен значительно снизить эти расходы.
Прочитать о Lumio подробнее на русском языке можно тут
Челлендж: сокращение затрат на доступность данных
Прежде чем погружаться в механику proto-danksharding, давайте попробуем понять проблему, которую она решает: стоимость транзакций L2.
По состоянию на январь 2024 года отправка ETH с Optimism стоит 0,09 доллара, а с Arbitrum - 0,08 доллара. Обмен стоит 0,17 и 0,24 доллара соответственно. Конечно, это дешево по сравнению с Ethereum L1, но все еще дорого по сравнению с новыми L1 следующего поколения, такими как Aptos, например.
Фактически, затраты на обработку транзакции на rollup и обновление его хранилища очень малы, потому что эти операции происходят вне сети (за пределами основной сети Ethereum). Основная часть затрат приходится на необходимость обеспечения доступности данных. Уполномоченный участник сети («prover») должен иметь возможность просматривать транзакции rollup и проверять, что они не являются мошенническими, поэтому данные о транзакциях также должны быть доступны на основной сети.
В настоящее время rollup отправляют пакеты сжатых транзакций в Ethereum L1 в виде calldata - информации в поле Data транзакции. Проблема в том, что запись calldata в Ethereum очень дорогая: 4 газа за байт, когда его значение равно нулю, и 16 газа за байт, отличном от нуля, по ценам газа Ethereum L1. Calldata gas составляет большую часть расходов на rollup - и эта стоимость переносится на пользователей rollup.
Откройте любую транзакцию в обозревателе Optimism или Arbitrum - и вы увидите, что плата Ethereum L1 намного выше, чем плата L2. Например, здесь пользователь заплатил около 23 000 газа по 0,000000000012 ETH (0,012 Gwei) на L2 - это около 275 gwei. Но плата L1 составляла 30 730 gwei, что в 111 раз превышает плату L2.
Optimism и Arbitrum используют алгоритмы оптимизации (сжатия) calldata. Но proto-danksharding идет дальше: он полностью отказывается от публикации calldata, заменяя его "blobs".
Blobs: способ danksharding сократить плату за rollup
В proto-danksharding данные транзакции rollup упаковываются в специальные объекты, называемые blobs, или двоичными большими объектами (BLOB-ами). Blobs- это общие структуры данных в JavaScript и Python: они представляют собой объекты, заполненные необработанными данными, которые даже не обязательно должны быть в формате JavaScript или Python.
На Ethereum blobs будут передаваться с помощью нового типа транзакции: транзакции с переносом blob`a. Они будут иметь новое поле под названием «blob».
Blob`ы могут быть размером до 125 КБ, что довольно много для Ethereum. Каждый blob состоит из тела, содержащего данные транзакции, и гораздо меньшего заголовка с подписью предложения и другой информацией (подробнее можно прочитать тут).
По прибытии blob`a в основную сеть, сеть проверяет, что данные, содержащиеся в blob`е, доступны в сети, но не их содержимое. Цепь rollup сможет получить доступ ко всем данным blob, но EVM не будет знать, что находится в этих blob`ах. Они считаются непрозрачными для EVM.
Beacon Chain будет хранить данные blob в течение ограниченного времени - возможно, несколько недель или пару месяцев. Этого должно быть достаточно для того, чтобы любая заинтересованная сторона могла получить доступ и проверить, что rollup соблюдает правила. Внешние участники, такие как операторы rollup, могут хранить данные blob столько, сколько захотят.
KZG commitments: как будут проверяться blob данные
Готовы ли вы к чему-то более техническому? Тогда давайте посмотрим на commitments(обязательства).
- Должен быть способ проверить blob`ы, отправленные rollups - чтобы проверить, что rollup не взломал данные. Вот как это делается:
- Вместе с blob rollup публикует так называемый «обязательство».
- Обязательство создается путем применения полиномиальной функции к данным blob для получения значений функции в разных точках данных. Проверяющий может применить ту же функцию к тем же точкам данных, чтобы проверить, что полученные значения совпадают.
- Криптографическая схема, используемая для создания обязательств из данных blob, называется Kate-Zaverucha-Goldberg (KZG). Участникам (операторам rollup и проверяющим) необходимо придумать набор точек данных для проверки - и держать эти точки в секрете от всех остальных.
- Процедура, используемая для генерации таких строк точек данных, называется церемонией KZG. В нем один участник получает строку значений от предыдущего, затем создает некоторые новые случайные числа и смешивает их с исходными значениями. Участник передает новую строку следующему человеку и уничтожает свою собственную копию строки. Если есть хотя бы один честный участник, церемония безопасна.
- Более 141000 пользователей приняли участие в церемонии призыва KZG EIP-4844 Ethereum. Для участия нужен был адрес ETH-кошелька или учетная запись GitHub. Результатом стала структурированная строка ссылок (SRS), которая будет использоваться в обновлении Cancun.
Proposer-builder separation(PBS) и новая система торгов
Формирование blob данных и создание обязательства для него требует много ресурсов. Только валидаторы с мощным оборудованием могли бы это сделать. Но для продвижения децентрализации, Ethereum должен позволять всем участвовать, поэтому он вводит систему, известную как Proposer-builder separation.
Валидатор с достаточными ресурсами может быть "block builder"(строителем блоков): составлять упорядоченные списки транзакций и отправлять их в качестве заголовков блоков другим валидаторам, называемым "block proposers". Любой валидатор может стать им и проверять blob`ы, что намного быстрее и дешевле.
Вот самая интересная часть: block builder`ы конкурируют, предлагая различные суммы ETH, а block proposers выбирают одного. Ожидается, что они выберут самого высокопоставленного участника торгов (поскольку block proposers получает право оставить цену предложения в качестве своего дохода). Наконец, выигравший block builder строит весь блок со всеми его blob-данными и получает вознаграждение. В дальнейшем все становится более сложным: разработчики хотят ввести crLists - списки транзакций, которые block proposers будут транслировать и которые block builder`ы должны будут включить в блок, если они не могут использовать все доступное пространство для других транзакций. Цель - бороться с цензурой: ситуациями, когда block builder`ы по какой-то причине опускают некоторые транзакции (cr в crList означает «невосприимчивый к цензуре»(“censorship-resistant”)). Подробнее о crLists можно прочитать здесь.
Снизит ли proto-danksharding плату за газ Ethereum?
Важно понимать, что proto-danksharding не снизит плату за газ Ethereum. Передача транзакции между двумя кошельками Ethereum будет стоить столько же, сколько и сейчас. Однако использование L2, таких как Optimism, должно стать намного дешевле, поскольку стоимость отправки данных транзакции с rollup на основную сеть может снизиться до 100 раз.
Что еще в обновлении Cancun + Deneb?
Форк должен включать следующие "Ethereum Improvement Proposals", разделенные по уровню исполнения и консенсуса.
- EIP-4844: proto-danksharding и blob-carrying транзакции.
- EIP-4788: подтверждает корни блоков Beacon Chain в EVM; может быть полезен стейкинг пулам и мостам.
- EIP-6780: изменяет то, как будет работать EVM-код SELFDESTRUCT.
- EIP-5656: вводит новый EVM-код MCOPY, который предлагает эффективный способ копирования байтов данных из памяти в Solidity.
- EIP-1153: новые opcodes TSTORE и TLOAD, которые обрабатывают временную память, которая дешевле, чем постоянная память, и сбрасывается после каждой транзакции.
- EIP-7516: возвращает текущую базовую плату за blob.
- EIP-7044: делает подпись добровольного выхода валидатора действительной вечно, а не только для двух обновлений, как сейчас.
- EIP-7045: увеличивает максимальный интервал, в который могут быть включены подтверждения валидаторов, до конца следующей эпохи; необходимо для обеспечения безопасности.
- EIP-7514: замедляет скорость роста числа валидаторов. Цель состоит в том, чтобы дать сообществу время обсудить корректировку ETH-вознаграждений за стейкинг.
Когда произойдет обновление Cancun + Deneb?
Изначально обновление Dencun на основной сети планировалось на четвертый квартал 2023 года, но позже было отложено до начала 2024 года. Перед выпуском основной сети он должен пройти через серию частных и публичных тестовых сетей. Мы перечислим их все, чтобы вы могли увидеть, сколько тестов проводится для такого форка.
- Devnet 8: запущен 18 августа 2023 года;
- Devnet 9: запущен 7 октября;
- Devnet 10: запущен 23 октября. Devnets 8, 9 и 10 являются частными, что означает, что обычные пользователи не могут присоединиться к ним.
- Devnet 11: 30 октября 2023 г.
- Devnet 12: 30 ноября 2023 г.
- Goerli: первая публичная тестовая сеть. Планировалось запустить ее до конференции DevConnect в ноябре 2023 года, но новая дата выхода - 17 января 2024 года.
- Sepolia, основная публичная тестовая сеть Ethereum: 30 января 2024 года.
- Holesky, новая тестовая сеть, которая заменит ветерана Goerli: 7 февраля 2024 года.
- Основная сеть: TBA.
Как обновление Cancun повлияет на цену ETH?
Крупные обновления блокчейнов часто являются событиями «sell-the-news», когда цена повышается до обновления и сразу после него падает. Так что будьте осторожны и проведите собственное исследование.
В среднесрочной перспективе, если плата за rollup действительно снизится заметно после внедрения proto-danksharding, это может оказать положительное влияние на ETH, а также на другие газовые токены, такие как ARB и OP. Однако, опять же, вам нужно быть осторожным.
После слияния в 2022 году было много шумихи в СМИ о том, что ETH становится «дефляционным», и цена продолжала расти. Но все мы знаем, что случилось потом: медвежий рынок. Поэтому любые заголовки типа «ETH будет стоить $4000 после Cancun» следует воспринимать с огромной долей скептицизма.
Мы будем держать вас в курсе прогресса обновления Dencun. Между тем мы планируем множество обновлений и новых функций, включая концентрированную ликвидность на Liquidswap и нового бота PontemAI. Подпишитесь на нас в Telegram, Twitter и Discord и оставайтесь в курсе!
О Pontem
Pontem Network - это студия, которая создает первый в своем роде набор базовых dApps для Aptos. Pontem Wallet, первый кошелек для Aptos, доступен для Chrome, Mozilla Firefox, Android и iOS.
Используйте Pontem Wallet для хранения и отправки любых токенов на Aptos. Кошелек интегрирован с нашим Liquidswap DEX, первым DEX и AMM для Aptos, маркетплейсами NFT Topaz и Souffl3, платформами для ликвидного стейкинга Ditto и Tortuga, протоколами кредитования Argo и Aries и всеми другими крупными dApps на Aptos.
Наши другие продукты включают браузерный редактор кода Move Playground, плагин Move IntelliJ IDE для разработчиков и переводчик кода Solidity-to-Move ByteBabel - первое в истории внедрение Ethereum Virtual Machine для Aptos.