The Ethereum Roadmap

Про спикера

Игорь Мандригин, CTO Gateway.FM — один из главных партнеров Gnosis Chain. Ранее: Ethereum Foundation, Erigon team’19, core dev; исследование «the verge/the purge», Status.im, Opera/OPay.

Про Gateway.FM

Gateway.fm — провайдер распределенной инфраструктуры c разными моделями распределения на четырех дата-центрах.

alt_text

О чем доклад

  • История и динамика развития Ethereum;
  • Текущий роадмап и фазы: The Merge, The Verge, The Purge, etc.
  • Ближайший теневой форк: Shanghai.

История развития Ethereum

Ранний этап

Изначально Ethereum назывался World Computer и основывался на идее, что код можно выполнять распределенным образом. При этом у системы должно быть сообщение в реальном времени и хранилище. Поэтому сначала родились сразу три проекта: Ethereum (и смарт-контракты), Swarm для хранения файлов, и Whisper для передачи данных. Изначально не было роадмапа, как такового — изучали все на ошибках. Это выглядело так: были созвоны core-разработчиков, кто-то говорил, что удалось запустить какую-то фичу и все решали — оставлять или нет. Виталик что-то писал, потом это как-то появлялось на AllCoreDevs, потом это как-то реализовывалось.

alt_text

Project Serenity

В 2015 году был Project Serenity, переименованный в последствии в ETH 2.0. Была задача переделать Ethereum, внедрив новые прикольные штуки: шардинг, переход на PoS, 100К транзакций в секунду и так далее. Этот проект очень долго был в процессе исследований. Некоторые команды получили гранты на создание Beacon Chain, но это была пустая сеть — там были только блоки без транзакций и смарт контрактов. Это занимало очень много времени. У Виталика был пост о методах разработки, который повернул всю эту историю в другую сторону. Он опубликовал работу A rollup-centric Ethereum roadmap, в которой советует вместо масштабирования Ethereum, строить второй слой поверх сети. Роллапы в такой системе будут брать на себя задачи по масштабированию. А Ethereum будет предоставлять уровень settlement и data availability.

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

The Merge

Виталик решил вместо запуска еще одной сети соединить ноды разных уровней: ноду Becon Chain и ноду сети Ethereum. После успешного завершения The Merge, роадмап снова переделали и внедрили фазы: Purge, Verge и так далее.

Процесс улучшения сети

  • Есть группы исследователей (внутри и вне EF). Они публикуют свои результаты на форуме Eth Research. Виталик там тоже иногда что-то публикует.
  • Из достойных идей формируется EIP — предложение включить улучшение в будущие обновления сети.
  • Реализация прототипа на одном клиенте.
  • Запуск девнета — временная сеть для экспериментов.
  • Multi-client devnet.
  • Тестнет — сеть для тестов хардфорков и shadow-форков.
  • Теневые (shadow) форки — запуск сети с отдельным набором валидаторов с новыми правилами. Во время The Merge было около 13 теневых форков. Теневой форк живет неделю или две и умирает.
  • Хардфорк начинается с тестнетов и только потом переходит в майннет.

На любой из этих фаз предложение может отмениться или вернуться на стадию исследований.

alt_text

Роадмап Ethereum

Последний апдейт довольно большой и включает шесть направлений, которые развиваются параллельно.

alt_text

The Merge

Кажется, что The Merge уже завершился, но это не так. Остались некоторые завершающие шаги.

Есть понятие набора валидаторов, но в Ethereum любая нода валидирует сеть. Это ложное представление. Валидаторы нужны, чтобы записывать данные в блокчейн.

Распределенные валидаторы (distributed validators) позволяют шерить ноду среди нескольких валидаторов.

Что еще должно быть сделано:

  • вывод средств (после хардфорка Shanghai / EIP-4895).
  • Single Slot Finality. Раньше про тему финализации не говорили. Но сейчас это на слуху. Финализация — при отправке транзакций, указывается, сколько подтверждений нужно до исполнения. Это нужно, чтобы транзакций не могла отправиться назад в пул транзакций. В EF придумали запрашивать финализирован блок или нет. В Ethereum есть два консенсус-алгоритма с разными свойствами. Эта модель делает блок available, но не consistent. Но раз в 12 блоков (в эпоху) работает второй алгоритм, который consistent, но не available. Идея Single Slot Finality — делать это каждый блок, а не каждый 12й.

