March 29, 2023

ДЕФИРОГАН #5. Разработчик Ethereum и Виталик Бутерин.

Выдержки с лучших англоязычных подкастов по DeFi.
6 минут прочтения на два подкаста.

Ethereum Foundation – Поиск проблем консенсуса на Layer 1


В этом выпуске, Marius van der Wijden, разработчик Ethereum, рассказал о поиске проблем консенсуса на Layer 1.

Проблемы консенсуса

Marius van der Wijden


• Проблемы консенсуса различаются между реализацией и спецификацией.

• Большое значение в Ethereum заключается в наличии спецификации и нескольких клиентов, реализующих эту спецификацию.

• На протяжении годов Ethereum разработал множество стратегий тестирования.

• Одна из новейших, которую мы разработали для слияния, называется Shadow Forks (теневые форки).

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

• Ethereum также создает вредоносные ноды.

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


Неполный список некоторых инструментов тестирования


• GO evmlab - набор инструментов для тестирования EVM, который Ethereum использует для создания тестовых случаев, выполняемых на клиенте, и сбора вывода от клиента.

• Hive - непрерывная интеграция для регрессионного тестирования, где Ethereum запускает тесты Ethereum.

• У Ethereum есть несколько компаний, с которыми они сотрудничают, таких как Kurtosis и Antithesis для фаззинга (fuzzing) и тестовых сетей.

• tx-fuzz отправляет некоторые интересные транзакции. Это не совсем для поиска ошибок, а скорее для создания нагрузки на сеть.

• Merge-fuzz - инструмент фаззинга для API движка (Application Programming Interface).

• Beacon-fuzz - инструмент фаззинга для клиента маяка (beacon client).


Баги на протяжении лет


• Газ уменьшается, и в какой-то момент происходит underflow (количество газа, используемое для выполнения операции, становится слишком малым и приводит к ошибке), и количество газа становится чрезвычайно высоким.

• Это проблема консенсуса, потому что другие клиенты вычисляют это правильно.

• У Ethereum была "смерть кинцуги" (death of kintsugi) (ситуация, когда в сети Ethereum возникли проблемы с синхронизацией из-за некорректных данных в блоках).

• Кинцуги изменил блоки. Он создал блок с недопустимыми дополнительными данными, и это на самом деле установило дополнительные данные, и Nimbus не смог синхронизироваться. У Ethereum был дальнейший запуск TX.

• У Ethereum был фронтранинг транзакций (тип атаки, который может быть использован для манипуляции с ценами токенов, арбитража и других видов мошенничества в сети).

• У Ethereum было трехстороннее разделение консенсуса, которое фактически нарушило работу сети.

• Ethereum использует Hive для выполнения ряда тестов, и большинство из них являются спецификационными тестами.

• Для спецификации Ethereum создал тестовые случаи и обнаружил невероятное количество ошибок.

• Ethereum также имел тестирование слияния.

• Сообщество нашло некоторые интересные проблемы в go-Ethereum (также известный как Geth, это одна из самых популярных реализаций клиента Ethereum, написанная на языке программирования Go).

• Ethereum также имел Shadowforks.

• В первый год работы Ethereum заметили, что лимит газа быстро снижался

• Проблема заключалась в том, что стандартный лимит газа составлял на самом деле 8 миллионов.

• Ethereum обнаружила эту проблему во время Shadowforks.

• Другой проблемой, с которой столкнулся Ethereum, было неожиданное увеличение использования памяти в процессе переработки (reworks) блоков на Ethereum, что могло привести к проблемам с производительностью и стабильностью сети.

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

• Кто-то обнаружил эту ошибку и активировал ее на основной сети, и только один процент узлов в сети Ethereum использовал обновленную версию клиента, в которой был этот баг.

• Это означает, что большинство узлов сети не были затронуты этим багом, и только небольшое количество узлов было подвержено его влиянию.

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

• У Ethereum было несколько ошибок, которые были найдены через программу Bug Bounty.

• Если вы находите ошибки, сначала отправьте Ethereum письмо и поговорите с командой.

• Люди получат вознаграждение в размере 250 000 долларов.

• Выделение средств на поиск и исправление ошибок в консенсусе (согласовании между узлами сети) является важным и прибыльным направлением.

• Например, одна из таких ошибок - это атака типа "отказ в обслуживании" (DoS) посредством злонамеренного запроса snap. Snap - это протокол для синхронизации состояния сети в клиенте Geth.

• Такие проблемы не так плохи, потому что вы только валите одну ноду. Если у нас возникают сбои в EVM, это обычно хуже, потому что можно обрушить множество нод.

• Marius van der Wijden создал программу под названием FuzzyVM, которая обнаружила проблемы с COPY Opcodes.

• Opcodes (операционные коды) являются инструкциями для виртуальной машины Ethereum (EVM), которые выполняют различные функции и операции в контрактах и транзакциях. Каждый Opcode представляет собой уникальный код, обозначающий определенное действие для EVM.

• Другой проблемой, обнаруженной FuzzyVM, был отказ в обслуживании Besu (одна из реализаций Ethereum, созданная на Java и поддерживаемая группой разработчиков из Hyperledger).

• Ethereum также обнаружил баг Geth v.1.10.22, который содержал регрессию
(тип ошибки, когда ранее работавший функционал перестает работать правильно после внесения изменений в код), которая могла повредить локальное состояние.