The Verge

Тут нужно объяснить, что такое Деревья Меркла (Merkle Trees) — это иерархическая структура, которая используется для верификации данных. Можно отправлять не весь массив данных, а только верхний элемент в виде хеша, который содержит информацию про все другие. Этот хэш записывается в хэдере. Этот процесс называется commitment — проверка правильности стейта Ethereum, в соответствии со структурой блока.

У Merkle Tree есть много достоинств: они просты, удобные, занимают мало места. Но сейчас появилось много более сложных систем вроде zk proofs и так далее. Например, есть Verkle — дерево zk-пруфов (если сильно упрощать).

Нодам в теории не надо будет исполнять каждую транзакцию на этом этапе. Будут добавлены SNARKs и state diffs.

Таким образом получаются легкие клиенты, которые можно запускать на смартфонах и планшетах. Они не требуют хранения информации в полном объеме и менее требовательны в целом. Легкие клиенты помогают улучшить мосты между сетями. Почти все мосты сейчас работают по принципу мультиподписей (16-20 участников) Но с применением легких клиентов можно распределить между всему валидаторами (400К участников).

Пока что The Verge движется не так быстро, как хотелось бы. Дерево Merkle строится 7 минут, а Verkle — 18 часов.

alt_text

Где почитать об этом:

The Surge

Этот этап подразумевает масштабирование. Сейчас Ethereum производит блок раз в 12 секунд. Это очень низкий TTP. Есть идея запихнуть этот процесс в роллапы, и самая большая проблема тут — data availability. Роллапы требуют много данных. Для решения проблемы, разработчики развили идею шардинга в Danksharding. Изначально была идея сделать шарды почти независимыми блокчейнами с уровнем исполнения и валидаторами. Потом решили, что все шарды будут для данных и только один шард для исполнения кода.

Danksharding состоит из трех идей:

  • Шарды будут создаваться на одной машине одним валидатором. А уровень исполнения — Beacon Chain. Шарды потом распределяются дальше по сети. Для создания шардов нужно много ресурсов, мощная машина. И это проблема. Также нужны сервера для хранения шардов. Для этого есть PBS — валидаторы делятся на две части: пропозеры и билдеры. Пропозер может создавать блоки локально или передавать блок билдеру, а билдеры друг с другом соревнуются.
  • KZG + data availability.
  • Одновременная валидация шардов.

alt_text

EIP-4844: Protodanksharding

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

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

The Purge

Архивная нода Geth занимает 12 терабайт и продолжает расти. Проблема не в архивных данных, а в том, что количество адресов растет, в день увеличивается на 100 тысяч.

Давно была идея, что надо чистить старые ненужные данные, она прошла через разные стадии:

  • Появилась идея State Rent — аренда за место смарт-контрактов в сети. Не всем нравилась эта идея, плюс она сложна в имплементации.
  • После этого была идея Stateless Ethereum и блок witnesses — ноде для синхронизации не нужны все данные, с каждым блоком также возникает блок witness, который хранит все необходимые данные для выполнения транзакций и хэши для построения деревьев Меркла.
  • ReGenesis — новейшая идея, которая подразумевает, что каждый раз нужно начинать с начала — с хэша Меркл-дерева. Отправитель предоставляет пруф для выполнения транзакции.
  • Эта идея получила новое название State Expiry — добавилось хранение истории на несколько эпох назад.
  • EIP-4444 — snapshot сети + остановка обслуживания старых блоков, которые не используются.

alt_text

The Scourge: MEV

MEV-буст стал возможен потому что в консенсус-клиентах сделали тестовый APY и разработчики внедрили MEV boost, который выбирает рилей и делает оптимальное построение блока. Мало того, что APY был не доделан, но еще основной фокус был на The Merge, поэтому многие блоки билдились не очень эффективно, что было невыгодно блок-билдерам.

alt_text

Самое простое решение: реализовать crList внутри протокола и делать больше рилееров, которые не будут цензурироваться.

Дополнительно об этом:

alt_text

The Splurge

На этот этап скинули разные процессы, которые никуда не вошли. Тут хочется остановиться на двух моментах:

alt_text

Следующий хардфорк

alt_text

Полезные ссылки

ACD callsETH Cat Herders/Peep an EIPTim BeikoTwitter Vitalik Buterin

Читайте также

Больше мероприятний