• В данном случае, регрессия в Geth v.1.10.22 могла повредить локальное состояние узла, что потенциально могло вызвать проблемы с синхронизацией и другие неполадки.



Bankless Podcast Ep.138 - Виталик о прошлом, настоящем и будущем ETH

(подкаст после слияния)



Виталик о Merge


• Критики ETH могут сказать, что шардинг никогда не произойдет, или что ETH столкнется с проблемами масштабирования.

• Слияние в Testnet прошло не так гладко, как реальное слияние, из-за выбора настроек.

• Изменение климата - это обоснованный риск, PoW способствует этому.

• ETH PoS позволяет инвесторам, которые обеспокоены климатическим повествованием, покупать ETH.

• ETH не нужно выбирать, к кому обращаться - к людям, ценящим климат, или к людям, ценящим экономическую свободу.

• Некоторое количество энергии пойдет на цепочку ETH PoW, но в долгосрочной перспективе слияние значительно снизит потребление энергии.



Путешествие к PoS


• Дорожная карта ETH сильно изменилась за прошедшие годы.

• Изначально PoS планировался как система смарт-контрактов, построенная поверх ETH через отдельную цепочку шардинга.

• В 2018 году Джастин Дрейк вдохновил идею ETH Beacon Chain.

• Пожертвовал некоторыми вещами для завершения слияния, включая оптимизацию EVM.

• Все еще очень далеко от оптимального ETH PoS.

• Другие цепочки, например, Zcash и Dogecoin, могли бы поучиться тому, как ETH реализовал свой переход на PoS.

• Оглядываясь назад, Виталик хотел бы сфокусироваться на формате слияния раньше. Он также хотел бы больше внимания уделить роллапам как возможностям масштабирования.

• Нет смысла делать роллап, который не является универсальным.



Эволюция Ethereum со временем


• Что будет добавлено к ETH в ближайшем будущем:

1. Вывод средств после слияния.
2. Распределённые валидаторы
3. Единый секретный выбор лидера (механизм для улучшения безопасности и анонимности процесса выбора валидаторов, предлагающих следующий блок)
4. Single-slot finality and signature aggregation (мгновенная финализация в один слот и агрегация подписей).

Single-slot finality:

- Это когда блоки считаются финализированными после одного слота (промежутка времени). Это сделает процесс подтверждения транзакций и обработки блоков быстрее и более эффективным.

Signature aggregation:

- Это метод объединения криптографических подписей от нескольких валидаторов в одну подпись. Это сокращает объем данных, которые нужно передавать и обрабатывать в сети, и улучшает масштабируемость Ethereum.


Однако введение этих изменений может потребовать жертв, таких как отказ от требования 32 ETH в качестве баланса валидатора или изменение экономической степени финализации.


"The Surge": В настоящее время работаем над внедрением dank sharding через EIP- 4844, что увеличивает масштабируемость для роллапов. Многое еще предстоит сделать, и это является текущим приоритетом.

• "The Verge": Достигнут прогресс в работе над verkles trees (альтернативная структура данных для хранения состояния сети, это существенно повысит производительность и масштабируемость Ethereum), это представляет собой большую инженерную задачу. Это позволяет пользователям более эффективно запускать ноды.

• “The Purge”: Многие шаги на этом этапе были отодвинуты на второй план, включая истечение срока действия состояния (удаление старых данных из блокчейна, чтобы сократить размер базы данных) Возможно, потребуется еще год или больше для решения приоритетных проблем, прежде чем приступить к этому этапу.

• “The Splurge”: Абстракция учетных записей, MEV сглаживание, имеют важное значение. Виталик подчеркнул, что технология ZK-SNARK для всего является более важной, чем the splurge.



Staking Ecomomics


• Могут сократить очереди на депозит и вывод средств при стейкинге. Это облегчит валидацию и стимулирует создание более децентрализованных стейкинг-пулов.

• Изменение архитектуры MEV и внедрение MEV сглаживания уменьшит колебания доходов от стейкинга и стимулы для участия в стейкинг-пулах.

• Системные требования для нод уменьшатся.

• Виталик надеется, что стейкинг на мобильных телефонах станет возможным в течение 5-10 лет.

• 2 способа уменьшения депозита на стейкинг ETH:

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


• Lido все еще относительно децентрализован и в целом заслуживает доверия.

• Для сравнения, более 50% сети BTC находится в нескольких майнинг-пулах.

• ETH PoS гораздо более децентрализован, чем PoW ETH.

• ETH PoS лучше восстанавливается после атаки 51%.



Сопротивление цензуре


• Люди должны быть обеспокоены цензурой в блокчейне.

• Распространенный метод цензуры заключается в контроле производителей блоков централизованными структурами.

• Для борьбы с этим люди разработали контрмеры, включая:

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


• Много других решений, чтобы предоставить автономию валидаторам.

• В будущем ретрансляторы могут не быть частью ETH, только билдеры.

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



Виталик о L2


• Прогресс с ZK EVM продолжается.

• Оптимистичные роллапы могут просто решить стать ZK роллапами, прежде чем они полностью обновятся.

• Важно подготовить кошельки, мосты и dapps на L2 для пользователей.


Канал про DeFi
Чат defi degens
Чат по SocialFi, On chain games, Narrative trading